@threadlabs/looma 0.21.5 → 0.22.0

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.
Files changed (418) hide show
  1. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  2. package/components/ui-avatar/ui-avatar.html +4 -4
  3. package/components/ui-avatar-group/ui-avatar-group.html +14 -4
  4. package/components/ui-avatar-group/ui-avatar-group.js +1 -1
  5. package/components/ui-button/ui-button.html +10 -7
  6. package/components/ui-checkbox/ui-checkbox.html +1 -1
  7. package/components/ui-combobox/ui-combobox.html +18 -18
  8. package/components/ui-context-menu/ui-context-menu.html +1 -1
  9. package/components/ui-dialog/ui-dialog.html +2 -2
  10. package/components/ui-disclosure/ui-disclosure.html +4 -4
  11. package/components/ui-editable/ui-editable.html +3 -3
  12. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +5 -5
  13. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +5 -5
  14. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +3 -3
  15. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
  16. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +3 -7
  17. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +6 -6
  18. package/components/ui-listbox/ui-listbox.html +6 -6
  19. package/components/ui-menu/ui-menu.html +1 -1
  20. package/components/ui-menu-item/ui-menu-item.html +1 -1
  21. package/components/ui-popover/ui-popover.html +1 -1
  22. package/components/ui-radio/ui-radio.html +1 -1
  23. package/components/ui-radio-group/ui-radio-group.html +1 -1
  24. package/components/ui-search-shell/ui-search-shell.html +1 -1
  25. package/components/ui-sidebar/ui-sidebar.html +2 -2
  26. package/components/ui-switch/ui-switch.html +1 -1
  27. package/components/ui-switcher/ui-switcher.html +1 -1
  28. package/components/ui-tabs/ui-tabs.html +2 -2
  29. package/components/ui-toast-region/ui-toast-region.html +1 -1
  30. package/components/ui-tooltip/ui-tooltip.html +1 -1
  31. package/components/ui-tree-item/ui-tree-item.html +4 -4
  32. package/dist/index.js +1 -1
  33. package/package.json +2 -2
  34. package/styles/ui-action-bar.css +1 -1
  35. package/styles/ui-affordance-scope.css +1 -1
  36. package/styles/ui-avatar-group.css +10 -1
  37. package/styles/ui-avatar.css +1 -1
  38. package/styles/ui-badge.css +1 -1
  39. package/styles/ui-breadcrumb-item.css +1 -1
  40. package/styles/ui-breadcrumbs.css +1 -1
  41. package/styles/ui-button.css +11 -7
  42. package/styles/ui-callout.css +1 -1
  43. package/styles/ui-card.css +1 -1
  44. package/styles/ui-checkbox.css +1 -1
  45. package/styles/ui-cluster.css +1 -1
  46. package/styles/ui-combobox.css +1 -1
  47. package/styles/ui-container.css +1 -1
  48. package/styles/ui-context-menu.css +1 -1
  49. package/styles/ui-cover.css +1 -1
  50. package/styles/ui-description-item.css +1 -1
  51. package/styles/ui-description-list.css +1 -1
  52. package/styles/ui-dialog.css +1 -1
  53. package/styles/ui-disclosure.css +1 -1
  54. package/styles/ui-editable.css +1 -1
  55. package/styles/ui-editor-insert-table-grid.css +1 -1
  56. package/styles/ui-editor-mention-menu-item.css +1 -1
  57. package/styles/ui-editor-mention-menu.css +1 -1
  58. package/styles/ui-editor-slash-menu-group.css +1 -1
  59. package/styles/ui-editor-slash-menu-item.css +1 -1
  60. package/styles/ui-editor-slash-menu.css +1 -1
  61. package/styles/ui-editor-table-context-menu.css +1 -1
  62. package/styles/ui-editor-table-overlay.css +1 -1
  63. package/styles/ui-editor-table-toolbar.css +1 -1
  64. package/styles/ui-editor-toolbar.css +1 -1
  65. package/styles/ui-floating-action-button.css +1 -1
  66. package/styles/ui-form-field.css +1 -1
  67. package/styles/ui-grid.css +1 -1
  68. package/styles/ui-icon-button.css +1 -1
  69. package/styles/ui-icon.css +1 -1
  70. package/styles/ui-input-group.css +1 -1
  71. package/styles/ui-input.css +1 -1
  72. package/styles/ui-list-item.css +1 -1
  73. package/styles/ui-list.css +1 -1
  74. package/styles/ui-listbox.css +1 -1
  75. package/styles/ui-menu-group.css +1 -1
  76. package/styles/ui-menu-item.css +1 -1
  77. package/styles/ui-menu.css +1 -1
  78. package/styles/ui-meter.css +1 -1
  79. package/styles/ui-nav-item.css +1 -1
  80. package/styles/ui-page-header.css +1 -1
  81. package/styles/ui-popover.css +1 -1
  82. package/styles/ui-radio-group.css +1 -1
  83. package/styles/ui-radio.css +1 -1
  84. package/styles/ui-reel.css +1 -1
  85. package/styles/ui-scroll-area.css +1 -1
  86. package/styles/ui-search-result-row.css +1 -1
  87. package/styles/ui-search-shell.css +1 -1
  88. package/styles/ui-section.css +1 -1
  89. package/styles/ui-select.css +1 -1
  90. package/styles/ui-separator.css +1 -1
  91. package/styles/ui-sidebar.css +1 -1
  92. package/styles/ui-spinner.css +1 -1
  93. package/styles/ui-stack.css +1 -1
  94. package/styles/ui-status-message.css +1 -1
  95. package/styles/ui-switch.css +1 -1
  96. package/styles/ui-switcher.css +1 -1
  97. package/styles/ui-table.css +1 -1
  98. package/styles/ui-tabs.css +1 -1
  99. package/styles/ui-text.css +1 -1
  100. package/styles/ui-textarea.css +1 -1
  101. package/styles/ui-toast-region.css +1 -1
  102. package/styles/ui-toast.css +1 -1
  103. package/styles/ui-tooltip.css +1 -1
  104. package/styles/ui-top-bar.css +1 -1
  105. package/styles/ui-tree-item.css +1 -1
  106. package/styles/ui-tree.css +1 -1
  107. package/vanilla/UiActionBar.d.ts +1 -1
  108. package/vanilla/UiActionBar.js +1 -1
  109. package/vanilla/UiAffordanceScope.d.ts +1 -1
  110. package/vanilla/UiAffordanceScope.js +2 -2
  111. package/vanilla/UiAvatar.d.ts +1 -1
  112. package/vanilla/UiAvatar.js +2 -2
  113. package/vanilla/UiAvatarGroup.d.ts +2 -2
  114. package/vanilla/UiAvatarGroup.js +2 -2
  115. package/vanilla/UiBadge.d.ts +1 -1
  116. package/vanilla/UiBadge.js +1 -1
  117. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  118. package/vanilla/UiBreadcrumbItem.js +1 -1
  119. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  120. package/vanilla/UiBreadcrumbs.js +1 -1
  121. package/vanilla/UiButton.d.ts +1 -1
  122. package/vanilla/UiButton.js +1 -1
  123. package/vanilla/UiCallout.d.ts +1 -1
  124. package/vanilla/UiCallout.js +1 -1
  125. package/vanilla/UiCard.d.ts +1 -1
  126. package/vanilla/UiCard.js +1 -1
  127. package/vanilla/UiCheckbox.d.ts +1 -1
  128. package/vanilla/UiCheckbox.js +2 -2
  129. package/vanilla/UiCluster.d.ts +1 -1
  130. package/vanilla/UiCluster.js +1 -1
  131. package/vanilla/UiCombobox.d.ts +1 -1
  132. package/vanilla/UiCombobox.js +2 -2
  133. package/vanilla/UiContainer.d.ts +1 -1
  134. package/vanilla/UiContainer.js +1 -1
  135. package/vanilla/UiContextMenu.d.ts +1 -1
  136. package/vanilla/UiContextMenu.js +2 -2
  137. package/vanilla/UiCover.d.ts +1 -1
  138. package/vanilla/UiCover.js +1 -1
  139. package/vanilla/UiDescriptionItem.d.ts +1 -1
  140. package/vanilla/UiDescriptionItem.js +1 -1
  141. package/vanilla/UiDescriptionList.d.ts +1 -1
  142. package/vanilla/UiDescriptionList.js +1 -1
  143. package/vanilla/UiDialog.d.ts +1 -1
  144. package/vanilla/UiDialog.js +2 -2
  145. package/vanilla/UiDisclosure.d.ts +1 -1
  146. package/vanilla/UiDisclosure.js +2 -2
  147. package/vanilla/UiEditable.d.ts +1 -1
  148. package/vanilla/UiEditable.js +2 -2
  149. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  150. package/vanilla/UiEditorInsertTableGrid.js +2 -2
  151. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  152. package/vanilla/UiEditorMentionMenu.js +2 -2
  153. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  154. package/vanilla/UiEditorMentionMenuItem.js +1 -1
  155. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  156. package/vanilla/UiEditorSlashMenu.js +2 -2
  157. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  158. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  159. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  160. package/vanilla/UiEditorSlashMenuItem.js +1 -1
  161. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  162. package/vanilla/UiEditorTableContextMenu.js +2 -2
  163. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  164. package/vanilla/UiEditorTableOverlay.js +2 -2
  165. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  166. package/vanilla/UiEditorTableToolbar.js +2 -2
  167. package/vanilla/UiEditorToolbar.d.ts +1 -1
  168. package/vanilla/UiEditorToolbar.js +1 -1
  169. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  170. package/vanilla/UiFloatingActionButton.js +1 -1
  171. package/vanilla/UiFormField.d.ts +1 -1
  172. package/vanilla/UiFormField.js +1 -1
  173. package/vanilla/UiGrid.d.ts +1 -1
  174. package/vanilla/UiGrid.js +1 -1
  175. package/vanilla/UiIcon.d.ts +1 -1
  176. package/vanilla/UiIcon.js +1 -1
  177. package/vanilla/UiIconButton.d.ts +1 -1
  178. package/vanilla/UiIconButton.js +1 -1
  179. package/vanilla/UiInput.d.ts +1 -1
  180. package/vanilla/UiInput.js +1 -1
  181. package/vanilla/UiInputGroup.d.ts +1 -1
  182. package/vanilla/UiInputGroup.js +1 -1
  183. package/vanilla/UiList.d.ts +1 -1
  184. package/vanilla/UiList.js +1 -1
  185. package/vanilla/UiListItem.d.ts +1 -1
  186. package/vanilla/UiListItem.js +1 -1
  187. package/vanilla/UiListbox.d.ts +1 -1
  188. package/vanilla/UiListbox.js +2 -2
  189. package/vanilla/UiMenu.d.ts +1 -1
  190. package/vanilla/UiMenu.js +2 -2
  191. package/vanilla/UiMenuGroup.d.ts +1 -1
  192. package/vanilla/UiMenuGroup.js +1 -1
  193. package/vanilla/UiMenuItem.d.ts +1 -1
  194. package/vanilla/UiMenuItem.js +2 -2
  195. package/vanilla/UiMeter.d.ts +1 -1
  196. package/vanilla/UiMeter.js +1 -1
  197. package/vanilla/UiNavItem.d.ts +1 -1
  198. package/vanilla/UiNavItem.js +1 -1
  199. package/vanilla/UiPageHeader.d.ts +1 -1
  200. package/vanilla/UiPageHeader.js +1 -1
  201. package/vanilla/UiPopover.d.ts +1 -1
  202. package/vanilla/UiPopover.js +2 -2
  203. package/vanilla/UiRadio.d.ts +1 -1
  204. package/vanilla/UiRadio.js +2 -2
  205. package/vanilla/UiRadioGroup.d.ts +1 -1
  206. package/vanilla/UiRadioGroup.js +2 -2
  207. package/vanilla/UiReel.d.ts +1 -1
  208. package/vanilla/UiReel.js +1 -1
  209. package/vanilla/UiScrollArea.d.ts +1 -1
  210. package/vanilla/UiScrollArea.js +1 -1
  211. package/vanilla/UiSearchResultRow.d.ts +1 -1
  212. package/vanilla/UiSearchResultRow.js +1 -1
  213. package/vanilla/UiSearchShell.d.ts +1 -1
  214. package/vanilla/UiSearchShell.js +2 -2
  215. package/vanilla/UiSection.d.ts +1 -1
  216. package/vanilla/UiSection.js +1 -1
  217. package/vanilla/UiSelect.d.ts +1 -1
  218. package/vanilla/UiSelect.js +1 -1
  219. package/vanilla/UiSeparator.d.ts +1 -1
  220. package/vanilla/UiSeparator.js +1 -1
  221. package/vanilla/UiSidebar.d.ts +1 -1
  222. package/vanilla/UiSidebar.js +2 -2
  223. package/vanilla/UiSpinner.d.ts +1 -1
  224. package/vanilla/UiSpinner.js +1 -1
  225. package/vanilla/UiStack.d.ts +1 -1
  226. package/vanilla/UiStack.js +1 -1
  227. package/vanilla/UiStatusMessage.d.ts +1 -1
  228. package/vanilla/UiStatusMessage.js +1 -1
  229. package/vanilla/UiSwitch.d.ts +1 -1
  230. package/vanilla/UiSwitch.js +2 -2
  231. package/vanilla/UiSwitcher.d.ts +1 -1
  232. package/vanilla/UiSwitcher.js +2 -2
  233. package/vanilla/UiTable.d.ts +1 -1
  234. package/vanilla/UiTable.js +1 -1
  235. package/vanilla/UiTabs.d.ts +1 -1
  236. package/vanilla/UiTabs.js +2 -2
  237. package/vanilla/UiText.d.ts +1 -1
  238. package/vanilla/UiText.js +1 -1
  239. package/vanilla/UiTextarea.d.ts +1 -1
  240. package/vanilla/UiTextarea.js +1 -1
  241. package/vanilla/UiToast.d.ts +1 -1
  242. package/vanilla/UiToast.js +1 -1
  243. package/vanilla/UiToastRegion.d.ts +1 -1
  244. package/vanilla/UiToastRegion.js +2 -2
  245. package/vanilla/UiTooltip.d.ts +1 -1
  246. package/vanilla/UiTooltip.js +2 -2
  247. package/vanilla/UiTopBar.d.ts +1 -1
  248. package/vanilla/UiTopBar.js +1 -1
  249. package/vanilla/UiTree.d.ts +1 -1
  250. package/vanilla/UiTree.js +1 -1
  251. package/vanilla/UiTreeItem.d.ts +1 -1
  252. package/vanilla/UiTreeItem.js +2 -2
  253. package/vue/UiActionBar.vue +1 -1
  254. package/vue/UiAffordanceScope.vue +25 -7
  255. package/vue/UiAvatar.vue +125 -30
  256. package/vue/UiAvatarGroup.d.ts +4 -4
  257. package/vue/UiAvatarGroup.vue +79 -24
  258. package/vue/UiBadge.vue +34 -8
  259. package/vue/UiBreadcrumbItem.vue +15 -4
  260. package/vue/UiBreadcrumbs.vue +14 -4
  261. package/vue/UiButton.vue +133 -49
  262. package/vue/UiCallout.vue +16 -4
  263. package/vue/UiCard.vue +46 -10
  264. package/vue/UiCheckbox.d.ts +5 -5
  265. package/vue/UiCheckbox.vue +73 -19
  266. package/vue/UiCluster.vue +39 -10
  267. package/vue/UiCombobox.d.ts +5 -5
  268. package/vue/UiCombobox.vue +317 -78
  269. package/vue/UiContainer.vue +23 -6
  270. package/vue/UiContextMenu.vue +24 -7
  271. package/vue/UiCover.vue +16 -4
  272. package/vue/UiDescriptionItem.vue +14 -4
  273. package/vue/UiDescriptionList.vue +33 -8
  274. package/vue/UiDialog.vue +79 -26
  275. package/vue/UiDisclosure.vue +101 -38
  276. package/vue/UiEditable.d.ts +3 -3
  277. package/vue/UiEditable.vue +107 -27
  278. package/vue/UiEditorInsertTableGrid.vue +47 -11
  279. package/vue/UiEditorMentionMenu.vue +99 -20
  280. package/vue/UiEditorMentionMenuItem.vue +29 -8
  281. package/vue/UiEditorSlashMenu.vue +85 -16
  282. package/vue/UiEditorSlashMenuGroup.vue +14 -4
  283. package/vue/UiEditorSlashMenuItem.vue +43 -12
  284. package/vue/UiEditorTableContextMenu.d.ts +1 -1
  285. package/vue/UiEditorTableContextMenu.vue +95 -19
  286. package/vue/UiEditorTableOverlay.vue +91 -7
  287. package/vue/UiEditorTableToolbar.vue +105 -16
  288. package/vue/UiEditorToolbar.vue +15 -4
  289. package/vue/UiFloatingActionButton.vue +31 -8
  290. package/vue/UiFormField.d.ts +1 -1
  291. package/vue/UiFormField.vue +31 -8
  292. package/vue/UiGrid.vue +30 -8
  293. package/vue/UiIcon.vue +15 -4
  294. package/vue/UiIconButton.vue +70 -24
  295. package/vue/UiInput.vue +114 -39
  296. package/vue/UiInputGroup.vue +15 -4
  297. package/vue/UiList.vue +47 -16
  298. package/vue/UiListItem.vue +24 -6
  299. package/vue/UiListbox.d.ts +3 -3
  300. package/vue/UiListbox.vue +72 -24
  301. package/vue/UiMenu.vue +55 -15
  302. package/vue/UiMenuGroup.vue +14 -4
  303. package/vue/UiMenuItem.d.ts +4 -4
  304. package/vue/UiMenuItem.vue +77 -27
  305. package/vue/UiMeter.vue +65 -16
  306. package/vue/UiNavItem.vue +48 -24
  307. package/vue/UiPageHeader.vue +16 -4
  308. package/vue/UiPopover.vue +46 -21
  309. package/vue/UiRadio.d.ts +4 -4
  310. package/vue/UiRadio.vue +58 -15
  311. package/vue/UiRadioGroup.d.ts +3 -3
  312. package/vue/UiRadioGroup.vue +66 -17
  313. package/vue/UiReel.d.ts +1 -1
  314. package/vue/UiReel.vue +31 -8
  315. package/vue/UiScrollArea.vue +16 -4
  316. package/vue/UiSearchResultRow.vue +23 -6
  317. package/vue/UiSearchShell.vue +38 -11
  318. package/vue/UiSection.vue +33 -8
  319. package/vue/UiSelect.d.ts +1 -1
  320. package/vue/UiSelect.vue +45 -20
  321. package/vue/UiSeparator.vue +16 -4
  322. package/vue/UiSidebar.d.ts +2 -2
  323. package/vue/UiSidebar.vue +86 -22
  324. package/vue/UiSpinner.vue +23 -6
  325. package/vue/UiStack.vue +31 -8
  326. package/vue/UiStatusMessage.vue +32 -8
  327. package/vue/UiSwitch.d.ts +4 -4
  328. package/vue/UiSwitch.vue +57 -15
  329. package/vue/UiSwitcher.vue +41 -17
  330. package/vue/UiTable.vue +24 -6
  331. package/vue/UiTabs.vue +60 -14
  332. package/vue/UiText.vue +98 -35
  333. package/vue/UiTextarea.d.ts +1 -1
  334. package/vue/UiTextarea.vue +67 -26
  335. package/vue/UiToast.vue +24 -6
  336. package/vue/UiToastRegion.vue +41 -13
  337. package/vue/UiTooltip.d.ts +1 -1
  338. package/vue/UiTooltip.vue +85 -30
  339. package/vue/UiTopBar.vue +1 -1
  340. package/vue/UiTree.vue +56 -14
  341. package/vue/UiTreeItem.d.ts +3 -3
  342. package/vue/UiTreeItem.vue +147 -36
  343. package/vue/chunks/UiActionBar.js +1 -1
  344. package/vue/chunks/UiAffordanceScope.js +34 -7
  345. package/vue/chunks/UiAvatar.js +141 -21
  346. package/vue/chunks/UiAvatarGroup.js +83 -12
  347. package/vue/chunks/UiBadge.js +57 -19
  348. package/vue/chunks/UiBreadcrumbItem.js +19 -6
  349. package/vue/chunks/UiBreadcrumbs.js +19 -6
  350. package/vue/chunks/UiButton.js +194 -42
  351. package/vue/chunks/UiCallout.js +27 -13
  352. package/vue/chunks/UiCard.js +83 -25
  353. package/vue/chunks/UiCheckbox.js +104 -17
  354. package/vue/chunks/UiCluster.js +70 -25
  355. package/vue/chunks/UiCombobox.js +441 -46
  356. package/vue/chunks/UiContainer.js +36 -11
  357. package/vue/chunks/UiContextMenu.js +33 -7
  358. package/vue/chunks/UiCover.js +20 -6
  359. package/vue/chunks/UiDescriptionItem.js +18 -5
  360. package/vue/chunks/UiDescriptionList.js +54 -17
  361. package/vue/chunks/UiDialog.js +115 -23
  362. package/vue/chunks/UiDisclosure.js +110 -24
  363. package/vue/chunks/UiEditable.js +146 -18
  364. package/vue/chunks/UiEditorInsertTableGrid.js +65 -10
  365. package/vue/chunks/UiEditorMentionMenu.js +210 -14
  366. package/vue/chunks/UiEditorMentionMenuItem.js +43 -8
  367. package/vue/chunks/UiEditorSlashMenu.js +186 -12
  368. package/vue/chunks/UiEditorSlashMenuGroup.js +19 -6
  369. package/vue/chunks/UiEditorSlashMenuItem.js +65 -10
  370. package/vue/chunks/UiEditorTableContextMenu.js +116 -16
  371. package/vue/chunks/UiEditorTableOverlay.js +188 -7
  372. package/vue/chunks/UiEditorTableToolbar.js +125 -16
  373. package/vue/chunks/UiEditorToolbar.js +19 -6
  374. package/vue/chunks/UiFloatingActionButton.js +43 -8
  375. package/vue/chunks/UiFormField.js +43 -8
  376. package/vue/chunks/UiGrid.js +52 -18
  377. package/vue/chunks/UiIcon.js +19 -6
  378. package/vue/chunks/UiIconButton.js +107 -21
  379. package/vue/chunks/UiInput.js +309 -30
  380. package/vue/chunks/UiInputGroup.js +19 -6
  381. package/vue/chunks/UiList.js +62 -10
  382. package/vue/chunks/UiListItem.js +33 -7
  383. package/vue/chunks/UiListbox.js +105 -13
  384. package/vue/chunks/UiMenu.js +79 -11
  385. package/vue/chunks/UiMenuGroup.js +19 -6
  386. package/vue/chunks/UiMenuItem.js +93 -28
  387. package/vue/chunks/UiMeter.js +96 -19
  388. package/vue/chunks/UiNavItem.js +74 -17
  389. package/vue/chunks/UiPageHeader.js +20 -6
  390. package/vue/chunks/UiPopover.js +58 -21
  391. package/vue/chunks/UiRadio.js +82 -15
  392. package/vue/chunks/UiRadioGroup.js +89 -12
  393. package/vue/chunks/UiReel.js +53 -18
  394. package/vue/chunks/UiScrollArea.js +20 -6
  395. package/vue/chunks/UiSearchResultRow.js +32 -7
  396. package/vue/chunks/UiSearchShell.js +55 -9
  397. package/vue/chunks/UiSection.js +49 -12
  398. package/vue/chunks/UiSelect.js +68 -13
  399. package/vue/chunks/UiSeparator.js +20 -6
  400. package/vue/chunks/UiSidebar.js +123 -19
  401. package/vue/chunks/UiSpinner.js +33 -7
  402. package/vue/chunks/UiStack.js +59 -24
  403. package/vue/chunks/UiStatusMessage.js +53 -16
  404. package/vue/chunks/UiSwitch.js +82 -15
  405. package/vue/chunks/UiSwitcher.js +70 -25
  406. package/vue/chunks/UiTable.js +33 -7
  407. package/vue/chunks/UiTabs.js +81 -11
  408. package/vue/chunks/UiText.js +169 -58
  409. package/vue/chunks/UiTextarea.js +101 -16
  410. package/vue/chunks/UiToast.js +39 -13
  411. package/vue/chunks/UiToastRegion.js +41 -14
  412. package/vue/chunks/UiTooltip.js +113 -30
  413. package/vue/chunks/UiTopBar.js +1 -1
  414. package/vue/chunks/UiTree.js +82 -15
  415. package/vue/chunks/UiTreeItem.js +184 -22
  416. package/vue/chunks/props.js +271 -35
  417. package/vue/components.css +1209 -1198
  418. package/vue/host.ts +6 -6
@@ -1,12 +1,45 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.14 for Vue 3.5. Do not edit. -->
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.14 for Vue 3.5. Do not edit. -->
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.14 for Vue 3.5. Do not edit. -->
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)"
@@ -1,11 +1,24 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.14 for Vue 3.5. Do not edit. -->
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>
@@ -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.14 for Vue 3.5. Do not edit. -->
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="!checkedProps.resizable || drawer || internalCollapsed"
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.14 for Vue 3.5. Do not edit. -->
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"