Post milestone3m#744
Draft
SharonStrats wants to merge 45 commits intomainfrom
Draft
Conversation
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
TallTed
reviewed
Apr 30, 2026
| * Claude Sonnet 4.6: Make the dop down as a list under the input field and entlarge the pop up, make it higher, adjustable to fit the drop down. And make the drop down arrow area larger | ||
|
|
||
| * GPT-5.4: can you wire up the keyboard interactions and aria attributes for Select. No newline at end of file | ||
| * GPT-5.4 Model: can you wire up the keyboard interactions and aria attributes for Select. |
Contributor
There was a problem hiding this comment.
Suggested change
| * GPT-5.4 Model: can you wire up the keyboard interactions and aria attributes for Select. | |
| * GPT-5.4 Model: can you wire up the keyboard interactions and aria attributes for Select? |
Contributor
There was a problem hiding this comment.
Pull request overview
This PR expands the v2 web component surface (new Button/Select/Combobox/PhotoCapture, plus v2 header/footer/auth components) and introduces a manifest-driven build/export pipeline to keep webpack entries and package.json subpath exports in sync, alongside a few widget/login behavior fixes and new unit tests.
Changes:
- Introduces
scripts/component-manifest.mjs+ sync/watch scripts, updates webpack config to consume manifest entries, and updatespackage.jsonexports/scripts accordingly. - Adds new Lit-based components (actions/button, forms/select, forms/combobox, media/photoCapture) with READMEs and unit tests; reorganizes v2 layout/auth component entrypoints.
- Fixes/adjusts runtime behavior: prevent concurrent checkbox updates, normalize dropped URIs and stop propagation on DnD, broaden drop targets for attachments, and harden
getUserRoles()for missing session/current user.
Reviewed changes
Copilot reviewed 39 out of 52 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| webpack.config.mjs | Switches component entry configuration to spread componentEntries from the manifest. |
| test/unit/widgets/forms/index.test.ts | Adds a regression test for checkbox async update double-click suppression. |
| test/unit/login/login.test.ts | Adds coverage for getUserRoles() returning [] when currentUser is missing and avoiding preference loads. |
| src/widgets/forms.js | Prevents concurrent checkbox updates by disabling the button while an async update is in flight. |
| src/widgets/dragAndDrop.js | Normalizes dropped URI lists and improves drag event handling by stopping propagation. |
| src/widgets/buttons.ts | Extends drop targets to include the paperclip <img> for better DnD usability. |
| src/v2/components/media/photoCapture/README.md | Documents the new photo capture component API and usage. |
| src/v2/components/media/photoCapture/PhotoCapture.ts | Implements solid-ui-photo-capture with inline/dialog presentation, events, and form participation. |
| src/v2/components/media/photoCapture/PhotoCapture.test.ts | Adds unit tests for preview startup, constraints parsing, events, and form-like submission. |
| src/v2/components/media/photoCapture/index.ts | Exports and registers the solid-ui-photo-capture custom element. |
| src/v2/components/layout/header/README.md | Updates README paths after moving header under layout/header and auth button docs relocation. |
| src/v2/components/layout/header/index.ts | Adds a v2 header entrypoint that exports/registers solid-ui-header. |
| src/v2/components/layout/header/Header.ts | Updates import paths for icons/auth components; improves account menu label layout (ellipsis). |
| src/v2/components/layout/header/header.test.ts | Adds unit tests for the moved header component and its key behaviors. |
| src/v2/components/layout/footer/README.md | Updates README test-path references for the moved footer component. |
| src/v2/components/layout/footer/index.ts | Adds a v2 footer entrypoint that exports/registers solid-ui-footer. |
| src/v2/components/layout/footer/Footer.ts | Fixes import path to shared header/footer helper after directory move. |
| src/v2/components/layout/footer/Footer.test.ts | Adds unit tests for the moved footer component behaviors/layout styling. |
| src/v2/components/forms/shared/optionTypes.ts | Introduces shared option typing (SelectOption) for select/combobox listboxes. |
| src/v2/components/forms/shared/listboxTemplate.ts | Adds shared listbox rendering template with ARIA roles and disabled handling. |
| src/v2/components/forms/shared/listboxStyles.ts | Adds shared listbox CSS tokens and styles used by select/combobox. |
| src/v2/components/forms/shared/keyboard.ts | Adds shared keyboard navigation helpers (skip disabled, Home/End, etc.). |
| src/v2/components/forms/shared/downArrow.ts | Adds shared down-arrow SVG template used by form controls. |
| src/v2/components/forms/select/Select.ts | Implements solid-ui-select with popup listbox and keyboard support. |
| src/v2/components/forms/select/Select.test.ts | Adds unit tests for select rendering, mouse selection, keyboard selection, and outside-click close. |
| src/v2/components/forms/select/README.md | Documents select usage, theming hooks, ARIA behavior, and build output. |
| src/v2/components/forms/select/index.ts | Exports and registers the solid-ui-select custom element. |
| src/v2/components/forms/combobox/README.md | Documents combobox usage including async suggestionProvider and portal popup behavior. |
| src/v2/components/forms/combobox/index.ts | Exports and registers the solid-ui-combobox custom element. |
| src/v2/components/forms/combobox/comboboxTypes.ts | Defines ComboboxSuggestion type extending shared select options. |
| src/v2/components/forms/combobox/Combobox.ts | Implements solid-ui-combobox with suggestion loading, keyboard nav, and portal-based popup positioning. |
| src/v2/components/forms/combobox/Combobox.test.ts | Adds unit tests for suggestion loading, popup rendering via portal, selection, and close-on-outside-click. |
| src/v2/components/auth/signupButton/SignupButton.ts | Implements solid-ui-signup-button component that opens a signup URL in a new tab. |
| src/v2/components/auth/signupButton/SignupButton.test.ts | Adds unit tests for signup button behavior, icon rendering, and mobile layout styling. |
| src/v2/components/auth/signupButton/README.md | Documents signup button API and usage. |
| src/v2/components/auth/signupButton/index.ts | Exports and registers the solid-ui-signup-button custom element. |
| src/v2/components/auth/loginButton/README.md | Documents login button API/behavior and how it integrates with header. |
| src/v2/components/auth/loginButton/LoginButton.ts | Implements solid-ui-login-button with dialog-based issuer selection and OIDC login initiation. |
| src/v2/components/auth/loginButton/LoginButton.test.ts | Adds unit tests for basic rendering and popup label/input association. |
| src/v2/components/auth/loginButton/index.ts | Exports and registers the solid-ui-login-button custom element. |
| src/v2/components/auth/loginButton/downArrow.ts | Adds an arrow icon template used by login button dropdown toggle. |
| src/v2/components/actions/button/README.md | Documents new base solid-ui-button component API, theming, and sizing. |
| src/v2/components/actions/button/index.ts | Exports/registers solid-ui-button and adds a global tag-name mapping. |
| src/v2/components/actions/button/Button.ts | Implements base button component with variants/sizes, icon slot/fallback, and callback support. |
| src/v2/components/actions/button/Button.test.ts | Adds unit tests for variants, selected state, callback behavior, and icon rendering precedence. |
| src/login/login.ts | Hardens getUserRoles() (early returns + improved error message) and loosens say() background parameter typing. |
| scripts/watch-component-exports.mjs | Watches the component manifest and triggers export sync automatically for dev workflows. |
| scripts/sync-component-exports.mjs | Updates package.json.exports component subpaths from the manifest (preserving non-component exports). |
| scripts/component-manifest.mjs | Defines v2 component source paths, webpack entry mapping, and package subpath export mapping. |
| scripts/build-component-dts.mjs | Updates DTS wrapper generation to follow manifest source paths (with a directory-scan fallback). |
| README.md | Updates build pipeline documentation and appends prompt history entries. |
| package.json | Adds/expands component subpath exports and wires sync scripts into build/watch/version workflows. |
Comments suppressed due to low confidence (1)
README.md:433
- This prompt history entry includes a developer-specific absolute filesystem path (
/Users/...). That’s not portable and shouldn’t live in repo documentation; replace it with a repo-relative path (e.g.src/media/media-capture.ts) or remove the local path.
* GPT-5.4 Model: Take the code from /Users/sharon/2025Dev/solid-ui/src/media/media-capture.ts and make it a web component. Make it work in forms as well as not. Make it configurable and follow LoginButton.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| theme: { type: String, reflect: true }, | ||
| layout: { type: String, reflect: true }, | ||
| value: { type: String, reflect: true }, | ||
| inputValue: { type: String }, |
| static styles = [ | ||
| listboxStyles, | ||
| css` | ||
| :host { // default theme |
Comment on lines
+42
to
+50
| static properties = { | ||
| label: { type: String, reflect: true }, | ||
| theme: { type: String, reflect: true }, | ||
| options: { type: Array, reflect: true }, | ||
| layout: { type: String, reflect: true }, | ||
| value: { type: String, reflect: true }, | ||
| _popupOpen: { state: true }, | ||
| _activeIndex: { state: true } | ||
| } |
| listboxStyles, | ||
| css` | ||
| :host { | ||
| // default theme |
Comment on lines
+3
to
+6
| export const listboxStyles = css` | ||
| :host { // default theme | ||
| --input-background: var(--color-background, #F8F9FB); | ||
| --item-text: var(--color-text, #1A1A1A); |
Comment on lines
+96
to
98
| uris = [trimmedText] | ||
| debug.log('Waring: Poor man\'s drop: using text for URI') // chrome disables text/uri-list?? | ||
| } |
Comment on lines
1908
to
1914
| const boxHandler = function (_e) { | ||
| if (isUpdating) { | ||
| return // Ignore clicks while update is in progress | ||
| } | ||
| isUpdating = true | ||
| input.disabled = true // Disable button to provide user feedback | ||
| colorCarrier.style.color = '#bbb' // grey -- not saved yet |
| * Raptor mini: add a readme to the Footer component with example. | ||
|
|
||
| * Claude Sonnet 4.6: Make the dop down as a list under the input field and entlarge the pop up, make it higher, adjustable to fit the drop down. And make the drop down arrow area larger No newline at end of file | ||
| * Claude Sonnet 4.6: Make the dop down as a list under the input field and entlarge the pop up, make it higher, adjustable to fit the drop down. And make the drop down arrow area larger |
Comment on lines
+319
to
+326
| this.presentation = 'inline' | ||
| this.theme = 'light' | ||
| this.facingMode = 'environment' | ||
| this.constraints = '' | ||
| this.captureFormat = DEFAULT_CAPTURE_FORMAT | ||
| this.captureQuality = undefined | ||
| this.open = true | ||
| this.disabled = false |
Comment on lines
+19
to
+25
| ```html | ||
| <solid-ui-photo-capture | ||
| heading="Profile photo" | ||
| confirm-label="Use profile photo" | ||
| show-trigger | ||
| presentation="dialog" | ||
| ></solid-ui-photo-capture> |
…into post-milestone3m
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.