@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/UiSearchShell.vue
CHANGED
|
@@ -1,12 +1,45 @@
|
|
|
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
|
-
import { computed, getCurrentInstance, ref, useTemplateRef, watchSyncEffect } from 'vue'
|
|
3
|
+
import { computed, getCurrentInstance, provide, ref, useTemplateRef, 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
|
+
dismissible: {
|
|
13
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'dismissible' },
|
|
16
|
+
description:
|
|
17
|
+
'Allows backdrop activation to close the search surface. Escape always closes it.',
|
|
18
|
+
default: false,
|
|
19
|
+
},
|
|
20
|
+
label: {
|
|
21
|
+
type: { kind: 'terminal', name: 'string' },
|
|
22
|
+
required: false,
|
|
23
|
+
target: { attribute: 'aria-label' },
|
|
24
|
+
description: 'Provides the native dialog\'s accessible name.',
|
|
25
|
+
default: 'Search',
|
|
26
|
+
},
|
|
27
|
+
modal: {
|
|
28
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
29
|
+
required: false,
|
|
30
|
+
target: { attribute: 'modal' },
|
|
31
|
+
description: 'Makes the rest of the page inert while the search surface is open.',
|
|
32
|
+
default: false,
|
|
33
|
+
},
|
|
34
|
+
open: {
|
|
35
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
36
|
+
required: false,
|
|
37
|
+
target: { attribute: 'open' },
|
|
38
|
+
description: 'Shows the search surface.',
|
|
39
|
+
default: false,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
}
|
|
10
43
|
const props = defineProps({
|
|
11
44
|
dismissible: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
12
45
|
label: { type: null as unknown as PropType<string | null>, default: 'Search' },
|
|
@@ -19,32 +52,24 @@ const checkedProps = computed(() => ({
|
|
|
19
52
|
{ kind: 'terminal', name: 'boolean' },
|
|
20
53
|
false,
|
|
21
54
|
'dismissible',
|
|
22
|
-
undefined,
|
|
23
|
-
undefined,
|
|
24
55
|
) as boolean,
|
|
25
56
|
label: checkedProp<string>(
|
|
26
57
|
props['label'],
|
|
27
58
|
{ kind: 'terminal', name: 'string' },
|
|
28
59
|
false,
|
|
29
60
|
'label',
|
|
30
|
-
undefined,
|
|
31
|
-
undefined,
|
|
32
61
|
) as string,
|
|
33
62
|
modal: checkedProp<boolean>(
|
|
34
63
|
props['modal'],
|
|
35
64
|
{ kind: 'terminal', name: 'boolean' },
|
|
36
65
|
false,
|
|
37
66
|
'modal',
|
|
38
|
-
undefined,
|
|
39
|
-
undefined,
|
|
40
67
|
) as boolean,
|
|
41
68
|
open: checkedProp<boolean>(
|
|
42
69
|
props['open'],
|
|
43
70
|
{ kind: 'terminal', name: 'boolean' },
|
|
44
71
|
false,
|
|
45
72
|
'open',
|
|
46
|
-
undefined,
|
|
47
|
-
undefined,
|
|
48
73
|
) as boolean,
|
|
49
74
|
}))
|
|
50
75
|
void checkedProps.value
|
|
@@ -100,6 +125,7 @@ const emit = defineEmits<{
|
|
|
100
125
|
const root = ref<HTMLElement | null>(null)
|
|
101
126
|
const dialogElement = useTemplateRef<HTMLElement>('dialog')
|
|
102
127
|
const internalOpen = ref(false)
|
|
128
|
+
provide('html-next:ui-search-shell:internalOpen', internalOpen)
|
|
103
129
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
104
130
|
if (
|
|
105
131
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -152,6 +178,7 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
|
|
|
152
178
|
<div
|
|
153
179
|
data-component="ui-search-shell"
|
|
154
180
|
v-bind="nativeAttrs($attrs)"
|
|
181
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
155
182
|
:data-dismissible="reflectedProp('dismissible', 'dismissible', checkedProps.dismissible, undefined, false)"
|
|
156
183
|
:data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
|
|
157
184
|
:data-modal="reflectedProp('modal', 'modal', checkedProps.modal, undefined, false)"
|
package/vue/UiSection.vue
CHANGED
|
@@ -1,11 +1,41 @@
|
|
|
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
|
+
heading: {
|
|
12
|
+
type: { kind: 'terminal', name: 'string' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'heading' },
|
|
15
|
+
description:
|
|
16
|
+
'The section\'s heading, an h2. Leave it empty for a section with no visible heading, and name the section with aria-label.',
|
|
17
|
+
default: '',
|
|
18
|
+
},
|
|
19
|
+
tone: {
|
|
20
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: 'tone' },
|
|
23
|
+
description:
|
|
24
|
+
'danger marks a section of destructive actions (a danger zone): its heading and a card\'s border take the danger colour.',
|
|
25
|
+
values: ['neutral', 'danger'],
|
|
26
|
+
default: 'neutral',
|
|
27
|
+
},
|
|
28
|
+
variant: {
|
|
29
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
30
|
+
required: false,
|
|
31
|
+
target: { attribute: 'variant' },
|
|
32
|
+
description:
|
|
33
|
+
'How the section is set apart. plain is a heading and content in the flow of the page; card sits it on a bordered surface, for a settings group; divided\n rules it off from the section before it, for a long form.',
|
|
34
|
+
values: ['plain', 'card', 'divided'],
|
|
35
|
+
default: 'plain',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
}
|
|
9
39
|
const props = defineProps({
|
|
10
40
|
heading: { type: null as unknown as PropType<string | null>, default: '' },
|
|
11
41
|
tone: { type: null as unknown as PropType<'neutral' | 'danger' | null>, default: 'neutral' },
|
|
@@ -20,24 +50,18 @@ const checkedProps = computed(() => ({
|
|
|
20
50
|
{ kind: 'terminal', name: 'string' },
|
|
21
51
|
false,
|
|
22
52
|
'heading',
|
|
23
|
-
undefined,
|
|
24
|
-
undefined,
|
|
25
53
|
) as string,
|
|
26
54
|
tone: checkedProp<'neutral' | 'danger'>(
|
|
27
55
|
props['tone'],
|
|
28
56
|
{ kind: 'terminal', name: 'keyword' },
|
|
29
57
|
false,
|
|
30
58
|
'tone',
|
|
31
|
-
undefined,
|
|
32
|
-
['neutral', 'danger'],
|
|
33
59
|
) as 'neutral' | 'danger',
|
|
34
60
|
variant: checkedProp<'plain' | 'card' | 'divided'>(
|
|
35
61
|
props['variant'],
|
|
36
62
|
{ kind: 'terminal', name: 'keyword' },
|
|
37
63
|
false,
|
|
38
64
|
'variant',
|
|
39
|
-
undefined,
|
|
40
|
-
['plain', 'card', 'divided'],
|
|
41
65
|
) as 'plain' | 'card' | 'divided',
|
|
42
66
|
}))
|
|
43
67
|
void checkedProps.value
|
|
@@ -111,6 +135,7 @@ const hostState = computed(() =>
|
|
|
111
135
|
<section
|
|
112
136
|
data-component="ui-section"
|
|
113
137
|
v-bind="nativeAttrs($attrs)"
|
|
138
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
114
139
|
:data-heading="reflectedProp('heading', 'heading', checkedProps.heading, undefined, false)"
|
|
115
140
|
:data-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
|
|
116
141
|
:data-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
|
package/vue/UiSelect.d.ts
CHANGED
|
@@ -57,9 +57,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
57
57
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
58
58
|
}>, {
|
|
59
59
|
value: string | null;
|
|
60
|
+
invalid: boolean | null;
|
|
60
61
|
size: "sm" | "md" | "lg" | null;
|
|
61
62
|
disabled: boolean | null;
|
|
62
|
-
invalid: boolean | null;
|
|
63
63
|
required: boolean | null;
|
|
64
64
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
65
65
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
package/vue/UiSelect.vue
CHANGED
|
@@ -1,13 +1,54 @@
|
|
|
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 { readBoundControl, SelectedOptions, vBindControl } from './control'
|
|
6
6
|
import { createDispatch, useComponentHost } from './host'
|
|
7
|
-
import { checkedProp } from './props'
|
|
7
|
+
import { checkedProp, vPropValidity } from './props'
|
|
8
8
|
|
|
9
9
|
defineOptions({ inheritAttrs: false })
|
|
10
10
|
|
|
11
|
+
const propValidityContract = {
|
|
12
|
+
props: {
|
|
13
|
+
disabled: {
|
|
14
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
15
|
+
required: false,
|
|
16
|
+
target: { attribute: 'disabled' },
|
|
17
|
+
description: 'Prevents selection and form submission.',
|
|
18
|
+
default: false,
|
|
19
|
+
},
|
|
20
|
+
invalid: {
|
|
21
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
22
|
+
required: false,
|
|
23
|
+
target: { attribute: 'aria-invalid' },
|
|
24
|
+
description: 'Exposes invalid state to assistive technology and styling.',
|
|
25
|
+
default: false,
|
|
26
|
+
},
|
|
27
|
+
required: {
|
|
28
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
29
|
+
required: false,
|
|
30
|
+
target: { attribute: 'required' },
|
|
31
|
+
description: 'Requires a non-empty option for form validation.',
|
|
32
|
+
default: false,
|
|
33
|
+
},
|
|
34
|
+
size: {
|
|
35
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
36
|
+
required: false,
|
|
37
|
+
target: { attribute: 'size' },
|
|
38
|
+
description:
|
|
39
|
+
'Height, padding, chevron, 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\n default) with smaller text and a smaller chevron, for compact rows such as a table row or a filter bar; md is the standard control height; lg is taller\n with roomier padding. Under a coarse pointer, sm grows to the 44px touch minimum and keeps body-size text. It is not the native size attribute: a select\n is always a single-choice dropdown. Change it after render through this option; the element\'s size property is the native one.',
|
|
40
|
+
values: ['sm', 'md', 'lg'],
|
|
41
|
+
default: 'md',
|
|
42
|
+
},
|
|
43
|
+
value: {
|
|
44
|
+
type: { kind: 'terminal', name: 'string' },
|
|
45
|
+
required: false,
|
|
46
|
+
target: { attribute: 'value' },
|
|
47
|
+
description:
|
|
48
|
+
'The value of the selected option, initially or when set externally. It is also the default, so a form reset returns to it rather than to the first\n option.',
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
}
|
|
11
52
|
const props = defineProps({
|
|
12
53
|
disabled: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
13
54
|
invalid: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -22,48 +63,31 @@ const checkedProps = computed(() => ({
|
|
|
22
63
|
{ kind: 'terminal', name: 'boolean' },
|
|
23
64
|
false,
|
|
24
65
|
'disabled',
|
|
25
|
-
undefined,
|
|
26
|
-
undefined,
|
|
27
66
|
) as boolean,
|
|
28
67
|
invalid: checkedProp<boolean>(
|
|
29
68
|
props['invalid'],
|
|
30
69
|
{ kind: 'terminal', name: 'boolean' },
|
|
31
70
|
false,
|
|
32
71
|
'invalid',
|
|
33
|
-
undefined,
|
|
34
|
-
undefined,
|
|
35
72
|
) as boolean,
|
|
36
73
|
required: checkedProp<boolean>(
|
|
37
74
|
props['required'],
|
|
38
75
|
{ kind: 'terminal', name: 'boolean' },
|
|
39
76
|
false,
|
|
40
77
|
'required',
|
|
41
|
-
undefined,
|
|
42
|
-
undefined,
|
|
43
78
|
) as boolean,
|
|
44
79
|
size: checkedProp<'sm' | 'md' | 'lg'>(
|
|
45
80
|
props['size'],
|
|
46
81
|
{ kind: 'terminal', name: 'keyword' },
|
|
47
82
|
false,
|
|
48
83
|
'size',
|
|
49
|
-
undefined,
|
|
50
|
-
['sm', 'md', 'lg'],
|
|
51
84
|
) as 'sm' | 'md' | 'lg',
|
|
52
|
-
value: checkedProp<string>(
|
|
53
|
-
props['value'],
|
|
54
|
-
{ kind: 'terminal', name: 'string' },
|
|
55
|
-
false,
|
|
56
|
-
'value',
|
|
57
|
-
undefined,
|
|
58
|
-
undefined,
|
|
59
|
-
),
|
|
85
|
+
value: checkedProp<string>(props['value'], { kind: 'terminal', name: 'string' }, false, 'value'),
|
|
60
86
|
modelValue: checkedProp<string | null>(
|
|
61
87
|
props.modelValue,
|
|
62
88
|
{ kind: 'terminal', name: 'string' },
|
|
63
89
|
false,
|
|
64
90
|
'modelValue',
|
|
65
|
-
undefined,
|
|
66
|
-
undefined,
|
|
67
91
|
),
|
|
68
92
|
}))
|
|
69
93
|
void checkedProps.value
|
|
@@ -154,6 +178,7 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
|
|
|
154
178
|
:disabled="checkedProps.disabled ?? undefined"
|
|
155
179
|
:required="checkedProps.required ?? undefined"
|
|
156
180
|
:aria-invalid="checkedProps.invalid ?? undefined"
|
|
181
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
157
182
|
:data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
|
|
158
183
|
:data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
|
|
159
184
|
:data-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
|
package/vue/UiSeparator.vue
CHANGED
|
@@ -1,11 +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, 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
|
+
orientation: {
|
|
12
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'aria-orientation' },
|
|
15
|
+
description:
|
|
16
|
+
'Whether the separator divides stacked content (horizontal) or inline content (vertical).',
|
|
17
|
+
values: ['horizontal', 'vertical'],
|
|
18
|
+
default: 'horizontal',
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
}
|
|
9
22
|
const props = defineProps({
|
|
10
23
|
orientation: {
|
|
11
24
|
type: null as unknown as PropType<'horizontal' | 'vertical' | null>,
|
|
@@ -18,8 +31,6 @@ const checkedProps = computed(() => ({
|
|
|
18
31
|
{ kind: 'terminal', name: 'keyword' },
|
|
19
32
|
false,
|
|
20
33
|
'orientation',
|
|
21
|
-
undefined,
|
|
22
|
-
['horizontal', 'vertical'],
|
|
23
34
|
) as 'horizontal' | 'vertical',
|
|
24
35
|
}))
|
|
25
36
|
void checkedProps.value
|
|
@@ -83,6 +94,7 @@ if (
|
|
|
83
94
|
data-component="ui-separator"
|
|
84
95
|
v-bind="nativeAttrs($attrs)"
|
|
85
96
|
:aria-orientation="checkedProps.orientation ?? undefined"
|
|
97
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
86
98
|
:data-orientation="reflectedProp('orientation', 'orientation', checkedProps.orientation, undefined, false)"
|
|
87
99
|
>
|
|
88
100
|
</template>
|
package/vue/UiSidebar.d.ts
CHANGED
|
@@ -103,12 +103,12 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
|
|
|
103
103
|
width: number | null;
|
|
104
104
|
breakpoint: "sm" | "md" | "lg" | null;
|
|
105
105
|
collapsed: boolean | null;
|
|
106
|
+
resizable: boolean | null;
|
|
107
|
+
side: "start" | "end" | null;
|
|
106
108
|
maxWidth: number | null;
|
|
107
109
|
minWidth: number | null;
|
|
108
|
-
resizable: boolean | null;
|
|
109
110
|
resizeLabel: string | null;
|
|
110
111
|
resizeStep: number | null;
|
|
111
|
-
side: "start" | "end" | null;
|
|
112
112
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
113
113
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
114
114
|
declare const _default: typeof __VLS_export;
|
package/vue/UiSidebar.vue
CHANGED
|
@@ -1,12 +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
|
-
import { computed, getCurrentInstance, ref, useTemplateRef, watchSyncEffect } from 'vue'
|
|
3
|
+
import { computed, getCurrentInstance, provide, ref, useTemplateRef, 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
|
+
breakpoint: {
|
|
13
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
14
|
+
required: false,
|
|
15
|
+
target: { attribute: 'breakpoint' },
|
|
16
|
+
description:
|
|
17
|
+
'Below this viewport width (40rem, 48rem, 64rem) the sidebar becomes an off-canvas drawer, closed until toggled.',
|
|
18
|
+
values: ['sm', 'md', 'lg'],
|
|
19
|
+
default: 'md',
|
|
20
|
+
},
|
|
21
|
+
collapsed: {
|
|
22
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
23
|
+
required: false,
|
|
24
|
+
target: { attribute: 'collapsed' },
|
|
25
|
+
description: 'Whether the docked sidebar is collapsed.',
|
|
26
|
+
default: false,
|
|
27
|
+
},
|
|
28
|
+
maxWidth: {
|
|
29
|
+
type: { kind: 'terminal', name: 'number' },
|
|
30
|
+
required: false,
|
|
31
|
+
target: { attribute: 'maxwidth' },
|
|
32
|
+
description: 'The widest width the resize handle allows, in pixels.',
|
|
33
|
+
default: 480,
|
|
34
|
+
},
|
|
35
|
+
minWidth: {
|
|
36
|
+
type: { kind: 'terminal', name: 'number' },
|
|
37
|
+
required: false,
|
|
38
|
+
target: { attribute: 'minwidth' },
|
|
39
|
+
description: 'The narrowest width the resize handle allows, in pixels.',
|
|
40
|
+
default: 200,
|
|
41
|
+
},
|
|
42
|
+
resizable: {
|
|
43
|
+
type: { kind: 'terminal', name: 'boolean' },
|
|
44
|
+
required: false,
|
|
45
|
+
target: { attribute: 'resizable' },
|
|
46
|
+
description: 'Adds a resize handle on the inner edge (drag, or arrow keys, Home, and End).',
|
|
47
|
+
default: false,
|
|
48
|
+
},
|
|
49
|
+
resizeLabel: {
|
|
50
|
+
type: { kind: 'terminal', name: 'string' },
|
|
51
|
+
required: false,
|
|
52
|
+
target: { attribute: 'aria-label' },
|
|
53
|
+
description: 'Accessible name of the resize handle.',
|
|
54
|
+
default: 'Resize sidebar',
|
|
55
|
+
},
|
|
56
|
+
resizeStep: {
|
|
57
|
+
type: { kind: 'terminal', name: 'number' },
|
|
58
|
+
required: false,
|
|
59
|
+
target: { attribute: 'resizestep' },
|
|
60
|
+
description: 'Arrow-key resize step in pixels.',
|
|
61
|
+
default: 16,
|
|
62
|
+
},
|
|
63
|
+
side: {
|
|
64
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
65
|
+
required: false,
|
|
66
|
+
target: { attribute: 'side' },
|
|
67
|
+
description: 'The edge the sidebar sits on. The page places it beside its main content.',
|
|
68
|
+
values: ['start', 'end'],
|
|
69
|
+
default: 'start',
|
|
70
|
+
},
|
|
71
|
+
width: {
|
|
72
|
+
type: { kind: 'terminal', name: 'number' },
|
|
73
|
+
required: false,
|
|
74
|
+
target: { attribute: 'width' },
|
|
75
|
+
description:
|
|
76
|
+
'Docked width in pixels. 0 uses --ui-sidebar-width (280px by default); dragging the handle updates it.',
|
|
77
|
+
default: 0,
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
}
|
|
10
81
|
const props = defineProps({
|
|
11
82
|
breakpoint: { type: null as unknown as PropType<'sm' | 'md' | 'lg' | null>, default: 'md' },
|
|
12
83
|
collapsed: { type: null as unknown as PropType<boolean | null>, default: false },
|
|
@@ -24,72 +95,54 @@ const checkedProps = computed(() => ({
|
|
|
24
95
|
{ kind: 'terminal', name: 'keyword' },
|
|
25
96
|
false,
|
|
26
97
|
'breakpoint',
|
|
27
|
-
undefined,
|
|
28
|
-
['sm', 'md', 'lg'],
|
|
29
98
|
) as 'sm' | 'md' | 'lg',
|
|
30
99
|
collapsed: checkedProp<boolean>(
|
|
31
100
|
props['collapsed'],
|
|
32
101
|
{ kind: 'terminal', name: 'boolean' },
|
|
33
102
|
false,
|
|
34
103
|
'collapsed',
|
|
35
|
-
undefined,
|
|
36
|
-
undefined,
|
|
37
104
|
) as boolean,
|
|
38
105
|
maxWidth: checkedProp<number>(
|
|
39
106
|
props['maxWidth'],
|
|
40
107
|
{ kind: 'terminal', name: 'number' },
|
|
41
108
|
false,
|
|
42
109
|
'maxWidth',
|
|
43
|
-
undefined,
|
|
44
|
-
undefined,
|
|
45
110
|
) as number,
|
|
46
111
|
minWidth: checkedProp<number>(
|
|
47
112
|
props['minWidth'],
|
|
48
113
|
{ kind: 'terminal', name: 'number' },
|
|
49
114
|
false,
|
|
50
115
|
'minWidth',
|
|
51
|
-
undefined,
|
|
52
|
-
undefined,
|
|
53
116
|
) as number,
|
|
54
117
|
resizable: checkedProp<boolean>(
|
|
55
118
|
props['resizable'],
|
|
56
119
|
{ kind: 'terminal', name: 'boolean' },
|
|
57
120
|
false,
|
|
58
121
|
'resizable',
|
|
59
|
-
undefined,
|
|
60
|
-
undefined,
|
|
61
122
|
) as boolean,
|
|
62
123
|
resizeLabel: checkedProp<string>(
|
|
63
124
|
props['resizeLabel'],
|
|
64
125
|
{ kind: 'terminal', name: 'string' },
|
|
65
126
|
false,
|
|
66
127
|
'resizeLabel',
|
|
67
|
-
undefined,
|
|
68
|
-
undefined,
|
|
69
128
|
) as string,
|
|
70
129
|
resizeStep: checkedProp<number>(
|
|
71
130
|
props['resizeStep'],
|
|
72
131
|
{ kind: 'terminal', name: 'number' },
|
|
73
132
|
false,
|
|
74
133
|
'resizeStep',
|
|
75
|
-
undefined,
|
|
76
|
-
undefined,
|
|
77
134
|
) as number,
|
|
78
135
|
side: checkedProp<'start' | 'end'>(
|
|
79
136
|
props['side'],
|
|
80
137
|
{ kind: 'terminal', name: 'keyword' },
|
|
81
138
|
false,
|
|
82
139
|
'side',
|
|
83
|
-
undefined,
|
|
84
|
-
['start', 'end'],
|
|
85
140
|
) as 'start' | 'end',
|
|
86
141
|
width: checkedProp<number>(
|
|
87
142
|
props['width'],
|
|
88
143
|
{ kind: 'terminal', name: 'number' },
|
|
89
144
|
false,
|
|
90
145
|
'width',
|
|
91
|
-
undefined,
|
|
92
|
-
undefined,
|
|
93
146
|
) as number,
|
|
94
147
|
}))
|
|
95
148
|
void checkedProps.value
|
|
@@ -151,6 +204,16 @@ const root = ref<HTMLElement | null>(null)
|
|
|
151
204
|
const resizerElement = useTemplateRef<HTMLElement>('resizer')
|
|
152
205
|
const internalCollapsed = ref(false)
|
|
153
206
|
const drawer = ref(false)
|
|
207
|
+
let guardedPrevious: any
|
|
208
|
+
const guarded = computed(() => {
|
|
209
|
+
if (
|
|
210
|
+
!((drawer.value == null || typeof drawer.value === 'boolean')
|
|
211
|
+
&& (internalCollapsed.value == null || typeof internalCollapsed.value === 'boolean'))
|
|
212
|
+
) return guardedPrevious
|
|
213
|
+
return guardedPrevious = !checkedProps.value.resizable || drawer.value || internalCollapsed.value
|
|
214
|
+
})
|
|
215
|
+
provide('html-next:ui-sidebar:internalCollapsed', internalCollapsed)
|
|
216
|
+
provide('html-next:ui-sidebar:drawer', drawer)
|
|
154
217
|
const hydrationNode = hydrationInstance?.vnode.el
|
|
155
218
|
if (
|
|
156
219
|
typeof window !== 'undefined' && hydrationNode != null
|
|
@@ -219,6 +282,7 @@ useComponentHost(() => import('../components/ui-sidebar/ui-sidebar.js'), {
|
|
|
219
282
|
<aside
|
|
220
283
|
data-component="ui-sidebar"
|
|
221
284
|
v-bind="nativeAttrs($attrs)"
|
|
285
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
222
286
|
:data-breakpoint="reflectedProp('breakpoint', 'breakpoint', checkedProps.breakpoint, undefined, false)"
|
|
223
287
|
:data-collapsed="reflectedProp('collapsed', 'collapsed', checkedProps.collapsed, undefined, false)"
|
|
224
288
|
:data-max-width="reflectedProp('maxWidth', 'max-width', checkedProps.maxWidth, undefined, false)"
|
|
@@ -239,7 +303,7 @@ useComponentHost(() => import('../components/ui-sidebar/ui-sidebar.js'), {
|
|
|
239
303
|
tabindex="0"
|
|
240
304
|
data-ui-affordance="resize"
|
|
241
305
|
:aria-label="checkedProps.resizeLabel ?? undefined"
|
|
242
|
-
:hidden="
|
|
306
|
+
:hidden="guarded"
|
|
243
307
|
ref="resizer"
|
|
244
308
|
>
|
|
245
309
|
<span class="guide" aria-hidden="true"></span>
|
package/vue/UiSpinner.vue
CHANGED
|
@@ -1,11 +1,31 @@
|
|
|
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
|
+
label: {
|
|
12
|
+
type: { kind: 'terminal', name: 'string' },
|
|
13
|
+
required: false,
|
|
14
|
+
target: { attribute: 'label' },
|
|
15
|
+
description:
|
|
16
|
+
'What is loading, for assistive technology ("Loading pages"). With a label the spinner is a status that is announced; without one it is decoration, for a\n spinner beside visible text that already says so.',
|
|
17
|
+
default: '',
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
type: { kind: 'terminal', name: 'keyword' },
|
|
21
|
+
required: false,
|
|
22
|
+
target: { attribute: 'size' },
|
|
23
|
+
description: 'sm fits inside a button or a line of small text; md sits beside body text.',
|
|
24
|
+
values: ['sm', 'md'],
|
|
25
|
+
default: 'md',
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
}
|
|
9
29
|
const props = defineProps({
|
|
10
30
|
label: { type: null as unknown as PropType<string | null>, default: '' },
|
|
11
31
|
size: { type: null as unknown as PropType<'sm' | 'md' | null>, default: 'md' },
|
|
@@ -16,16 +36,12 @@ const checkedProps = computed(() => ({
|
|
|
16
36
|
{ kind: 'terminal', name: 'string' },
|
|
17
37
|
false,
|
|
18
38
|
'label',
|
|
19
|
-
undefined,
|
|
20
|
-
undefined,
|
|
21
39
|
) as string,
|
|
22
40
|
size: checkedProp<'sm' | 'md'>(
|
|
23
41
|
props['size'],
|
|
24
42
|
{ kind: 'terminal', name: 'keyword' },
|
|
25
43
|
false,
|
|
26
44
|
'size',
|
|
27
|
-
undefined,
|
|
28
|
-
['sm', 'md'],
|
|
29
45
|
) as 'sm' | 'md',
|
|
30
46
|
}))
|
|
31
47
|
void checkedProps.value
|
|
@@ -140,6 +156,7 @@ function attribute(value: unknown): any {
|
|
|
140
156
|
: attribute(
|
|
141
157
|
(({ true: null, false: 'true' }) as Record<string, any>)[`${checkedProps.label !== ''}`],
|
|
142
158
|
)"
|
|
159
|
+
v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
|
|
143
160
|
:data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
|
|
144
161
|
:data-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
|
|
145
162
|
:data-ui-spinner-state="hostState || undefined"
|