@threadlabs/looma 0.28.4 → 0.28.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +96 -0
- package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +56 -0
- package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
- package/dist/index.js +34 -33
- package/package.json +3 -2
- package/styles/ui-action-bar.css +13 -6
- package/styles/ui-affordance-scope.css +12 -5
- package/styles/ui-avatar-group.css +17 -10
- package/styles/ui-avatar.css +23 -16
- package/styles/ui-badge.css +78 -71
- package/styles/ui-breadcrumb-item.css +12 -5
- package/styles/ui-breadcrumbs.css +10 -3
- package/styles/ui-button.css +79 -72
- package/styles/ui-callout.css +29 -22
- package/styles/ui-card.css +25 -18
- package/styles/ui-checkbox.css +45 -37
- package/styles/ui-cluster.css +34 -27
- package/styles/ui-combobox.css +46 -39
- package/styles/ui-container.css +20 -13
- package/styles/ui-context-menu.css +17 -10
- package/styles/ui-cover.css +12 -5
- package/styles/ui-description-item.css +10 -3
- package/styles/ui-description-list.css +20 -13
- package/styles/ui-dialog.css +44 -35
- package/styles/ui-disclosure.css +32 -25
- package/styles/ui-editable.css +15 -8
- package/styles/ui-editor-image-toolbar.css +1 -0
- package/styles/ui-editor-insert-table-grid.css +11 -4
- package/styles/ui-editor-mention-menu-item.css +17 -8
- package/styles/ui-editor-mention-menu.css +14 -7
- package/styles/ui-editor-slash-menu-group.css +10 -3
- package/styles/ui-editor-slash-menu-item.css +15 -8
- package/styles/ui-editor-slash-menu.css +15 -8
- package/styles/ui-editor-surface.css +10 -3
- package/styles/ui-editor-table-context-menu.css +17 -10
- package/styles/ui-editor-table-overlay.css +17 -10
- package/styles/ui-editor-table-toolbar.css +22 -15
- package/styles/ui-editor-toolbar.css +18 -11
- package/styles/ui-floating-action-button.css +21 -14
- package/styles/ui-form-field.css +20 -13
- package/styles/ui-grid.css +21 -14
- package/styles/ui-icon-button.css +80 -73
- package/styles/ui-icon.css +14 -7
- package/styles/ui-image.css +25 -18
- package/styles/ui-input-group.css +34 -27
- package/styles/ui-input.css +42 -35
- package/styles/ui-list-item.css +33 -26
- package/styles/ui-list.css +22 -15
- package/styles/ui-listbox.css +22 -14
- package/styles/ui-menu-group.css +10 -3
- package/styles/ui-menu-item.css +29 -22
- package/styles/ui-menu.css +25 -18
- package/styles/ui-meter.css +36 -29
- package/styles/ui-nav-item.css +26 -19
- package/styles/ui-page-header.css +12 -5
- package/styles/ui-popover.css +27 -20
- package/styles/ui-radio-group.css +14 -6
- package/styles/ui-radio.css +24 -17
- package/styles/ui-reel.css +28 -21
- package/styles/ui-scroll-area.css +22 -15
- package/styles/ui-search-result-row.css +28 -21
- package/styles/ui-search-shell.css +24 -17
- package/styles/ui-section.css +14 -7
- package/styles/ui-select.css +33 -26
- package/styles/ui-separator.css +17 -10
- package/styles/ui-sidebar.css +35 -28
- package/styles/ui-spinner.css +32 -23
- package/styles/ui-stack.css +29 -21
- package/styles/ui-status-message.css +14 -7
- package/styles/ui-switch.css +29 -22
- package/styles/ui-switcher.css +27 -20
- package/styles/ui-table.css +14 -7
- package/styles/ui-tabs.css +24 -17
- package/styles/ui-text.css +35 -28
- package/styles/ui-textarea.css +37 -30
- package/styles/ui-toast-region.css +74 -63
- package/styles/ui-toast.css +21 -14
- package/styles/ui-tooltip.css +38 -31
- package/styles/ui-top-bar.css +19 -12
- package/styles/ui-tree-item.css +79 -71
- package/styles/ui-tree.css +18 -11
- package/vanilla/UiActionBar.d.ts +1 -1
- package/vanilla/UiActionBar.js +1 -1
- package/vanilla/UiAffordanceScope.d.ts +1 -1
- package/vanilla/UiAffordanceScope.js +1 -1
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +1 -1
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +1 -1
- package/vanilla/UiBadge.d.ts +1 -1
- package/vanilla/UiBadge.js +1 -1
- package/vanilla/UiBreadcrumbItem.d.ts +1 -1
- package/vanilla/UiBreadcrumbItem.js +1 -1
- package/vanilla/UiBreadcrumbs.d.ts +1 -1
- package/vanilla/UiBreadcrumbs.js +1 -1
- package/vanilla/UiButton.d.ts +1 -1
- package/vanilla/UiButton.js +19 -57
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +25 -73
- package/vanilla/UiCard.d.ts +1 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -1
- package/vanilla/UiCheckbox.js +1 -1
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -1
- package/vanilla/UiCombobox.js +60 -166
- package/vanilla/UiContainer.d.ts +1 -1
- package/vanilla/UiContainer.js +1 -1
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +1 -1
- package/vanilla/UiCover.d.ts +1 -1
- package/vanilla/UiCover.js +1 -1
- package/vanilla/UiDescriptionItem.d.ts +1 -1
- package/vanilla/UiDescriptionItem.js +1 -1
- package/vanilla/UiDescriptionList.d.ts +1 -1
- package/vanilla/UiDescriptionList.js +1 -1
- package/vanilla/UiDialog.d.ts +1 -1
- package/vanilla/UiDialog.js +4 -10
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +1 -1
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +7 -19
- package/vanilla/UiEditorImageToolbar.d.ts +19 -0
- package/vanilla/UiEditorImageToolbar.js +171 -0
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +1 -1
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +17 -37
- package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
- package/vanilla/UiEditorMentionMenuItem.js +4 -10
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +5 -4
- package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuGroup.js +1 -1
- package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuItem.js +7 -19
- package/vanilla/UiEditorSurface.d.ts +1 -1
- package/vanilla/UiEditorSurface.js +1 -1
- package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
- package/vanilla/UiEditorTableContextMenu.js +6 -14
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +9 -25
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +25 -77
- package/vanilla/UiEditorToolbar.d.ts +1 -1
- package/vanilla/UiEditorToolbar.js +1 -1
- package/vanilla/UiFloatingActionButton.d.ts +1 -1
- package/vanilla/UiFloatingActionButton.js +1 -1
- package/vanilla/UiFormField.d.ts +1 -1
- package/vanilla/UiFormField.js +1 -1
- package/vanilla/UiGrid.d.ts +1 -1
- package/vanilla/UiGrid.js +1 -1
- package/vanilla/UiIcon.d.ts +1 -1
- package/vanilla/UiIcon.js +15 -47
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.js +4 -10
- package/vanilla/UiImage.d.ts +1 -1
- package/vanilla/UiImage.js +1 -1
- package/vanilla/UiInput.d.ts +1 -1
- package/vanilla/UiInput.js +1 -1
- package/vanilla/UiInputGroup.d.ts +1 -1
- package/vanilla/UiInputGroup.js +1 -1
- package/vanilla/UiList.d.ts +1 -1
- package/vanilla/UiList.js +1 -1
- package/vanilla/UiListItem.d.ts +1 -1
- package/vanilla/UiListItem.js +1 -1
- package/vanilla/UiListbox.d.ts +1 -1
- package/vanilla/UiListbox.js +4 -10
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +1 -1
- package/vanilla/UiMenuGroup.d.ts +1 -1
- package/vanilla/UiMenuGroup.js +4 -10
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +4 -10
- package/vanilla/UiMeter.d.ts +1 -1
- package/vanilla/UiMeter.js +13 -33
- package/vanilla/UiNavItem.d.ts +1 -1
- package/vanilla/UiNavItem.js +1 -1
- package/vanilla/UiPageHeader.d.ts +1 -1
- package/vanilla/UiPageHeader.js +1 -1
- package/vanilla/UiPopover.d.ts +1 -1
- package/vanilla/UiPopover.js +1 -1
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +1 -1
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +1 -1
- package/vanilla/UiReel.d.ts +1 -1
- package/vanilla/UiReel.js +1 -1
- package/vanilla/UiScrollArea.d.ts +1 -1
- package/vanilla/UiScrollArea.js +1 -1
- package/vanilla/UiSearchResultRow.d.ts +1 -1
- package/vanilla/UiSearchResultRow.js +1 -1
- package/vanilla/UiSearchShell.d.ts +1 -1
- package/vanilla/UiSearchShell.js +1 -1
- package/vanilla/UiSection.d.ts +1 -1
- package/vanilla/UiSection.js +1 -1
- package/vanilla/UiSelect.d.ts +1 -1
- package/vanilla/UiSelect.js +1 -1
- package/vanilla/UiSeparator.d.ts +1 -1
- package/vanilla/UiSeparator.js +1 -1
- package/vanilla/UiSidebar.d.ts +1 -1
- package/vanilla/UiSidebar.js +1 -1
- package/vanilla/UiSpinner.d.ts +1 -1
- package/vanilla/UiSpinner.js +1 -1
- package/vanilla/UiStack.d.ts +1 -1
- package/vanilla/UiStack.js +1 -1
- package/vanilla/UiStatusMessage.d.ts +1 -1
- package/vanilla/UiStatusMessage.js +1 -1
- package/vanilla/UiSwitch.d.ts +1 -1
- package/vanilla/UiSwitch.js +1 -1
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +1 -1
- package/vanilla/UiTable.d.ts +1 -1
- package/vanilla/UiTable.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +1 -1
- package/vanilla/UiText.d.ts +1 -1
- package/vanilla/UiText.js +1 -1
- package/vanilla/UiTextarea.d.ts +1 -1
- package/vanilla/UiTextarea.js +1 -1
- package/vanilla/UiToast.d.ts +1 -1
- package/vanilla/UiToast.js +1 -1
- package/vanilla/UiToastRegion.d.ts +1 -1
- package/vanilla/UiToastRegion.js +1 -1
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +1 -1
- package/vanilla/UiTopBar.d.ts +1 -1
- package/vanilla/UiTopBar.js +1 -1
- package/vanilla/UiTree.d.ts +1 -1
- package/vanilla/UiTree.js +1 -1
- package/vanilla/UiTreeItem.d.ts +1 -1
- package/vanilla/UiTreeItem.js +7 -19
- package/vanilla/index.js +1 -0
- package/vue/UiActionBar.vue +46 -78
- package/vue/UiAffordanceScope.vue +27 -66
- package/vue/UiAvatar.d.ts +10 -7
- package/vue/UiAvatar.vue +100 -218
- package/vue/UiAvatarGroup.d.ts +10 -7
- package/vue/UiAvatarGroup.vue +78 -160
- package/vue/UiBadge.d.ts +1 -1
- package/vue/UiBadge.vue +483 -520
- package/vue/UiBreadcrumbItem.vue +52 -123
- package/vue/UiBreadcrumbs.vue +27 -70
- package/vue/UiButton.d.ts +2 -2
- package/vue/UiButton.vue +420 -471
- package/vue/UiCallout.vue +131 -175
- package/vue/UiCard.d.ts +1 -1
- package/vue/UiCard.vue +112 -151
- package/vue/UiCheckbox.d.ts +13 -10
- package/vue/UiCheckbox.vue +160 -221
- package/vue/UiCluster.d.ts +1 -1
- package/vue/UiCluster.vue +84 -128
- package/vue/UiCombobox.d.ts +71 -68
- package/vue/UiCombobox.vue +417 -743
- package/vue/UiContainer.vue +43 -87
- package/vue/UiContextMenu.d.ts +6 -6
- package/vue/UiContextMenu.vue +78 -117
- package/vue/UiCover.vue +29 -69
- package/vue/UiDescriptionItem.vue +39 -82
- package/vue/UiDescriptionList.vue +64 -107
- package/vue/UiDialog.d.ts +22 -19
- package/vue/UiDialog.vue +193 -246
- package/vue/UiDisclosure.d.ts +22 -19
- package/vue/UiDisclosure.vue +192 -283
- package/vue/UiEditable.d.ts +5 -5
- package/vue/UiEditable.vue +124 -207
- package/vue/UiEditorImageToolbar.d.ts +54 -0
- package/vue/UiEditorImageToolbar.js +2 -0
- package/vue/UiEditorImageToolbar.vue +415 -0
- package/vue/UiEditorInsertTableGrid.d.ts +2 -2
- package/vue/UiEditorInsertTableGrid.vue +98 -266
- package/vue/UiEditorMentionMenu.d.ts +15 -12
- package/vue/UiEditorMentionMenu.vue +150 -239
- package/vue/UiEditorMentionMenuItem.vue +66 -110
- package/vue/UiEditorSlashMenu.d.ts +16 -13
- package/vue/UiEditorSlashMenu.vue +172 -253
- package/vue/UiEditorSlashMenuGroup.vue +25 -69
- package/vue/UiEditorSlashMenuItem.vue +67 -115
- package/vue/UiEditorSurface.vue +19 -63
- package/vue/UiEditorTableContextMenu.vue +135 -269
- package/vue/UiEditorTableOverlay.d.ts +2 -2
- package/vue/UiEditorTableOverlay.vue +310 -479
- package/vue/UiEditorTableToolbar.d.ts +2 -2
- package/vue/UiEditorTableToolbar.vue +182 -357
- package/vue/UiEditorToolbar.vue +143 -183
- package/vue/UiFloatingActionButton.vue +70 -114
- package/vue/UiFormField.d.ts +1 -1
- package/vue/UiFormField.vue +76 -117
- package/vue/UiGrid.d.ts +1 -1
- package/vue/UiGrid.vue +65 -103
- package/vue/UiIcon.vue +32 -106
- package/vue/UiIconButton.d.ts +2 -2
- package/vue/UiIconButton.vue +359 -411
- package/vue/UiImage.vue +145 -180
- package/vue/UiInput.vue +158 -190
- package/vue/UiInputGroup.vue +199 -239
- package/vue/UiList.vue +67 -109
- package/vue/UiListItem.vue +154 -201
- package/vue/UiListbox.d.ts +10 -7
- package/vue/UiListbox.vue +86 -260
- package/vue/UiMenu.d.ts +11 -11
- package/vue/UiMenu.vue +118 -152
- package/vue/UiMenuGroup.vue +21 -67
- package/vue/UiMenuItem.d.ts +19 -16
- package/vue/UiMenuItem.vue +169 -262
- package/vue/UiMeter.d.ts +4 -4
- package/vue/UiMeter.vue +166 -680
- package/vue/UiNavItem.vue +140 -213
- package/vue/UiPageHeader.vue +81 -127
- package/vue/UiPopover.d.ts +7 -7
- package/vue/UiPopover.vue +90 -129
- package/vue/UiRadio.d.ts +12 -9
- package/vue/UiRadio.vue +91 -149
- package/vue/UiRadioGroup.d.ts +2 -2
- package/vue/UiRadioGroup.vue +47 -85
- package/vue/UiReel.vue +89 -130
- package/vue/UiScrollArea.d.ts +1 -1
- package/vue/UiScrollArea.vue +78 -119
- package/vue/UiSearchResultRow.vue +96 -149
- package/vue/UiSearchShell.d.ts +2 -2
- package/vue/UiSearchShell.vue +159 -196
- package/vue/UiSection.vue +105 -149
- package/vue/UiSelect.d.ts +1 -1
- package/vue/UiSelect.vue +114 -146
- package/vue/UiSeparator.vue +42 -85
- package/vue/UiSidebar.d.ts +10 -7
- package/vue/UiSidebar.vue +193 -260
- package/vue/UiSpinner.vue +54 -130
- package/vue/UiStack.vue +66 -107
- package/vue/UiStatusMessage.d.ts +1 -1
- package/vue/UiStatusMessage.vue +61 -135
- package/vue/UiSwitch.d.ts +12 -9
- package/vue/UiSwitch.vue +136 -194
- package/vue/UiSwitcher.vue +69 -107
- package/vue/UiTable.vue +121 -156
- package/vue/UiTabs.d.ts +1 -1
- package/vue/UiTabs.vue +139 -267
- package/vue/UiText.d.ts +4 -4
- package/vue/UiText.vue +145 -184
- package/vue/UiTextarea.d.ts +2 -2
- package/vue/UiTextarea.vue +162 -194
- package/vue/UiToast.vue +70 -118
- package/vue/UiToastRegion.vue +157 -276
- package/vue/UiTooltip.d.ts +21 -18
- package/vue/UiTooltip.vue +174 -234
- package/vue/UiTopBar.vue +48 -76
- package/vue/UiTree.vue +46 -79
- package/vue/UiTreeItem.d.ts +18 -15
- package/vue/UiTreeItem.vue +526 -668
- package/vue/chunks/UiActionBar.js +5 -17
- package/vue/chunks/UiAffordanceScope.js +7 -26
- package/vue/chunks/UiAvatar.js +20 -74
- package/vue/chunks/UiAvatarGroup.js +14 -56
- package/vue/chunks/UiBadge.js +10 -28
- package/vue/chunks/UiBreadcrumbItem.js +11 -41
- package/vue/chunks/UiBreadcrumbs.js +7 -25
- package/vue/chunks/UiButton.js +80 -103
- package/vue/chunks/UiCallout.js +9 -27
- package/vue/chunks/UiCard.js +33 -53
- package/vue/chunks/UiCheckbox.js +14 -46
- package/vue/chunks/UiCluster.js +13 -31
- package/vue/chunks/UiCombobox.js +99 -237
- package/vue/chunks/UiContainer.js +9 -27
- package/vue/chunks/UiContextMenu.js +7 -26
- package/vue/chunks/UiCover.js +7 -25
- package/vue/chunks/UiDescriptionItem.js +6 -24
- package/vue/chunks/UiDescriptionList.js +9 -27
- package/vue/chunks/UiDialog.js +18 -47
- package/vue/chunks/UiDisclosure.js +19 -66
- package/vue/chunks/UiEditable.js +18 -60
- package/vue/chunks/UiEditorImageToolbar.js +515 -0
- package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
- package/vue/chunks/UiEditorMentionMenu.js +16 -54
- package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
- package/vue/chunks/UiEditorSlashMenu.js +17 -46
- package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
- package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
- package/vue/chunks/UiEditorSurface.js +7 -25
- package/vue/chunks/UiEditorTableContextMenu.js +25 -102
- package/vue/chunks/UiEditorTableOverlay.js +41 -104
- package/vue/chunks/UiEditorTableToolbar.js +44 -122
- package/vue/chunks/UiEditorToolbar.js +7 -26
- package/vue/chunks/UiFloatingActionButton.js +10 -28
- package/vue/chunks/UiFormField.js +8 -27
- package/vue/chunks/UiGrid.js +10 -28
- package/vue/chunks/UiIcon.js +21 -74
- package/vue/chunks/UiIconButton.js +18 -50
- package/vue/chunks/UiImage.js +14 -33
- package/vue/chunks/UiInput.js +12 -31
- package/vue/chunks/UiInputGroup.js +10 -29
- package/vue/chunks/UiList.js +17 -37
- package/vue/chunks/UiListItem.js +12 -30
- package/vue/chunks/UiListbox.js +22 -124
- package/vue/chunks/UiMenu.js +13 -32
- package/vue/chunks/UiMenuGroup.js +8 -26
- package/vue/chunks/UiMenuItem.js +35 -80
- package/vue/chunks/UiMeter.js +17 -351
- package/vue/chunks/UiNavItem.js +23 -57
- package/vue/chunks/UiPageHeader.js +7 -25
- package/vue/chunks/UiPopover.js +9 -28
- package/vue/chunks/UiRadio.js +11 -43
- package/vue/chunks/UiRadioGroup.js +13 -32
- package/vue/chunks/UiReel.js +10 -28
- package/vue/chunks/UiScrollArea.js +10 -29
- package/vue/chunks/UiSearchResultRow.js +10 -28
- package/vue/chunks/UiSearchShell.js +9 -28
- package/vue/chunks/UiSection.js +9 -27
- package/vue/chunks/UiSelect.js +10 -29
- package/vue/chunks/UiSeparator.js +10 -28
- package/vue/chunks/UiSidebar.js +15 -47
- package/vue/chunks/UiSpinner.js +8 -44
- package/vue/chunks/UiStack.js +12 -30
- package/vue/chunks/UiStatusMessage.js +10 -42
- package/vue/chunks/UiSwitch.js +11 -43
- package/vue/chunks/UiSwitcher.js +9 -28
- package/vue/chunks/UiTable.js +7 -26
- package/vue/chunks/UiTabs.js +15 -91
- package/vue/chunks/UiText.js +148 -168
- package/vue/chunks/UiTextarea.js +16 -35
- package/vue/chunks/UiToast.js +13 -37
- package/vue/chunks/UiToastRegion.js +16 -88
- package/vue/chunks/UiTooltip.js +14 -46
- package/vue/chunks/UiTopBar.js +5 -17
- package/vue/chunks/UiTree.js +13 -32
- package/vue/chunks/UiTreeItem.js +34 -90
- package/vue/chunks/_plugin-vue_export-helper.js +904 -1
- package/vue/chunks/control.js +3 -0
- package/vue/chunks/props.js +1 -1
- package/vue/components.css +7902 -7830
- package/vue/editor/index.js +42 -171
- package/vue/editor/primitives.d.ts +9 -1
- package/vue/host.ts +999 -14
- package/vue/index.d.ts +1 -0
- package/vue/index.js +9 -8
- package/vue/chunks/host.js +0 -443
- package/vue/editor/image-controls.d.ts +0 -19
package/vue/UiCombobox.vue
CHANGED
|
@@ -1,29 +1,20 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
2
|
-
<script lang="ts">
|
|
3
|
-
const htmlNextAuthoredCheck2Reported = new Set<string>()
|
|
4
|
-
function htmlNextAuthoredCheck2(accepted: boolean, location: string, message: string): boolean {
|
|
5
|
-
if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
|
|
6
|
-
htmlNextAuthoredCheck2Reported.add(location)
|
|
7
|
-
console.warn(message)
|
|
8
|
-
}
|
|
9
|
-
return accepted
|
|
10
|
-
}
|
|
11
|
-
</script>
|
|
12
|
-
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
|
|
13
2
|
<script setup lang="ts">
|
|
14
|
-
import {
|
|
15
|
-
|
|
16
|
-
defineComponent,
|
|
17
|
-
getCurrentInstance,
|
|
18
|
-
h,
|
|
19
|
-
provide,
|
|
20
|
-
ref,
|
|
21
|
-
useTemplateRef,
|
|
22
|
-
watchSyncEffect,
|
|
23
|
-
} from 'vue'
|
|
24
|
-
import type { PropType, VNode } from 'vue'
|
|
3
|
+
import { computed, getCurrentInstance, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
|
|
4
|
+
import type { PropType } from 'vue'
|
|
25
5
|
import { vBindControl } from './control'
|
|
26
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
checkHydratedRoot,
|
|
8
|
+
concat,
|
|
9
|
+
createDispatch,
|
|
10
|
+
isInteger,
|
|
11
|
+
KeyedBoundary,
|
|
12
|
+
nativeAttrs,
|
|
13
|
+
uniqueKeys,
|
|
14
|
+
useComponentHost,
|
|
15
|
+
useReflectedProp,
|
|
16
|
+
warnUnless,
|
|
17
|
+
} from './host'
|
|
27
18
|
import { acceptsControllerWrite } from './props'
|
|
28
19
|
import { checkedProp, propValidityState, vPropValidity } from './props'
|
|
29
20
|
import UiBadge from './UiBadge.vue'
|
|
@@ -588,64 +579,7 @@ void checkedProps.value
|
|
|
588
579
|
watchSyncEffect(() => {
|
|
589
580
|
void checkedProps.value
|
|
590
581
|
})
|
|
591
|
-
|
|
592
|
-
const names = Object.keys(attrs)
|
|
593
|
-
if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
|
|
594
|
-
return Object.fromEntries(names.map((name) => [
|
|
595
|
-
Object.hasOwn(Object.prototype, name)
|
|
596
|
-
? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
|
|
597
|
-
: name,
|
|
598
|
-
attrs[name],
|
|
599
|
-
]))
|
|
600
|
-
}
|
|
601
|
-
const KeyedFailure = defineComponent({
|
|
602
|
-
props: { error: { type: null, required: true } },
|
|
603
|
-
setup(props) {
|
|
604
|
-
return () => {
|
|
605
|
-
throw props.error
|
|
606
|
-
}
|
|
607
|
-
},
|
|
608
|
-
})
|
|
609
|
-
const KeyedBoundary = defineComponent({
|
|
610
|
-
setup(_props, { slots }) {
|
|
611
|
-
let last: VNode[] = []
|
|
612
|
-
return () => {
|
|
613
|
-
try {
|
|
614
|
-
last = slots.default?.() ?? []
|
|
615
|
-
return last
|
|
616
|
-
} catch (error) {
|
|
617
|
-
if (
|
|
618
|
-
!(error instanceof Error)
|
|
619
|
-
|| (error as Error & { diagnostic?: { code?: string } }).diagnostic?.code !== 'HR004'
|
|
620
|
-
) throw error
|
|
621
|
-
if (typeof window === 'undefined') throw error
|
|
622
|
-
return [...last, h(KeyedFailure, { error })]
|
|
623
|
-
}
|
|
624
|
-
}
|
|
625
|
-
},
|
|
626
|
-
})
|
|
627
|
-
const componentInstance = getCurrentInstance()
|
|
628
|
-
function reflectedProp(
|
|
629
|
-
name: string,
|
|
630
|
-
kebab: string,
|
|
631
|
-
value: unknown,
|
|
632
|
-
fallback: string | undefined,
|
|
633
|
-
bound: boolean,
|
|
634
|
-
separator?: string,
|
|
635
|
-
): string | undefined {
|
|
636
|
-
const incoming = componentInstance?.vnode.props
|
|
637
|
-
if (
|
|
638
|
-
!bound
|
|
639
|
-
&& (incoming === null || incoming === undefined
|
|
640
|
-
|| (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
|
|
641
|
-
) return fallback
|
|
642
|
-
if (value === null || value === undefined) return undefined
|
|
643
|
-
return Array.isArray(value) && separator !== undefined
|
|
644
|
-
? value.join(separator)
|
|
645
|
-
: typeof value === 'object'
|
|
646
|
-
? JSON.stringify(value)
|
|
647
|
-
: String(value)
|
|
648
|
-
}
|
|
582
|
+
const reflectedProp = useReflectedProp()
|
|
649
583
|
const hydrationInstance = getCurrentInstance()
|
|
650
584
|
const emit = defineEmits<{
|
|
651
585
|
'update:query': [value: string]
|
|
@@ -922,39 +856,18 @@ const statusText = ref('')
|
|
|
922
856
|
const validationStatus = ref('pristine')
|
|
923
857
|
let guardedPrevious: any = null
|
|
924
858
|
const guarded = computed(() => {
|
|
925
|
-
if (
|
|
926
|
-
!(htmlNextAuthoredCheck2(
|
|
927
|
-
uid.value == null || typeof uid.value === 'string',
|
|
928
|
-
'concat($uid, \'-input\'):uid',
|
|
929
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
930
|
-
))
|
|
931
|
-
) return guardedPrevious
|
|
932
859
|
const candidate: any = concat(uid.value, '-input')
|
|
933
860
|
if (candidate === Symbol.for('html-next.invalid-result')) return guardedPrevious
|
|
934
861
|
return guardedPrevious = candidate
|
|
935
862
|
})
|
|
936
863
|
let guardedBindingPrevious: any = null
|
|
937
864
|
const guardedBinding = computed(() => {
|
|
938
|
-
if (
|
|
939
|
-
!(htmlNextAuthoredCheck2(
|
|
940
|
-
uid.value == null || typeof uid.value === 'string',
|
|
941
|
-
'concat($uid, \'-input\'):uid',
|
|
942
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
943
|
-
))
|
|
944
|
-
) return guardedBindingPrevious
|
|
945
865
|
const candidate: any = concat(uid.value, '-input')
|
|
946
866
|
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBindingPrevious
|
|
947
867
|
return guardedBindingPrevious = candidate
|
|
948
868
|
})
|
|
949
869
|
let guardedBinding2Previous: any = null
|
|
950
870
|
const guardedBinding2 = computed(() => {
|
|
951
|
-
if (
|
|
952
|
-
!(htmlNextAuthoredCheck2(
|
|
953
|
-
uid.value == null || typeof uid.value === 'string',
|
|
954
|
-
'concat($uid, \'-listbox\'):uid',
|
|
955
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
956
|
-
))
|
|
957
|
-
) return guardedBinding2Previous
|
|
958
871
|
const candidate: any = concat(uid.value, '-listbox')
|
|
959
872
|
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding2Previous
|
|
960
873
|
return guardedBinding2Previous = candidate
|
|
@@ -962,264 +875,93 @@ const guardedBinding2 = computed(() => {
|
|
|
962
875
|
let guardedBinding3Previous: any
|
|
963
876
|
const guardedBinding3 = computed(() => {
|
|
964
877
|
if (
|
|
965
|
-
!(
|
|
966
|
-
|
|
967
|
-
'
|
|
968
|
-
|
|
878
|
+
!(warnUnless(
|
|
879
|
+
internalItems.value?.['0'] == null
|
|
880
|
+
|| (typeof internalItems.value?.['0'] === 'object' && internalItems.value?.['0'] !== null
|
|
881
|
+
&& !Array.isArray(internalItems.value?.['0'])),
|
|
882
|
+
'$required and not ($multiple and $internalItems.0):internalItems.0',
|
|
883
|
+
'./components/ui-combobox/ui-combobox.html: HR007: Reference internalItems.0 does not satisfy its declared type.',
|
|
969
884
|
))
|
|
970
885
|
) return guardedBinding3Previous
|
|
971
|
-
return guardedBinding3Previous =
|
|
886
|
+
return guardedBinding3Previous = checkedProps.value.required
|
|
887
|
+
&& !(checkedProps.value.multiple && internalItems.value[0])
|
|
972
888
|
})
|
|
973
889
|
let guardedBinding4Previous: any
|
|
974
890
|
const guardedBinding4 = computed(() => {
|
|
975
891
|
if (
|
|
976
|
-
!(
|
|
977
|
-
|
|
978
|
-
'$
|
|
979
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference
|
|
892
|
+
!(warnUnless(
|
|
893
|
+
selected.value == null || (typeof selected.value === 'string' || selected.value === null),
|
|
894
|
+
'$disabled or $readonly or (not $raw and ($multiple or $selected = null)):selected',
|
|
895
|
+
'./components/ui-combobox/ui-combobox.html: HR007: Reference selected does not satisfy its declared type.',
|
|
980
896
|
))
|
|
981
897
|
) return guardedBinding4Previous
|
|
982
|
-
return guardedBinding4Previous = checkedProps.value.
|
|
898
|
+
return guardedBinding4Previous = checkedProps.value.disabled || checkedProps.value.readonly
|
|
899
|
+
|| (!raw.value && (checkedProps.value.multiple || selected.value === null))
|
|
983
900
|
})
|
|
984
|
-
let guardedBinding5Previous: any
|
|
901
|
+
let guardedBinding5Previous: any = null
|
|
985
902
|
const guardedBinding5 = computed(() => {
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
'$loading or $validationStatus = \'pending\':validationStatus',
|
|
990
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference validationStatus does not satisfy its declared type.',
|
|
991
|
-
))
|
|
992
|
-
) return guardedBinding5Previous
|
|
993
|
-
return guardedBinding5Previous = checkedProps.value.loading
|
|
994
|
-
|| validationStatus.value === 'pending'
|
|
903
|
+
const candidate: any = concat(uid.value, '-listbox')
|
|
904
|
+
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding5Previous
|
|
905
|
+
return guardedBinding5Previous = candidate
|
|
995
906
|
})
|
|
996
|
-
let guardedBinding6Previous: any
|
|
907
|
+
let guardedBinding6Previous: any = null
|
|
997
908
|
const guardedBinding6 = computed(() => {
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
'$display:display',
|
|
1002
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference display does not satisfy its declared type.',
|
|
1003
|
-
))
|
|
1004
|
-
) return guardedBinding6Previous
|
|
1005
|
-
return guardedBinding6Previous = display.value
|
|
909
|
+
const candidate: any = concat(uid.value, '-help')
|
|
910
|
+
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding6Previous
|
|
911
|
+
return guardedBinding6Previous = candidate
|
|
1006
912
|
})
|
|
1007
|
-
let guardedBinding7Previous: any
|
|
913
|
+
let guardedBinding7Previous: any = null
|
|
1008
914
|
const guardedBinding7 = computed(() => {
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|| (typeof internalItems.value?.['0'] === 'object' && internalItems.value?.['0'] !== null
|
|
1013
|
-
&& !Array.isArray(internalItems.value?.['0'])),
|
|
1014
|
-
'$required and not ($multiple and $internalItems.0):internalItems.0',
|
|
1015
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference internalItems.0 does not satisfy its declared type.',
|
|
1016
|
-
))
|
|
1017
|
-
) return guardedBinding7Previous
|
|
1018
|
-
return guardedBinding7Previous = checkedProps.value.required
|
|
1019
|
-
&& !(checkedProps.value.multiple && internalItems.value[0])
|
|
915
|
+
const candidate: any = concat(uid.value, '-help-text')
|
|
916
|
+
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding7Previous
|
|
917
|
+
return guardedBinding7Previous = candidate
|
|
1020
918
|
})
|
|
1021
|
-
let guardedBinding8Previous: any
|
|
919
|
+
let guardedBinding8Previous: any = null
|
|
1022
920
|
const guardedBinding8 = computed(() => {
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
'$submitted:submitted',
|
|
1027
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference submitted does not satisfy its declared type.',
|
|
1028
|
-
))
|
|
1029
|
-
) return guardedBinding8Previous
|
|
1030
|
-
return guardedBinding8Previous = submitted.value
|
|
921
|
+
const candidate: any = concat(uid.value, '-help')
|
|
922
|
+
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding8Previous
|
|
923
|
+
return guardedBinding8Previous = candidate
|
|
1031
924
|
})
|
|
1032
|
-
let guardedBinding9Previous: any
|
|
925
|
+
let guardedBinding9Previous: any = null
|
|
1033
926
|
const guardedBinding9 = computed(() => {
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
'$disabled or $readonly or (not $raw and ($multiple or $selected = null)):raw',
|
|
1038
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference raw does not satisfy its declared type.',
|
|
1039
|
-
)
|
|
1040
|
-
&& htmlNextAuthoredCheck2(
|
|
1041
|
-
selected.value == null || (typeof selected.value === 'string' || selected.value === null),
|
|
1042
|
-
'$disabled or $readonly or (not $raw and ($multiple or $selected = null)):selected',
|
|
1043
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference selected does not satisfy its declared type.',
|
|
1044
|
-
))
|
|
1045
|
-
) return guardedBinding9Previous
|
|
1046
|
-
return guardedBinding9Previous = checkedProps.value.disabled || checkedProps.value.readonly
|
|
1047
|
-
|| (!raw.value && (checkedProps.value.multiple || selected.value === null))
|
|
927
|
+
const candidate: any = concat(uid.value, '-listbox')
|
|
928
|
+
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding9Previous
|
|
929
|
+
return guardedBinding9Previous = candidate
|
|
1048
930
|
})
|
|
1049
931
|
let guardedBinding10Previous: any = null
|
|
1050
932
|
const guardedBinding10 = computed(() => {
|
|
1051
|
-
|
|
1052
|
-
!(htmlNextAuthoredCheck2(
|
|
1053
|
-
uid.value == null || typeof uid.value === 'string',
|
|
1054
|
-
'concat($uid, \'-listbox\'):uid',
|
|
1055
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
1056
|
-
))
|
|
1057
|
-
) return guardedBinding10Previous
|
|
1058
|
-
const candidate: any = concat(uid.value, '-listbox')
|
|
933
|
+
const candidate: any = concat(checkedProps.value.label, ' suggestions')
|
|
1059
934
|
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding10Previous
|
|
1060
935
|
return guardedBinding10Previous = candidate
|
|
1061
936
|
})
|
|
1062
|
-
let guardedBinding11Previous: any
|
|
937
|
+
let guardedBinding11Previous: any
|
|
1063
938
|
const guardedBinding11 = computed(() => {
|
|
1064
939
|
if (
|
|
1065
|
-
!(
|
|
1066
|
-
|
|
1067
|
-
'
|
|
1068
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference
|
|
940
|
+
!(warnUnless(
|
|
941
|
+
active.value == null || Number.isInteger(active.value),
|
|
942
|
+
'$createIndex = $active:active',
|
|
943
|
+
'./components/ui-combobox/ui-combobox.html: HR007: Reference active does not satisfy its declared type.',
|
|
1069
944
|
))
|
|
1070
945
|
) return guardedBinding11Previous
|
|
1071
|
-
|
|
1072
|
-
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding11Previous
|
|
1073
|
-
return guardedBinding11Previous = candidate
|
|
946
|
+
return guardedBinding11Previous = createIndex.value === active.value
|
|
1074
947
|
})
|
|
1075
948
|
let guardedBinding12Previous: any = null
|
|
1076
949
|
const guardedBinding12 = computed(() => {
|
|
1077
|
-
|
|
1078
|
-
!(htmlNextAuthoredCheck2(
|
|
1079
|
-
uid.value == null || typeof uid.value === 'string',
|
|
1080
|
-
'concat($uid, \'-help-text\'):uid',
|
|
1081
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
1082
|
-
))
|
|
1083
|
-
) return guardedBinding12Previous
|
|
1084
|
-
const candidate: any = concat(uid.value, '-help-text')
|
|
950
|
+
const candidate: any = concat(uid.value, '-option-', createIndex.value)
|
|
1085
951
|
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding12Previous
|
|
1086
952
|
return guardedBinding12Previous = candidate
|
|
1087
953
|
})
|
|
1088
954
|
let guardedBinding13Previous: any = null
|
|
1089
955
|
const guardedBinding13 = computed(() => {
|
|
1090
|
-
|
|
1091
|
-
!(htmlNextAuthoredCheck2(
|
|
1092
|
-
uid.value == null || typeof uid.value === 'string',
|
|
1093
|
-
'concat($uid, \'-help\'):uid',
|
|
1094
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
1095
|
-
))
|
|
1096
|
-
) return guardedBinding13Previous
|
|
1097
|
-
const candidate: any = concat(uid.value, '-help')
|
|
956
|
+
const candidate: any = concat('Create “', raw.value, '”')
|
|
1098
957
|
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding13Previous
|
|
1099
958
|
return guardedBinding13Previous = candidate
|
|
1100
959
|
})
|
|
1101
|
-
let guardedBinding14Previous: any
|
|
960
|
+
let guardedBinding14Previous: any = null
|
|
1102
961
|
const guardedBinding14 = computed(() => {
|
|
1103
|
-
if (
|
|
1104
|
-
!(htmlNextAuthoredCheck2(
|
|
1105
|
-
expanded.value == null || typeof expanded.value === 'boolean',
|
|
1106
|
-
'not $expanded:expanded',
|
|
1107
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference expanded does not satisfy its declared type.',
|
|
1108
|
-
))
|
|
1109
|
-
) return guardedBinding14Previous
|
|
1110
|
-
return guardedBinding14Previous = !expanded.value
|
|
1111
|
-
})
|
|
1112
|
-
let guardedBinding15Previous: any = null
|
|
1113
|
-
const guardedBinding15 = computed(() => {
|
|
1114
|
-
if (
|
|
1115
|
-
!(htmlNextAuthoredCheck2(
|
|
1116
|
-
uid.value == null || typeof uid.value === 'string',
|
|
1117
|
-
'concat($uid, \'-listbox\'):uid',
|
|
1118
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
1119
|
-
))
|
|
1120
|
-
) return guardedBinding15Previous
|
|
1121
|
-
const candidate: any = concat(uid.value, '-listbox')
|
|
1122
|
-
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding15Previous
|
|
1123
|
-
return guardedBinding15Previous = candidate
|
|
1124
|
-
})
|
|
1125
|
-
let guardedBinding16Previous: any = null
|
|
1126
|
-
const guardedBinding16 = computed(() => {
|
|
1127
|
-
const candidate: any = concat(checkedProps.value.label, ' suggestions')
|
|
1128
|
-
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding16Previous
|
|
1129
|
-
return guardedBinding16Previous = candidate
|
|
1130
|
-
})
|
|
1131
|
-
let guardedBinding17Previous: any
|
|
1132
|
-
const guardedBinding17 = computed(() => {
|
|
1133
|
-
if (
|
|
1134
|
-
!(htmlNextAuthoredCheck2(
|
|
1135
|
-
active.value == null || Number.isInteger(active.value),
|
|
1136
|
-
'$createIndex = $active:active',
|
|
1137
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference active does not satisfy its declared type.',
|
|
1138
|
-
)
|
|
1139
|
-
&& htmlNextAuthoredCheck2(
|
|
1140
|
-
createIndex.value == null || Number.isInteger(createIndex.value),
|
|
1141
|
-
'$createIndex = $active:createIndex',
|
|
1142
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference createIndex does not satisfy its declared type.',
|
|
1143
|
-
))
|
|
1144
|
-
) return guardedBinding17Previous
|
|
1145
|
-
return guardedBinding17Previous = createIndex.value === active.value
|
|
1146
|
-
})
|
|
1147
|
-
let guardedBinding18Previous: any = null
|
|
1148
|
-
const guardedBinding18 = computed(() => {
|
|
1149
|
-
if (
|
|
1150
|
-
!(htmlNextAuthoredCheck2(
|
|
1151
|
-
createIndex.value == null || Number.isInteger(createIndex.value),
|
|
1152
|
-
'concat($uid, \'-option-\', $createIndex):createIndex',
|
|
1153
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference createIndex does not satisfy its declared type.',
|
|
1154
|
-
)
|
|
1155
|
-
&& htmlNextAuthoredCheck2(
|
|
1156
|
-
uid.value == null || typeof uid.value === 'string',
|
|
1157
|
-
'concat($uid, \'-option-\', $createIndex):uid',
|
|
1158
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
1159
|
-
))
|
|
1160
|
-
) return guardedBinding18Previous
|
|
1161
|
-
const candidate: any = concat(uid.value, '-option-', createIndex.value)
|
|
1162
|
-
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding18Previous
|
|
1163
|
-
return guardedBinding18Previous = candidate
|
|
1164
|
-
})
|
|
1165
|
-
let guardedBinding19Previous: any
|
|
1166
|
-
const guardedBinding19 = computed(() => {
|
|
1167
|
-
if (
|
|
1168
|
-
!(htmlNextAuthoredCheck2(
|
|
1169
|
-
createIndex.value == null || Number.isInteger(createIndex.value),
|
|
1170
|
-
'$createIndex:createIndex',
|
|
1171
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference createIndex does not satisfy its declared type.',
|
|
1172
|
-
))
|
|
1173
|
-
) return guardedBinding19Previous
|
|
1174
|
-
return guardedBinding19Previous = createIndex.value
|
|
1175
|
-
})
|
|
1176
|
-
let guardedBinding20Previous: any = null
|
|
1177
|
-
const guardedBinding20 = computed(() => {
|
|
1178
|
-
if (
|
|
1179
|
-
!(htmlNextAuthoredCheck2(
|
|
1180
|
-
raw.value == null || typeof raw.value === 'string',
|
|
1181
|
-
'concat(\'Create “\', $raw, \'”\'):raw',
|
|
1182
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference raw does not satisfy its declared type.',
|
|
1183
|
-
))
|
|
1184
|
-
) return guardedBinding20Previous
|
|
1185
|
-
const candidate: any = concat('Create “', raw.value, '”')
|
|
1186
|
-
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding20Previous
|
|
1187
|
-
return guardedBinding20Previous = candidate
|
|
1188
|
-
})
|
|
1189
|
-
let guardedBinding21Previous: any
|
|
1190
|
-
const guardedBinding21 = computed(() => {
|
|
1191
|
-
if (
|
|
1192
|
-
!(htmlNextAuthoredCheck2(
|
|
1193
|
-
message.value == null || typeof message.value === 'string',
|
|
1194
|
-
'$message:message',
|
|
1195
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference message does not satisfy its declared type.',
|
|
1196
|
-
))
|
|
1197
|
-
) return guardedBinding21Previous
|
|
1198
|
-
return guardedBinding21Previous = message.value
|
|
1199
|
-
})
|
|
1200
|
-
let guardedBinding22Previous: any = null
|
|
1201
|
-
const guardedBinding22 = computed(() => {
|
|
1202
|
-
if (
|
|
1203
|
-
!(htmlNextAuthoredCheck2(
|
|
1204
|
-
uid.value == null || typeof uid.value === 'string',
|
|
1205
|
-
'concat($uid, \'-validation\'):uid',
|
|
1206
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference uid does not satisfy its declared type.',
|
|
1207
|
-
))
|
|
1208
|
-
) return guardedBinding22Previous
|
|
1209
962
|
const candidate: any = concat(uid.value, '-validation')
|
|
1210
|
-
if (candidate === Symbol.for('html-next.invalid-result')) return
|
|
1211
|
-
return
|
|
1212
|
-
})
|
|
1213
|
-
let guardedBinding23Previous: any
|
|
1214
|
-
const guardedBinding23 = computed(() => {
|
|
1215
|
-
if (
|
|
1216
|
-
!(htmlNextAuthoredCheck2(
|
|
1217
|
-
statusText.value == null || typeof statusText.value === 'string',
|
|
1218
|
-
'$statusText:statusText',
|
|
1219
|
-
'./components/ui-combobox/ui-combobox.html: HR007: Reference statusText does not satisfy its declared type.',
|
|
1220
|
-
))
|
|
1221
|
-
) return guardedBinding23Previous
|
|
1222
|
-
return guardedBinding23Previous = statusText.value
|
|
963
|
+
if (candidate === Symbol.for('html-next.invalid-result')) return guardedBinding14Previous
|
|
964
|
+
return guardedBinding14Previous = candidate
|
|
1223
965
|
})
|
|
1224
966
|
provide('html-next:ui-combobox:internalItems', internalItems)
|
|
1225
967
|
provide('html-next:ui-combobox:raw', raw)
|
|
@@ -1239,22 +981,7 @@ provide('html-next:ui-combobox:createIndex', createIndex)
|
|
|
1239
981
|
provide('html-next:ui-combobox:message', message)
|
|
1240
982
|
provide('html-next:ui-combobox:statusText', statusText)
|
|
1241
983
|
provide('html-next:ui-combobox:validationStatus', validationStatus)
|
|
1242
|
-
|
|
1243
|
-
if (
|
|
1244
|
-
typeof window !== 'undefined' && hydrationNode != null
|
|
1245
|
-
&& (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
|
|
1246
|
-
) {
|
|
1247
|
-
throw Object.assign(
|
|
1248
|
-
new Error('HR005: Server markup for <ui-combobox> has an incompatible root.'),
|
|
1249
|
-
{
|
|
1250
|
-
name: 'HtmlDiagnosticError',
|
|
1251
|
-
diagnostic: Object.freeze({
|
|
1252
|
-
code: 'HR005',
|
|
1253
|
-
message: 'Server markup for <ui-combobox> has an incompatible root.',
|
|
1254
|
-
}),
|
|
1255
|
-
},
|
|
1256
|
-
)
|
|
1257
|
-
}
|
|
984
|
+
checkHydratedRoot('div', 'ui-combobox')
|
|
1258
985
|
|
|
1259
986
|
/** The values the styles' :host-state() rules test. */
|
|
1260
987
|
const hostState = computed(() =>
|
|
@@ -1868,62 +1595,11 @@ useComponentHost(() => import('../components/ui-combobox/ui-combobox.js'), {
|
|
|
1868
1595
|
validationStatus,
|
|
1869
1596
|
},
|
|
1870
1597
|
})
|
|
1871
|
-
|
|
1872
|
-
function text(value: unknown): string {
|
|
1873
|
-
if (Array.isArray(value)) return value.map(text).join(' ')
|
|
1874
|
-
return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
|
|
1875
|
-
}
|
|
1876
|
-
|
|
1877
|
-
// A nonempty scalar call cannot produce the invalid-result sentinel.
|
|
1878
|
-
type ConcatResult<T extends unknown[]> = T extends
|
|
1879
|
-
[
|
|
1880
|
-
string | number | boolean | null | undefined,
|
|
1881
|
-
...(string | number | boolean | null | undefined)[],
|
|
1882
|
-
] ? string | undefined
|
|
1883
|
-
: string | symbol | undefined
|
|
1884
|
-
function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
|
|
1885
|
-
if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
|
|
1886
|
-
return Symbol.for('html-next.invalid-result') as ConcatResult<T>
|
|
1887
|
-
}
|
|
1888
|
-
if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
|
|
1889
|
-
if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
|
|
1890
|
-
return Symbol.for('html-next.invalid-result') as ConcatResult<T>
|
|
1891
|
-
}
|
|
1892
|
-
return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
|
|
1893
|
-
}
|
|
1894
|
-
|
|
1895
|
-
function uniqueKeys<T>(
|
|
1896
|
-
items: readonly T[],
|
|
1897
|
-
keyOf: (
|
|
1898
|
-
item: T,
|
|
1899
|
-
index: number,
|
|
1900
|
-
loop: { index: number; first: boolean; last: boolean; count: number },
|
|
1901
|
-
) => unknown,
|
|
1902
|
-
): readonly T[] {
|
|
1903
|
-
const seen = new Set<unknown>()
|
|
1904
|
-
for (let index = 0; index < items.length; index += 1) {
|
|
1905
|
-
const key = keyOf(items[index]!, index, {
|
|
1906
|
-
index,
|
|
1907
|
-
first: index === 0,
|
|
1908
|
-
last: index === items.length - 1,
|
|
1909
|
-
count: items.length,
|
|
1910
|
-
})
|
|
1911
|
-
if (seen.has(key)) {
|
|
1912
|
-
const message = `A keyed list produced duplicate key \`${text(key)}\`.`
|
|
1913
|
-
throw Object.assign(new Error(`HR004: ${message}`), {
|
|
1914
|
-
name: 'HtmlDiagnosticError',
|
|
1915
|
-
diagnostic: Object.freeze({ code: 'HR004', message }),
|
|
1916
|
-
})
|
|
1917
|
-
}
|
|
1918
|
-
seen.add(key)
|
|
1919
|
-
}
|
|
1920
|
-
return items
|
|
1921
|
-
}
|
|
1922
1598
|
</script>
|
|
1923
1599
|
|
|
1924
1600
|
<template>
|
|
1925
1601
|
<div
|
|
1926
|
-
|
|
1602
|
+
class="ui-combobox"
|
|
1927
1603
|
v-bind="nativeAttrs($attrs)"
|
|
1928
1604
|
v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
|
|
1929
1605
|
:data-allow-create="reflectedProp('allowCreate', 'allow-create', checkedProps.allowCreate, undefined, false)"
|
|
@@ -1979,7 +1655,9 @@ function uniqueKeys<T>(
|
|
|
1979
1655
|
:disabled="checkedProps.disabled || checkedProps.readonly || item.disabled"
|
|
1980
1656
|
:aria-label="concat(item.label, ', press Delete or Backspace to remove')"
|
|
1981
1657
|
>
|
|
1982
|
-
<slot :name="concat('item-', item.id)"><UiBadge>{{
|
|
1658
|
+
<slot :name="concat('item-', item.id)"><UiBadge class="ui-badge">{{
|
|
1659
|
+
item.label
|
|
1660
|
+
}}</UiBadge></slot>
|
|
1983
1661
|
</button></KeyedBoundary></template>
|
|
1984
1662
|
<input
|
|
1985
1663
|
role="combobox"
|
|
@@ -1988,13 +1666,13 @@ function uniqueKeys<T>(
|
|
|
1988
1666
|
v-bind-control="{ tag: 'input', name: 'value', value: display, nativeProperty: true, defaultValue: '' }"
|
|
1989
1667
|
:id="guardedBinding"
|
|
1990
1668
|
:aria-controls="guardedBinding2"
|
|
1991
|
-
:aria-expanded="
|
|
1992
|
-
:aria-invalid="
|
|
1993
|
-
:aria-busy="
|
|
1669
|
+
:aria-expanded="expanded"
|
|
1670
|
+
:aria-invalid="checkedProps.invalid || validationStatus === 'error'"
|
|
1671
|
+
:aria-busy="checkedProps.loading || validationStatus === 'pending'"
|
|
1994
1672
|
:placeholder="checkedProps.placeholder ?? undefined"
|
|
1995
1673
|
:disabled="checkedProps.disabled ?? undefined"
|
|
1996
1674
|
:readonly="checkedProps.readonly ?? undefined"
|
|
1997
|
-
:required="
|
|
1675
|
+
:required="guardedBinding3"
|
|
1998
1676
|
ref="inputElement"
|
|
1999
1677
|
>
|
|
2000
1678
|
</div>
|
|
@@ -2002,7 +1680,7 @@ function uniqueKeys<T>(
|
|
|
2002
1680
|
v-if="checkedProps.name && !checkedProps.multiple"
|
|
2003
1681
|
type="hidden"
|
|
2004
1682
|
:name="checkedProps.name ?? undefined"
|
|
2005
|
-
:value.attr="
|
|
1683
|
+
:value.attr="submitted"
|
|
2006
1684
|
:disabled="checkedProps.disabled ?? undefined"
|
|
2007
1685
|
>
|
|
2008
1686
|
<template v-if="checkedProps.name && checkedProps.multiple"><KeyedBoundary><input
|
|
@@ -2018,7 +1696,7 @@ function uniqueKeys<T>(
|
|
|
2018
1696
|
type="button"
|
|
2019
1697
|
data-combobox-action="clear"
|
|
2020
1698
|
aria-label="Clear"
|
|
2021
|
-
:disabled="
|
|
1699
|
+
:disabled="guardedBinding4"
|
|
2022
1700
|
>
|
|
2023
1701
|
<svg
|
|
2024
1702
|
class="affordance-icon"
|
|
@@ -2038,7 +1716,7 @@ function uniqueKeys<T>(
|
|
|
2038
1716
|
data-combobox-action="disclosure"
|
|
2039
1717
|
tabindex="-1"
|
|
2040
1718
|
aria-label="Show suggestions"
|
|
2041
|
-
:aria-controls="
|
|
1719
|
+
:aria-controls="guardedBinding5"
|
|
2042
1720
|
:disabled="checkedProps.disabled || checkedProps.readonly"
|
|
2043
1721
|
>
|
|
2044
1722
|
<svg
|
|
@@ -2060,7 +1738,7 @@ function uniqueKeys<T>(
|
|
|
2060
1738
|
class="help"
|
|
2061
1739
|
type="button"
|
|
2062
1740
|
aria-label="Help"
|
|
2063
|
-
:id="
|
|
1741
|
+
:id="guardedBinding6"
|
|
2064
1742
|
:disabled="checkedProps.disabled ?? undefined"
|
|
2065
1743
|
>
|
|
2066
1744
|
<svg
|
|
@@ -2081,15 +1759,16 @@ function uniqueKeys<T>(
|
|
|
2081
1759
|
</div>
|
|
2082
1760
|
<UiTooltip
|
|
2083
1761
|
v-if="checkedProps.help"
|
|
1762
|
+
class="ui-tooltip"
|
|
2084
1763
|
trigger="click"
|
|
2085
|
-
:id="
|
|
2086
|
-
:for="
|
|
1764
|
+
:id="guardedBinding7"
|
|
1765
|
+
:for="guardedBinding8"
|
|
2087
1766
|
>{{ checkedProps.help }}</UiTooltip>
|
|
2088
|
-
<div class="popup" :hidden="
|
|
1767
|
+
<div class="popup" :hidden="!expanded" ref="popupElement">
|
|
2089
1768
|
<div
|
|
2090
1769
|
role="listbox"
|
|
2091
|
-
:id="
|
|
2092
|
-
:aria-label="
|
|
1770
|
+
:id="guardedBinding9"
|
|
1771
|
+
:aria-label="guardedBinding10"
|
|
2093
1772
|
:aria-busy="checkedProps.loading ?? undefined"
|
|
2094
1773
|
ref="listboxElement"
|
|
2095
1774
|
>
|
|
@@ -2122,6 +1801,7 @@ function uniqueKeys<T>(
|
|
|
2122
1801
|
}}</span>
|
|
2123
1802
|
<UiBadge
|
|
2124
1803
|
v-if="row.tag"
|
|
1804
|
+
class="ui-badge"
|
|
2125
1805
|
:tone="row.tag?.tone"
|
|
2126
1806
|
:style="{ '--ui-badge-color': row.tag?.color ?? undefined }"
|
|
2127
1807
|
><span :id="concat(uid, '-option-', row.index, '-tag')">{{
|
|
@@ -2142,13 +1822,13 @@ function uniqueKeys<T>(
|
|
|
2142
1822
|
data-ui-choice-option=""
|
|
2143
1823
|
aria-selected="false"
|
|
2144
1824
|
:data-multiple="checkedProps.multiple ? '' : undefined"
|
|
2145
|
-
:id="
|
|
2146
|
-
:data-index="
|
|
2147
|
-
:class="{ active:
|
|
1825
|
+
:id="guardedBinding12"
|
|
1826
|
+
:data-index="createIndex"
|
|
1827
|
+
:class="{ active: guardedBinding11 }"
|
|
2148
1828
|
>
|
|
2149
|
-
{{
|
|
1829
|
+
{{ guardedBinding13 }}
|
|
2150
1830
|
</div>
|
|
2151
|
-
<div v-if="message" class="message">{{
|
|
1831
|
+
<div v-if="message" class="message">{{ message }}</div>
|
|
2152
1832
|
<div
|
|
2153
1833
|
v-if="!checkedProps.loading && !(rows[0]) && !creatable && !lookupError"
|
|
2154
1834
|
class="message"
|
|
@@ -2158,14 +1838,12 @@ function uniqueKeys<T>(
|
|
|
2158
1838
|
</div>
|
|
2159
1839
|
<slot name="footer" />
|
|
2160
1840
|
</div>
|
|
2161
|
-
<div class="message" :id="
|
|
1841
|
+
<div class="message" :id="guardedBinding14" :hidden="!validation.issues.length">
|
|
2162
1842
|
<div v-for="(issue, indexLoop3) in validation.issues" :key="indexLoop3">
|
|
2163
1843
|
{{ issue.message }}
|
|
2164
1844
|
</div>
|
|
2165
1845
|
</div>
|
|
2166
|
-
<div class="sr-only" role="status" aria-live="polite" aria-atomic="true">
|
|
2167
|
-
{{ guardedBinding23 }}
|
|
2168
|
-
</div>
|
|
1846
|
+
<div class="sr-only" role="status" aria-live="polite" aria-atomic="true">{{ statusText }}</div>
|
|
2169
1847
|
<div class="authored-options" hidden="" aria-hidden="true" ref="optionsElement"><slot /></div>
|
|
2170
1848
|
</div>
|
|
2171
1849
|
</template>
|
|
@@ -2236,353 +1914,349 @@ function uniqueKeys<T>(
|
|
|
2236
1914
|
syntax: "*";
|
|
2237
1915
|
inherits: false;
|
|
2238
1916
|
}
|
|
2239
|
-
|
|
2240
|
-
[data-component~="ui-combobox"] {
|
|
2241
|
-
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
2242
|
-
--_ui-combobox-label-text: var(--ui-combobox-label-text);
|
|
2243
|
-
--_ui-combobox-label-font-size: var(--ui-combobox-label-font-size);
|
|
2244
|
-
--_ui-combobox-affordance-text: var(--ui-combobox-affordance-text);
|
|
2245
|
-
--_ui-combobox-max-block-size: var(--ui-combobox-max-block-size);
|
|
2246
|
-
--_ui-combobox-option-text: var(--ui-combobox-option-text);
|
|
2247
|
-
--_ui-combobox-message-text: var(--ui-combobox-message-text);
|
|
2248
|
-
--_ui-combobox-option-check: var(--ui-combobox-option-check);
|
|
2249
|
-
--_ui-combobox-item-min-block-size: var(--ui-combobox-item-min-block-size);
|
|
2250
|
-
--_ui-combobox-item-input-min-inline-size: var(--ui-combobox-item-input-min-inline-size);
|
|
2251
|
-
--_ui-combobox-item-item-max-inline-size: var(--ui-combobox-item-item-max-inline-size);
|
|
2252
|
-
--_ui-combobox-radius: var(--ui-combobox-radius);
|
|
2253
|
-
--_ui-combobox-invalid-border: var(--ui-combobox-invalid-border);
|
|
2254
|
-
--_ui-combobox-popup-surface: var(--ui-combobox-popup-surface);
|
|
2255
|
-
--_ui-combobox-popup-border: var(--ui-combobox-popup-border);
|
|
2256
|
-
--_ui-combobox-popup-radius: var(--ui-combobox-popup-radius);
|
|
2257
|
-
--_ui-combobox-popup-shadow: var(--ui-combobox-popup-shadow);
|
|
2258
|
-
|
|
2259
|
-
--_row: var(--ui-control-size-md);
|
|
2260
|
-
display: grid;
|
|
2261
|
-
gap: var(--ui-space-1);
|
|
2262
|
-
min-inline-size: 0;
|
|
2263
|
-
color: var(--ui-text-primary);
|
|
2264
|
-
font: inherit;
|
|
2265
|
-
}
|
|
2266
|
-
label {
|
|
2267
|
-
color: var(--_ui-combobox-label-text, var(--ui-text-primary));
|
|
2268
|
-
font-size: var(--_ui-combobox-label-font-size, var(--ui-font-size-sm));
|
|
2269
|
-
font-weight: 500;
|
|
2270
|
-
}
|
|
2271
1917
|
/* The field and anything that annotates it sit on one row; the help button is beside the box,
|
|
2272
1918
|
not inside it, because a control's box holds its value. */
|
|
2273
|
-
.control {
|
|
2274
|
-
display: flex;
|
|
2275
|
-
align-items: center;
|
|
2276
|
-
gap: var(--ui-space-2);
|
|
2277
|
-
min-inline-size: 0;
|
|
2278
|
-
}
|
|
2279
|
-
|
|
2280
|
-
.field {
|
|
2281
|
-
box-sizing: border-box;
|
|
2282
|
-
min-block-size: var(--_row);
|
|
2283
|
-
flex: 1 1 auto;
|
|
2284
|
-
display: flex;
|
|
2285
|
-
min-inline-size: 0;
|
|
2286
|
-
border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-default));
|
|
2287
|
-
border-radius: var(--_ui-combobox-radius, var(--ui-field-radius, var(--ui-radius-md)));
|
|
2288
|
-
background: var(--ui-control-surface, var(--ui-surface-default));
|
|
2289
|
-
box-shadow: var(--ui-control-inset);
|
|
2290
|
-
transition:
|
|
2291
|
-
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
2292
|
-
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
2293
|
-
}
|
|
2294
|
-
.field:focus-within {
|
|
2295
|
-
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
2296
|
-
box-shadow:
|
|
2297
|
-
var(--ui-control-inset),
|
|
2298
|
-
var(--ui-control-focus-halo-shadow);
|
|
2299
|
-
}
|
|
2300
|
-
.entry {
|
|
2301
|
-
display: flex;
|
|
2302
|
-
flex: 1 1 auto;
|
|
2303
|
-
min-inline-size: 0;
|
|
2304
|
-
}
|
|
2305
1919
|
/* A ghost icon button: the affordance is the mark, not a box around it. */
|
|
2306
|
-
.
|
|
2307
|
-
flex: none;
|
|
2308
|
-
display: inline-flex;
|
|
2309
|
-
align-items: center;
|
|
2310
|
-
justify-content: center;
|
|
2311
|
-
inline-size: var(--ui-control-size-sm);
|
|
2312
|
-
block-size: var(--ui-control-size-sm);
|
|
2313
|
-
padding: 0;
|
|
2314
|
-
border: 0;
|
|
2315
|
-
border-radius: var(--ui-radius-round);
|
|
2316
|
-
background: transparent;
|
|
2317
|
-
color: var(--ui-text-secondary);
|
|
2318
|
-
cursor: pointer;
|
|
2319
|
-
transition:
|
|
2320
|
-
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
2321
|
-
color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
2322
|
-
}
|
|
1920
|
+
/* A row with a tag or a description: the label and its tag on one line, the description under them. */
|
|
2323
1921
|
|
|
2324
|
-
.
|
|
2325
|
-
.
|
|
2326
|
-
|
|
2327
|
-
|
|
2328
|
-
}
|
|
1922
|
+
/* Multiple mode keeps one control height. Chips and the input scroll within the entry,
|
|
1923
|
+
while the clear and disclosure controls remain fixed at the end of the field. */
|
|
1924
|
+
/* Size variants keep their control height as selections are added. */
|
|
1925
|
+
/* A large multiple field starts at the large control height, as sm starts at the small one. */
|
|
2329
1926
|
|
|
2330
|
-
.
|
|
2331
|
-
outline: none;
|
|
2332
|
-
box-shadow: var(--ui-focus-halo);
|
|
2333
|
-
}
|
|
1927
|
+
/* A component that sets its display still honours the hidden attribute on its root. */
|
|
2334
1928
|
|
|
2335
|
-
.
|
|
2336
|
-
|
|
2337
|
-
|
|
2338
|
-
|
|
1929
|
+
@scope (.ui-combobox) to (.ui-badge, .ui-tooltip) {
|
|
1930
|
+
:scope:where(:scope) {
|
|
1931
|
+
/* Hooks do not inherit, so the parts below read them from the root. */
|
|
1932
|
+
--_ui-combobox-label-text: var(--ui-combobox-label-text);
|
|
1933
|
+
--_ui-combobox-label-font-size: var(--ui-combobox-label-font-size);
|
|
1934
|
+
--_ui-combobox-affordance-text: var(--ui-combobox-affordance-text);
|
|
1935
|
+
--_ui-combobox-max-block-size: var(--ui-combobox-max-block-size);
|
|
1936
|
+
--_ui-combobox-option-text: var(--ui-combobox-option-text);
|
|
1937
|
+
--_ui-combobox-message-text: var(--ui-combobox-message-text);
|
|
1938
|
+
--_ui-combobox-option-check: var(--ui-combobox-option-check);
|
|
1939
|
+
--_ui-combobox-item-min-block-size: var(--ui-combobox-item-min-block-size);
|
|
1940
|
+
--_ui-combobox-item-input-min-inline-size: var(--ui-combobox-item-input-min-inline-size);
|
|
1941
|
+
--_ui-combobox-item-item-max-inline-size: var(--ui-combobox-item-item-max-inline-size);
|
|
1942
|
+
--_ui-combobox-radius: var(--ui-combobox-radius);
|
|
1943
|
+
--_ui-combobox-invalid-border: var(--ui-combobox-invalid-border);
|
|
1944
|
+
--_ui-combobox-popup-surface: var(--ui-combobox-popup-surface);
|
|
1945
|
+
--_ui-combobox-popup-border: var(--ui-combobox-popup-border);
|
|
1946
|
+
--_ui-combobox-popup-radius: var(--ui-combobox-popup-radius);
|
|
1947
|
+
--_ui-combobox-popup-shadow: var(--ui-combobox-popup-shadow);
|
|
2339
1948
|
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
1949
|
+
--_row: var(--ui-control-size-md);
|
|
1950
|
+
display: grid;
|
|
1951
|
+
gap: var(--ui-space-1);
|
|
1952
|
+
min-inline-size: 0;
|
|
1953
|
+
color: var(--ui-text-primary);
|
|
1954
|
+
font: inherit;
|
|
1955
|
+
}
|
|
1956
|
+
label {
|
|
1957
|
+
color: var(--_ui-combobox-label-text, var(--ui-text-primary));
|
|
1958
|
+
font-size: var(--_ui-combobox-label-font-size, var(--ui-font-size-sm));
|
|
1959
|
+
font-weight: 500;
|
|
1960
|
+
}
|
|
1961
|
+
.control {
|
|
1962
|
+
display: flex;
|
|
1963
|
+
align-items: center;
|
|
1964
|
+
gap: var(--ui-space-2);
|
|
1965
|
+
min-inline-size: 0;
|
|
1966
|
+
}
|
|
2344
1967
|
|
|
2345
|
-
|
|
2346
|
-
|
|
2347
|
-
|
|
2348
|
-
|
|
2349
|
-
|
|
2350
|
-
|
|
2351
|
-
|
|
2352
|
-
|
|
2353
|
-
|
|
2354
|
-
|
|
2355
|
-
|
|
2356
|
-
|
|
2357
|
-
|
|
2358
|
-
color: inherit;
|
|
2359
|
-
font: inherit;
|
|
2360
|
-
line-height: var(--ui-line-height-tight);
|
|
2361
|
-
padding: var(--ui-space-2) var(--ui-space-3);
|
|
2362
|
-
margin: 0;
|
|
2363
|
-
outline: none;
|
|
2364
|
-
}
|
|
2365
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] {
|
|
2366
|
-
--_row: var(--ui-control-size-sm);
|
|
2367
|
-
}
|
|
2368
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input {
|
|
2369
|
-
padding: var(--ui-space-1) var(--ui-space-2);
|
|
2370
|
-
font-size: var(--ui-font-size-sm);
|
|
2371
|
-
}
|
|
2372
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="size=lg"] {
|
|
2373
|
-
--_row: var(--ui-control-size-lg);
|
|
2374
|
-
}
|
|
2375
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="size=lg"] input {
|
|
2376
|
-
padding: var(--ui-space-3) var(--ui-space-4);
|
|
2377
|
-
font-size: var(--ui-font-size-md);
|
|
2378
|
-
}
|
|
2379
|
-
button {
|
|
2380
|
-
appearance: none;
|
|
2381
|
-
display: inline-grid;
|
|
2382
|
-
place-items: center;
|
|
2383
|
-
align-self: stretch;
|
|
2384
|
-
border: 0;
|
|
2385
|
-
border-radius: var(--ui-radius-md);
|
|
2386
|
-
background: transparent;
|
|
2387
|
-
color: var(--_ui-combobox-affordance-text, var(--ui-text-secondary));
|
|
2388
|
-
font: inherit;
|
|
2389
|
-
font-weight: 400;
|
|
2390
|
-
min-inline-size: 2rem;
|
|
2391
|
-
padding: 0 var(--ui-space-1);
|
|
2392
|
-
cursor: pointer;
|
|
2393
|
-
}
|
|
2394
|
-
.affordance-icon {
|
|
2395
|
-
display: block;
|
|
2396
|
-
inline-size: var(--ui-icon-size-sm);
|
|
2397
|
-
block-size: var(--ui-icon-size-sm);
|
|
2398
|
-
}
|
|
2399
|
-
button:hover:enabled {
|
|
2400
|
-
background: var(--ui-surface-muted);
|
|
2401
|
-
color: var(--ui-text-primary);
|
|
2402
|
-
}
|
|
2403
|
-
button:focus-visible {
|
|
2404
|
-
outline: none;
|
|
2405
|
-
background: var(--ui-surface-muted);
|
|
2406
|
-
box-shadow: inset 0 0 0 var(--ui-focus-width)
|
|
2407
|
-
color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
|
|
2408
|
-
}
|
|
2409
|
-
input:disabled, button:disabled {
|
|
2410
|
-
color: var(--ui-disabled-text);
|
|
2411
|
-
cursor: not-allowed;
|
|
2412
|
-
}
|
|
2413
|
-
.field:has(input:disabled) {
|
|
2414
|
-
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
2415
|
-
}
|
|
2416
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="validationStatus=error"] .field,
|
|
2417
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="invalid"] .field {
|
|
2418
|
-
border-color: var(
|
|
2419
|
-
--_ui-combobox-invalid-border,
|
|
2420
|
-
var(--ui-field-danger, var(--ui-danger-solid, var(--ui-accent-active)))
|
|
2421
|
-
);
|
|
2422
|
-
}
|
|
2423
|
-
.popup {
|
|
2424
|
-
box-sizing: border-box;
|
|
2425
|
-
min-inline-size: 12rem;
|
|
2426
|
-
max-inline-size: calc(100vw - 1rem);
|
|
2427
|
-
max-block-size: var(--_ui-combobox-max-block-size, 18rem);
|
|
2428
|
-
overflow: auto;
|
|
2429
|
-
margin: 0;
|
|
2430
|
-
padding: var(--ui-space-1);
|
|
2431
|
-
border: var(--ui-border-width) solid
|
|
2432
|
-
var(--_ui-combobox-popup-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
2433
|
-
border-radius: var(--_ui-combobox-popup-radius, var(--ui-overlay-radius, var(--ui-radius-md)));
|
|
2434
|
-
background: var(
|
|
2435
|
-
--_ui-combobox-popup-surface,
|
|
2436
|
-
var(--ui-overlay-surface, var(--ui-surface-elevated))
|
|
2437
|
-
);
|
|
2438
|
-
color: var(--ui-text-primary);
|
|
2439
|
-
box-shadow: var(
|
|
2440
|
-
--_ui-combobox-popup-shadow,
|
|
2441
|
-
var(--ui-overlay-shadow, var(--ui-elevation-overlay, var(--ui-shadow-lg)))
|
|
2442
|
-
);
|
|
2443
|
-
}
|
|
2444
|
-
[hidden] {
|
|
2445
|
-
display: none;
|
|
2446
|
-
}
|
|
2447
|
-
.option[aria-disabled="true"] .primary,
|
|
2448
|
-
.option[aria-disabled="true"] .secondary {
|
|
2449
|
-
color: var(--ui-disabled-text);
|
|
2450
|
-
}
|
|
2451
|
-
.primary {
|
|
2452
|
-
display: block;
|
|
2453
|
-
color: var(--_ui-combobox-option-text, inherit);
|
|
2454
|
-
font-weight: 500;
|
|
2455
|
-
}
|
|
2456
|
-
/* A row with a tag or a description: the label and its tag on one line, the description under them. */
|
|
2457
|
-
.detail {
|
|
2458
|
-
display: grid;
|
|
2459
|
-
gap: var(--ui-space-0-5);
|
|
2460
|
-
min-inline-size: 0;
|
|
2461
|
-
}
|
|
2462
|
-
.line {
|
|
2463
|
-
display: flex;
|
|
2464
|
-
flex-wrap: wrap;
|
|
2465
|
-
align-items: center;
|
|
2466
|
-
gap: var(--ui-space-2);
|
|
2467
|
-
}
|
|
2468
|
-
.description {
|
|
2469
|
-
color: var(--ui-text-muted);
|
|
2470
|
-
font-size: var(--ui-font-size-sm);
|
|
2471
|
-
line-height: var(--ui-line-height-md);
|
|
2472
|
-
}
|
|
2473
|
-
.message, .group {
|
|
2474
|
-
color: var(--_ui-combobox-message-text, var(--ui-text-secondary));
|
|
2475
|
-
font-weight: 400;
|
|
2476
|
-
font-size: var(--ui-font-size-sm);
|
|
2477
|
-
line-height: var(--ui-line-height-md);
|
|
2478
|
-
overflow-wrap: anywhere;
|
|
2479
|
-
}
|
|
2480
|
-
.group, .popup .message {
|
|
2481
|
-
padding: var(--ui-space-2) var(--ui-space-3);
|
|
2482
|
-
}
|
|
2483
|
-
.sr-only {
|
|
2484
|
-
position: absolute;
|
|
2485
|
-
inline-size: 1px;
|
|
2486
|
-
block-size: 1px;
|
|
2487
|
-
overflow: hidden;
|
|
2488
|
-
clip-path: inset(50%);
|
|
2489
|
-
white-space: nowrap;
|
|
2490
|
-
}
|
|
2491
|
-
@media (pointer: coarse) {
|
|
2492
|
-
[data-component~="ui-combobox"] {
|
|
2493
|
-
--_row: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
|
|
1968
|
+
.field {
|
|
1969
|
+
box-sizing: border-box;
|
|
1970
|
+
min-block-size: var(--_row);
|
|
1971
|
+
flex: 1 1 auto;
|
|
1972
|
+
display: flex;
|
|
1973
|
+
min-inline-size: 0;
|
|
1974
|
+
border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-default));
|
|
1975
|
+
border-radius: var(--_ui-combobox-radius, var(--ui-field-radius, var(--ui-radius-md)));
|
|
1976
|
+
background: var(--ui-control-surface, var(--ui-surface-default));
|
|
1977
|
+
box-shadow: var(--ui-control-inset);
|
|
1978
|
+
transition:
|
|
1979
|
+
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
1980
|
+
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
2494
1981
|
}
|
|
2495
|
-
|
|
2496
|
-
|
|
2497
|
-
|
|
1982
|
+
.field:focus-within {
|
|
1983
|
+
border-color: var(--ui-control-focus, var(--ui-accent-solid));
|
|
1984
|
+
box-shadow:
|
|
1985
|
+
var(--ui-control-inset),
|
|
1986
|
+
var(--ui-control-focus-halo-shadow);
|
|
2498
1987
|
}
|
|
2499
|
-
|
|
2500
|
-
|
|
2501
|
-
|
|
2502
|
-
|
|
1988
|
+
.entry {
|
|
1989
|
+
display: flex;
|
|
1990
|
+
flex: 1 1 auto;
|
|
1991
|
+
min-inline-size: 0;
|
|
2503
1992
|
}
|
|
2504
|
-
|
|
2505
|
-
|
|
1993
|
+
.help {
|
|
1994
|
+
flex: none;
|
|
1995
|
+
display: inline-flex;
|
|
1996
|
+
align-items: center;
|
|
1997
|
+
justify-content: center;
|
|
1998
|
+
inline-size: var(--ui-control-size-sm);
|
|
1999
|
+
block-size: var(--ui-control-size-sm);
|
|
2000
|
+
padding: 0;
|
|
2001
|
+
border: 0;
|
|
2002
|
+
border-radius: var(--ui-radius-round);
|
|
2003
|
+
background: transparent;
|
|
2004
|
+
color: var(--ui-text-secondary);
|
|
2005
|
+
cursor: pointer;
|
|
2006
|
+
transition:
|
|
2007
|
+
background-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
2008
|
+
color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
2506
2009
|
}
|
|
2507
|
-
|
|
2508
|
-
|
|
2509
|
-
|
|
2510
|
-
|
|
2010
|
+
|
|
2011
|
+
.help:hover:enabled, .help[aria-expanded="true"] {
|
|
2012
|
+
background: color-mix(in srgb, currentColor 8%, transparent);
|
|
2013
|
+
color: var(--ui-text-primary);
|
|
2511
2014
|
}
|
|
2512
|
-
|
|
2513
|
-
|
|
2015
|
+
|
|
2016
|
+
.help:focus-visible {
|
|
2017
|
+
outline: none;
|
|
2018
|
+
box-shadow: var(--ui-focus-halo);
|
|
2514
2019
|
}
|
|
2515
|
-
}
|
|
2516
2020
|
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
min-block-size: var(--_ui-combobox-item-min-block-size, var(--_row));
|
|
2522
|
-
padding: var(--ui-space-1);
|
|
2523
|
-
}
|
|
2524
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .entry {
|
|
2525
|
-
align-items: center;
|
|
2526
|
-
gap: var(--ui-space-1);
|
|
2527
|
-
overflow-x: auto;
|
|
2528
|
-
scrollbar-width: none;
|
|
2529
|
-
}
|
|
2530
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .entry::-webkit-scrollbar {
|
|
2531
|
-
display: none;
|
|
2532
|
-
}
|
|
2533
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input {
|
|
2534
|
-
flex: 1 0 var(--_ui-combobox-item-input-min-inline-size, 5rem);
|
|
2535
|
-
width: auto;
|
|
2536
|
-
min-block-size: 1.75rem;
|
|
2537
|
-
padding: var(--ui-space-0-5) var(--ui-space-1);
|
|
2538
|
-
}
|
|
2539
|
-
/* Size variants keep their control height as selections are added. */
|
|
2540
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"][data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"]
|
|
2541
|
-
.field {
|
|
2542
|
-
min-block-size: 0;
|
|
2543
|
-
padding: var(--ui-space-0-5);
|
|
2544
|
-
}
|
|
2545
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"][data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"]
|
|
2546
|
-
input {
|
|
2547
|
-
min-block-size: calc(var(--_row) - 2 * var(--ui-border-width) - 2 * var(--ui-space-0-5));
|
|
2548
|
-
padding: 0 var(--ui-space-1);
|
|
2549
|
-
}
|
|
2550
|
-
/* A large multiple field starts at the large control height, as sm starts at the small one. */
|
|
2551
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"][data-component~="ui-combobox"][data-ui-combobox-state~="size=lg"]
|
|
2552
|
-
.field {
|
|
2553
|
-
min-block-size: 0;
|
|
2554
|
-
}
|
|
2555
|
-
[data-component~="ui-combobox"][data-ui-combobox-state~="multiple"][data-component~="ui-combobox"][data-ui-combobox-state~="size=lg"]
|
|
2556
|
-
input {
|
|
2557
|
-
min-block-size: calc(
|
|
2558
|
-
var(--ui-control-size-lg) - 2 * var(--ui-border-width) - 2 * var(--ui-space-1)
|
|
2559
|
-
);
|
|
2560
|
-
}
|
|
2561
|
-
.item {
|
|
2562
|
-
appearance: none;
|
|
2563
|
-
display: inline-flex;
|
|
2564
|
-
flex: none;
|
|
2565
|
-
min-inline-size: 0;
|
|
2566
|
-
max-inline-size: min(100%, var(--_ui-combobox-item-item-max-inline-size, 12rem));
|
|
2567
|
-
overflow: hidden;
|
|
2568
|
-
padding: 0;
|
|
2569
|
-
border: 0;
|
|
2570
|
-
border-radius: var(--ui-radius-sm);
|
|
2571
|
-
background: transparent;
|
|
2572
|
-
color: inherit;
|
|
2573
|
-
font: inherit;
|
|
2574
|
-
cursor: default;
|
|
2575
|
-
}
|
|
2576
|
-
.item:focus-visible {
|
|
2577
|
-
outline: var(--ui-focus-width) solid var(--ui-focus-ring);
|
|
2578
|
-
outline-offset: var(--ui-border-width);
|
|
2579
|
-
}
|
|
2580
|
-
.item:disabled {
|
|
2581
|
-
color: var(--ui-disabled-text);
|
|
2582
|
-
}
|
|
2021
|
+
.help:disabled {
|
|
2022
|
+
color: var(--ui-disabled-text);
|
|
2023
|
+
cursor: not-allowed;
|
|
2024
|
+
}
|
|
2583
2025
|
|
|
2584
|
-
|
|
2585
|
-
|
|
2586
|
-
|
|
2026
|
+
.help-icon {
|
|
2027
|
+
inline-size: var(--ui-icon-size-sm);
|
|
2028
|
+
block-size: var(--ui-icon-size-sm);
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
input::selection {
|
|
2032
|
+
background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
|
|
2033
|
+
color: inherit;
|
|
2034
|
+
}
|
|
2035
|
+
input {
|
|
2036
|
+
appearance: none;
|
|
2037
|
+
width: 100%;
|
|
2038
|
+
min-inline-size: 0;
|
|
2039
|
+
min-block-size: calc(var(--_row) - 2 * var(--ui-border-width));
|
|
2040
|
+
box-sizing: border-box;
|
|
2041
|
+
border: 0;
|
|
2042
|
+
border-radius: inherit;
|
|
2043
|
+
background: transparent;
|
|
2044
|
+
color: inherit;
|
|
2045
|
+
font: inherit;
|
|
2046
|
+
line-height: var(--ui-line-height-tight);
|
|
2047
|
+
padding: var(--ui-space-2) var(--ui-space-3);
|
|
2048
|
+
margin: 0;
|
|
2049
|
+
outline: none;
|
|
2050
|
+
}
|
|
2051
|
+
:scope:where(:scope):is([data-ui-combobox-state~="size=sm"]) {
|
|
2052
|
+
--_row: var(--ui-control-size-sm);
|
|
2053
|
+
}
|
|
2054
|
+
:scope[data-ui-combobox-state~="size=sm"] input {
|
|
2055
|
+
padding: var(--ui-space-1) var(--ui-space-2);
|
|
2056
|
+
font-size: var(--ui-font-size-sm);
|
|
2057
|
+
}
|
|
2058
|
+
:scope:where(:scope):is([data-ui-combobox-state~="size=lg"]) {
|
|
2059
|
+
--_row: var(--ui-control-size-lg);
|
|
2060
|
+
}
|
|
2061
|
+
:scope[data-ui-combobox-state~="size=lg"] input {
|
|
2062
|
+
padding: var(--ui-space-3) var(--ui-space-4);
|
|
2063
|
+
font-size: var(--ui-font-size-md);
|
|
2064
|
+
}
|
|
2065
|
+
button {
|
|
2066
|
+
appearance: none;
|
|
2067
|
+
display: inline-grid;
|
|
2068
|
+
place-items: center;
|
|
2069
|
+
align-self: stretch;
|
|
2070
|
+
border: 0;
|
|
2071
|
+
border-radius: var(--ui-radius-md);
|
|
2072
|
+
background: transparent;
|
|
2073
|
+
color: var(--_ui-combobox-affordance-text, var(--ui-text-secondary));
|
|
2074
|
+
font: inherit;
|
|
2075
|
+
font-weight: 400;
|
|
2076
|
+
min-inline-size: 2rem;
|
|
2077
|
+
padding: 0 var(--ui-space-1);
|
|
2078
|
+
cursor: pointer;
|
|
2079
|
+
}
|
|
2080
|
+
.affordance-icon {
|
|
2081
|
+
display: block;
|
|
2082
|
+
inline-size: var(--ui-icon-size-sm);
|
|
2083
|
+
block-size: var(--ui-icon-size-sm);
|
|
2084
|
+
}
|
|
2085
|
+
button:hover:enabled {
|
|
2086
|
+
background: var(--ui-surface-muted);
|
|
2087
|
+
color: var(--ui-text-primary);
|
|
2088
|
+
}
|
|
2089
|
+
button:focus-visible {
|
|
2090
|
+
outline: none;
|
|
2091
|
+
background: var(--ui-surface-muted);
|
|
2092
|
+
box-shadow: inset 0 0 0 var(--ui-focus-width)
|
|
2093
|
+
color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
|
|
2094
|
+
}
|
|
2095
|
+
input:disabled, button:disabled {
|
|
2096
|
+
color: var(--ui-disabled-text);
|
|
2097
|
+
cursor: not-allowed;
|
|
2098
|
+
}
|
|
2099
|
+
.field:has(input:disabled) {
|
|
2100
|
+
background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
|
|
2101
|
+
}
|
|
2102
|
+
:scope[data-ui-combobox-state~="validationStatus=error"] .field,
|
|
2103
|
+
:scope[data-ui-combobox-state~="invalid"] .field {
|
|
2104
|
+
border-color: var(
|
|
2105
|
+
--_ui-combobox-invalid-border,
|
|
2106
|
+
var(--ui-field-danger, var(--ui-danger-solid, var(--ui-accent-active)))
|
|
2107
|
+
);
|
|
2108
|
+
}
|
|
2109
|
+
.popup {
|
|
2110
|
+
box-sizing: border-box;
|
|
2111
|
+
min-inline-size: 12rem;
|
|
2112
|
+
max-inline-size: calc(100vw - 1rem);
|
|
2113
|
+
max-block-size: var(--_ui-combobox-max-block-size, 18rem);
|
|
2114
|
+
overflow: auto;
|
|
2115
|
+
margin: 0;
|
|
2116
|
+
padding: var(--ui-space-1);
|
|
2117
|
+
border: var(--ui-border-width) solid
|
|
2118
|
+
var(--_ui-combobox-popup-border, var(--ui-overlay-border, var(--ui-border-strong)));
|
|
2119
|
+
border-radius: var(--_ui-combobox-popup-radius, var(--ui-overlay-radius, var(--ui-radius-md)));
|
|
2120
|
+
background: var(
|
|
2121
|
+
--_ui-combobox-popup-surface,
|
|
2122
|
+
var(--ui-overlay-surface, var(--ui-surface-elevated))
|
|
2123
|
+
);
|
|
2124
|
+
color: var(--ui-text-primary);
|
|
2125
|
+
box-shadow: var(
|
|
2126
|
+
--_ui-combobox-popup-shadow,
|
|
2127
|
+
var(--ui-overlay-shadow, var(--ui-elevation-overlay, var(--ui-shadow-lg)))
|
|
2128
|
+
);
|
|
2129
|
+
}
|
|
2130
|
+
[hidden] {
|
|
2131
|
+
display: none;
|
|
2132
|
+
}
|
|
2133
|
+
.option[aria-disabled="true"] .primary, .option[aria-disabled="true"] .secondary {
|
|
2134
|
+
color: var(--ui-disabled-text);
|
|
2135
|
+
}
|
|
2136
|
+
.primary {
|
|
2137
|
+
display: block;
|
|
2138
|
+
color: var(--_ui-combobox-option-text, inherit);
|
|
2139
|
+
font-weight: 500;
|
|
2140
|
+
}
|
|
2141
|
+
.detail {
|
|
2142
|
+
display: grid;
|
|
2143
|
+
gap: var(--ui-space-0-5);
|
|
2144
|
+
min-inline-size: 0;
|
|
2145
|
+
}
|
|
2146
|
+
.line {
|
|
2147
|
+
display: flex;
|
|
2148
|
+
flex-wrap: wrap;
|
|
2149
|
+
align-items: center;
|
|
2150
|
+
gap: var(--ui-space-2);
|
|
2151
|
+
}
|
|
2152
|
+
.description {
|
|
2153
|
+
color: var(--ui-text-muted);
|
|
2154
|
+
font-size: var(--ui-font-size-sm);
|
|
2155
|
+
line-height: var(--ui-line-height-md);
|
|
2156
|
+
}
|
|
2157
|
+
.message, .group {
|
|
2158
|
+
color: var(--_ui-combobox-message-text, var(--ui-text-secondary));
|
|
2159
|
+
font-weight: 400;
|
|
2160
|
+
font-size: var(--ui-font-size-sm);
|
|
2161
|
+
line-height: var(--ui-line-height-md);
|
|
2162
|
+
overflow-wrap: anywhere;
|
|
2163
|
+
}
|
|
2164
|
+
.group, .popup .message {
|
|
2165
|
+
padding: var(--ui-space-2) var(--ui-space-3);
|
|
2166
|
+
}
|
|
2167
|
+
.sr-only {
|
|
2168
|
+
position: absolute;
|
|
2169
|
+
inline-size: 1px;
|
|
2170
|
+
block-size: 1px;
|
|
2171
|
+
overflow: hidden;
|
|
2172
|
+
clip-path: inset(50%);
|
|
2173
|
+
white-space: nowrap;
|
|
2174
|
+
}
|
|
2175
|
+
@media (pointer: coarse) {
|
|
2176
|
+
:scope:where(:scope) {
|
|
2177
|
+
--_row: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
|
|
2178
|
+
}
|
|
2179
|
+
button {
|
|
2180
|
+
min-inline-size: 2.75rem;
|
|
2181
|
+
min-block-size: calc(var(--_row) - 2 * var(--ui-border-width));
|
|
2182
|
+
}
|
|
2183
|
+
/* Under touch a small field is still a touch-sized target, as a small button is, and keeps
|
|
2184
|
+
body-size text: below 16px, iOS zooms the page into the focused field. */
|
|
2185
|
+
:scope:where(:scope):is([data-ui-combobox-state~="size=sm"]) {
|
|
2186
|
+
--_row: var(--ui-control-min-block-size);
|
|
2187
|
+
}
|
|
2188
|
+
:scope[data-ui-combobox-state~="size=sm"] input {
|
|
2189
|
+
font-size: inherit;
|
|
2190
|
+
}
|
|
2191
|
+
}
|
|
2192
|
+
@media (forced-colors: active) {
|
|
2193
|
+
.field, .popup {
|
|
2194
|
+
border-color: CanvasText;
|
|
2195
|
+
}
|
|
2196
|
+
.option.active {
|
|
2197
|
+
outline-color: Highlight;
|
|
2198
|
+
}
|
|
2199
|
+
}
|
|
2200
|
+
:scope[data-ui-combobox-state~="multiple"] .field {
|
|
2201
|
+
align-items: center;
|
|
2202
|
+
min-block-size: var(--_ui-combobox-item-min-block-size, var(--_row));
|
|
2203
|
+
padding: var(--ui-space-1);
|
|
2204
|
+
}
|
|
2205
|
+
:scope[data-ui-combobox-state~="multiple"] .entry {
|
|
2206
|
+
align-items: center;
|
|
2207
|
+
gap: var(--ui-space-1);
|
|
2208
|
+
overflow-x: auto;
|
|
2209
|
+
scrollbar-width: none;
|
|
2210
|
+
}
|
|
2211
|
+
:scope[data-ui-combobox-state~="multiple"] .entry::-webkit-scrollbar {
|
|
2212
|
+
display: none;
|
|
2213
|
+
}
|
|
2214
|
+
:scope[data-ui-combobox-state~="multiple"] input {
|
|
2215
|
+
flex: 1 0 var(--_ui-combobox-item-input-min-inline-size, 5rem);
|
|
2216
|
+
width: auto;
|
|
2217
|
+
min-block-size: 1.75rem;
|
|
2218
|
+
padding: var(--ui-space-0-5) var(--ui-space-1);
|
|
2219
|
+
}
|
|
2220
|
+
:scope[data-ui-combobox-state~="multiple"]:scope[data-ui-combobox-state~="size=sm"] .field {
|
|
2221
|
+
min-block-size: 0;
|
|
2222
|
+
padding: var(--ui-space-0-5);
|
|
2223
|
+
}
|
|
2224
|
+
:scope[data-ui-combobox-state~="multiple"]:scope[data-ui-combobox-state~="size=sm"] input {
|
|
2225
|
+
min-block-size: calc(var(--_row) - 2 * var(--ui-border-width) - 2 * var(--ui-space-0-5));
|
|
2226
|
+
padding: 0 var(--ui-space-1);
|
|
2227
|
+
}
|
|
2228
|
+
:scope[data-ui-combobox-state~="multiple"]:scope[data-ui-combobox-state~="size=lg"] .field {
|
|
2229
|
+
min-block-size: 0;
|
|
2230
|
+
}
|
|
2231
|
+
:scope[data-ui-combobox-state~="multiple"]:scope[data-ui-combobox-state~="size=lg"] input {
|
|
2232
|
+
min-block-size: calc(
|
|
2233
|
+
var(--ui-control-size-lg) - 2 * var(--ui-border-width) - 2 * var(--ui-space-1)
|
|
2234
|
+
);
|
|
2235
|
+
}
|
|
2236
|
+
.item {
|
|
2237
|
+
appearance: none;
|
|
2238
|
+
display: inline-flex;
|
|
2239
|
+
flex: none;
|
|
2240
|
+
min-inline-size: 0;
|
|
2241
|
+
max-inline-size: min(100%, var(--_ui-combobox-item-item-max-inline-size, 12rem));
|
|
2242
|
+
overflow: hidden;
|
|
2243
|
+
padding: 0;
|
|
2244
|
+
border: 0;
|
|
2245
|
+
border-radius: var(--ui-radius-sm);
|
|
2246
|
+
background: transparent;
|
|
2247
|
+
color: inherit;
|
|
2248
|
+
font: inherit;
|
|
2249
|
+
cursor: default;
|
|
2250
|
+
}
|
|
2251
|
+
.item:focus-visible {
|
|
2252
|
+
outline: var(--ui-focus-width) solid var(--ui-focus-ring);
|
|
2253
|
+
outline-offset: var(--ui-border-width);
|
|
2254
|
+
}
|
|
2255
|
+
.item:disabled {
|
|
2256
|
+
color: var(--ui-disabled-text);
|
|
2257
|
+
}
|
|
2258
|
+
:scope:where(:scope):is([hidden]) {
|
|
2259
|
+
display: none;
|
|
2260
|
+
}
|
|
2587
2261
|
}
|
|
2588
2262
|
</style>
|