@threadlabs/looma 0.23.16 → 0.23.17

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 (402) hide show
  1. package/components/ui-avatar/ui-avatar.html +1 -1
  2. package/components/ui-avatar-group/ui-avatar-group.html +1 -3
  3. package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +1 -1
  4. package/components/ui-button/ui-button.html +4 -4
  5. package/components/ui-combobox/ui-combobox.html +19 -21
  6. package/components/ui-description-item/ui-description-item.html +1 -1
  7. package/components/ui-dialog/ui-dialog.html +1 -1
  8. package/components/ui-disclosure/ui-disclosure.html +1 -1
  9. package/components/ui-editable/ui-editable.html +4 -4
  10. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +1 -1
  11. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +2 -2
  12. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +2 -2
  13. package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +1 -1
  14. package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +1 -1
  15. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +2 -2
  16. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +2 -2
  17. package/components/ui-icon-button/ui-icon-button.html +1 -1
  18. package/components/ui-listbox/ui-listbox.html +2 -2
  19. package/components/ui-menu-group/ui-menu-group.html +1 -1
  20. package/components/ui-menu-item/ui-menu-item.html +1 -1
  21. package/components/ui-meter/ui-meter.html +7 -8
  22. package/components/ui-nav-item/ui-nav-item.html +2 -2
  23. package/components/ui-radio-group/ui-radio-group.html +1 -1
  24. package/components/ui-section/ui-section.html +1 -1
  25. package/components/ui-spinner/ui-spinner.html +4 -4
  26. package/components/ui-status-message/ui-status-message.html +2 -2
  27. package/components/ui-tabs/ui-tabs.html +1 -1
  28. package/components/ui-toast-region/ui-toast-region.html +1 -1
  29. package/components/ui-tree-item/ui-tree-item.html +3 -3
  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 +1 -1
  109. package/vanilla/UiAvatar.d.ts +1 -1
  110. package/vanilla/UiAvatar.js +9 -7
  111. package/vanilla/UiAvatarGroup.d.ts +1 -1
  112. package/vanilla/UiAvatarGroup.js +4 -4
  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 +2 -2
  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 +2 -2
  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 +1 -1
  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 +29 -25
  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 +1 -1
  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 +5 -5
  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 +16 -14
  143. package/vanilla/UiDisclosure.d.ts +1 -1
  144. package/vanilla/UiDisclosure.js +4 -4
  145. package/vanilla/UiEditable.d.ts +1 -1
  146. package/vanilla/UiEditable.js +35 -27
  147. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  148. package/vanilla/UiEditorInsertTableGrid.js +20 -18
  149. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  150. package/vanilla/UiEditorMentionMenu.js +27 -25
  151. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  152. package/vanilla/UiEditorMentionMenuItem.js +6 -4
  153. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  154. package/vanilla/UiEditorSlashMenu.js +1 -1
  155. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  156. package/vanilla/UiEditorSlashMenuGroup.js +9 -7
  157. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  158. package/vanilla/UiEditorSlashMenuItem.js +4 -2
  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 +1 -1
  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 +2 -2
  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 +1 -1
  189. package/vanilla/UiMenuGroup.d.ts +1 -1
  190. package/vanilla/UiMenuGroup.js +4 -2
  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 +2 -2
  195. package/vanilla/UiNavItem.d.ts +1 -1
  196. package/vanilla/UiNavItem.js +2 -2
  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 +1 -1
  201. package/vanilla/UiRadio.d.ts +1 -1
  202. package/vanilla/UiRadio.js +1 -1
  203. package/vanilla/UiRadioGroup.d.ts +1 -1
  204. package/vanilla/UiRadioGroup.js +4 -4
  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 +1 -1
  213. package/vanilla/UiSection.d.ts +1 -1
  214. package/vanilla/UiSection.js +4 -4
  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 +1 -1
  221. package/vanilla/UiSpinner.d.ts +1 -1
  222. package/vanilla/UiSpinner.js +2 -2
  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 +4 -4
  227. package/vanilla/UiSwitch.d.ts +1 -1
  228. package/vanilla/UiSwitch.js +1 -1
  229. package/vanilla/UiSwitcher.d.ts +1 -1
  230. package/vanilla/UiSwitcher.js +1 -1
  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 +1 -1
  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 +4 -4
  251. package/vue/UiActionBar.vue +1 -1
  252. package/vue/UiAffordanceScope.vue +1 -1
  253. package/vue/UiAvatar.vue +1 -1
  254. package/vue/UiAvatarGroup.vue +9 -2
  255. package/vue/UiBadge.vue +1 -1
  256. package/vue/UiBreadcrumbItem.vue +55 -9
  257. package/vue/UiBreadcrumbs.vue +1 -1
  258. package/vue/UiButton.vue +162 -37
  259. package/vue/UiCallout.vue +1 -1
  260. package/vue/UiCard.vue +1 -1
  261. package/vue/UiCheckbox.vue +8 -1
  262. package/vue/UiCluster.vue +1 -1
  263. package/vue/UiCombobox.d.ts +1 -1
  264. package/vue/UiCombobox.vue +190 -73
  265. package/vue/UiContainer.vue +1 -1
  266. package/vue/UiContextMenu.vue +1 -1
  267. package/vue/UiCover.vue +1 -1
  268. package/vue/UiDescriptionItem.vue +1 -1
  269. package/vue/UiDescriptionList.vue +1 -1
  270. package/vue/UiDialog.vue +1 -1
  271. package/vue/UiDisclosure.vue +1 -1
  272. package/vue/UiEditable.vue +9 -4
  273. package/vue/UiEditorInsertTableGrid.vue +19 -2
  274. package/vue/UiEditorMentionMenu.vue +20 -2
  275. package/vue/UiEditorMentionMenuItem.vue +1 -1
  276. package/vue/UiEditorSlashMenu.vue +1 -1
  277. package/vue/UiEditorSlashMenuGroup.vue +1 -1
  278. package/vue/UiEditorSlashMenuItem.vue +1 -1
  279. package/vue/UiEditorTableContextMenu.vue +46 -5
  280. package/vue/UiEditorTableOverlay.vue +55 -26
  281. package/vue/UiEditorTableToolbar.vue +46 -5
  282. package/vue/UiEditorToolbar.vue +1 -1
  283. package/vue/UiFloatingActionButton.vue +1 -1
  284. package/vue/UiFormField.vue +1 -1
  285. package/vue/UiGrid.vue +1 -1
  286. package/vue/UiIcon.vue +1 -1
  287. package/vue/UiIconButton.vue +58 -14
  288. package/vue/UiInput.vue +1 -1
  289. package/vue/UiInputGroup.vue +1 -1
  290. package/vue/UiList.vue +1 -1
  291. package/vue/UiListItem.vue +1 -1
  292. package/vue/UiListbox.vue +47 -13
  293. package/vue/UiMenu.vue +1 -1
  294. package/vue/UiMenuGroup.vue +1 -1
  295. package/vue/UiMenuItem.vue +46 -10
  296. package/vue/UiMeter.d.ts +2 -2
  297. package/vue/UiMeter.vue +675 -97
  298. package/vue/UiNavItem.vue +97 -39
  299. package/vue/UiPageHeader.vue +1 -1
  300. package/vue/UiPopover.vue +1 -1
  301. package/vue/UiRadio.vue +8 -1
  302. package/vue/UiRadioGroup.vue +1 -1
  303. package/vue/UiReel.vue +1 -1
  304. package/vue/UiScrollArea.vue +1 -1
  305. package/vue/UiSearchResultRow.vue +1 -1
  306. package/vue/UiSearchShell.vue +1 -1
  307. package/vue/UiSection.vue +1 -1
  308. package/vue/UiSelect.vue +1 -1
  309. package/vue/UiSeparator.vue +1 -1
  310. package/vue/UiSidebar.vue +1 -1
  311. package/vue/UiSpinner.vue +159 -31
  312. package/vue/UiStack.vue +1 -1
  313. package/vue/UiStatusMessage.vue +42 -4
  314. package/vue/UiSwitch.vue +8 -1
  315. package/vue/UiSwitcher.vue +1 -1
  316. package/vue/UiTable.vue +1 -1
  317. package/vue/UiTabs.vue +20 -2
  318. package/vue/UiText.d.ts +1 -1
  319. package/vue/UiText.vue +1 -1
  320. package/vue/UiTextarea.vue +1 -1
  321. package/vue/UiToast.vue +1 -1
  322. package/vue/UiToastRegion.vue +20 -2
  323. package/vue/UiTooltip.vue +1 -1
  324. package/vue/UiTopBar.vue +1 -1
  325. package/vue/UiTree.vue +1 -1
  326. package/vue/UiTreeItem.vue +113 -25
  327. package/vue/chunks/UiActionBar.js +1 -1
  328. package/vue/chunks/UiAffordanceScope.js +1 -1
  329. package/vue/chunks/UiAvatar.js +1 -1
  330. package/vue/chunks/UiAvatarGroup.js +7 -2
  331. package/vue/chunks/UiBadge.js +1 -1
  332. package/vue/chunks/UiBreadcrumbItem.js +27 -12
  333. package/vue/chunks/UiBreadcrumbs.js +1 -1
  334. package/vue/chunks/UiButton.js +67 -29
  335. package/vue/chunks/UiCallout.js +1 -1
  336. package/vue/chunks/UiCard.js +1 -1
  337. package/vue/chunks/UiCheckbox.js +6 -1
  338. package/vue/chunks/UiCluster.js +1 -1
  339. package/vue/chunks/UiCombobox.js +155 -56
  340. package/vue/chunks/UiContainer.js +1 -1
  341. package/vue/chunks/UiContextMenu.js +1 -1
  342. package/vue/chunks/UiCover.js +1 -1
  343. package/vue/chunks/UiDescriptionItem.js +1 -1
  344. package/vue/chunks/UiDescriptionList.js +1 -1
  345. package/vue/chunks/UiDialog.js +1 -1
  346. package/vue/chunks/UiDisclosure.js +1 -1
  347. package/vue/chunks/UiEditable.js +10 -5
  348. package/vue/chunks/UiEditorInsertTableGrid.js +18 -3
  349. package/vue/chunks/UiEditorMentionMenu.js +8 -2
  350. package/vue/chunks/UiEditorMentionMenuItem.js +1 -1
  351. package/vue/chunks/UiEditorSlashMenu.js +1 -1
  352. package/vue/chunks/UiEditorSlashMenuGroup.js +1 -1
  353. package/vue/chunks/UiEditorSlashMenuItem.js +1 -1
  354. package/vue/chunks/UiEditorTableContextMenu.js +13 -7
  355. package/vue/chunks/UiEditorTableOverlay.js +43 -23
  356. package/vue/chunks/UiEditorTableToolbar.js +13 -7
  357. package/vue/chunks/UiEditorToolbar.js +1 -1
  358. package/vue/chunks/UiFloatingActionButton.js +1 -1
  359. package/vue/chunks/UiFormField.js +1 -1
  360. package/vue/chunks/UiGrid.js +1 -1
  361. package/vue/chunks/UiIcon.js +1 -1
  362. package/vue/chunks/UiIconButton.js +25 -11
  363. package/vue/chunks/UiInput.js +1 -1
  364. package/vue/chunks/UiInputGroup.js +1 -1
  365. package/vue/chunks/UiList.js +1 -1
  366. package/vue/chunks/UiListItem.js +1 -1
  367. package/vue/chunks/UiListbox.js +29 -15
  368. package/vue/chunks/UiMenu.js +1 -1
  369. package/vue/chunks/UiMenuGroup.js +1 -1
  370. package/vue/chunks/UiMenuItem.js +23 -9
  371. package/vue/chunks/UiMeter.js +373 -37
  372. package/vue/chunks/UiNavItem.js +67 -39
  373. package/vue/chunks/UiPageHeader.js +1 -1
  374. package/vue/chunks/UiPopover.js +1 -1
  375. package/vue/chunks/UiRadio.js +6 -1
  376. package/vue/chunks/UiRadioGroup.js +1 -1
  377. package/vue/chunks/UiReel.js +1 -1
  378. package/vue/chunks/UiScrollArea.js +1 -1
  379. package/vue/chunks/UiSearchResultRow.js +1 -1
  380. package/vue/chunks/UiSearchShell.js +1 -1
  381. package/vue/chunks/UiSection.js +1 -1
  382. package/vue/chunks/UiSelect.js +1 -1
  383. package/vue/chunks/UiSeparator.js +1 -1
  384. package/vue/chunks/UiSidebar.js +1 -1
  385. package/vue/chunks/UiSpinner.js +75 -36
  386. package/vue/chunks/UiStack.js +1 -1
  387. package/vue/chunks/UiStatusMessage.js +21 -6
  388. package/vue/chunks/UiSwitch.js +6 -1
  389. package/vue/chunks/UiSwitcher.js +1 -1
  390. package/vue/chunks/UiTable.js +1 -1
  391. package/vue/chunks/UiTabs.js +8 -2
  392. package/vue/chunks/UiText.js +1 -1
  393. package/vue/chunks/UiTextarea.js +1 -1
  394. package/vue/chunks/UiToast.js +1 -1
  395. package/vue/chunks/UiToastRegion.js +8 -2
  396. package/vue/chunks/UiTooltip.js +1 -1
  397. package/vue/chunks/UiTopBar.js +1 -1
  398. package/vue/chunks/UiTree.js +1 -1
  399. package/vue/chunks/UiTreeItem.js +52 -19
  400. package/vue/chunks/props.js +11 -6
  401. package/vue/components.css +1302 -1302
  402. package/vue/host.ts +15 -3
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import {
4
4
  computed,
@@ -450,6 +450,24 @@ function attribute(value: unknown): any {
450
450
  return value === true ? '' : text(value)
451
451
  }
452
452
 
453
+ // A nonempty scalar call cannot produce the invalid-result sentinel.
454
+ type ConcatResult<T extends unknown[]> = T extends
455
+ [
456
+ string | number | boolean | null | undefined,
457
+ ...(string | number | boolean | null | undefined)[],
458
+ ] ? string | undefined
459
+ : string | symbol | undefined
460
+ function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
461
+ if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
462
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
463
+ }
464
+ if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
465
+ if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
466
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
467
+ }
468
+ return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
469
+ }
470
+
453
471
  function uniqueKeys<T>(
454
472
  items: readonly T[],
455
473
  keyOf: (
@@ -527,12 +545,35 @@ function uniqueKeys<T>(
527
545
  :key="item.action"
528
546
  type="button"
529
547
  :role="attribute(
530
- (({ true: 'menuitemcheckbox', false: 'menuitem' }) as Record<string, any>)[`${item.checkable}`],
548
+ ((objectValue: any, indexValue: any) =>
549
+ objectValue === Symbol.for('html-next.invalid-result')
550
+ || indexValue === Symbol.for('html-next.invalid-result')
551
+ ? Symbol.for('html-next.invalid-result')
552
+ : objectValue[indexValue])(
553
+ { true: 'menuitemcheckbox', false: 'menuitem' },
554
+ concat(item.checkable),
555
+ ),
531
556
  )"
532
- :aria-checked="typeof ((({ true: item.checked, false: null }) as Record<string, any>)[`${item.checkable}`])
557
+ :aria-checked="typeof (((objectValue: any, indexValue: any) =>
558
+ objectValue === Symbol.for('html-next.invalid-result')
559
+ || indexValue === Symbol.for('html-next.invalid-result')
560
+ ? Symbol.for('html-next.invalid-result')
561
+ : objectValue[indexValue])({ true: item.checked, false: null }, concat(item.checkable)))
533
562
  === 'boolean'
