@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.
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 +2 -2
  4. package/components/ui-checkbox/ui-checkbox.html +1 -1
  5. package/components/ui-combobox/ui-combobox.html +18 -18
  6. package/components/ui-context-menu/ui-context-menu.html +1 -1
  7. package/components/ui-dialog/ui-dialog.html +2 -2
  8. package/components/ui-disclosure/ui-disclosure.html +4 -4
  9. package/components/ui-editable/ui-editable.html +3 -3
  10. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +5 -5
  11. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +5 -5
  12. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +3 -3
  13. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
  14. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +3 -7
  15. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +6 -6
  16. package/components/ui-listbox/ui-listbox.html +6 -6
  17. package/components/ui-menu/ui-menu.html +1 -1
  18. package/components/ui-menu-item/ui-menu-item.html +1 -1
  19. package/components/ui-popover/ui-popover.html +1 -1
  20. package/components/ui-radio/ui-radio.html +1 -1
  21. package/components/ui-radio-group/ui-radio-group.html +1 -1
  22. package/components/ui-search-shell/ui-search-shell.html +1 -1
  23. package/components/ui-sidebar/ui-sidebar.html +2 -2
  24. package/components/ui-switch/ui-switch.html +1 -1
  25. package/components/ui-switcher/ui-switcher.html +1 -1
  26. package/components/ui-tabs/ui-tabs.html +2 -2
  27. package/components/ui-toast-region/ui-toast-region.html +1 -1
  28. package/components/ui-tooltip/ui-tooltip.html +1 -1
  29. package/components/ui-tree-item/ui-tree-item.html +4 -4
  30. package/dist/index.js +1 -1
  31. package/package.json +2 -2
  32. package/styles/ui-action-bar.css +1 -1
  33. package/styles/ui-affordance-scope.css +1 -1
  34. package/styles/ui-avatar-group.css +1 -1
  35. package/styles/ui-avatar.css +1 -1
  36. package/styles/ui-badge.css +1 -1
  37. package/styles/ui-breadcrumb-item.css +1 -1
  38. package/styles/ui-breadcrumbs.css +1 -1
  39. package/styles/ui-button.css +1 -1
  40. package/styles/ui-callout.css +1 -1
  41. package/styles/ui-card.css +1 -1
  42. package/styles/ui-checkbox.css +1 -1
  43. package/styles/ui-cluster.css +1 -1
  44. package/styles/ui-combobox.css +1 -1
  45. package/styles/ui-container.css +1 -1
  46. package/styles/ui-context-menu.css +1 -1
  47. package/styles/ui-cover.css +1 -1
  48. package/styles/ui-description-item.css +1 -1
  49. package/styles/ui-description-list.css +1 -1
  50. package/styles/ui-dialog.css +1 -1
  51. package/styles/ui-disclosure.css +1 -1
  52. package/styles/ui-editable.css +1 -1
  53. package/styles/ui-editor-insert-table-grid.css +1 -1
  54. package/styles/ui-editor-mention-menu-item.css +1 -1
  55. package/styles/ui-editor-mention-menu.css +1 -1
  56. package/styles/ui-editor-slash-menu-group.css +1 -1
  57. package/styles/ui-editor-slash-menu-item.css +1 -1
  58. package/styles/ui-editor-slash-menu.css +1 -1
  59. package/styles/ui-editor-table-context-menu.css +1 -1
  60. package/styles/ui-editor-table-overlay.css +1 -1
  61. package/styles/ui-editor-table-toolbar.css +1 -1
  62. package/styles/ui-editor-toolbar.css +1 -1
  63. package/styles/ui-floating-action-button.css +1 -1
  64. package/styles/ui-form-field.css +1 -1
  65. package/styles/ui-grid.css +1 -1
  66. package/styles/ui-icon-button.css +1 -1
  67. package/styles/ui-icon.css +1 -1
  68. package/styles/ui-input-group.css +1 -1
  69. package/styles/ui-input.css +1 -1
  70. package/styles/ui-list-item.css +1 -1
  71. package/styles/ui-list.css +1 -1
  72. package/styles/ui-listbox.css +1 -1
  73. package/styles/ui-menu-group.css +1 -1
  74. package/styles/ui-menu-item.css +1 -1
  75. package/styles/ui-menu.css +1 -1
  76. package/styles/ui-meter.css +1 -1
  77. package/styles/ui-nav-item.css +1 -1
  78. package/styles/ui-page-header.css +1 -1
  79. package/styles/ui-popover.css +1 -1
  80. package/styles/ui-radio-group.css +1 -1
  81. package/styles/ui-radio.css +1 -1
  82. package/styles/ui-reel.css +1 -1
  83. package/styles/ui-scroll-area.css +1 -1
  84. package/styles/ui-search-result-row.css +1 -1
  85. package/styles/ui-search-shell.css +1 -1
  86. package/styles/ui-section.css +1 -1
  87. package/styles/ui-select.css +1 -1
  88. package/styles/ui-separator.css +1 -1
  89. package/styles/ui-sidebar.css +1 -1
  90. package/styles/ui-spinner.css +1 -1
  91. package/styles/ui-stack.css +1 -1
  92. package/styles/ui-status-message.css +1 -1
  93. package/styles/ui-switch.css +1 -1
  94. package/styles/ui-switcher.css +1 -1
  95. package/styles/ui-table.css +1 -1
  96. package/styles/ui-tabs.css +1 -1
  97. package/styles/ui-text.css +1 -1
  98. package/styles/ui-textarea.css +1 -1
  99. package/styles/ui-toast-region.css +1 -1
  100. package/styles/ui-toast.css +1 -1
  101. package/styles/ui-tooltip.css +1 -1
  102. package/styles/ui-top-bar.css +1 -1
  103. package/styles/ui-tree-item.css +1 -1
  104. package/styles/ui-tree.css +1 -1
  105. package/vanilla/UiActionBar.d.ts +1 -1
  106. package/vanilla/UiActionBar.js +1 -1
  107. package/vanilla/UiAffordanceScope.d.ts +1 -1
  108. package/vanilla/UiAffordanceScope.js +2 -2
  109. package/vanilla/UiAvatar.d.ts +1 -1
  110. package/vanilla/UiAvatar.js +2 -2
  111. package/vanilla/UiAvatarGroup.d.ts +1 -1
  112. package/vanilla/UiAvatarGroup.js +2 -2
  113. package/vanilla/UiBadge.d.ts +1 -1
  114. package/vanilla/UiBadge.js +1 -1
  115. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  116. package/vanilla/UiBreadcrumbItem.js +1 -1
  117. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  118. package/vanilla/UiBreadcrumbs.js +1 -1
  119. package/vanilla/UiButton.d.ts +1 -1
  120. package/vanilla/UiButton.js +1 -1
  121. package/vanilla/UiCallout.d.ts +1 -1
  122. package/vanilla/UiCallout.js +1 -1
  123. package/vanilla/UiCard.d.ts +1 -1
  124. package/vanilla/UiCard.js +1 -1
  125. package/vanilla/UiCheckbox.d.ts +1 -1
  126. package/vanilla/UiCheckbox.js +2 -2
  127. package/vanilla/UiCluster.d.ts +1 -1
  128. package/vanilla/UiCluster.js +1 -1
  129. package/vanilla/UiCombobox.d.ts +1 -1
  130. package/vanilla/UiCombobox.js +2 -2
  131. package/vanilla/UiContainer.d.ts +1 -1
  132. package/vanilla/UiContainer.js +1 -1
  133. package/vanilla/UiContextMenu.d.ts +1 -1
  134. package/vanilla/UiContextMenu.js +2 -2
  135. package/vanilla/UiCover.d.ts +1 -1
  136. package/vanilla/UiCover.js +1 -1
  137. package/vanilla/UiDescriptionItem.d.ts +1 -1
  138. package/vanilla/UiDescriptionItem.js +1 -1
  139. package/vanilla/UiDescriptionList.d.ts +1 -1
  140. package/vanilla/UiDescriptionList.js +1 -1
  141. package/vanilla/UiDialog.d.ts +1 -1
  142. package/vanilla/UiDialog.js +2 -2
  143. package/vanilla/UiDisclosure.d.ts +1 -1
  144. package/vanilla/UiDisclosure.js +2 -2
  145. package/vanilla/UiEditable.d.ts +1 -1
  146. package/vanilla/UiEditable.js +2 -2
  147. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  148. package/vanilla/UiEditorInsertTableGrid.js +2 -2
  149. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  150. package/vanilla/UiEditorMentionMenu.js +2 -2
  151. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  152. package/vanilla/UiEditorMentionMenuItem.js +1 -1
  153. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  154. package/vanilla/UiEditorSlashMenu.js +2 -2
  155. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  156. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  157. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  158. package/vanilla/UiEditorSlashMenuItem.js +1 -1
  159. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  160. package/vanilla/UiEditorTableContextMenu.js +2 -2
  161. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  162. package/vanilla/UiEditorTableOverlay.js +2 -2
  163. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  164. package/vanilla/UiEditorTableToolbar.js +2 -2
  165. package/vanilla/UiEditorToolbar.d.ts +1 -1
  166. package/vanilla/UiEditorToolbar.js +1 -1
  167. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  168. package/vanilla/UiFloatingActionButton.js +1 -1
  169. package/vanilla/UiFormField.d.ts +1 -1
  170. package/vanilla/UiFormField.js +1 -1
  171. package/vanilla/UiGrid.d.ts +1 -1
  172. package/vanilla/UiGrid.js +1 -1
  173. package/vanilla/UiIcon.d.ts +1 -1
  174. package/vanilla/UiIcon.js +1 -1
  175. package/vanilla/UiIconButton.d.ts +1 -1
  176. package/vanilla/UiIconButton.js +1 -1
  177. package/vanilla/UiInput.d.ts +1 -1
  178. package/vanilla/UiInput.js +1 -1
  179. package/vanilla/UiInputGroup.d.ts +1 -1
  180. package/vanilla/UiInputGroup.js +1 -1
  181. package/vanilla/UiList.d.ts +1 -1
  182. package/vanilla/UiList.js +1 -1
  183. package/vanilla/UiListItem.d.ts +1 -1
  184. package/vanilla/UiListItem.js +1 -1
  185. package/vanilla/UiListbox.d.ts +1 -1
  186. package/vanilla/UiListbox.js +2 -2
  187. package/vanilla/UiMenu.d.ts +1 -1
  188. package/vanilla/UiMenu.js +2 -2
  189. package/vanilla/UiMenuGroup.d.ts +1 -1
  190. package/vanilla/UiMenuGroup.js +1 -1
  191. package/vanilla/UiMenuItem.d.ts +1 -1
  192. package/vanilla/UiMenuItem.js +2 -2
  193. package/vanilla/UiMeter.d.ts +1 -1
  194. package/vanilla/UiMeter.js +1 -1
  195. package/vanilla/UiNavItem.d.ts +1 -1
  196. package/vanilla/UiNavItem.js +1 -1
  197. package/vanilla/UiPageHeader.d.ts +1 -1
  198. package/vanilla/UiPageHeader.js +1 -1
  199. package/vanilla/UiPopover.d.ts +1 -1
  200. package/vanilla/UiPopover.js +2 -2
  201. package/vanilla/UiRadio.d.ts +1 -1
  202. package/vanilla/UiRadio.js +2 -2
  203. package/vanilla/UiRadioGroup.d.ts +1 -1
  204. package/vanilla/UiRadioGroup.js +2 -2
  205. package/vanilla/UiReel.d.ts +1 -1
  206. package/vanilla/UiReel.js +1 -1
  207. package/vanilla/UiScrollArea.d.ts +1 -1
  208. package/vanilla/UiScrollArea.js +1 -1
  209. package/vanilla/UiSearchResultRow.d.ts +1 -1
  210. package/vanilla/UiSearchResultRow.js +1 -1
  211. package/vanilla/UiSearchShell.d.ts +1 -1
  212. package/vanilla/UiSearchShell.js +2 -2
  213. package/vanilla/UiSection.d.ts +1 -1
  214. package/vanilla/UiSection.js +1 -1
  215. package/vanilla/UiSelect.d.ts +1 -1
  216. package/vanilla/UiSelect.js +1 -1
  217. package/vanilla/UiSeparator.d.ts +1 -1
  218. package/vanilla/UiSeparator.js +1 -1
  219. package/vanilla/UiSidebar.d.ts +1 -1
  220. package/vanilla/UiSidebar.js +2 -2
  221. package/vanilla/UiSpinner.d.ts +1 -1
  222. package/vanilla/UiSpinner.js +1 -1
  223. package/vanilla/UiStack.d.ts +1 -1
  224. package/vanilla/UiStack.js +1 -1
  225. package/vanilla/UiStatusMessage.d.ts +1 -1
  226. package/vanilla/UiStatusMessage.js +1 -1
  227. package/vanilla/UiSwitch.d.ts +1 -1
  228. package/vanilla/UiSwitch.js +2 -2
  229. package/vanilla/UiSwitcher.d.ts +1 -1
  230. package/vanilla/UiSwitcher.js +2 -2
  231. package/vanilla/UiTable.d.ts +1 -1
  232. package/vanilla/UiTable.js +1 -1
  233. package/vanilla/UiTabs.d.ts +1 -1
  234. package/vanilla/UiTabs.js +2 -2
  235. package/vanilla/UiText.d.ts +1 -1
  236. package/vanilla/UiText.js +1 -1
  237. package/vanilla/UiTextarea.d.ts +1 -1
  238. package/vanilla/UiTextarea.js +1 -1
  239. package/vanilla/UiToast.d.ts +1 -1
  240. package/vanilla/UiToast.js +1 -1
  241. package/vanilla/UiToastRegion.d.ts +1 -1
  242. package/vanilla/UiToastRegion.js +2 -2
  243. package/vanilla/UiTooltip.d.ts +1 -1
  244. package/vanilla/UiTooltip.js +2 -2
  245. package/vanilla/UiTopBar.d.ts +1 -1
  246. package/vanilla/UiTopBar.js +1 -1
  247. package/vanilla/UiTree.d.ts +1 -1
  248. package/vanilla/UiTree.js +1 -1
  249. package/vanilla/UiTreeItem.d.ts +1 -1
  250. package/vanilla/UiTreeItem.js +2 -2
  251. package/vue/UiActionBar.vue +1 -1
  252. package/vue/UiAffordanceScope.vue +25 -7
  253. package/vue/UiAvatar.vue +125 -30
  254. package/vue/UiAvatarGroup.d.ts +1 -1
  255. package/vue/UiAvatarGroup.vue +67 -21
  256. package/vue/UiBadge.vue +34 -8
  257. package/vue/UiBreadcrumbItem.vue +15 -4
  258. package/vue/UiBreadcrumbs.vue +14 -4
  259. package/vue/UiButton.vue +123 -42
  260. package/vue/UiCallout.vue +16 -4
  261. package/vue/UiCard.vue +46 -10
  262. package/vue/UiCheckbox.d.ts +5 -5
  263. package/vue/UiCheckbox.vue +73 -19
  264. package/vue/UiCluster.vue +39 -10
  265. package/vue/UiCombobox.d.ts +5 -5
  266. package/vue/UiCombobox.vue +317 -78
  267. package/vue/UiContainer.vue +23 -6
  268. package/vue/UiContextMenu.vue +24 -7
  269. package/vue/UiCover.vue +16 -4
  270. package/vue/UiDescriptionItem.vue +14 -4
  271. package/vue/UiDescriptionList.vue +33 -8
  272. package/vue/UiDialog.vue +79 -26
  273. package/vue/UiDisclosure.vue +101 -38
  274. package/vue/UiEditable.d.ts +3 -3
  275. package/vue/UiEditable.vue +107 -27
  276. package/vue/UiEditorInsertTableGrid.vue +47 -11
  277. package/vue/UiEditorMentionMenu.vue +99 -20
  278. package/vue/UiEditorMentionMenuItem.vue +29 -8
  279. package/vue/UiEditorSlashMenu.vue +85 -16
  280. package/vue/UiEditorSlashMenuGroup.vue +14 -4
  281. package/vue/UiEditorSlashMenuItem.vue +43 -12
  282. package/vue/UiEditorTableContextMenu.d.ts +1 -1
  283. package/vue/UiEditorTableContextMenu.vue +95 -19
  284. package/vue/UiEditorTableOverlay.vue +91 -7
  285. package/vue/UiEditorTableToolbar.vue +105 -16
  286. package/vue/UiEditorToolbar.vue +15 -4
  287. package/vue/UiFloatingActionButton.vue +31 -8
  288. package/vue/UiFormField.d.ts +1 -1
  289. package/vue/UiFormField.vue +31 -8
  290. package/vue/UiGrid.vue +30 -8
  291. package/vue/UiIcon.vue +15 -4
  292. package/vue/UiIconButton.vue +70 -24
  293. package/vue/UiInput.vue +114 -39
  294. package/vue/UiInputGroup.vue +15 -4
  295. package/vue/UiList.vue +47 -16
  296. package/vue/UiListItem.vue +24 -6
  297. package/vue/UiListbox.d.ts +3 -3
  298. package/vue/UiListbox.vue +72 -24
  299. package/vue/UiMenu.vue +55 -15
  300. package/vue/UiMenuGroup.vue +14 -4
  301. package/vue/UiMenuItem.d.ts +4 -4
  302. package/vue/UiMenuItem.vue +77 -27
  303. package/vue/UiMeter.vue +65 -16
  304. package/vue/UiNavItem.vue +48 -24
  305. package/vue/UiPageHeader.vue +16 -4
  306. package/vue/UiPopover.vue +46 -21
  307. package/vue/UiRadio.d.ts +4 -4
  308. package/vue/UiRadio.vue +58 -15
  309. package/vue/UiRadioGroup.d.ts +3 -3
  310. package/vue/UiRadioGroup.vue +66 -17
  311. package/vue/UiReel.d.ts +1 -1
  312. package/vue/UiReel.vue +31 -8
  313. package/vue/UiScrollArea.vue +16 -4
  314. package/vue/UiSearchResultRow.vue +23 -6
  315. package/vue/UiSearchShell.vue +38 -11
  316. package/vue/UiSection.vue +33 -8
  317. package/vue/UiSelect.d.ts +1 -1
  318. package/vue/UiSelect.vue +45 -20
  319. package/vue/UiSeparator.vue +16 -4
  320. package/vue/UiSidebar.d.ts +2 -2
  321. package/vue/UiSidebar.vue +86 -22
  322. package/vue/UiSpinner.vue +23 -6
  323. package/vue/UiStack.vue +31 -8
  324. package/vue/UiStatusMessage.vue +32 -8
  325. package/vue/UiSwitch.d.ts +4 -4
  326. package/vue/UiSwitch.vue +57 -15
  327. package/vue/UiSwitcher.vue +41 -17
  328. package/vue/UiTable.vue +24 -6
  329. package/vue/UiTabs.vue +60 -14
  330. package/vue/UiText.vue +98 -35
  331. package/vue/UiTextarea.d.ts +1 -1
  332. package/vue/UiTextarea.vue +67 -26
  333. package/vue/UiToast.vue +24 -6
  334. package/vue/UiToastRegion.vue +41 -13
  335. package/vue/UiTooltip.d.ts +1 -1
  336. package/vue/UiTooltip.vue +85 -30
  337. package/vue/UiTopBar.vue +1 -1
  338. package/vue/UiTree.vue +56 -14
  339. package/vue/UiTreeItem.d.ts +3 -3
  340. package/vue/UiTreeItem.vue +147 -36
  341. package/vue/chunks/UiActionBar.js +1 -1
  342. package/vue/chunks/UiAffordanceScope.js +34 -7
  343. package/vue/chunks/UiAvatar.js +141 -21
  344. package/vue/chunks/UiAvatarGroup.js +83 -16
  345. package/vue/chunks/UiBadge.js +57 -19
  346. package/vue/chunks/UiBreadcrumbItem.js +19 -6
  347. package/vue/chunks/UiBreadcrumbs.js +19 -6
  348. package/vue/chunks/UiButton.js +194 -42
  349. package/vue/chunks/UiCallout.js +27 -13
  350. package/vue/chunks/UiCard.js +83 -25
  351. package/vue/chunks/UiCheckbox.js +104 -17
  352. package/vue/chunks/UiCluster.js +70 -25
  353. package/vue/chunks/UiCombobox.js +441 -46
  354. package/vue/chunks/UiContainer.js +36 -11
  355. package/vue/chunks/UiContextMenu.js +33 -7
  356. package/vue/chunks/UiCover.js +20 -6
  357. package/vue/chunks/UiDescriptionItem.js +18 -5
  358. package/vue/chunks/UiDescriptionList.js +54 -17
  359. package/vue/chunks/UiDialog.js +115 -23
  360. package/vue/chunks/UiDisclosure.js +110 -24
  361. package/vue/chunks/UiEditable.js +146 -18
  362. package/vue/chunks/UiEditorInsertTableGrid.js +65 -10
  363. package/vue/chunks/UiEditorMentionMenu.js +210 -14
  364. package/vue/chunks/UiEditorMentionMenuItem.js +43 -8
  365. package/vue/chunks/UiEditorSlashMenu.js +186 -12
  366. package/vue/chunks/UiEditorSlashMenuGroup.js +19 -6
  367. package/vue/chunks/UiEditorSlashMenuItem.js +65 -10
  368. package/vue/chunks/UiEditorTableContextMenu.js +116 -16
  369. package/vue/chunks/UiEditorTableOverlay.js +188 -7
  370. package/vue/chunks/UiEditorTableToolbar.js +125 -16
  371. package/vue/chunks/UiEditorToolbar.js +19 -6
  372. package/vue/chunks/UiFloatingActionButton.js +43 -8
  373. package/vue/chunks/UiFormField.js +43 -8
  374. package/vue/chunks/UiGrid.js +52 -18
  375. package/vue/chunks/UiIcon.js +19 -6
  376. package/vue/chunks/UiIconButton.js +107 -21
  377. package/vue/chunks/UiInput.js +309 -30
  378. package/vue/chunks/UiInputGroup.js +19 -6
  379. package/vue/chunks/UiList.js +62 -10
  380. package/vue/chunks/UiListItem.js +33 -7
  381. package/vue/chunks/UiListbox.js +105 -13
  382. package/vue/chunks/UiMenu.js +79 -11
  383. package/vue/chunks/UiMenuGroup.js +19 -6
  384. package/vue/chunks/UiMenuItem.js +93 -28
  385. package/vue/chunks/UiMeter.js +96 -19
  386. package/vue/chunks/UiNavItem.js +74 -17
  387. package/vue/chunks/UiPageHeader.js +20 -6
  388. package/vue/chunks/UiPopover.js +58 -21
  389. package/vue/chunks/UiRadio.js +82 -15
  390. package/vue/chunks/UiRadioGroup.js +89 -12
  391. package/vue/chunks/UiReel.js +53 -18
  392. package/vue/chunks/UiScrollArea.js +20 -6
  393. package/vue/chunks/UiSearchResultRow.js +32 -7
  394. package/vue/chunks/UiSearchShell.js +55 -9
  395. package/vue/chunks/UiSection.js +49 -12
  396. package/vue/chunks/UiSelect.js +68 -13
  397. package/vue/chunks/UiSeparator.js +20 -6
  398. package/vue/chunks/UiSidebar.js +123 -19
  399. package/vue/chunks/UiSpinner.js +33 -7
  400. package/vue/chunks/UiStack.js +59 -24
  401. package/vue/chunks/UiStatusMessage.js +53 -16
  402. package/vue/chunks/UiSwitch.js +82 -15
  403. package/vue/chunks/UiSwitcher.js +70 -25
  404. package/vue/chunks/UiTable.js +33 -7
  405. package/vue/chunks/UiTabs.js +81 -11
  406. package/vue/chunks/UiText.js +169 -58
  407. package/vue/chunks/UiTextarea.js +101 -16
  408. package/vue/chunks/UiToast.js +39 -13
  409. package/vue/chunks/UiToastRegion.js +41 -14
  410. package/vue/chunks/UiTooltip.js +113 -30
  411. package/vue/chunks/UiTopBar.js +1 -1
  412. package/vue/chunks/UiTree.js +82 -15
  413. package/vue/chunks/UiTreeItem.js +184 -22
  414. package/vue/chunks/props.js +271 -35
  415. package/vue/components.css +1197 -1197
  416. package/vue/editor/index.js +5 -2
  417. package/vue/editor/primitives.d.ts +4 -1
  418. package/vue/host.ts +6 -6
