@threadlabs/looma 0.21.6 → 0.22.1
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-affordance-scope/ui-affordance-scope.html +1 -1
- package/components/ui-avatar/ui-avatar.html +4 -4
- package/components/ui-avatar-group/ui-avatar-group.html +2 -2
- package/components/ui-checkbox/ui-checkbox.html +1 -1
- package/components/ui-combobox/ui-combobox.html +18 -18
- package/components/ui-context-menu/ui-context-menu.html +1 -1
- package/components/ui-dialog/ui-dialog.html +2 -2
- package/components/ui-disclosure/ui-disclosure.html +4 -4
- package/components/ui-editable/ui-editable.html +3 -3
- package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +5 -5
- package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +5 -5
- package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +3 -3
- package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
- package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +3 -7
- package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +6 -6
- package/components/ui-listbox/ui-listbox.html +6 -6
- package/components/ui-menu/ui-menu.html +1 -1
- package/components/ui-menu-item/ui-menu-item.html +1 -1
- package/components/ui-popover/ui-popover.html +1 -1
- package/components/ui-radio/ui-radio.html +1 -1
- package/components/ui-radio-group/ui-radio-group.html +1 -1
- package/components/ui-search-shell/ui-search-shell.html +1 -1
- package/components/ui-sidebar/ui-sidebar.html +2 -2
- package/components/ui-switch/ui-switch.html +1 -1
- package/components/ui-switcher/ui-switcher.html +1 -1
- package/components/ui-tabs/ui-tabs.html +2 -2
- package/components/ui-toast-region/ui-toast-region.html +1 -1
- package/components/ui-tooltip/ui-tooltip.html +1 -1
- package/components/ui-tree-item/ui-tree-item.html +4 -4
- package/dist/index.js +1 -1
- package/package.json +2 -2
- package/styles/ui-action-bar.css +1 -1
- package/styles/ui-affordance-scope.css +1 -1
- package/styles/ui-avatar-group.css +1 -1
- package/styles/ui-avatar.css +1 -1
- package/styles/ui-badge.css +1 -1
- package/styles/ui-breadcrumb-item.css +1 -1
- package/styles/ui-breadcrumbs.css +1 -1
- package/styles/ui-button.css +1 -1
- package/styles/ui-callout.css +1 -1
- package/styles/ui-card.css +1 -1
- package/styles/ui-checkbox.css +1 -1
- package/styles/ui-cluster.css +1 -1
- package/styles/ui-combobox.css +1 -1
- package/styles/ui-container.css +1 -1
- package/styles/ui-context-menu.css +1 -1
- package/styles/ui-cover.css +1 -1
- package/styles/ui-description-item.css +1 -1
- package/styles/ui-description-list.css +1 -1
- package/styles/ui-dialog.css +1 -1
- package/styles/ui-disclosure.css +1 -1
- package/styles/ui-editable.css +1 -1
- package/styles/ui-editor-insert-table-grid.css +1 -1
- package/styles/ui-editor-mention-menu-item.css +1 -1
- package/styles/ui-editor-mention-menu.css +1 -1
- package/styles/ui-editor-slash-menu-group.css +1 -1
- package/styles/ui-editor-slash-menu-item.css +1 -1
- package/styles/ui-editor-slash-menu.css +1 -1
- package/styles/ui-editor-table-context-menu.css +1 -1
- package/styles/ui-editor-table-overlay.css +1 -1
- package/styles/ui-editor-table-toolbar.css +1 -1
- package/styles/ui-editor-toolbar.css +1 -1
- package/styles/ui-floating-action-button.css +1 -1
- package/styles/ui-form-field.css +1 -1
- package/styles/ui-grid.css +1 -1
- package/styles/ui-icon-button.css +1 -1
- package/styles/ui-icon.css +1 -1
- package/styles/ui-input-group.css +1 -1
- package/styles/ui-input.css +1 -1
- package/styles/ui-list-item.css +1 -1
- package/styles/ui-list.css +1 -1
- package/styles/ui-listbox.css +1 -1
- package/styles/ui-menu-group.css +1 -1
- package/styles/ui-menu-item.css +1 -1
- package/styles/ui-menu.css +1 -1
- package/styles/ui-meter.css +1 -1
- package/styles/ui-nav-item.css +1 -1
- package/styles/ui-page-header.css +1 -1
- package/styles/ui-popover.css +1 -1
- package/styles/ui-radio-group.css +1 -1
- package/styles/ui-radio.css +1 -1
- package/styles/ui-reel.css +1 -1
- package/styles/ui-scroll-area.css +1 -1
- package/styles/ui-search-result-row.css +1 -1
- package/styles/ui-search-shell.css +1 -1
- package/styles/ui-section.css +1 -1
- package/styles/ui-select.css +1 -1
- package/styles/ui-separator.css +1 -1
- package/styles/ui-sidebar.css +1 -1
- package/styles/ui-spinner.css +1 -1
- package/styles/ui-stack.css +1 -1
- package/styles/ui-status-message.css +1 -1
- package/styles/ui-switch.css +1 -1
- package/styles/ui-switcher.css +1 -1
- package/styles/ui-table.css +1 -1
- package/styles/ui-tabs.css +1 -1
- package/styles/ui-text.css +1 -1
- package/styles/ui-textarea.css +1 -1
- package/styles/ui-toast-region.css +1 -1
- package/styles/ui-toast.css +1 -1
- package/styles/ui-tooltip.css +1 -1
- package/styles/ui-top-bar.css +1 -1
- package/styles/ui-tree-item.css +1 -1
- package/styles/ui-tree.css +1 -1
- package/vanilla/UiActionBar.d.ts +1 -1
- package/vanilla/UiActionBar.js +1 -1
- package/vanilla/UiAffordanceScope.d.ts +1 -1
- package/vanilla/UiAffordanceScope.js +2 -2
- package/vanilla/UiAvatar.d.ts +1 -1
- package/vanilla/UiAvatar.js +2 -2
- package/vanilla/UiAvatarGroup.d.ts +1 -1
- package/vanilla/UiAvatarGroup.js +2 -2
- 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 +1 -1
- package/vanilla/UiCallout.d.ts +1 -1
- package/vanilla/UiCallout.js +1 -1
- package/vanilla/UiCard.d.ts +1 -1
- package/vanilla/UiCard.js +1 -1
- package/vanilla/UiCheckbox.d.ts +1 -1
- package/vanilla/UiCheckbox.js +2 -2
- package/vanilla/UiCluster.d.ts +1 -1
- package/vanilla/UiCluster.js +1 -1
- package/vanilla/UiCombobox.d.ts +1 -1
- package/vanilla/UiCombobox.js +2 -2
- package/vanilla/UiContainer.d.ts +1 -1
- package/vanilla/UiContainer.js +1 -1
- package/vanilla/UiContextMenu.d.ts +1 -1
- package/vanilla/UiContextMenu.js +2 -2
- 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 +2 -2
- package/vanilla/UiDisclosure.d.ts +1 -1
- package/vanilla/UiDisclosure.js +2 -2
- package/vanilla/UiEditable.d.ts +1 -1
- package/vanilla/UiEditable.js +2 -2
- package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
- package/vanilla/UiEditorInsertTableGrid.js +2 -2
- package/vanilla/UiEditorMentionMenu.d.ts +1 -1
- package/vanilla/UiEditorMentionMenu.js +2 -2
- package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
- package/vanilla/UiEditorMentionMenuItem.js +1 -1
- package/vanilla/UiEditorSlashMenu.d.ts +1 -1
- package/vanilla/UiEditorSlashMenu.js +2 -2
- package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuGroup.js +1 -1
- package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
- package/vanilla/UiEditorSlashMenuItem.js +1 -1
- package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
- package/vanilla/UiEditorTableContextMenu.js +2 -2
- package/vanilla/UiEditorTableOverlay.d.ts +1 -1
- package/vanilla/UiEditorTableOverlay.js +2 -2
- package/vanilla/UiEditorTableToolbar.d.ts +1 -1
- package/vanilla/UiEditorTableToolbar.js +2 -2
- 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 +1 -1
- package/vanilla/UiIconButton.d.ts +1 -1
- package/vanilla/UiIconButton.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 +2 -2
- package/vanilla/UiMenu.d.ts +1 -1
- package/vanilla/UiMenu.js +2 -2
- package/vanilla/UiMenuGroup.d.ts +1 -1
- package/vanilla/UiMenuGroup.js +1 -1
- package/vanilla/UiMenuItem.d.ts +1 -1
- package/vanilla/UiMenuItem.js +2 -2
- package/vanilla/UiMeter.d.ts +1 -1
- package/vanilla/UiMeter.js +1 -1
- 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 +2 -2
- package/vanilla/UiRadio.d.ts +1 -1
- package/vanilla/UiRadio.js +2 -2
- package/vanilla/UiRadioGroup.d.ts +1 -1
- package/vanilla/UiRadioGroup.js +2 -2
- 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 +2 -2
- 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 +2 -2
- 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 +2 -2
- package/vanilla/UiSwitcher.d.ts +1 -1
- package/vanilla/UiSwitcher.js +2 -2
- package/vanilla/UiTable.d.ts +1 -1
- package/vanilla/UiTable.js +1 -1
- package/vanilla/UiTabs.d.ts +1 -1
- package/vanilla/UiTabs.js +2 -2
- 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 +2 -2
- package/vanilla/UiTooltip.d.ts +1 -1
- package/vanilla/UiTooltip.js +2 -2
- 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 +2 -2
- package/vue/UiActionBar.vue +1 -1
- package/vue/UiAffordanceScope.vue +25 -7
- package/vue/UiAvatar.vue +125 -30
- package/vue/UiAvatarGroup.d.ts +1 -1
- package/vue/UiAvatarGroup.vue +67 -21
- package/vue/UiBadge.vue +34 -8
- package/vue/UiBreadcrumbItem.vue +15 -4
- package/vue/UiBreadcrumbs.vue +14 -4
- package/vue/UiButton.vue +123 -42
- package/vue/UiCallout.vue +16 -4
- package/vue/UiCard.vue +46 -10
- package/vue/UiCheckbox.d.ts +5 -5
- package/vue/UiCheckbox.vue +73 -19
- package/vue/UiCluster.vue +39 -10
- package/vue/UiCombobox.d.ts +5 -5
- package/vue/UiCombobox.vue +317 -78
- package/vue/UiContainer.vue +23 -6
- package/vue/UiContextMenu.vue +24 -7
- package/vue/UiCover.vue +16 -4
- package/vue/UiDescriptionItem.vue +14 -4
- package/vue/UiDescriptionList.vue +33 -8
- package/vue/UiDialog.vue +79 -26
- package/vue/UiDisclosure.vue +101 -38
- package/vue/UiEditable.d.ts +3 -3
- package/vue/UiEditable.vue +107 -27
- package/vue/UiEditorInsertTableGrid.vue +47 -11
- package/vue/UiEditorMentionMenu.vue +99 -20
- package/vue/UiEditorMentionMenuItem.vue +29 -8
- package/vue/UiEditorSlashMenu.vue +85 -16
- package/vue/UiEditorSlashMenuGroup.vue +14 -4
- package/vue/UiEditorSlashMenuItem.vue +43 -12
- package/vue/UiEditorTableContextMenu.d.ts +1 -1
- package/vue/UiEditorTableContextMenu.vue +95 -19
- package/vue/UiEditorTableOverlay.vue +91 -7
- package/vue/UiEditorTableToolbar.vue +105 -16
- package/vue/UiEditorToolbar.vue +15 -4
- package/vue/UiFloatingActionButton.vue +31 -8
- package/vue/UiFormField.d.ts +1 -1
- package/vue/UiFormField.vue +31 -8
- package/vue/UiGrid.vue +30 -8
- package/vue/UiIcon.vue +15 -4
- package/vue/UiIconButton.vue +70 -24
- package/vue/UiInput.vue +114 -39
- package/vue/UiInputGroup.vue +15 -4
- package/vue/UiList.vue +47 -16
- package/vue/UiListItem.vue +24 -6
- package/vue/UiListbox.d.ts +3 -3
- package/vue/UiListbox.vue +72 -24
- package/vue/UiMenu.vue +55 -15
- package/vue/UiMenuGroup.vue +14 -4
- package/vue/UiMenuItem.d.ts +4 -4
- package/vue/UiMenuItem.vue +77 -27
- package/vue/UiMeter.vue +65 -16
- package/vue/UiNavItem.vue +48 -24
- package/vue/UiPageHeader.vue +16 -4
- package/vue/UiPopover.vue +46 -21
- package/vue/UiRadio.d.ts +4 -4
- package/vue/UiRadio.vue +58 -15
- package/vue/UiRadioGroup.d.ts +3 -3
- package/vue/UiRadioGroup.vue +66 -17
- package/vue/UiReel.d.ts +1 -1
- package/vue/UiReel.vue +31 -8
- package/vue/UiScrollArea.vue +16 -4
- package/vue/UiSearchResultRow.vue +23 -6
- package/vue/UiSearchShell.vue +38 -11
- package/vue/UiSection.vue +33 -8
- package/vue/UiSelect.d.ts +1 -1
- package/vue/UiSelect.vue +45 -20
- package/vue/UiSeparator.vue +16 -4
- package/vue/UiSidebar.d.ts +2 -2
- package/vue/UiSidebar.vue +86 -22
- package/vue/UiSpinner.vue +23 -6
- package/vue/UiStack.vue +31 -8
- package/vue/UiStatusMessage.vue +32 -8
- package/vue/UiSwitch.d.ts +4 -4
- package/vue/UiSwitch.vue +57 -15
- package/vue/UiSwitcher.vue +41 -17
- package/vue/UiTable.vue +24 -6
- package/vue/UiTabs.vue +60 -14
- package/vue/UiText.vue +98 -35
- package/vue/UiTextarea.d.ts +1 -1
- package/vue/UiTextarea.vue +67 -26
- package/vue/UiToast.vue +24 -6
- package/vue/UiToastRegion.vue +41 -13
- package/vue/UiTooltip.d.ts +1 -1
- package/vue/UiTooltip.vue +85 -30
- package/vue/UiTopBar.vue +1 -1
- package/vue/UiTree.vue +56 -14
- package/vue/UiTreeItem.d.ts +3 -3
- package/vue/UiTreeItem.vue +147 -36
- package/vue/chunks/UiActionBar.js +1 -1
- package/vue/chunks/UiAffordanceScope.js +34 -7
- package/vue/chunks/UiAvatar.js +141 -21
- package/vue/chunks/UiAvatarGroup.js +83 -16
- package/vue/chunks/UiBadge.js +57 -19
- package/vue/chunks/UiBreadcrumbItem.js +19 -6
- package/vue/chunks/UiBreadcrumbs.js +19 -6
- package/vue/chunks/UiButton.js +194 -42
- package/vue/chunks/UiCallout.js +27 -13
- package/vue/chunks/UiCard.js +83 -25
- package/vue/chunks/UiCheckbox.js +104 -17
- package/vue/chunks/UiCluster.js +70 -25
- package/vue/chunks/UiCombobox.js +441 -46
- package/vue/chunks/UiContainer.js +36 -11
- package/vue/chunks/UiContextMenu.js +33 -7
- package/vue/chunks/UiCover.js +20 -6
- package/vue/chunks/UiDescriptionItem.js +18 -5
- package/vue/chunks/UiDescriptionList.js +54 -17
- package/vue/chunks/UiDialog.js +115 -23
- package/vue/chunks/UiDisclosure.js +110 -24
- package/vue/chunks/UiEditable.js +146 -18
- package/vue/chunks/UiEditorInsertTableGrid.js +65 -10
- package/vue/chunks/UiEditorMentionMenu.js +210 -14
- package/vue/chunks/UiEditorMentionMenuItem.js +43 -8
- package/vue/chunks/UiEditorSlashMenu.js +186 -12
- package/vue/chunks/UiEditorSlashMenuGroup.js +19 -6
- package/vue/chunks/UiEditorSlashMenuItem.js +65 -10
- package/vue/chunks/UiEditorTableContextMenu.js +116 -16
- package/vue/chunks/UiEditorTableOverlay.js +188 -7
- package/vue/chunks/UiEditorTableToolbar.js +125 -16
- package/vue/chunks/UiEditorToolbar.js +19 -6
- package/vue/chunks/UiFloatingActionButton.js +43 -8
- package/vue/chunks/UiFormField.js +43 -8
- package/vue/chunks/UiGrid.js +52 -18
- package/vue/chunks/UiIcon.js +19 -6
- package/vue/chunks/UiIconButton.js +107 -21
- package/vue/chunks/UiInput.js +309 -30
- package/vue/chunks/UiInputGroup.js +19 -6
- package/vue/chunks/UiList.js +62 -10
- package/vue/chunks/UiListItem.js +33 -7
- package/vue/chunks/UiListbox.js +105 -13
- package/vue/chunks/UiMenu.js +79 -11
- package/vue/chunks/UiMenuGroup.js +19 -6
- package/vue/chunks/UiMenuItem.js +93 -28
- package/vue/chunks/UiMeter.js +96 -19
- package/vue/chunks/UiNavItem.js +74 -17
- package/vue/chunks/UiPageHeader.js +20 -6
- package/vue/chunks/UiPopover.js +58 -21
- package/vue/chunks/UiRadio.js +82 -15
- package/vue/chunks/UiRadioGroup.js +89 -12
- package/vue/chunks/UiReel.js +53 -18
- package/vue/chunks/UiScrollArea.js +20 -6
- package/vue/chunks/UiSearchResultRow.js +32 -7
- package/vue/chunks/UiSearchShell.js +55 -9
- package/vue/chunks/UiSection.js +49 -12
- package/vue/chunks/UiSelect.js +68 -13
- package/vue/chunks/UiSeparator.js +20 -6
- package/vue/chunks/UiSidebar.js +123 -19
- package/vue/chunks/UiSpinner.js +33 -7
- package/vue/chunks/UiStack.js +59 -24
- package/vue/chunks/UiStatusMessage.js +53 -16
- package/vue/chunks/UiSwitch.js +82 -15
- package/vue/chunks/UiSwitcher.js +70 -25
- package/vue/chunks/UiTable.js +33 -7
- package/vue/chunks/UiTabs.js +81 -11
- package/vue/chunks/UiText.js +169 -58
- package/vue/chunks/UiTextarea.js +101 -16
- package/vue/chunks/UiToast.js +39 -13
- package/vue/chunks/UiToastRegion.js +41 -14
- package/vue/chunks/UiTooltip.js +113 -30
- package/vue/chunks/UiTopBar.js +1 -1
- package/vue/chunks/UiTree.js +82 -15
- package/vue/chunks/UiTreeItem.js +184 -22
- package/vue/chunks/props.js +271 -35
- package/vue/components.css +1197 -1197
- package/vue/editor/index.js +5 -2
- package/vue/editor/primitives.d.ts +4 -1
- package/vue/host.ts +6 -6
package/vue/UiInput.vue
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script
|
|
3
3
|
setup
|
|
4
4
|
lang="ts"
|
|
@@ -23,10 +23,120 @@ import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
|
|
|
23
23
|
import type { PropType } from 'vue'
|
|
24
24
|
import { readBoundControl, vBindControl } from './control'
|
|
25
25
|
import { createDispatch, useComponentHost } from './host'
|
|
26
|
-
import { checkedProp, selectedPropNode } from './props'
|
|
26
|
+
import { checkedProp, selectedPropNode, vPropValidity } from './props'
|
|
27
27
|
|
|
28
28
|
defineOptions({ inheritAttrs: false })
|
|
29
29
|
|
|
30
|
+
const propValidityContract = {
|
|
31
|
+
props: {
|
|
32
|
+
disabled: {
|
|
33
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
34
|
+
required: false,
|
|
35
|
+
target: { attribute: 'disabled' },
|
|
36
|
+
description: 'Prevents editing and form submission.',
|
|
37
|
+
default: false,
|
|
38
|
+
},
|
|
39
|
+
invalid: {
|
|
40
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
41
|
+
required: false,
|
|
42
|
+
target: { attribute: 'aria-invalid' },
|
|
43
|
+
description: 'Exposes invalid state to assistive technology and styling.',
|
|
44
|
+
default: false,
|
|
45
|
+
},
|
|
46
|
+
readonly: {
|
|
47
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
48
|
+
required: false,
|
|
49
|
+
target: { attribute: 'readonly' },
|
|
50
|
+
description: 'Allows selection without allowing edits.',
|
|
51
|
+
default: false,
|
|
52
|
+
},
|
|
53
|
+
required: {
|
|
54
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
55
|
+
required: false,
|
|
56
|
+
target: { attribute: 'required' },
|
|
57
|
+
description: 'Marks the control as required for form validation.',
|
|
58
|
+
default: false,
|
|
59
|
+
},
|
|
60
|
+
size: {
|
|
61
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
62
|
+
required: false,
|
|
63
|
+
target: { attribute: 'size' },
|
|
64
|
+
description:
|
|
65
|
+
'Height, padding, and type size, matching Button\'s sizes so a field and a button of one size share a row. sm is the small control height (2rem by default)\n with smaller text, for compact rows such as a table row or a filter bar; md is the standard control height; lg is taller with roomier padding. Under a\n coarse pointer, sm grows to the 44px touch minimum and keeps body-size text. Change it after render through this option; the element\'s size property is\n the native one.',
|
|
66
|
+
values: ['sm', 'md', 'lg'],
|
|
67
|
+
default: 'md',
|
|
68
|
+
},
|
|
69
|
+
type: {
|
|
70
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
71
|
+
required: false,
|
|
72
|
+
target: { attribute: 'type' },
|
|
73
|
+
description:
|
|
74
|
+
'The native input mode. Number and range modes accept numeric values; the other supported modes accept strings.',
|
|
75
|
+
values: [
|
|
76
|
+
'text',
|
|
77
|
+
'search',
|
|
78
|
+
'tel',
|
|
79
|
+
'url',
|
|
80
|
+
'email',
|
|
81
|
+
'password',
|
|
82
|
+
'date',
|
|
83
|
+
'month',
|
|
84
|
+
'week',
|
|
85
|
+
'time',
|
|
86
|
+
'datetime-local',
|
|
87
|
+
'number',
|
|
88
|
+
'range',
|
|
89
|
+
'color',
|
|
90
|
+
],
|
|
91
|
+
default: 'text',
|
|
92
|
+
},
|
|
93
|
+
value: {
|
|
94
|
+
type: {
|
|
95
|
+
kind: 'selected',
|
|
96
|
+
from: 'type',
|
|
97
|
+
options: [
|
|
98
|
+
{ value: 'text', type: { kind: 'terminal', name: 'string' } },
|
|
99
|
+
{ value: 'search', type: { kind: 'terminal', name: 'string' } },
|
|
100
|
+
{ value: 'tel', type: { kind: 'terminal', name: 'string' } },
|
|
101
|
+
{ value: 'url', type: { kind: 'terminal', name: 'string' } },
|
|
102
|
+
{ value: 'email', type: { kind: 'terminal', name: 'string' } },
|
|
103
|
+
{ value: 'password', type: { kind: 'terminal', name: 'string' } },
|
|
104
|
+
{ value: 'date', type: { kind: 'terminal', name: 'string' } },
|
|
105
|
+
{ value: 'month', type: { kind: 'terminal', name: 'string' } },
|
|
106
|
+
{ value: 'week', type: { kind: 'terminal', name: 'string' } },
|
|
107
|
+
{ value: 'time', type: { kind: 'terminal', name: 'string' } },
|
|
108
|
+
{ value: 'datetime-local', type: { kind: 'terminal', name: 'string' } },
|
|
109
|
+
{ value: 'number', type: { kind: 'terminal', name: 'number' } },
|
|
110
|
+
{ value: 'range', type: { kind: 'terminal', name: 'number' } },
|
|
111
|
+
{ value: 'color', type: { kind: 'terminal', name: 'string' } },
|
|
112
|
+
],
|
|
113
|
+
},
|
|
114
|
+
required: false,
|
|
115
|
+
target: { attribute: 'value' },
|
|
116
|
+
description:
|
|
117
|
+
'The input\'s value: text, or a number for type="number" and type="range" fields. Setting or changing it replaces the live text; between changes the user\'s\n typing stands, so follow input events to keep it in step. A number field keeps text that means the same number, such as 1.0 for 1. It is also the input\'s\n default, so a form reset returns to it.',
|
|
118
|
+
select: {
|
|
119
|
+
from: 'type',
|
|
120
|
+
options: [
|
|
121
|
+
{ value: 'text', type: { kind: 'terminal', name: 'string' } },
|
|
122
|
+
{ value: 'search', type: { kind: 'terminal', name: 'string' } },
|
|
123
|
+
{ value: 'tel', type: { kind: 'terminal', name: 'string' } },
|
|
124
|
+
{ value: 'url', type: { kind: 'terminal', name: 'string' } },
|
|
125
|
+
{ value: 'email', type: { kind: 'terminal', name: 'string' } },
|
|
126
|
+
{ value: 'password', type: { kind: 'terminal', name: 'string' } },
|
|
127
|
+
{ value: 'date', type: { kind: 'terminal', name: 'string' } },
|
|
128
|
+
{ value: 'month', type: { kind: 'terminal', name: 'string' } },
|
|
129
|
+
{ value: 'week', type: { kind: 'terminal', name: 'string' } },
|
|
130
|
+
{ value: 'time', type: { kind: 'terminal', name: 'string' } },
|
|
131
|
+
{ value: 'datetime-local', type: { kind: 'terminal', name: 'string' } },
|
|
132
|
+
{ value: 'number', type: { kind: 'terminal', name: 'number' } },
|
|
133
|
+
{ value: 'range', type: { kind: 'terminal', name: 'number' } },
|
|
134
|
+
{ value: 'color', type: { kind: 'terminal', name: 'string' } },
|
|
135
|
+
],
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
}
|
|
30
140
|
const props = defineProps({
|
|
31
141
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
32
142
|
invalid: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -80,64 +190,32 @@ const checkedProps = computed(() => ({
|
|
|
80
190
|
{ kind: 'terminal', name: 'boolean' },
|
|
81
191
|
false,
|
|
82
192
|
'disabled',
|
|
83
|
-
undefined,
|
|
84
|
-
undefined,
|
|
85
193
|
) as boolean,
|
|
86
194
|
invalid: checkedProp<boolean>(
|
|
87
195
|
props['invalid'],
|
|
88
196
|
{ kind: 'terminal', name: 'boolean' },
|
|
89
197
|
false,
|
|
90
198
|
'invalid',
|
|
91
|
-
undefined,
|
|
92
|
-
undefined,
|
|
93
199
|
) as boolean,
|
|
94
200
|
readonly: checkedProp<boolean>(
|
|
95
201
|
props['readonly'],
|
|
96
202
|
{ kind: 'terminal', name: 'boolean' },
|
|
97
203
|
false,
|
|
98
204
|
'readonly',
|
|
99
|
-
undefined,
|
|
100
|
-
undefined,
|
|
101
205
|
) as boolean,
|
|
102
206
|
required: checkedProp<boolean>(
|
|
103
207
|
props['required'],
|
|
104
208
|
{ kind: 'terminal', name: 'boolean' },
|
|
105
209
|
false,
|
|
106
210
|
'required',
|
|
107
|
-
undefined,
|
|
108
|
-
undefined,
|
|
109
211
|
) as boolean,
|
|
110
212
|
size: checkedProp<'sm' | 'md' | 'lg'>(
|
|
111
213
|
props['size'],
|
|
112
214
|
{ kind: 'terminal', name: 'keyword' },
|
|
113
215
|
false,
|
|
114
216
|
'size',
|
|
115
|
-
undefined,
|
|
116
|
-
['sm', 'md', 'lg'],
|
|
117
217
|
) as 'sm' | 'md' | 'lg',
|
|
118
|
-
type: checkedProp<T0>(
|
|
119
|
-
props['type'],
|
|
120
|
-
{ kind: 'terminal', name: 'keyword' },
|
|
121
|
-
false,
|
|
122
|
-
'type',
|
|
123
|
-
undefined,
|
|
124
|
-
[
|
|
125
|
-
'text',
|
|
126
|
-
'search',
|
|
127
|
-
'tel',
|
|
128
|
-
'url',
|
|
129
|
-
'email',
|
|
130
|
-
'password',
|
|
131
|
-
'date',
|
|
132
|
-
'month',
|
|
133
|
-
'week',
|
|
134
|
-
'time',
|
|
135
|
-
'datetime-local',
|
|
136
|
-
'number',
|
|
137
|
-
'range',
|
|
138
|
-
'color',
|
|
139
|
-
],
|
|
140
|
-
) as T0,
|
|
218
|
+
type: checkedProp<T0>(props['type'], { kind: 'terminal', name: 'keyword' }, false, 'type') as T0,
|
|
141
219
|
value: checkedProp<
|
|
142
220
|
T0 extends 'text' ? string | null
|
|
143
221
|
: T0 extends 'search' ? string | null
|
|
@@ -174,8 +252,6 @@ const checkedProps = computed(() => ({
|
|
|
174
252
|
]),
|
|
175
253
|
false,
|
|
176
254
|
'value',
|
|
177
|
-
undefined,
|
|
178
|
-
undefined,
|
|
179
255
|
),
|
|
180
256
|
modelValue: checkedProp<
|
|
181
257
|
T0 extends 'text' ? string | null
|
|
@@ -213,8 +289,6 @@ const checkedProps = computed(() => ({
|
|
|
213
289
|
]),
|
|
214
290
|
false,
|
|
215
291
|
'modelValue',
|
|
216
|
-
undefined,
|
|
217
|
-
undefined,
|
|
218
292
|
),
|
|
219
293
|
}))
|
|
220
294
|
void checkedProps.value
|
|
@@ -341,6 +415,7 @@ useComponentHost(() => import('../components/ui-input/ui-input.js'), {
|
|
|
341
415
|
:readonly="checkedProps.readonly ?? undefined"
|
|
342
416
|
:required="checkedProps.required ?? undefined"
|
|
343
417
|
:aria-invalid="checkedProps.invalid ?? undefined"
|
|
418
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
344
419
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
345
420
|
:data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
|
|
346
421
|
:data-readonly="reflectedProp('readonly', 'readonly', checkedProps.readonly, undefined, false)"
|
package/vue/UiInputGroup.vue
CHANGED
|
@@ -1,12 +1,24 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
5
|
import { createDispatch, useComponentHost } from './host'
|
|
6
|
-
import { checkedProp } from './props'
|
|
6
|
+
import { checkedProp, vPropValidity } from './props'
|
|
7
7
|
|
|
8
8
|
defineOptions({ inheritAttrs: false })
|
|
9
9
|
|
|
10
|
+
const propValidityContract = {
|
|
11
|
+
props: {
|
|
12
|
+
disabled: {
|
|
13
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'disabled' },
|
|
16
|
+
description:
|
|
17
|
+
'Fades the group\'s framing to match a disabled input inside it. Disable the input itself too.',
|
|
18
|
+
default: false,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
}
|
|
10
22
|
const props = defineProps({
|
|
11
23
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
12
24
|
})
|
|
@@ -16,8 +28,6 @@ const checkedProps = computed(() => ({
|
|
|
16
28
|
{ kind: 'terminal', name: 'boolean' },
|
|
17
29
|
false,
|
|
18
30
|
'disabled',
|
|
19
|
-
undefined,
|
|
20
|
-
undefined,
|
|
21
31
|
) as boolean,
|
|
22
32
|
}))
|
|
23
33
|
void checkedProps.value
|
|
@@ -100,6 +110,7 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
|
|
|
100
110
|
<div
|
|
101
111
|
data-component="ui-input-group"
|
|
102
112
|
v-bind="nativeAttrs($attrs)"
|
|
113
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
103
114
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
104
115
|
:data-ui-input-group-state="hostState || undefined"
|
|
105
116
|
ref="root"
|
package/vue/UiList.vue
CHANGED
|
@@ -1,12 +1,52 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import { computed, getCurrentInstance, useTemplateRef, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
5
|
import { preserveRootFocus } from './host'
|
|
6
|
-
import { checkedProp } from './props'
|
|
6
|
+
import { checkedProp, vPropValidity } from './props'
|
|
7
7
|
|
|
8
8
|
defineOptions({ inheritAttrs: false })
|
|
9
9
|
|
|
10
|
+
const propValidityContract = {
|
|
11
|
+
props: {
|
|
12
|
+
as: {
|
|
13
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'as' },
|
|
16
|
+
description:
|
|
17
|
+
'The native list element. Use ol when item order matters; its native numbers are shown.',
|
|
18
|
+
values: ['ul', 'ol'],
|
|
19
|
+
default: 'ul',
|
|
20
|
+
},
|
|
21
|
+
density: {
|
|
22
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
23
|
+
required: false,
|
|
24
|
+
target: { attribute: 'density' },
|
|
25
|
+
description:
|
|
26
|
+
'How much room each item takes. comfortable is a full row, easy to point at, for lists of things to open; compact sets items close together with no row\n padding, for a short list of facts inside other content, such as the features a plan includes.',
|
|
27
|
+
values: ['comfortable', 'compact'],
|
|
28
|
+
default: 'comfortable',
|
|
29
|
+
},
|
|
30
|
+
layout: {
|
|
31
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
32
|
+
required: false,
|
|
33
|
+
target: { attribute: 'layout' },
|
|
34
|
+
description:
|
|
35
|
+
'How the items are laid out. Rows stack the items one per line, for a list read top to bottom. Grid sets them in as many columns as fit, each at least\n --ui-list-min-item-width (14rem) wide, for card items such as pinned or featured entries.',
|
|
36
|
+
values: ['rows', 'grid'],
|
|
37
|
+
default: 'rows',
|
|
38
|
+
},
|
|
39
|
+
markers: {
|
|
40
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
41
|
+
required: false,
|
|
42
|
+
target: { attribute: 'markers' },
|
|
43
|
+
description:
|
|
44
|
+
'Show disc bullets for a ul of native li elements. An ol always shows native numbers.',
|
|
45
|
+
values: ['none', 'disc'],
|
|
46
|
+
default: 'none',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
}
|
|
10
50
|
const props = defineProps({
|
|
11
51
|
as: { type: null as unknown as PropType<'ul' | 'ol' | null>, default: 'ul' },
|
|
12
52
|
density: {
|
|
@@ -17,37 +57,26 @@ const props = defineProps({
|
|
|
17
57
|
markers: { type: null as unknown as PropType<'none' | 'disc' | null>, default: 'none' },
|
|
18
58
|
})
|
|
19
59
|
const checkedProps = computed(() => ({
|
|
20
|
-
as: checkedProp<'ul' | 'ol'>(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
false,
|
|
24
|
-
'as',
|
|
25
|
-
undefined,
|
|
26
|
-
['ul', 'ol'],
|
|
27
|
-
) as 'ul' | 'ol',
|
|
60
|
+
as: checkedProp<'ul' | 'ol'>(props['as'], { kind: 'terminal', name: 'keyword' }, false, 'as') as
|
|
61
|
+
| 'ul'
|
|
62
|
+
| 'ol',
|
|
28
63
|
density: checkedProp<'comfortable' | 'compact'>(
|
|
29
64
|
props['density'],
|
|
30
65
|
{ kind: 'terminal', name: 'keyword' },
|
|
31
66
|
false,
|
|
32
67
|
'density',
|
|
33
|
-
undefined,
|
|
34
|
-
['comfortable', 'compact'],
|
|
35
68
|
) as 'comfortable' | 'compact',
|
|
36
69
|
layout: checkedProp<'rows' | 'grid'>(
|
|
37
70
|
props['layout'],
|
|
38
71
|
{ kind: 'terminal', name: 'keyword' },
|
|
39
72
|
false,
|
|
40
73
|
'layout',
|
|
41
|
-
undefined,
|
|
42
|
-
['rows', 'grid'],
|
|
43
74
|
) as 'rows' | 'grid',
|
|
44
75
|
markers: checkedProp<'none' | 'disc'>(
|
|
45
76
|
props['markers'],
|
|
46
77
|
{ kind: 'terminal', name: 'keyword' },
|
|
47
78
|
false,
|
|
48
79
|
'markers',
|
|
49
|
-
undefined,
|
|
50
|
-
['none', 'disc'],
|
|
51
80
|
) as 'none' | 'disc',
|
|
52
81
|
}))
|
|
53
82
|
void checkedProps.value
|
|
@@ -128,6 +157,7 @@ const hostState = computed(() =>
|
|
|
128
157
|
v-if="checkedProps.as === 'ol'"
|
|
129
158
|
data-component="ui-list"
|
|
130
159
|
v-bind="nativeAttrs($attrs)"
|
|
160
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
131
161
|
:data-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
|
|
132
162
|
:data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
|
|
133
163
|
:data-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
|
|
@@ -142,6 +172,7 @@ const hostState = computed(() =>
|
|
|
142
172
|
data-component="ui-list"
|
|
143
173
|
role="list"
|
|
144
174
|
v-bind="nativeAttrs($attrs)"
|
|
175
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
145
176
|
:data-as="reflectedProp('as', 'as', checkedProps.as, undefined, false)"
|
|
146
177
|
:data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
|
|
147
178
|
:data-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
|
package/vue/UiListItem.vue
CHANGED
|
@@ -1,11 +1,32 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
|
|
4
4
|
import type { PropType } from 'vue'
|
|
5
|
-
import { checkedProp } from './props'
|
|
5
|
+
import { checkedProp, vPropValidity } from './props'
|
|
6
6
|
|
|
7
7
|
defineOptions({ inheritAttrs: false })
|
|
8
8
|
|
|
9
|
+
const propValidityContract = {
|
|
10
|
+
props: {
|
|
11
|
+
current: {
|
|
12
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'aria-current' },
|
|
15
|
+
description:
|
|
16
|
+
'Marks the item as the current one, such as the site you are in: it takes the selected surface and aria-current="true", which assistive technology\n announces. Set it on one item at a time.',
|
|
17
|
+
default: false,
|
|
18
|
+
},
|
|
19
|
+
variant: {
|
|
20
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: 'variant' },
|
|
23
|
+
description:
|
|
24
|
+
'How the item is drawn. A row is flat and takes a hover surface when it is a link, for items read down a list. A card sits on a raised, bordered surface,\n for items set in a grid (a List with layout="grid"). Both have the same parts: leading, title, description, and trailing.',
|
|
25
|
+
values: ['row', 'card'],
|
|
26
|
+
default: 'row',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
}
|
|
9
30
|
const props = defineProps({
|
|
10
31
|
current: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
11
32
|
variant: { type: null as unknown as PropType<'row' | 'card' | null>, default: 'row' },
|
|
@@ -16,16 +37,12 @@ const checkedProps = computed(() => ({
|
|
|
16
37
|
{ kind: 'terminal', name: 'boolean' },
|
|
17
38
|
false,
|
|
18
39
|
'current',
|
|
19
|
-
undefined,
|
|
20
|
-
undefined,
|
|
21
40
|
) as boolean,
|
|
22
41
|
variant: checkedProp<'row' | 'card'>(
|
|
23
42
|
props['variant'],
|
|
24
43
|
{ kind: 'terminal', name: 'keyword' },
|
|
25
44
|
false,
|
|
26
45
|
'variant',
|
|
27
|
-
undefined,
|
|
28
|
-
['row', 'card'],
|
|
29
46
|
) as 'row' | 'card',
|
|
30
47
|
}))
|
|
31
48
|
void checkedProps.value
|
|
@@ -99,6 +116,7 @@ const hostState = computed(() =>
|
|
|
99
116
|
data-component="ui-list-item"
|
|
100
117
|
v-bind="nativeAttrs($attrs)"
|
|
101
118
|
:aria-current="checkedProps.current ?? undefined"
|
|
119
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
102
120
|
:data-current="reflectedProp('current', 'current', checkedProps.current, undefined, false)"
|
|
103
121
|
:data-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
|
|
104
122
|
:data-ui-list-item-state="hostState || undefined"
|
package/vue/UiListbox.d.ts
CHANGED
|
@@ -37,12 +37,12 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
37
37
|
default: null;
|
|
38
38
|
};
|
|
39
39
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
40
|
-
"update:value": (value: string) => any;
|
|
41
40
|
change: (event: CustomEvent<{
|
|
42
41
|
readonly value: string | null;
|
|
43
42
|
readonly values: readonly (string)[];
|
|
44
43
|
readonly trigger: "keyboard" | "pointer";
|
|
45
44
|
}>) => any;
|
|
45
|
+
"update:value": (value: string) => any;
|
|
46
46
|
"update:values": (value: readonly string[]) => any;
|
|
47
47
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
48
48
|
disabled: {
|
|
@@ -78,21 +78,21 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
78
78
|
default: null;
|
|
79
79
|
};
|
|
80
80
|
}>> & Readonly<{
|
|
81
|
-
"onUpdate:value"?: ((value: string) => any) | undefined;
|
|
82
81
|
onChange?: ((event: CustomEvent<{
|
|
83
82
|
readonly value: string | null;
|
|
84
83
|
readonly values: readonly (string)[];
|
|
85
84
|
readonly trigger: "keyboard" | "pointer";
|
|
86
85
|
}>) => any) | undefined;
|
|
86
|
+
"onUpdate:value"?: ((value: string) => any) | undefined;
|
|
87
87
|
"onUpdate:values"?: ((value: readonly string[]) => any) | undefined;
|
|
88
88
|
}>, {
|
|
89
89
|
values: readonly string[] | null;
|
|
90
90
|
name: string | null;
|
|
91
91
|
value: string | null;
|
|
92
|
+
invalid: boolean | null;
|
|
92
93
|
rows: number | null;
|
|
93
94
|
disabled: boolean | null;
|
|
94
95
|
multiple: boolean | null;
|
|
95
|
-
invalid: boolean | null;
|
|
96
96
|
required: boolean | null;
|
|
97
97
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
98
98
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
package/vue/UiListbox.vue
CHANGED
|
@@ -1,21 +1,83 @@
|
|
|
1
|
-
<!-- Generated by HTML Next 1.0.0-alpha.
|
|
1
|
+
<!-- Generated by HTML Next 1.0.0-alpha.15 for Vue 3.5. Do not edit. -->
|
|
2
2
|
<script setup lang="ts">
|
|
3
3
|
import {
|
|
4
4
|
computed,
|
|
5
5
|
defineComponent,
|
|
6
6
|
getCurrentInstance,
|
|
7
7
|
h,
|
|
8
|
+
provide,
|
|
8
9
|
ref,
|
|
9
10
|
useTemplateRef,
|
|
10
11
|
watchSyncEffect,
|
|
11
12
|
} from 'vue'
|
|
12
13
|
import type { PropType, VNode } from 'vue'
|
|
13
14
|
import { createDispatch, useComponentHost } from './host'
|
|
14
|
-
import { checkedProp } from './props'
|
|
15
|
+
import { checkedProp, vPropValidity } from './props'
|
|
15
16
|
import UiScrollArea from './UiScrollArea.vue'
|
|
16
17
|
|
|
17
18
|
defineOptions({ inheritAttrs: false })
|
|
18
19
|
|
|
20
|
+
const propValidityContract = {
|
|
21
|
+
props: {
|
|
22
|
+
disabled: {
|
|
23
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
24
|
+
required: false,
|
|
25
|
+
target: { attribute: 'aria-disabled' },
|
|
26
|
+
description: 'Prevents selection and form submission.',
|
|
27
|
+
default: false,
|
|
28
|
+
},
|
|
29
|
+
invalid: {
|
|
30
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
31
|
+
required: false,
|
|
32
|
+
target: { attribute: 'invalid' },
|
|
33
|
+
description: 'Exposes invalid state to assistive technology and styling.',
|
|
34
|
+
default: false,
|
|
35
|
+
},
|
|
36
|
+
multiple: {
|
|
37
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
38
|
+
required: false,
|
|
39
|
+
target: { attribute: 'aria-multiselectable' },
|
|
40
|
+
description: 'Allows several choices, each shown with a checkmark when selected.',
|
|
41
|
+
default: false,
|
|
42
|
+
},
|
|
43
|
+
name: {
|
|
44
|
+
type: { kind: 'terminal', name: 'string' },
|
|
45
|
+
required: false,
|
|
46
|
+
target: { attribute: 'name' },
|
|
47
|
+
description: 'The form field name used for each selected value.',
|
|
48
|
+
default: '',
|
|
49
|
+
},
|
|
50
|
+
required: {
|
|
51
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
52
|
+
required: false,
|
|
53
|
+
target: { attribute: 'aria-required' },
|
|
54
|
+
description: 'Requires at least one choice before form submission.',
|
|
55
|
+
default: false,
|
|
56
|
+
},
|
|
57
|
+
rows: {
|
|
58
|
+
type: { kind: 'terminal', name: 'number' },
|
|
59
|
+
required: false,
|
|
60
|
+
target: { attribute: 'size' },
|
|
61
|
+
description:
|
|
62
|
+
'The maximum number of choices visible before the list scrolls. Use at least two.',
|
|
63
|
+
default: 5,
|
|
64
|
+
},
|
|
65
|
+
value: {
|
|
66
|
+
type: { kind: 'terminal', name: 'string' },
|
|
67
|
+
required: false,
|
|
68
|
+
target: { attribute: 'value' },
|
|
69
|
+
description:
|
|
70
|
+
'The initial or externally set single selection. Authored selected options work when it is omitted.',
|
|
71
|
+
},
|
|
72
|
+
values: {
|
|
73
|
+
type: { kind: 'list', item: { kind: 'terminal', name: 'string' } },
|
|
74
|
+
required: false,
|
|
75
|
+
target: { attribute: 'values' },
|
|
76
|
+
description:
|
|
77
|
+
'The initial or externally set selections in multiple mode. Authored selected options work when it is omitted.',
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
}
|
|
19
81
|
const props = defineProps({
|
|
20
82
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
21
83
|
invalid: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -32,64 +94,43 @@ const checkedProps = computed(() => ({
|
|
|
32
94
|
{ kind: 'terminal', name: 'boolean' },
|
|
33
95
|
false,
|
|
34
96
|
'disabled',
|
|
35
|
-
undefined,
|
|
36
|
-
undefined,
|
|
37
97
|
) as boolean,
|
|
38
98
|
invalid: checkedProp<boolean>(
|
|
39
99
|
props['invalid'],
|
|
40
100
|
{ kind: 'terminal', name: 'boolean' },
|
|
41
101
|
false,
|
|
42
102
|
'invalid',
|
|
43
|
-
undefined,
|
|
44
|
-
undefined,
|
|
45
103
|
) as boolean,
|
|
46
104
|
multiple: checkedProp<boolean>(
|
|
47
105
|
props['multiple'],
|
|
48
106
|
{ kind: 'terminal', name: 'boolean' },
|
|
49
107
|
false,
|
|
50
108
|
'multiple',
|
|
51
|
-
undefined,
|
|
52
|
-
undefined,
|
|
53
109
|
) as boolean,
|
|
54
110
|
name: checkedProp<string>(
|
|
55
111
|
props['name'],
|
|
56
112
|
{ kind: 'terminal', name: 'string' },
|
|
57
113
|
false,
|
|
58
114
|
'name',
|
|
59
|
-
undefined,
|
|
60
|
-
undefined,
|
|
61
115
|
) as string,
|
|
62
116
|
required: checkedProp<boolean>(
|
|
63
117
|
props['required'],
|
|
64
118
|
{ kind: 'terminal', name: 'boolean' },
|
|
65
119
|
false,
|
|
66
120
|
'required',
|
|
67
|
-
undefined,
|
|
68
|
-
undefined,
|
|
69
121
|
) as boolean,
|
|
70
122
|
rows: checkedProp<number>(
|
|
71
123
|
props['rows'],
|
|
72
124
|
{ kind: 'terminal', name: 'number' },
|
|
73
125
|
false,
|
|
74
126
|
'rows',
|
|
75
|
-
undefined,
|
|
76
|
-
undefined,
|
|
77
127
|
) as number,
|
|
78
|
-
value: checkedProp<string>(
|
|
79
|
-
props['value'],
|
|
80
|
-
{ kind: 'terminal', name: 'string' },
|
|
81
|
-
false,
|
|
82
|
-
'value',
|
|
83
|
-
undefined,
|
|
84
|
-
undefined,
|
|
85
|
-
),
|
|
128
|
+
value: checkedProp<string>(props['value'], { kind: 'terminal', name: 'string' }, false, 'value'),
|
|
86
129
|
values: checkedProp<readonly (string)[]>(
|
|
87
130
|
props['values'],
|
|
88
131
|
{ kind: 'list', item: { kind: 'terminal', name: 'string' } },
|
|
89
132
|
false,
|
|
90
133
|
'values',
|
|
91
|
-
undefined,
|
|
92
|
-
undefined,
|
|
93
134
|
),
|
|
94
135
|
}))
|
|
95
136
|
void checkedProps.value
|
|
@@ -203,6 +244,12 @@ const guardedBinding2 = computed(() => {
|
|
|
203
244
|
}
|
|
204
245
|
return guardedBinding2Previous = hasSelection.value ? true : undefined
|
|
205
246
|
})
|
|
247
|
+
provide('html-next:ui-listbox:choices', choices)
|
|
248
|
+
provide('html-next:ui-listbox:selection', selection)
|
|
249
|
+
provide('html-next:ui-listbox:hasSelection', hasSelection)
|
|
250
|
+
provide('html-next:ui-listbox:active', active)
|
|
251
|
+
provide('html-next:ui-listbox:uid', uid)
|
|
252
|
+
provide('html-next:ui-listbox:validationError', validationError)
|
|
206
253
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
207
254
|
if (
|
|
208
255
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -303,6 +350,7 @@ function uniqueKeys<T>(
|
|
|
303
350
|
:aria-required="checkedProps.required ?? undefined"
|
|
304
351
|
:aria-invalid="guarded"
|
|
305
352
|
:style="{ '--_rows': checkedProps.rows ?? undefined }"
|
|
353
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
306
354
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
307
355
|
:data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
|
|
308
356
|
:data-multiple="reflectedProp('multiple', 'multiple', checkedProps.multiple, undefined, false)"
|