534
- ? String((({ true: item.checked, false: null }) as Record<string, any>)[`${item.checkable}`])
535
- : attribute((({ true: item.checked, false: null }) as Record<string, any>)[`${item.checkable}`])"
563
+ ? String(
564
+ ((objectValue: any, indexValue: any) =>
565
+ objectValue === Symbol.for('html-next.invalid-result')
566
+ || indexValue === Symbol.for('html-next.invalid-result')
567
+ ? Symbol.for('html-next.invalid-result')
568
+ : objectValue[indexValue])({ true: item.checked, false: null }, concat(item.checkable)),
569
+ )
570
+ : attribute(
571
+ ((objectValue: any, indexValue: any) =>
572
+ objectValue === Symbol.for('html-next.invalid-result')
573
+ || indexValue === Symbol.for('html-next.invalid-result')
574
+ ? Symbol.for('html-next.invalid-result')
575
+ : objectValue[indexValue])({ true: item.checked, false: null }, concat(item.checkable)),
576
+ )"
536
577
  :data-action="item.action"
537
578
  :class="{ danger: item.danger }"
538
579
  >
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import {
4
4
  computed,
@@ -368,45 +368,74 @@ const active = ref<
368
368
  const activeKey = ref('')
369
369
  let guardedPrevious: any
370
370
  const guarded = computed(() => {
371
- if (!(hovered.value?.['rowIndex'] == null || Number.isInteger(hovered.value?.['rowIndex']))) {
371
+ if (!(hovered.value?.['rowOffset'] == null || typeof hovered.value?.['rowOffset'] === 'string')) {
372
372
  return guardedPrevious
373
373
  }
374
- return guardedPrevious = hovered.value?.rowIndex
374
+ return guardedPrevious = hovered.value?.rowOffset
375
375
  })
376
376
  let guardedBindingPrevious: any
377
377
  const guardedBinding = computed(() => {
378
- if (
379
- !(hovered.value?.['columnIndex'] == null || Number.isInteger(hovered.value?.['columnIndex']))
380
- ) return guardedBindingPrevious
381
- return guardedBindingPrevious = hovered.value?.columnIndex
378
+ if (!(hovered.value?.['rowIndex'] == null || Number.isInteger(hovered.value?.['rowIndex']))) {
379
+ return guardedBindingPrevious
380
+ }
381
+ return guardedBindingPrevious = hovered.value?.rowIndex
382
382
  })
383
383
  let guardedBinding2Previous: any
384
384
  const guardedBinding2 = computed(() => {
385
- if (!(hovered.value?.['rowIndex'] == null || Number.isInteger(hovered.value?.['rowIndex']))) {
386
- return guardedBinding2Previous
387
- }
388
- return guardedBinding2Previous = hovered.value?.rowIndex
385
+ if (
386
+ !(hovered.value?.['columnIndex'] == null || Number.isInteger(hovered.value?.['columnIndex']))
387
+ ) return guardedBinding2Previous
388
+ return guardedBinding2Previous = hovered.value?.columnIndex
389
389
  })
390
390
  let guardedBinding3Previous: any
391
391
  const guardedBinding3 = computed(() => {
392
392
  if (
393
- !(hovered.value?.['columnIndex'] == null || Number.isInteger(hovered.value?.['columnIndex']))
393
+ !(hovered.value?.['columnOffset'] == null
394
+ || typeof hovered.value?.['columnOffset'] === 'string')
394
395
  ) return guardedBinding3Previous
395
- return guardedBinding3Previous = hovered.value?.columnIndex
396
+ return guardedBinding3Previous = hovered.value?.columnOffset
396
397
  })
397
398
  let guardedBinding4Previous: any
398
399
  const guardedBinding4 = computed(() => {
399
- if (!(active.value?.['rowIndex'] == null || Number.isInteger(active.value?.['rowIndex']))) {
400
+ if (!(hovered.value?.['rowIndex'] == null || Number.isInteger(hovered.value?.['rowIndex']))) {
400
401
  return guardedBinding4Previous
401
402
  }
402
- return guardedBinding4Previous = active.value?.rowIndex
403
+ return guardedBinding4Previous = hovered.value?.rowIndex
403
404
  })
404
405
  let guardedBinding5Previous: any
405
406
  const guardedBinding5 = computed(() => {
407
+ if (
408
+ !(hovered.value?.['columnIndex'] == null || Number.isInteger(hovered.value?.['columnIndex']))
409
+ ) return guardedBinding5Previous
410
+ return guardedBinding5Previous = hovered.value?.columnIndex
411
+ })
412
+ let guardedBinding6Previous: any
413
+ const guardedBinding6 = computed(() => {
414
+ if (!(active.value?.['menuLeft'] == null || typeof active.value?.['menuLeft'] === 'string')) {
415
+ return guardedBinding6Previous
416
+ }
417
+ return guardedBinding6Previous = active.value?.menuLeft
418
+ })
419
+ let guardedBinding7Previous: any
420
+ const guardedBinding7 = computed(() => {
421
+ if (!(active.value?.['menuTop'] == null || typeof active.value?.['menuTop'] === 'string')) {
422
+ return guardedBinding7Previous
423
+ }
424
+ return guardedBinding7Previous = active.value?.menuTop
425
+ })
426
+ let guardedBinding8Previous: any
427
+ const guardedBinding8 = computed(() => {
428
+ if (!(active.value?.['rowIndex'] == null || Number.isInteger(active.value?.['rowIndex']))) {
429
+ return guardedBinding8Previous
430
+ }
431
+ return guardedBinding8Previous = active.value?.rowIndex
432
+ })
433
+ let guardedBinding9Previous: any
434
+ const guardedBinding9 = computed(() => {
406
435
  if (!(active.value?.['columnIndex'] == null || Number.isInteger(active.value?.['columnIndex']))) {
407
- return guardedBinding5Previous
436
+ return guardedBinding9Previous
408
437
  }
409
- return guardedBinding5Previous = active.value?.columnIndex
438
+ return guardedBinding9Previous = active.value?.columnIndex
410
439
  })
411
440
  provide('html-next:ui-editor-table-overlay:rows', rows)
412
441
  provide('html-next:ui-editor-table-overlay:cols', cols)
@@ -613,9 +642,9 @@ function uniqueKeys<T>(
613
642
  data-action="select-row"
614
643
  title="Drag row to reorder; click for actions"
615
644
  aria-label="Row actions"
616
- :data-row-index="guarded"
617
- :data-column-index="guardedBinding"
618
- :style="{ top: hovered?.rowOffset ?? undefined }"
645
+ :data-row-index="guardedBinding"
646
+ :data-column-index="guardedBinding2"
647
+ :style="{ top: guarded }"
619
648
  >
620
649
  <span class="glyph"><UiIcon name="grip-vertical" /></span>
621
650
  </button>
@@ -625,9 +654,9 @@ function uniqueKeys<T>(
625
654
  data-action="select-column"
626
655
  title="Drag column to reorder; click for actions"
627
656
  aria-label="Column actions"
628
- :data-row-index="guardedBinding2"
629
- :data-column-index="guardedBinding3"
630
- :style="{ left: hovered?.columnOffset ?? undefined }"
657
+ :data-row-index="guardedBinding4"
658
+ :data-column-index="guardedBinding5"
659
+ :style="{ left: guardedBinding3 }"
631
660
  >
632
661
  <span class="glyph"><UiIcon name="grip-horizontal" /></span>
633
662
  </button></template>
@@ -638,9 +667,9 @@ function uniqueKeys<T>(
638
667
  data-action="open-cell-menu"
639
668
  title="Cell actions"
640
669
  aria-label="Cell actions"
641
- :data-row-index="guardedBinding4"
642
- :data-column-index="guardedBinding5"
643
- :style="{ left: active?.menuLeft ?? undefined, top: active?.menuTop ?? undefined }"
670
+ :data-row-index="guardedBinding8"
671
+ :data-column-index="guardedBinding9"
672
+ :style="{ left: guardedBinding6, top: guardedBinding7 }"
644
673
  >
645
674
  <UiIcon name="chevron-down" />
646
675
  </button>
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import {
4
4
  computed,
@@ -469,6 +469,24 @@ function attribute(value: unknown): any {
469
469
  return value === true ? '' : text(value)
470
470
  }
471
471
 
472
+ // A nonempty scalar call cannot produce the invalid-result sentinel.
473
+ type ConcatResult<T extends unknown[]> = T extends
474
+ [
475
+ string | number | boolean | null | undefined,
476
+ ...(string | number | boolean | null | undefined)[],
477
+ ] ? string | undefined
478
+ : string | symbol | undefined
479
+ function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
480
+ if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
481
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
482
+ }
483
+ if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
484
+ if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
485
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
486
+ }
487
+ return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
488
+ }
489
+
472
490
  function uniqueKeys<T>(
473
491
  items: readonly T[],
474
492
  keyOf: (
@@ -594,12 +612,35 @@ function uniqueKeys<T>(
594
612
  :key="item.action"
595
613
  type="button"
596
614
  :role="attribute(
597
- (({ true: 'menuitemcheckbox', false: 'menuitem' }) as Record<string, any>)[`${item.checkable}`],
615
+ ((objectValue: any, indexValue: any) =>
616
+ objectValue === Symbol.for('html-next.invalid-result')
617
+ || indexValue === Symbol.for('html-next.invalid-result')
618
+ ? Symbol.for('html-next.invalid-result')
619
+ : objectValue[indexValue])(
620
+ { true: 'menuitemcheckbox', false: 'menuitem' },
621
+ concat(item.checkable),
622
+ ),
598
623
  )"
599
- :aria-checked="typeof ((({ true: item.checked, false: null }) as Record<string, any>)[`${item.checkable}`])
624
+ :aria-checked="typeof (((objectValue: any, indexValue: any) =>
625
+ objectValue === Symbol.for('html-next.invalid-result')
626
+ || indexValue === Symbol.for('html-next.invalid-result')
627
+ ? Symbol.for('html-next.invalid-result')
628
+ : objectValue[indexValue])({ true: item.checked, false: null }, concat(item.checkable)))
600
629
  === 'boolean'
601
- ? String((({ true: item.checked, false: null }) as Record<string, any>)[`${item.checkable}`])
602
- : attribute((({ true: item.checked, false: null }) as Record<string, any>)[`${item.checkable}`])"
630
+ ? String(
631
+ ((objectValue: any, indexValue: any) =>
632
+ objectValue === Symbol.for('html-next.invalid-result')
633
+ || indexValue === Symbol.for('html-next.invalid-result')
634
+ ? Symbol.for('html-next.invalid-result')
635
+ : objectValue[indexValue])({ true: item.checked, false: null }, concat(item.checkable)),
636
+ )
637
+ : attribute(
638
+ ((objectValue: any, indexValue: any) =>
639
+ objectValue === Symbol.for('html-next.invalid-result')
640
+ || indexValue === Symbol.for('html-next.invalid-result')
641
+ ? Symbol.for('html-next.invalid-result')
642
+ : objectValue[indexValue])({ true: item.checked, false: null }, concat(item.checkable)),
643
+ )"
603
644
  :data-action="item.action"
604
645
  :class="{ danger: item.danger }"
605
646
  >
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, ref, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
package/vue/UiGrid.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
package/vue/UiIcon.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
@@ -211,6 +211,44 @@ function reflectedProp(
211
211
  const hydrationInstance = getCurrentInstance()
212
212
 
213
213
  const root = ref<HTMLElement | null>(null)
214
+ let guardedPrevious: any = null
215
+ const guarded = computed(() => {
216
+ const candidate: any = ((objectValue: any, indexValue: any) =>
217
+ objectValue === Symbol.for('html-next.invalid-result')
218
+ || indexValue === Symbol.for('html-next.invalid-result')
219
+ ? Symbol.for('html-next.invalid-result')
220
+ : objectValue[indexValue])(
221
+ { true: 'true', false: null },
222
+ concat(checkedProps.value.loading || checkedProps.value.pending),
223
+ )
224
+ if (candidate === Symbol.for('html-next.invalid-result')) {
225
+ return guardedPrevious
226
+ }
227
+ return guardedPrevious = typeof (((objectValue: any, indexValue: any) =>
228
+ objectValue === Symbol.for('html-next.invalid-result')
229
+ || indexValue === Symbol.for('html-next.invalid-result')
230
+ ? Symbol.for('html-next.invalid-result')
231
+ : objectValue[indexValue])(
232
+ { true: 'true', false: null },
233
+ concat(checkedProps.value.loading || checkedProps.value.pending),
234
+ )) === 'boolean'
235
+ ? String(((objectValue: any, indexValue: any) =>
236
+ objectValue === Symbol.for('html-next.invalid-result')
237
+ || indexValue === Symbol.for('html-next.invalid-result')
238
+ ? Symbol.for('html-next.invalid-result')
239
+ : objectValue[indexValue])(
240
+ { true: 'true', false: null },
241
+ concat(checkedProps.value.loading || checkedProps.value.pending),
242
+ ))
243
+ : attribute(((objectValue: any, indexValue: any) =>
244
+ objectValue === Symbol.for('html-next.invalid-result')
245
+ || indexValue === Symbol.for('html-next.invalid-result')
246
+ ? Symbol.for('html-next.invalid-result')
247
+ : objectValue[indexValue])(
248
+ { true: 'true', false: null },
249
+ concat(checkedProps.value.loading || checkedProps.value.pending),
250
+ ))
251
+ })
214
252
  const hydrationNode = hydrationInstance?.vnode.el
215
253
  if (
216
254
  typeof window !== 'undefined' && hydrationNode != null
@@ -288,6 +326,24 @@ function attribute(value: unknown): any {
288
326
  ) return undefined
289
327
  return value === true ? '' : text(value)
290
328
  }
329
+
330
+ // A nonempty scalar call cannot produce the invalid-result sentinel.
331
+ type ConcatResult<T extends unknown[]> = T extends
332
+ [
333
+ string | number | boolean | null | undefined,
334
+ ...(string | number | boolean | null | undefined)[],
335
+ ] ? string | undefined
336
+ : string | symbol | undefined
337
+ function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
338
+ if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
339
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
340
+ }
341
+ if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
342
+ if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
343
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
344
+ }
345
+ return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
346
+ }
291
347
  </script>
292
348
 
293
349
  <template>
@@ -297,19 +353,7 @@ function attribute(value: unknown): any {
297
353
  v-bind="nativeAttrs($attrs)"
298
354
  :disabled="checkedProps.disabled ?? undefined"
299
355
  :aria-label="checkedProps.label ?? undefined"
300
- :aria-disabled="typeof ((({ true: 'true', false: null }) as Record<string, any>)[
301
- `${checkedProps.loading || checkedProps.pending}`
302
- ]) === 'boolean'
303
- ? String(
304
- (({ true: 'true', false: null }) as Record<string, any>)[
305
- `${checkedProps.loading || checkedProps.pending}`
306
- ],
307
- )
308
- : attribute(
309
- (({ true: 'true', false: null }) as Record<string, any>)[
310
- `${checkedProps.loading || checkedProps.pending}`
311
- ],
312
- )"
356
+ :aria-disabled="guarded"
313
357
  :aria-busy="checkedProps.loading || checkedProps.pending"
314
358
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
315
359
  :data-anticipatory="reflectedProp('anticipatory', 'anticipatory', checkedProps.anticipatory, undefined, false)"
package/vue/UiInput.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script
3
3
  setup
4
4
  lang="ts"
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
package/vue/UiList.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'
package/vue/UiListbox.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import {
4
4
  computed,
@@ -245,27 +245,43 @@ const hasSelection = ref(false)
245
245
  const active = ref(-1)
246
246
  const uid = ref('')
247
247
  const validationError = ref(false)
248
- let guardedPrevious: any
248
+ let guardedPrevious: any = null
249
249
  const guarded = computed(() => {
250
- if (!(validationError.value == null || typeof validationError.value === 'boolean')) {
250
+ const candidate: any = ((objectValue: any, indexValue: any) =>
251
+ objectValue === Symbol.for('html-next.invalid-result')
252
+ || indexValue === Symbol.for('html-next.invalid-result')
253
+ ? Symbol.for('html-next.invalid-result')
254
+ : objectValue[indexValue])({ true: '-1', false: '0' }, concat(checkedProps.value.disabled))
255
+ if (candidate === Symbol.for('html-next.invalid-result')) {
251
256
  return guardedPrevious
252
257
  }
253
- return guardedPrevious = checkedProps.value.invalid || validationError.value
258
+ return guardedPrevious = attribute(((objectValue: any, indexValue: any) =>
259
+ objectValue === Symbol.for('html-next.invalid-result')
260
+ || indexValue === Symbol.for('html-next.invalid-result')
261
+ ? Symbol.for('html-next.invalid-result')
262
+ : objectValue[indexValue])({ true: '-1', false: '0' }, concat(checkedProps.value.disabled)))
254
263
  })
255
264
  let guardedBindingPrevious: any
256
265
  const guardedBinding = computed(() => {
257
- if (!(hasSelection.value == null || typeof hasSelection.value === 'boolean')) {
266
+ if (!(validationError.value == null || typeof validationError.value === 'boolean')) {
258
267
  return guardedBindingPrevious
259
268
  }
260
- return guardedBindingPrevious = checkedProps.value.required && !hasSelection.value
261
- && !checkedProps.value.disabled
269
+ return guardedBindingPrevious = checkedProps.value.invalid || validationError.value
262
270
  })
263
271
  let guardedBinding2Previous: any
264
272
  const guardedBinding2 = computed(() => {
265
273
  if (!(hasSelection.value == null || typeof hasSelection.value === 'boolean')) {
266
274
  return guardedBinding2Previous
267
275
  }
268
- return guardedBinding2Previous = hasSelection.value ? true : undefined
276
+ return guardedBinding2Previous = checkedProps.value.required && !hasSelection.value
277
+ && !checkedProps.value.disabled
278
+ })
279
+ let guardedBinding3Previous: any
280
+ const guardedBinding3 = computed(() => {
281
+ if (!(hasSelection.value == null || typeof hasSelection.value === 'boolean')) {
282
+ return guardedBinding3Previous
283
+ }
284
+ return guardedBinding3Previous = hasSelection.value ? true : undefined
269
285
  })
270
286
  provide('html-next:ui-listbox:choices', choices)
271
287
  provide('html-next:ui-listbox:selection', selection)
@@ -343,6 +359,24 @@ function attribute(value: unknown): any {
343
359
  return value === true ? '' : text(value)
344
360
  }
345
361
 
362
+ // A nonempty scalar call cannot produce the invalid-result sentinel.
363
+ type ConcatResult<T extends unknown[]> = T extends
364
+ [
365
+ string | number | boolean | null | undefined,
366
+ ...(string | number | boolean | null | undefined)[],
367
+ ] ? string | undefined
368
+ : string | symbol | undefined
369
+ function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
370
+ if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
371
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
372
+ }
373
+ if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
374
+ if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
375
+ return Symbol.for('html-next.invalid-result') as ConcatResult<T>
376
+ }
377
+ return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
378
+ }
379
+
346
380
  function uniqueKeys<T>(
347
381
  items: readonly T[],
348
382
  keyOf: (
@@ -377,11 +411,11 @@ function uniqueKeys<T>(
377
411
  data-component="ui-listbox"
378
412
  role="listbox"
379
413
  v-bind="nativeAttrs($attrs)"
380
- :tabindex="attribute((({ true: '-1', false: '0' }) as Record<string, any>)[`${checkedProps.disabled ?? ''}`])"
414
+ :tabindex="guarded"
381
415
  :aria-multiselectable="checkedProps.multiple ?? undefined"
382
416
  :aria-disabled="checkedProps.disabled ?? undefined"
383
417
  :aria-required="checkedProps.required ?? undefined"
384
- :aria-invalid="guarded"
418
+ :aria-invalid="guardedBinding"
385
419
  :style="{ '--_rows': checkedProps.rows ?? undefined }"
386
420
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
387
421
  :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
@@ -401,7 +435,7 @@ function uniqueKeys<T>(
401
435
  role="option"
402
436
  data-ui-choice-option=""
403
437
  :data-multiple="checkedProps.multiple ? '' : undefined"
404
- :id="`${uid}-option-${choice.index}`"
438
+ :id="concat(uid, '-option-', choice.index)"
405
439
  :data-index="choice.index"
406
440
  :aria-selected="choice.selected"
407
441
  :aria-disabled="choice.disabled"
@@ -433,8 +467,8 @@ function uniqueKeys<T>(
433
467
  type="checkbox"
434
468
  aria-hidden="true"
435
469
  tabindex="-1"
436
- :required="guardedBinding"
437
- :checked.attr="guardedBinding2"
470
+ :required="guardedBinding2"
471
+ :checked.attr="guardedBinding3"
438
472
  :disabled="checkedProps.disabled ?? undefined"
439
473
  ref="validity"
440
474
  >
package/vue/UiMenu.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.19 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.25 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'