package/vue/UiStack.vue CHANGED
@@ -1,11 +1,39 @@
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
+ align: {
12
+ type: { kind: 'terminal', name: 'keyword' },
13
+ required: false,
14
+ target: { attribute: 'align' },
15
+ description:
16
+ 'How items sit across the stack: stretch (the default) makes each fill the stack\'s width; start, center, and end keep each at its own width, against the\n start, in the middle, or against the end.',
17
+ values: ['start', 'center', 'end', 'stretch'],
18
+ },
19
+ gap: {
20
+ type: { kind: 'terminal', name: 'keyword' },
21
+ required: false,
22
+ target: { attribute: 'gap' },
23
+ description:
24
+ 'Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap custom property,\n set on the stack itself, overrides it; set on an ancestor, it does nothing.',
25
+ values: ['xs', 's', 'm', 'l', 'xl'],
26
+ },
27
+ justify: {
28
+ type: { kind: 'terminal', name: 'keyword' },
29
+ required: false,
30
+ target: { attribute: 'justify' },
31
+ description:
32
+ 'Where items sit along a stack that is taller than its content: start (the default), center, end, or between, which spreads the spare space between items.\n It has no effect unless the stack is given a height or stretched to one.',
33
+ values: ['start', 'center', 'end', 'between'],
34
+ },
35
+ },
36
+ }
9
37
  const props = defineProps({
10
38
  align: {
11
39
  type: null as unknown as PropType<'start' | 'center' | 'end' | 'stretch' | null>,
@@ -23,24 +51,18 @@ const checkedProps = computed(() => ({
23
51
  { kind: 'terminal', name: 'keyword' },
24
52
  false,
25
53
  'align',
26
- undefined,
27
- ['start', 'center', 'end', 'stretch'],
28
54
  ),
29
55
  gap: checkedProp<'xs' | 's' | 'm' | 'l' | 'xl'>(
30
56
  props['gap'],
31
57
  { kind: 'terminal', name: 'keyword' },
32
58
  false,
33
59
  'gap',
34
- undefined,
35
- ['xs', 's', 'm', 'l', 'xl'],
36
60
  ),
37
61
  justify: checkedProp<'start' | 'center' | 'end' | 'between'>(
38
62
  props['justify'],
39
63
  { kind: 'terminal', name: 'keyword' },
40
64
  false,
41
65
  'justify',
42
- undefined,
43
- ['start', 'center', 'end', 'between'],
44
66
  ),
45
67
  }))
46
68
  void checkedProps.value
@@ -113,6 +135,7 @@ const hostState = computed(() =>
113
135
  <div
114
136
  data-component="ui-stack"
115
137
  v-bind="nativeAttrs($attrs)"
138
+ v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
116
139
  :data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
117
140
  :data-gap="reflectedProp('gap', 'gap', checkedProps.gap, undefined, false)"
118
141
  :data-justify="reflectedProp('justify', 'justify', checkedProps.justify, undefined, false)"
@@ -1,12 +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
  import UiSpinner from './UiSpinner.vue'
7
7
 
8
8
  defineOptions({ inheritAttrs: false })
9
9
 
10
+ const propValidityContract = {
11
+ props: {
12
+ heading: {
13
+ type: { kind: 'terminal', name: 'string' },
14
+ required: false,
15
+ target: { attribute: 'heading' },
16
+ description: 'A short heading above the message, such as "No pages yet". Optional.',
17
+ default: '',
18
+ },
19
+ kind: {
20
+ type: { kind: 'terminal', name: 'keyword' },
21
+ required: false,
22
+ target: { attribute: 'kind' },
23
+ description:
24
+ 'What the view is saying. empty: there is nothing here yet (announced politely); loading: it is on its way, with a spinner (announced politely); error: it\n could not be shown, in the danger tone (announced at once).',
25
+ values: ['empty', 'loading', 'error'],
26
+ default: 'empty',
27
+ },
28
+ layout: {
29
+ type: { kind: 'terminal', name: 'keyword' },
30
+ required: false,
31
+ target: { attribute: 'layout' },
32
+ description:
33
+ 'Where it sits. inline takes its place in the view\'s flow; panel sits it on a dashed surface, for an empty area in a page; fill centres it in all the space\n it is given, for a whole view that is loading or failed.',
34
+ values: ['inline', 'panel', 'fill'],
35
+ default: 'inline',
36
+ },
37
+ },
38
+ }
10
39
  const props = defineProps({
11
40
  heading: { type: null as unknown as PropType<string | null>, default: '' },
12
41
  kind: {
@@ -24,24 +53,18 @@ const checkedProps = computed(() => ({
24
53
  { kind: 'terminal', name: 'string' },
25
54
  false,
26
55
  'heading',
27
- undefined,
28
- undefined,
29
56
  ) as string,
30
57
  kind: checkedProp<'empty' | 'loading' | 'error'>(
31
58
  props['kind'],
32
59
  { kind: 'terminal', name: 'keyword' },
33
60
  false,
34
61
  'kind',
35
- undefined,
36
- ['empty', 'loading', 'error'],
37
62
  ) as 'empty' | 'loading' | 'error',
38
63
  layout: checkedProp<'inline' | 'panel' | 'fill'>(
39
64
  props['layout'],
40
65
  { kind: 'terminal', name: 'keyword' },
41
66
  false,
42
67
  'layout',
43
- undefined,
44
- ['inline', 'panel', 'fill'],
45
68
  ) as 'inline' | 'panel' | 'fill',
46
69
  }))
47
70
  void checkedProps.value
@@ -130,6 +153,7 @@ function attribute(value: unknown): any {
130
153
  :role="attribute(
131
154
  (({ true: 'alert', false: 'status' }) as Record<string, any>)[`${checkedProps.kind === 'error'}`],
132
155
  )"
156
+ v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
133
157
  :data-heading="reflectedProp('heading', 'heading', checkedProps.heading, undefined, false)"
134
158
  :data-kind="reflectedProp('kind', 'kind', checkedProps.kind, undefined, false)"
135
159
  :data-layout="reflectedProp('layout', 'layout', checkedProps.layout, undefined, false)"
package/vue/UiSwitch.d.ts CHANGED
@@ -31,13 +31,13 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
31
31
  default: string;
32
32
  };
33
33
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
34
- "update:checked": (value: boolean) => any;
35
- "update:value": (value: string) => any;
36
34
  change: (event: CustomEvent<{
37
35
  readonly checked: boolean;
38
36
  readonly value: string;
39
37
  readonly trigger: "keyboard" | "pointer" | "programmatic";
40
38
  }>) => any;
39
+ "update:checked": (value: boolean) => any;
40
+ "update:value": (value: string) => any;
41
41
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
42
42
  checked: {
43
43
  type: PropType<boolean | null>;
@@ -64,13 +64,13 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
64
64
  default: string;
65
65
  };
66
66
  }>> & Readonly<{
67
- "onUpdate:checked"?: ((value: boolean) => any) | undefined;
68
- "onUpdate:value"?: ((value: string) => any) | undefined;
69
67
  onChange?: ((event: CustomEvent<{
70
68
  readonly checked: boolean;
71
69
  readonly value: string;
72
70
  readonly trigger: "keyboard" | "pointer" | "programmatic";
73
71
  }>) => any) | undefined;
72
+ "onUpdate:checked"?: ((value: boolean) => any) | undefined;
73
+ "onUpdate:value"?: ((value: string) => any) | undefined;
74
74
  }>, {
75
75
  name: string | null;
76
76
  value: string | null;
package/vue/UiSwitch.vue CHANGED
@@ -1,13 +1,65 @@
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 { 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
+ checked: {
14
+ type: { kind: 'terminal', name: 'boolean' },
15
+ required: false,
16
+ target: { attribute: 'checked' },
17
+ description:
18
+ 'Whether the switch is checked initially or when set externally. A form reset returns it to this.',
19
+ default: false,
20
+ },
21
+ disabled: {
22
+ type: { kind: 'terminal', name: 'boolean' },
23
+ required: false,
24
+ target: { attribute: 'disabled' },
25
+ description: 'Disables the native switch, so it cannot be toggled or focused.',
26
+ default: false,
27
+ },
28
+ name: {
29
+ type: { kind: 'terminal', name: 'string' },
30
+ required: false,
31
+ target: { attribute: 'name' },
32
+ description:
33
+ 'The native name the switch submits under: a form that contains it sends name=value while it is on, and nothing while it is off, as a native checkbox does.\n Left empty, it takes no part in form submission.',
34
+ default: '',
35
+ },
36
+ required: {
37
+ type: { kind: 'terminal', name: 'boolean' },
38
+ required: false,
39
+ target: { attribute: 'required' },
40
+ description:
41
+ 'Marks the native switch required, so native form validation treats it as invalid until it is on.',
42
+ default: false,
43
+ },
44
+ size: {
45
+ type: { kind: 'terminal', name: 'keyword' },
46
+ required: false,
47
+ target: { attribute: 'size' },
48
+ description:
49
+ 'Aligns the switch with fields and buttons of the same size. It keeps its track size; the label takes that size\'s field type size and its first line centres\n in that control height (sm 2rem, lg 3rem by default), so in a row of inputs, selects, and buttons of one size it shares their height and their text\n baseline. Under a coarse pointer an sm row grows to the 44px touch minimum, as they do. md is the standard layout.',
50
+ values: ['sm', 'md', 'lg'],
51
+ default: 'md',
52
+ },
53
+ value: {
54
+ type: { kind: 'terminal', name: 'string' },
55
+ required: false,
56
+ target: { attribute: 'value' },
57
+ description:
58
+ 'The value a form submits under name while the switch is on, also reported in the change event\'s detail so one handler can tell switches apart. on by\n default, as on a native checkbox.',
59
+ default: 'on',
60
+ },
61
+ },
62
+ }
11
63
  const props = defineProps({
12
64
  checked: { type: null as unknown as PropType<boolean | null>, default: false },
13
65
  disabled: { type: null as unknown as PropType<boolean | null>, default: false },
@@ -22,48 +74,36 @@ const checkedProps = computed(() => ({
22
74
  { kind: 'terminal', name: 'boolean' },
23
75
  false,
24
76
  'checked',
25
- undefined,
26
- undefined,
27
77
  ) as boolean,
28
78
  disabled: checkedProp<boolean>(
29
79
  props['disabled'],
30
80
  { kind: 'terminal', name: 'boolean' },
31
81
  false,
32
82
  'disabled',
33
- undefined,
34
- undefined,
35
83
  ) as boolean,
36
84
  name: checkedProp<string>(
37
85
  props['name'],
38
86
  { kind: 'terminal', name: 'string' },
39
87
  false,
40
88
  'name',
41
- undefined,
42
- undefined,
43
89
  ) as string,
44
90
  required: checkedProp<boolean>(
45
91
  props['required'],
46
92
  { kind: 'terminal', name: 'boolean' },
47
93
  false,
48
94
  'required',
49
- undefined,
50
- undefined,
51
95
  ) as boolean,
52
96
  size: checkedProp<'sm' | 'md' | 'lg'>(
53
97
  props['size'],
54
98
  { kind: 'terminal', name: 'keyword' },
55
99
  false,
56
100
  'size',
57
- undefined,
58
- ['sm', 'md', 'lg'],
59
101
  ) as 'sm' | 'md' | 'lg',
60
102
  value: checkedProp<string>(
61
103
  props['value'],
62
104
  { kind: 'terminal', name: 'string' },
63
105
  false,
64
106
  'value',
65
- undefined,
66
- undefined,
67
107
  ) as string,
68
108
  }))
69
109
  void checkedProps.value
@@ -121,6 +161,7 @@ const root = ref<HTMLElement | null>(null)
121
161
  const inputElement = useTemplateRef<HTMLElement>('input')
122
162
  const descriptionElement = useTemplateRef<HTMLElement>('description')
123
163
  const internalChecked = ref(false)
164
+ provide('html-next:ui-switch:internalChecked', internalChecked)
124
165
  const hydrationNode = hydrationInstance?.vnode.el
125
166
  if (
126
167
  typeof window !== 'undefined' && hydrationNode != null
@@ -176,6 +217,7 @@ useComponentHost(() => import('../components/ui-switch/ui-switch.js'), {
176
217
  <label
177
218
  data-component="ui-switch"
178
219
  v-bind="nativeAttrs($attrs)"
220
+ v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
179
221
  :data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
180
222
  :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
181
223
  :data-name="reflectedProp('name', 'name', checkedProps.name, undefined, false)"
@@ -1,12 +1,47 @@
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, watchSyncEffect } from 'vue'
3
+ import { computed, getCurrentInstance, provide, 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
+ align: {
13
+ type: { kind: 'terminal', name: 'keyword' },
14
+ required: false,
15
+ target: { attribute: 'align' },
16
+ description:
17
+ 'How items line up while they sit in a row: stretch (the default) makes them equally tall; start, center, and end align their tops, middles, or\n bottoms.',
18
+ values: ['start', 'center', 'end', 'stretch'],
19
+ },
20
+ gap: {
21
+ type: { kind: 'terminal', name: 'keyword' },
22
+ required: false,
23
+ target: { attribute: 'gap' },
24
+ description:
25
+ 'Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-switcher-gap custom\n property, set on the switcher itself, overrides it; set on an ancestor, it does nothing.',
26
+ values: ['xs', 's', 'm', 'l', 'xl'],
27
+ },
28
+ limit: {
29
+ type: { kind: 'terminal', name: 'integer' },
30
+ required: false,
31
+ target: { attribute: 'limit' },
32
+ description:
33
+ 'Most children allowed in a horizontal row. When the count exceeds this value, every child stacks regardless of width. Omit it for no count limit.',
34
+ },
35
+ threshold: {
36
+ type: { kind: 'terminal', name: 'keyword' },
37
+ required: false,
38
+ target: { attribute: 'threshold' },
39
+ description:
40
+ 'The container width at which items switch between a row and a stack: wider, they all sit side by side; narrower, each takes the full width. xs is 20rem, sm\n is 30rem (also the default), md is 45rem, and lg is 60rem.',
41
+ values: ['xs', 'sm', 'md', 'lg'],
42
+ },
43
+ },
44
+ }
10
45
  const props = defineProps({
11
46
  align: {
12
47
  type: null as unknown as PropType<'start' | 'center' | 'end' | 'stretch' | null>,
@@ -22,32 +57,19 @@ const checkedProps = computed(() => ({
22
57
  { kind: 'terminal', name: 'keyword' },
23
58
  false,
24
59
  'align',
25
- undefined,
26
- ['start', 'center', 'end', 'stretch'],
27
60
  ),
28
61
  gap: checkedProp<'xs' | 's' | 'm' | 'l' | 'xl'>(
29
62
  props['gap'],
30
63
  { kind: 'terminal', name: 'keyword' },
31
64
  false,
32
65
  'gap',
33
- undefined,
34
- ['xs', 's', 'm', 'l', 'xl'],
35
- ),
36
- limit: checkedProp<number>(
37
- props['limit'],
38
- { kind: 'terminal', name: 'integer' },
39
- false,
40
- 'limit',
41
- undefined,
42
- undefined,
43
66
  ),
67
+ limit: checkedProp<number>(props['limit'], { kind: 'terminal', name: 'integer' }, false, 'limit'),
44
68
  threshold: checkedProp<'xs' | 'sm' | 'md' | 'lg'>(
45
69
  props['threshold'],
46
70
  { kind: 'terminal', name: 'keyword' },
47
71
  false,
48
72
  'threshold',
49
- undefined,
50
- ['xs', 'sm', 'md', 'lg'],
51
73
  ),
52
74
  }))
53
75
  void checkedProps.value
@@ -90,6 +112,7 @@ const hydrationInstance = getCurrentInstance()
90
112
 
91
113
  const root = ref<HTMLElement | null>(null)
92
114
  const overLimit = ref(false)
115
+ provide('html-next:ui-switcher:overLimit', overLimit)
93
116
  const hydrationNode = hydrationInstance?.vnode.el
94
117
  if (
95
118
  typeof window !== 'undefined' && hydrationNode != null
@@ -139,6 +162,7 @@ useComponentHost(() => import('../components/ui-switcher/ui-switcher.js'), {
139
162
  <div
140
163
  data-component="ui-switcher"
141
164
  v-bind="nativeAttrs($attrs)"
165
+ v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
142
166
  :data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
143
167
  :data-gap="reflectedProp('gap', 'gap', checkedProps.gap, undefined, false)"
144
168
  :data-limit="reflectedProp('limit', 'limit', checkedProps.limit, undefined, false)"
package/vue/UiTable.vue CHANGED
@@ -1,12 +1,33 @@
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 { 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
+ density: {
13
+ type: { kind: 'terminal', name: 'keyword' },
14
+ required: false,
15
+ target: { attribute: 'density' },
16
+ description:
17
+ 'How tall each row is. Every row is at least one control tall, so a row holding a control lines up with the rows around it. comfortable fits a control of\n the standard height (2.5rem), for tables read or edited at a glance; compact fits a small one (2rem), such as a Checkbox or a Button with size="sm", for\n long tables to scan.',
18
+ values: ['comfortable', 'compact'],
19
+ default: 'comfortable',
20
+ },
21
+ stickyHeader: {
22
+ type: { kind: 'terminal', name: 'boolean' },
23
+ required: false,
24
+ target: { attribute: 'stickyheader' },
25
+ description:
26
+ 'Keeps the header row in view while the rows scroll beneath it. The table scrolls inside its own box, so this needs a bounded height, such as a table that\n fills a fixed-height panel.',
27
+ default: false,
28
+ },
29
+ },
30
+ }
10
31
  const props = defineProps({
11
32
  density: {
12
33
  type: null as unknown as PropType<'comfortable' | 'compact' | null>,
@@ -20,16 +41,12 @@ const checkedProps = computed(() => ({
20
41
  { kind: 'terminal', name: 'keyword' },
21
42
  false,
22
43
  'density',
23
- undefined,
24
- ['comfortable', 'compact'],
25
44
  ) as 'comfortable' | 'compact',
26
45
  stickyHeader: checkedProp<boolean>(
27
46
  props['stickyHeader'],
28
47
  { kind: 'terminal', name: 'boolean' },
29
48
  false,
30
49
  'stickyHeader',
31
- undefined,
32
- undefined,
33
50
  ) as boolean,
34
51
  }))
35
52
  void checkedProps.value
@@ -112,6 +129,7 @@ useComponentHost(() => import('../components/ui-table/ui-table.js'), {
112
129
  <div
113
130
  data-component="ui-table"
114
131
  v-bind="nativeAttrs($attrs)"
132
+ v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
115
133
  :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
116
134
  :data-sticky-header="reflectedProp('stickyHeader', 'sticky-header', checkedProps.stickyHeader, undefined, false)"
117
135
  :data-ui-table-state="hostState || undefined"
package/vue/UiTabs.vue CHANGED
@@ -1,20 +1,75 @@
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 {
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
 
16
17
  defineOptions({ inheritAttrs: false })
17
18
 
19
+ const propValidityContract = {
20
+ props: {
21
+ activation: {
22
+ type: { kind: 'terminal', name: 'keyword' },
23
+ required: false,
24
+ target: { attribute: 'activation' },
25
+ description:
26
+ 'In auto mode, arrow keys move focus and select the next panel. In manual mode, arrows move focus while Enter or Space selects a panel. Use manual when\n displaying a panel takes time.',
27
+ values: ['auto', 'manual'],
28
+ default: 'auto',
29
+ },
30
+ density: {
31
+ type: { kind: 'terminal', name: 'keyword' },
32
+ required: false,
33
+ target: { attribute: 'density' },
34
+ description: 'Compact trades padding and type size for rows that fit more on screen.',
35
+ values: ['comfortable', 'compact'],
36
+ default: 'comfortable',
37
+ },
38
+ label: {
39
+ type: { kind: 'terminal', name: 'string' },
40
+ required: false,
41
+ target: { attribute: 'aria-label' },
42
+ description:
43
+ 'The tab list\'s accessible name, announced when focus enters the list. Name what the tabs switch between.',
44
+ default: 'Tabs',
45
+ },
46
+ orientation: {
47
+ type: { kind: 'terminal', name: 'keyword' },
48
+ required: false,
49
+ target: { attribute: 'aria-orientation' },
50
+ description:
51
+ 'horizontal puts the tabs in a row above the panels, moved between with the Left and Right arrow keys; vertical puts them in a column beside the panels,\n moved between with Up and Down.',
52
+ values: ['horizontal', 'vertical'],
53
+ default: 'horizontal',
54
+ },
55
+ stretch: {
56
+ type: { kind: 'terminal', name: 'boolean' },
57
+ required: false,
58
+ target: { attribute: 'stretch' },
59
+ description:
60
+ 'Share the full width of the tab list equally between tabs instead of sizing each to its label.',
61
+ default: false,
62
+ },
63
+ value: {
64
+ type: { kind: 'terminal', name: 'string' },
65
+ required: false,
66
+ target: { attribute: 'value' },
67
+ description:
68
+ 'The id of the selected panel, initially or when set externally; empty selects the first panel. Choosing a tab updates it from there and reports a select\n event. A panel without an id is given a generated one.',
69
+ default: '',
70
+ },
71
+ },
72
+ }
18
73
  const props = defineProps({
19
74
  activation: { type: null as unknown as PropType<'auto' | 'manual' | null>, default: 'auto' },
20
75
  density: {
@@ -35,48 +90,36 @@ const checkedProps = computed(() => ({
35
90
  { kind: 'terminal', name: 'keyword' },
36
91
  false,
37
92
  'activation',
38
- undefined,
39
- ['auto', 'manual'],
40
93
  ) as 'auto' | 'manual',
41
94
  density: checkedProp<'comfortable' | 'compact'>(
42
95
  props['density'],
43
96
  { kind: 'terminal', name: 'keyword' },
44
97
  false,
45
98
  'density',
46
- undefined,
47
- ['comfortable', 'compact'],
48
99
  ) as 'comfortable' | 'compact',
49
100
  label: checkedProp<string>(
50
101
  props['label'],
51
102
  { kind: 'terminal', name: 'string' },
52
103
  false,
53
104
  'label',
54
- undefined,
55
- undefined,
56
105
  ) as string,
57
106
  orientation: checkedProp<'horizontal' | 'vertical'>(
58
107
  props['orientation'],
59
108
  { kind: 'terminal', name: 'keyword' },
60
109
  false,
61
110
  'orientation',
62
- undefined,
63
- ['horizontal', 'vertical'],
64
111
  ) as 'horizontal' | 'vertical',
65
112
  stretch: checkedProp<boolean>(
66
113
  props['stretch'],
67
114
  { kind: 'terminal', name: 'boolean' },
68
115
  false,
69
116
  'stretch',
70
- undefined,
71
- undefined,
72
117
  ) as boolean,
73
118
  value: checkedProp<string>(
74
119
  props['value'],
75
120
  { kind: 'terminal', name: 'string' },
76
121
  false,
77
122
  'value',
78
- undefined,
79
- undefined,
80
123
  ) as string,
81
124
  }))
82
125
  void checkedProps.value
@@ -160,6 +203,8 @@ const listElement = useTemplateRef<HTMLElement>('list')
160
203
  const panelsElement = useTemplateRef<HTMLElement>('panels')
161
204
  const internalValue = ref('')
162
205
  const tabs = ref<{ id: string; label: string }[]>([])
206
+ provide('html-next:ui-tabs:internalValue', internalValue)
207
+ provide('html-next:ui-tabs:tabs', tabs)
163
208
  const hydrationNode = hydrationInstance?.vnode.el
164
209
  if (
165
210
  typeof window !== 'undefined' && hydrationNode != null
@@ -254,6 +299,7 @@ function uniqueKeys<T>(
254
299
  <div
255
300
  data-component="ui-tabs"
256
301
  v-bind="nativeAttrs($attrs)"
302
+ v-prop-validity="{ contract: propValidityContract, values: { ...checkedProps } }"
257
303
  :data-activation="reflectedProp('activation', 'activation', checkedProps.activation, undefined, false)"
258
304
  :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
259
305
  :data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"