@threadlabs/looma 0.24.1 → 0.25.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 (498) hide show
  1. package/README.md +1 -1
  2. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  3. package/components/ui-affordance-scope/ui-affordance-scope.js +6 -1
  4. package/components/ui-avatar/ui-avatar.html +4 -4
  5. package/components/ui-avatar/ui-avatar.js +6 -1
  6. package/components/ui-avatar-group/ui-avatar-group.html +2 -2
  7. package/components/ui-avatar-group/ui-avatar-group.js +6 -1
  8. package/components/ui-badge/ui-badge.html +30 -30
  9. package/components/ui-breadcrumb-item/ui-breadcrumb-item.html +1 -1
  10. package/components/ui-button/ui-button.html +33 -33
  11. package/components/ui-button/ui-button.js +6 -1
  12. package/components/ui-callout/ui-callout.html +4 -4
  13. package/components/ui-card/ui-card.html +9 -9
  14. package/components/ui-checkbox/ui-checkbox.html +11 -11
  15. package/components/ui-checkbox/ui-checkbox.js +6 -1
  16. package/components/ui-cluster/ui-cluster.html +12 -12
  17. package/components/ui-combobox/ui-combobox.html +15 -17
  18. package/components/ui-combobox/ui-combobox.js +13 -15
  19. package/components/ui-container/ui-container.html +5 -5
  20. package/components/ui-context-menu/ui-context-menu.js +6 -1
  21. package/components/ui-cover/ui-cover.html +1 -1
  22. package/components/ui-description-list/ui-description-list.html +10 -10
  23. package/components/ui-dialog/ui-dialog.html +4 -4
  24. package/components/ui-dialog/ui-dialog.js +6 -1
  25. package/components/ui-disclosure/ui-disclosure.html +13 -13
  26. package/components/ui-disclosure/ui-disclosure.js +6 -1
  27. package/components/ui-editable/ui-editable.html +1 -1
  28. package/components/ui-editable/ui-editable.js +6 -1
  29. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +6 -1
  30. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +6 -1
  31. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +6 -1
  32. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +6 -1
  33. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +6 -1
  34. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +6 -1
  35. package/components/ui-editor-toolbar/ui-editor-toolbar.html +4 -4
  36. package/components/ui-editor-toolbar/ui-editor-toolbar.js +6 -1
  37. package/components/ui-floating-action-button/ui-floating-action-button.html +1 -1
  38. package/components/ui-form-field/ui-form-field.html +1 -1
  39. package/components/ui-form-field/ui-form-field.js +6 -1
  40. package/components/ui-grid/ui-grid.html +7 -7
  41. package/components/ui-icon-button/ui-icon-button.html +26 -26
  42. package/components/ui-icon-button/ui-icon-button.js +6 -1
  43. package/components/ui-image/ui-image.html +11 -11
  44. package/components/ui-image/ui-image.js +6 -1
  45. package/components/ui-input/ui-input.html +9 -7
  46. package/components/ui-input/ui-input.js +6 -1
  47. package/components/ui-input-group/ui-input-group.html +37 -8
  48. package/components/ui-input-group/ui-input-group.js +8 -3
  49. package/components/ui-list/ui-list.html +6 -6
  50. package/components/ui-list-item/ui-list-item.html +8 -8
  51. package/components/ui-listbox/ui-listbox.js +6 -1
  52. package/components/ui-menu/ui-menu.html +3 -3
  53. package/components/ui-menu/ui-menu.js +6 -1
  54. package/components/ui-menu-item/ui-menu-item.html +3 -3
  55. package/components/ui-menu-item/ui-menu-item.js +6 -1
  56. package/components/ui-meter/ui-meter.html +7 -7
  57. package/components/ui-nav-item/ui-nav-item.html +6 -6
  58. package/components/ui-page-header/ui-page-header.html +2 -2
  59. package/components/ui-popover/ui-popover.html +3 -3
  60. package/components/ui-popover/ui-popover.js +6 -1
  61. package/components/ui-radio/ui-radio.html +10 -10
  62. package/components/ui-radio/ui-radio.js +6 -1
  63. package/components/ui-radio-group/ui-radio-group.html +2 -2
  64. package/components/ui-radio-group/ui-radio-group.js +6 -1
  65. package/components/ui-reel/ui-reel.html +11 -11
  66. package/components/ui-scroll-area/ui-scroll-area.html +4 -4
  67. package/components/ui-scroll-area/ui-scroll-area.js +6 -1
  68. package/components/ui-search-result-row/ui-search-result-row.html +5 -5
  69. package/components/ui-search-shell/ui-search-shell.js +6 -1
  70. package/components/ui-section/ui-section.html +4 -4
  71. package/components/ui-select/ui-select.html +3 -3
  72. package/components/ui-select/ui-select.js +6 -1
  73. package/components/ui-separator/ui-separator.html +4 -4
  74. package/components/ui-sidebar/ui-sidebar.html +6 -6
  75. package/components/ui-sidebar/ui-sidebar.js +6 -1
  76. package/components/ui-spinner/ui-spinner.html +1 -1
  77. package/components/ui-stack/ui-stack.html +12 -12
  78. package/components/ui-status-message/ui-status-message.html +4 -4
  79. package/components/ui-switch/ui-switch.html +11 -11
  80. package/components/ui-switch/ui-switch.js +6 -1
  81. package/components/ui-switcher/ui-switcher.html +11 -11
  82. package/components/ui-switcher/ui-switcher.js +6 -1
  83. package/components/ui-table/ui-table.html +2 -2
  84. package/components/ui-table/ui-table.js +6 -1
  85. package/components/ui-tabs/ui-tabs.html +8 -8
  86. package/components/ui-tabs/ui-tabs.js +6 -1
  87. package/components/ui-text/ui-text.html +20 -20
  88. package/components/ui-textarea/ui-textarea.html +46 -18
  89. package/components/ui-textarea/ui-textarea.js +6 -1
  90. package/components/ui-toast/ui-toast.html +4 -4
  91. package/components/ui-toast/ui-toast.js +6 -1
  92. package/components/ui-toast-region/ui-toast-region.html +16 -11
  93. package/components/ui-toast-region/ui-toast-region.js +12 -9
  94. package/components/ui-tooltip/ui-tooltip.html +1 -1
  95. package/components/ui-tooltip/ui-tooltip.js +6 -1
  96. package/components/ui-tree/ui-tree.html +2 -2
  97. package/components/ui-tree/ui-tree.js +6 -1
  98. package/components/ui-tree-item/ui-tree-item.html +4 -4
  99. package/components/ui-tree-item/ui-tree-item.js +6 -1
  100. package/dist/index.js +10 -4
  101. package/package.json +3 -3
  102. package/styles/ui-action-bar.css +1 -1
  103. package/styles/ui-affordance-scope.css +1 -1
  104. package/styles/ui-avatar-group.css +1 -1
  105. package/styles/ui-avatar.css +1 -1
  106. package/styles/ui-badge.css +1 -1
  107. package/styles/ui-breadcrumb-item.css +1 -1
  108. package/styles/ui-breadcrumbs.css +1 -1
  109. package/styles/ui-button.css +1 -1
  110. package/styles/ui-callout.css +1 -1
  111. package/styles/ui-card.css +1 -1
  112. package/styles/ui-checkbox.css +1 -1
  113. package/styles/ui-cluster.css +1 -1
  114. package/styles/ui-combobox.css +1 -1
  115. package/styles/ui-container.css +1 -1
  116. package/styles/ui-context-menu.css +1 -1
  117. package/styles/ui-cover.css +1 -1
  118. package/styles/ui-description-item.css +1 -1
  119. package/styles/ui-description-list.css +1 -1
  120. package/styles/ui-dialog.css +1 -1
  121. package/styles/ui-disclosure.css +2 -2
  122. package/styles/ui-editable.css +1 -1
  123. package/styles/ui-editor-insert-table-grid.css +1 -1
  124. package/styles/ui-editor-mention-menu-item.css +1 -1
  125. package/styles/ui-editor-mention-menu.css +1 -1
  126. package/styles/ui-editor-slash-menu-group.css +1 -1
  127. package/styles/ui-editor-slash-menu-item.css +1 -1
  128. package/styles/ui-editor-slash-menu.css +1 -1
  129. package/styles/ui-editor-table-context-menu.css +1 -1
  130. package/styles/ui-editor-table-overlay.css +1 -1
  131. package/styles/ui-editor-table-toolbar.css +1 -1
  132. package/styles/ui-editor-toolbar.css +1 -1
  133. package/styles/ui-floating-action-button.css +1 -1
  134. package/styles/ui-form-field.css +1 -1
  135. package/styles/ui-grid.css +1 -1
  136. package/styles/ui-icon-button.css +1 -1
  137. package/styles/ui-icon.css +1 -1
  138. package/styles/ui-image.css +1 -1
  139. package/styles/ui-input-group.css +36 -6
  140. package/styles/ui-input.css +1 -1
  141. package/styles/ui-list-item.css +1 -1
  142. package/styles/ui-list.css +1 -1
  143. package/styles/ui-listbox.css +1 -1
  144. package/styles/ui-menu-group.css +1 -1
  145. package/styles/ui-menu-item.css +1 -1
  146. package/styles/ui-menu.css +1 -1
  147. package/styles/ui-meter.css +1 -1
  148. package/styles/ui-nav-item.css +1 -1
  149. package/styles/ui-page-header.css +1 -1
  150. package/styles/ui-popover.css +1 -1
  151. package/styles/ui-radio-group.css +1 -1
  152. package/styles/ui-radio.css +1 -1
  153. package/styles/ui-reel.css +1 -1
  154. package/styles/ui-scroll-area.css +1 -1
  155. package/styles/ui-search-result-row.css +1 -1
  156. package/styles/ui-search-shell.css +1 -1
  157. package/styles/ui-section.css +1 -1
  158. package/styles/ui-select.css +1 -1
  159. package/styles/ui-separator.css +1 -1
  160. package/styles/ui-sidebar.css +2 -2
  161. package/styles/ui-spinner.css +1 -1
  162. package/styles/ui-stack.css +1 -1
  163. package/styles/ui-status-message.css +1 -1
  164. package/styles/ui-switch.css +1 -1
  165. package/styles/ui-switcher.css +1 -1
  166. package/styles/ui-table.css +1 -1
  167. package/styles/ui-tabs.css +1 -1
  168. package/styles/ui-text.css +1 -1
  169. package/styles/ui-textarea.css +43 -15
  170. package/styles/ui-toast-region.css +1 -1
  171. package/styles/ui-toast.css +1 -1
  172. package/styles/ui-tooltip.css +1 -1
  173. package/styles/ui-top-bar.css +1 -1
  174. package/styles/ui-tree-item.css +1 -1
  175. package/styles/ui-tree.css +1 -1
  176. package/vanilla/UiActionBar.d.ts +1 -1
  177. package/vanilla/UiActionBar.js +1 -1
  178. package/vanilla/UiAffordanceScope.d.ts +1 -1
  179. package/vanilla/UiAffordanceScope.js +1 -1
  180. package/vanilla/UiAvatar.d.ts +1 -1
  181. package/vanilla/UiAvatar.js +1 -1
  182. package/vanilla/UiAvatarGroup.d.ts +1 -1
  183. package/vanilla/UiAvatarGroup.js +1 -1
  184. package/vanilla/UiBadge.d.ts +1 -1
  185. package/vanilla/UiBadge.js +1 -1
  186. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  187. package/vanilla/UiBreadcrumbItem.js +1 -1
  188. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  189. package/vanilla/UiBreadcrumbs.js +1 -1
  190. package/vanilla/UiButton.d.ts +1 -1
  191. package/vanilla/UiButton.js +1 -1
  192. package/vanilla/UiCallout.d.ts +1 -1
  193. package/vanilla/UiCallout.js +1 -1
  194. package/vanilla/UiCard.d.ts +1 -1
  195. package/vanilla/UiCard.js +1 -1
  196. package/vanilla/UiCheckbox.d.ts +1 -1
  197. package/vanilla/UiCheckbox.js +1 -1
  198. package/vanilla/UiCluster.d.ts +1 -1
  199. package/vanilla/UiCluster.js +1 -1
  200. package/vanilla/UiCombobox.d.ts +1 -3
  201. package/vanilla/UiCombobox.js +2 -2
  202. package/vanilla/UiContainer.d.ts +1 -1
  203. package/vanilla/UiContainer.js +1 -1
  204. package/vanilla/UiContextMenu.d.ts +1 -1
  205. package/vanilla/UiContextMenu.js +1 -1
  206. package/vanilla/UiCover.d.ts +1 -1
  207. package/vanilla/UiCover.js +1 -1
  208. package/vanilla/UiDescriptionItem.d.ts +1 -1
  209. package/vanilla/UiDescriptionItem.js +1 -1
  210. package/vanilla/UiDescriptionList.d.ts +1 -1
  211. package/vanilla/UiDescriptionList.js +1 -1
  212. package/vanilla/UiDialog.d.ts +1 -1
  213. package/vanilla/UiDialog.js +1 -1
  214. package/vanilla/UiDisclosure.d.ts +1 -1
  215. package/vanilla/UiDisclosure.js +1 -1
  216. package/vanilla/UiEditable.d.ts +1 -1
  217. package/vanilla/UiEditable.js +1 -1
  218. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  219. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  220. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  221. package/vanilla/UiEditorMentionMenu.js +1 -1
  222. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  223. package/vanilla/UiEditorMentionMenuItem.js +1 -1
  224. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  225. package/vanilla/UiEditorSlashMenu.js +1 -1
  226. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  227. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  228. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  229. package/vanilla/UiEditorSlashMenuItem.js +1 -1
  230. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  231. package/vanilla/UiEditorTableContextMenu.js +1 -1
  232. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  233. package/vanilla/UiEditorTableOverlay.js +1 -1
  234. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  235. package/vanilla/UiEditorTableToolbar.js +1 -1
  236. package/vanilla/UiEditorToolbar.d.ts +1 -1
  237. package/vanilla/UiEditorToolbar.js +1 -1
  238. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  239. package/vanilla/UiFloatingActionButton.js +1 -1
  240. package/vanilla/UiFormField.d.ts +1 -1
  241. package/vanilla/UiFormField.js +1 -1
  242. package/vanilla/UiGrid.d.ts +1 -1
  243. package/vanilla/UiGrid.js +1 -1
  244. package/vanilla/UiIcon.d.ts +1 -1
  245. package/vanilla/UiIcon.js +1 -1
  246. package/vanilla/UiIconButton.d.ts +1 -1
  247. package/vanilla/UiIconButton.js +1 -1
  248. package/vanilla/UiImage.d.ts +1 -1
  249. package/vanilla/UiImage.js +1 -1
  250. package/vanilla/UiInput.d.ts +4 -4
  251. package/vanilla/UiInput.js +2 -2
  252. package/vanilla/UiInputGroup.d.ts +2 -1
  253. package/vanilla/UiInputGroup.js +2 -2
  254. package/vanilla/UiList.d.ts +1 -1
  255. package/vanilla/UiList.js +1 -1
  256. package/vanilla/UiListItem.d.ts +1 -1
  257. package/vanilla/UiListItem.js +1 -1
  258. package/vanilla/UiListbox.d.ts +1 -1
  259. package/vanilla/UiListbox.js +1 -1
  260. package/vanilla/UiMenu.d.ts +1 -1
  261. package/vanilla/UiMenu.js +1 -1
  262. package/vanilla/UiMenuGroup.d.ts +1 -1
  263. package/vanilla/UiMenuGroup.js +1 -1
  264. package/vanilla/UiMenuItem.d.ts +1 -1
  265. package/vanilla/UiMenuItem.js +1 -1
  266. package/vanilla/UiMeter.d.ts +1 -1
  267. package/vanilla/UiMeter.js +1 -1
  268. package/vanilla/UiNavItem.d.ts +1 -1
  269. package/vanilla/UiNavItem.js +1 -1
  270. package/vanilla/UiPageHeader.d.ts +1 -1
  271. package/vanilla/UiPageHeader.js +1 -1
  272. package/vanilla/UiPopover.d.ts +1 -1
  273. package/vanilla/UiPopover.js +1 -1
  274. package/vanilla/UiRadio.d.ts +1 -1
  275. package/vanilla/UiRadio.js +1 -1
  276. package/vanilla/UiRadioGroup.d.ts +1 -1
  277. package/vanilla/UiRadioGroup.js +1 -1
  278. package/vanilla/UiReel.d.ts +1 -1
  279. package/vanilla/UiReel.js +1 -1
  280. package/vanilla/UiScrollArea.d.ts +1 -1
  281. package/vanilla/UiScrollArea.js +1 -1
  282. package/vanilla/UiSearchResultRow.d.ts +1 -1
  283. package/vanilla/UiSearchResultRow.js +1 -1
  284. package/vanilla/UiSearchShell.d.ts +1 -1
  285. package/vanilla/UiSearchShell.js +1 -1
  286. package/vanilla/UiSection.d.ts +1 -1
  287. package/vanilla/UiSection.js +1 -1
  288. package/vanilla/UiSelect.d.ts +1 -1
  289. package/vanilla/UiSelect.js +1 -1
  290. package/vanilla/UiSeparator.d.ts +1 -1
  291. package/vanilla/UiSeparator.js +1 -1
  292. package/vanilla/UiSidebar.d.ts +1 -1
  293. package/vanilla/UiSidebar.js +1 -1
  294. package/vanilla/UiSpinner.d.ts +1 -1
  295. package/vanilla/UiSpinner.js +1 -1
  296. package/vanilla/UiStack.d.ts +1 -1
  297. package/vanilla/UiStack.js +1 -1
  298. package/vanilla/UiStatusMessage.d.ts +1 -1
  299. package/vanilla/UiStatusMessage.js +1 -1
  300. package/vanilla/UiSwitch.d.ts +1 -1
  301. package/vanilla/UiSwitch.js +1 -1
  302. package/vanilla/UiSwitcher.d.ts +1 -1
  303. package/vanilla/UiSwitcher.js +1 -1
  304. package/vanilla/UiTable.d.ts +1 -1
  305. package/vanilla/UiTable.js +1 -1
  306. package/vanilla/UiTabs.d.ts +1 -1
  307. package/vanilla/UiTabs.js +1 -1
  308. package/vanilla/UiText.d.ts +1 -1
  309. package/vanilla/UiText.js +1 -1
  310. package/vanilla/UiTextarea.d.ts +1 -1
  311. package/vanilla/UiTextarea.js +1 -1
  312. package/vanilla/UiToast.d.ts +1 -1
  313. package/vanilla/UiToast.js +1 -1
  314. package/vanilla/UiToastRegion.d.ts +2 -2
  315. package/vanilla/UiToastRegion.js +2 -2
  316. package/vanilla/UiTooltip.d.ts +1 -1
  317. package/vanilla/UiTooltip.js +1 -1
  318. package/vanilla/UiTopBar.d.ts +1 -1
  319. package/vanilla/UiTopBar.js +1 -1
  320. package/vanilla/UiTree.d.ts +1 -1
  321. package/vanilla/UiTree.js +1 -1
  322. package/vanilla/UiTreeItem.d.ts +1 -1
  323. package/vanilla/UiTreeItem.js +1 -1
  324. package/vue/UiActionBar.vue +1 -1
  325. package/vue/UiAffordanceScope.vue +8 -1
  326. package/vue/UiAvatar.d.ts +6 -9
  327. package/vue/UiAvatar.vue +71 -20
  328. package/vue/UiAvatarGroup.d.ts +7 -10
  329. package/vue/UiAvatarGroup.vue +45 -12
  330. package/vue/UiBadge.vue +1 -1
  331. package/vue/UiBreadcrumbItem.vue +1 -1
  332. package/vue/UiBreadcrumbs.vue +1 -1
  333. package/vue/UiButton.vue +1 -1
  334. package/vue/UiCallout.vue +1 -1
  335. package/vue/UiCard.vue +1 -1
  336. package/vue/UiCheckbox.d.ts +8 -11
  337. package/vue/UiCheckbox.vue +34 -11
  338. package/vue/UiCluster.vue +1 -1
  339. package/vue/UiCombobox.d.ts +60 -66
  340. package/vue/UiCombobox.vue +476 -124
  341. package/vue/UiContainer.vue +1 -1
  342. package/vue/UiContextMenu.vue +18 -9
  343. package/vue/UiCover.vue +1 -1
  344. package/vue/UiDescriptionItem.vue +1 -1
  345. package/vue/UiDescriptionList.vue +1 -1
  346. package/vue/UiDialog.d.ts +8 -11
  347. package/vue/UiDialog.vue +39 -12
  348. package/vue/UiDisclosure.d.ts +12 -15
  349. package/vue/UiDisclosure.vue +70 -24
  350. package/vue/UiEditable.d.ts +3 -3
  351. package/vue/UiEditable.vue +60 -21
  352. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  353. package/vue/UiEditorInsertTableGrid.vue +75 -14
  354. package/vue/UiEditorMentionMenu.d.ts +10 -13
  355. package/vue/UiEditorMentionMenu.vue +50 -7
  356. package/vue/UiEditorMentionMenuItem.vue +1 -1
  357. package/vue/UiEditorSlashMenu.d.ts +12 -15
  358. package/vue/UiEditorSlashMenu.vue +48 -7
  359. package/vue/UiEditorSlashMenuGroup.vue +1 -1
  360. package/vue/UiEditorSlashMenuItem.vue +1 -1
  361. package/vue/UiEditorTableContextMenu.vue +73 -4
  362. package/vue/UiEditorTableOverlay.d.ts +2 -2
  363. package/vue/UiEditorTableOverlay.vue +202 -38
  364. package/vue/UiEditorTableToolbar.d.ts +2 -2
  365. package/vue/UiEditorTableToolbar.vue +128 -7
  366. package/vue/UiEditorToolbar.vue +3 -3
  367. package/vue/UiFloatingActionButton.vue +1 -1
  368. package/vue/UiFormField.vue +1 -1
  369. package/vue/UiGrid.vue +1 -1
  370. package/vue/UiIcon.vue +1 -1
  371. package/vue/UiIconButton.vue +1 -1
  372. package/vue/UiImage.vue +7 -6
  373. package/vue/UiInput.d.ts +5 -5
  374. package/vue/UiInput.vue +15 -3
  375. package/vue/UiInputGroup.d.ts +9 -0
  376. package/vue/UiInputGroup.vue +57 -8
  377. package/vue/UiList.vue +1 -1
  378. package/vue/UiListItem.vue +1 -1
  379. package/vue/UiListbox.d.ts +6 -9
  380. package/vue/UiListbox.vue +70 -19
  381. package/vue/UiMenu.vue +20 -10
  382. package/vue/UiMenuGroup.vue +1 -1
  383. package/vue/UiMenuItem.d.ts +13 -16
  384. package/vue/UiMenuItem.vue +30 -7
  385. package/vue/UiMeter.vue +1 -1
  386. package/vue/UiNavItem.vue +1 -1
  387. package/vue/UiPageHeader.vue +1 -1
  388. package/vue/UiPopover.vue +12 -4
  389. package/vue/UiRadio.d.ts +8 -11
  390. package/vue/UiRadio.vue +34 -11
  391. package/vue/UiRadioGroup.vue +16 -7
  392. package/vue/UiReel.vue +1 -1
  393. package/vue/UiScrollArea.vue +3 -3
  394. package/vue/UiSearchResultRow.vue +1 -1
  395. package/vue/UiSearchShell.vue +14 -6
  396. package/vue/UiSection.vue +1 -1
  397. package/vue/UiSelect.vue +3 -2
  398. package/vue/UiSeparator.vue +1 -1
  399. package/vue/UiSidebar.d.ts +7 -10
  400. package/vue/UiSidebar.vue +44 -12
  401. package/vue/UiSpinner.vue +1 -1
  402. package/vue/UiStack.vue +1 -1
  403. package/vue/UiStatusMessage.vue +1 -1
  404. package/vue/UiSwitch.d.ts +8 -11
  405. package/vue/UiSwitch.vue +34 -11
  406. package/vue/UiSwitcher.vue +8 -1
  407. package/vue/UiTable.vue +1 -1
  408. package/vue/UiTabs.vue +30 -8
  409. package/vue/UiText.vue +1 -1
  410. package/vue/UiTextarea.vue +78 -17
  411. package/vue/UiToast.vue +7 -6
  412. package/vue/UiToastRegion.d.ts +15 -3
  413. package/vue/UiToastRegion.vue +90 -45
  414. package/vue/UiTooltip.d.ts +9 -12
  415. package/vue/UiTooltip.vue +30 -7
  416. package/vue/UiTopBar.vue +1 -1
  417. package/vue/UiTree.vue +17 -13
  418. package/vue/UiTreeItem.d.ts +15 -18
  419. package/vue/UiTreeItem.vue +79 -30
  420. package/vue/chunks/UiActionBar.js +1 -1
  421. package/vue/chunks/UiAffordanceScope.js +6 -2
  422. package/vue/chunks/UiAvatar.js +37 -10
  423. package/vue/chunks/UiAvatarGroup.js +26 -7
  424. package/vue/chunks/UiBadge.js +2 -2
  425. package/vue/chunks/UiBreadcrumbItem.js +2 -2
  426. package/vue/chunks/UiBreadcrumbs.js +2 -2
  427. package/vue/chunks/UiButton.js +2 -2
  428. package/vue/chunks/UiCallout.js +2 -2
  429. package/vue/chunks/UiCard.js +2 -2
  430. package/vue/chunks/UiCheckbox.js +25 -12
  431. package/vue/chunks/UiCluster.js +2 -2
  432. package/vue/chunks/UiCombobox.js +628 -117
  433. package/vue/chunks/UiContainer.js +2 -2
  434. package/vue/chunks/UiContextMenu.js +14 -10
  435. package/vue/chunks/UiCover.js +2 -2
  436. package/vue/chunks/UiDescriptionItem.js +2 -2
  437. package/vue/chunks/UiDescriptionList.js +2 -2
  438. package/vue/chunks/UiDialog.js +29 -11
  439. package/vue/chunks/UiDisclosure.js +44 -14
  440. package/vue/chunks/UiEditable.js +33 -9
  441. package/vue/chunks/UiEditorInsertTableGrid.js +98 -14
  442. package/vue/chunks/UiEditorMentionMenu.js +76 -9
  443. package/vue/chunks/UiEditorMentionMenuItem.js +2 -2
  444. package/vue/chunks/UiEditorSlashMenu.js +70 -11
  445. package/vue/chunks/UiEditorSlashMenuGroup.js +2 -2
  446. package/vue/chunks/UiEditorSlashMenuItem.js +2 -2
  447. package/vue/chunks/UiEditorTableContextMenu.js +120 -2
  448. package/vue/chunks/UiEditorTableOverlay.js +306 -12
  449. package/vue/chunks/UiEditorTableToolbar.js +215 -3
  450. package/vue/chunks/UiEditorToolbar.js +8 -8
  451. package/vue/chunks/UiFloatingActionButton.js +2 -2
  452. package/vue/chunks/UiFormField.js +2 -2
  453. package/vue/chunks/UiGrid.js +2 -2
  454. package/vue/chunks/UiIcon.js +2 -2
  455. package/vue/chunks/UiIconButton.js +2 -2
  456. package/vue/chunks/UiImage.js +12 -12
  457. package/vue/chunks/UiInput.js +34 -4
  458. package/vue/chunks/UiInputGroup.js +30 -4
  459. package/vue/chunks/UiList.js +2 -2
  460. package/vue/chunks/UiListItem.js +2 -2
  461. package/vue/chunks/UiListbox.js +96 -12
  462. package/vue/chunks/UiMenu.js +6 -2
  463. package/vue/chunks/UiMenuGroup.js +2 -2
  464. package/vue/chunks/UiMenuItem.js +15 -3
  465. package/vue/chunks/UiMeter.js +2 -2
  466. package/vue/chunks/UiNavItem.js +2 -2
  467. package/vue/chunks/UiPageHeader.js +2 -2
  468. package/vue/chunks/UiPopover.js +6 -2
  469. package/vue/chunks/UiRadio.js +25 -12
  470. package/vue/chunks/UiRadioGroup.js +6 -2
  471. package/vue/chunks/UiReel.js +2 -2
  472. package/vue/chunks/UiScrollArea.js +8 -8
  473. package/vue/chunks/UiSearchResultRow.js +2 -2
  474. package/vue/chunks/UiSearchShell.js +9 -4
  475. package/vue/chunks/UiSection.js +2 -2
  476. package/vue/chunks/UiSelect.js +5 -3
  477. package/vue/chunks/UiSeparator.js +2 -2
  478. package/vue/chunks/UiSidebar.js +28 -5
  479. package/vue/chunks/UiSpinner.js +2 -2
  480. package/vue/chunks/UiStack.js +2 -2
  481. package/vue/chunks/UiStatusMessage.js +2 -2
  482. package/vue/chunks/UiSwitch.js +25 -12
  483. package/vue/chunks/UiSwitcher.js +6 -2
  484. package/vue/chunks/UiTable.js +2 -2
  485. package/vue/chunks/UiTabs.js +39 -10
  486. package/vue/chunks/UiText.js +2 -2
  487. package/vue/chunks/UiTextarea.js +3 -2
  488. package/vue/chunks/UiToast.js +8 -8
  489. package/vue/chunks/UiToastRegion.js +86 -20
  490. package/vue/chunks/UiTooltip.js +15 -3
  491. package/vue/chunks/UiTopBar.js +1 -1
  492. package/vue/chunks/UiTree.js +2 -2
  493. package/vue/chunks/UiTreeItem.js +84 -51
  494. package/vue/chunks/control.js +9 -2
  495. package/vue/chunks/host.js +203 -29
  496. package/vue/chunks/props.js +43 -7
  497. package/vue/components.css +1447 -1360
  498. package/vue/host.ts +286 -42
package/vue/UiInput.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { PropType } from 'vue';
2
- declare const __VLS_export: <T0 extends "text" | "search" | "tel" | "url" | "email" | "password" | "date" | "month" | "week" | "time" | "datetime-local" | "number" | "range" | "color" | null = "text">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
2
+ declare const __VLS_export: <T0 extends "text" | "search" | "tel" | "url" | "email" | "password" | "date" | "month" | "week" | "time" | "datetime-local" | "number" | "range" | "color" | "file" | null = "text">(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
3
3
  props: import("vue").PublicProps & __VLS_PrettifyLocal<import("vue").ExtractPublicPropTypes<{
4
4
  disabled: {
5
5
  type: PropType<boolean | null>;
@@ -26,21 +26,21 @@ declare const __VLS_export: <T0 extends "text" | "search" | "tel" | "url" | "ema
26
26
  default: string;
27
27
  };
28
28
  value: {
29
- type: PropType<T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : null>;
29
+ type: PropType<T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : T0 extends "file" ? string | null : null>;
30
30
  default: null;
31
31
  };
32
32
  modelValue: {
33
- type: PropType<(T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : null) | undefined>;
33
+ type: PropType<(T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : T0 extends "file" ? string | null : null) | undefined>;
34
34
  };
35
35
  }> & {
36
- "onUpdate:modelValue"?: ((value: T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : null) => any) | undefined;
36
+ "onUpdate:modelValue"?: ((value: T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : T0 extends "file" ? string | null : null) => any) | undefined;
37
37
  }> & (typeof globalThis extends {
38
38
  __VLS_PROPS_FALLBACK: infer P;
39
39
  } ? P : {});
40
40
  expose: (exposed: {}) => void;
41
41
  attrs: any;
42
42
  slots: {};
43
- emit: (evt: "update:modelValue", value: T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : null) => void;
43
+ emit: (evt: "update:modelValue", value: T0 extends "text" ? string | null : T0 extends "search" ? string | null : T0 extends "tel" ? string | null : T0 extends "url" ? string | null : T0 extends "email" ? string | null : T0 extends "password" ? string | null : T0 extends "date" ? string | null : T0 extends "month" ? string | null : T0 extends "week" ? string | null : T0 extends "time" ? string | null : T0 extends "datetime-local" ? string | null : T0 extends "number" ? number | null : T0 extends "range" ? number | null : T0 extends "color" ? string | null : T0 extends "file" ? string | null : null) => void;
44
44
  }>) => import("vue").VNode & {
45
45
  __ctx?: NonNullable<Awaited<typeof __VLS_setup>>;
46
46
  };
package/vue/UiInput.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 for Vue 3.5. Do not edit. -->
2
2
  <script
3
3
  setup
4
4
  lang="ts"
@@ -17,6 +17,7 @@
17
17
  | 'number'
18
18
  | 'range'
19
19
  | 'color'
20
+ | 'file'
20
21
  | null = 'text'"
21
22
  >
22
23
  import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
@@ -71,7 +72,7 @@ const propValidityContract = {
71
72
  required: false,
72
73
  target: { attribute: 'type' },
73
74
  description:
74
- 'The native input mode. Number and range modes accept numeric values; the other supported modes accept strings.',
75
+ 'The native input mode. Number and range modes accept numeric values; the other supported modes accept strings. File inputs expose selected files through\n the native change event\'s target.files. Their value can only be set to an empty string to clear the selection.',
75
76
  values: [
76
77
  'text',
77
78
  'search',
@@ -87,6 +88,7 @@ const propValidityContract = {
87
88
  'number',
88
89
  'range',
89
90
  'color',
91
+ 'file',
90
92
  ],
91
93
  default: 'text',
92
94
  },
@@ -109,6 +111,7 @@ const propValidityContract = {
109
111
  { value: 'number', type: { kind: 'terminal', name: 'number' } },
110
112
  { value: 'range', type: { kind: 'terminal', name: 'number' } },
111
113
  { value: 'color', type: { kind: 'terminal', name: 'string' } },
114
+ { value: 'file', type: { kind: 'terminal', name: 'string' } },
112
115
  ],
113
116
  },
114
117
  required: false,
@@ -132,6 +135,7 @@ const propValidityContract = {
132
135
  { value: 'number', type: { kind: 'terminal', name: 'number' } },
133
136
  { value: 'range', type: { kind: 'terminal', name: 'number' } },
134
137
  { value: 'color', type: { kind: 'terminal', name: 'string' } },
138
+ { value: 'file', type: { kind: 'terminal', name: 'string' } },
135
139
  ],
136
140
  },
137
141
  },
@@ -160,6 +164,7 @@ const props = defineProps({
160
164
  : T0 extends 'number' ? number | null
161
165
  : T0 extends 'range' ? number | null
162
166
  : T0 extends 'color' ? string | null
167
+ : T0 extends 'file' ? string | null
163
168
  : null
164
169
  >,
165
170
  default: null,
@@ -180,6 +185,7 @@ const props = defineProps({
180
185
  : T0 extends 'number' ? number | null
181
186
  : T0 extends 'range' ? number | null
182
187
  : T0 extends 'color' ? string | null
188
+ : T0 extends 'file' ? string | null
183
189
  : null) | undefined
184
190
  >,
185
191
  },
@@ -251,6 +257,7 @@ const checkedProps = computed(() => ({
251
257
  : T0 extends 'number' ? number | null
252
258
  : T0 extends 'range' ? number | null
253
259
  : T0 extends 'color' ? string | null
260
+ : T0 extends 'file' ? string | null
254
261
  : null
255
262
  >(
256
263
  props['value'],
@@ -277,6 +284,7 @@ const checkedProps = computed(() => ({
277
284
  { value: 'number', type: { kind: 'terminal', name: 'number' } },
278
285
  { value: 'range', type: { kind: 'terminal', name: 'number' } },
279
286
  { value: 'color', type: { kind: 'terminal', name: 'string' } },
287
+ { value: 'file', type: { kind: 'terminal', name: 'string' } },
280
288
  ],
281
289
  ),
282
290
  false,
@@ -298,6 +306,7 @@ const checkedProps = computed(() => ({
298
306
  : T0 extends 'number' ? number | null
299
307
  : T0 extends 'range' ? number | null
300
308
  : T0 extends 'color' ? string | null
309
+ : T0 extends 'file' ? string | null
301
310
  : null
302
311
  >(
303
312
  props.modelValue,
@@ -324,6 +333,7 @@ const checkedProps = computed(() => ({
324
333
  { value: 'number', type: { kind: 'terminal', name: 'number' } },
325
334
  { value: 'range', type: { kind: 'terminal', name: 'number' } },
326
335
  { value: 'color', type: { kind: 'terminal', name: 'string' } },
336
+ { value: 'file', type: { kind: 'terminal', name: 'string' } },
327
337
  ],
328
338
  ),
329
339
  false,
@@ -384,6 +394,7 @@ const emit = defineEmits<{
384
394
  : T0 extends 'number' ? number | null
385
395
  : T0 extends 'range' ? number | null
386
396
  : T0 extends 'color' ? string | null
397
+ : T0 extends 'file' ? string | null
387
398
  : null,
388
399
  ]
389
400
  }>()
@@ -406,6 +417,7 @@ const model = computed({
406
417
  : T0 extends 'number' ? number | null
407
418
  : T0 extends 'range' ? number | null
408
419
  : T0 extends 'color' ? string | null
420
+ : T0 extends 'file' ? string | null
409
421
  : null,
410
422
  ),
411
423
  })
@@ -476,7 +488,7 @@ useComponentHost(() => import('../components/ui-input/ui-input.js'), {
476
488
  :data-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
477
489
  :data-type="reflectedProp('type', 'type', checkedProps.type, undefined, false)"
478
490
  :data-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
479
- v-bind-control="{ tag: 'input', name: 'value', value: model, defaultValue: '' }"
491
+ v-bind-control="{ tag: 'input', name: 'value', value: model, optionalValue: true, defaultValue: '' }"
480
492
  @input="model = readBoundControl(
481
493
  $event.currentTarget as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement,
482
494
  ) as any"
@@ -14,6 +14,10 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
14
14
  type: PropType<boolean | null>;
15
15
  default: boolean;
16
16
  };
17
+ multiline: {
18
+ type: PropType<boolean | null>;
19
+ default: boolean;
20
+ };
17
21
  prefixKind: {
18
22
  type: PropType<"text" | "icon" | null>;
19
23
  default: string;
@@ -23,12 +27,17 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
23
27
  type: PropType<boolean | null>;
24
28
  default: boolean;
25
29
  };
30
+ multiline: {
31
+ type: PropType<boolean | null>;
32
+ default: boolean;
33
+ };
26
34
  prefixKind: {
27
35
  type: PropType<"text" | "icon" | null>;
28
36
  default: string;
29
37
  };
30
38
  }>> & Readonly<{}>, {
31
39
  disabled: boolean | null;
40
+ multiline: boolean | null;
32
41
  prefixKind: "text" | "icon" | null;
33
42
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
34
43
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 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'
@@ -17,6 +17,13 @@ const propValidityContract = {
17
17
  'Fades the group\'s framing to match a disabled input inside it. Disable the input itself too.',
18
18
  default: false,
19
19
  },
20
+ multiline: {
21
+ type: { kind: 'terminal', name: 'boolean' },
22
+ required: false,
23
+ target: { attribute: 'multiline' },
24
+ description: 'Groups a Textarea with an action below its text inside the shared frame.',
25
+ default: false,
26
+ },
20
27
  prefixKind: {
21
28
  type: { kind: 'terminal', name: 'keyword' },
22
29
  required: false,
@@ -30,9 +37,14 @@ const propValidityContract = {
30
37
  } as const
31
38
  const props = defineProps({
32
39
  disabled: { type: null as unknown as PropType<boolean | null>, default: false },
40
+ multiline: { type: null as unknown as PropType<boolean | null>, default: false },
33
41
  prefixKind: { type: null as unknown as PropType<'text' | 'icon' | null>, default: 'text' },
34
42
  })
35
- const acceptedProps: Record<string, unknown> = { disabled: false, prefixKind: 'text' }
43
+ const acceptedProps: Record<string, unknown> = {
44
+ disabled: false,
45
+ multiline: false,
46
+ prefixKind: 'text',
47
+ }
36
48
  const checkedProps = computed(() => ({
37
49
  disabled: checkedProp<boolean>(
38
50
  props['disabled'],
@@ -41,6 +53,13 @@ const checkedProps = computed(() => ({
41
53
  'disabled',
42
54
  acceptedProps,
43
55
  ) as boolean,
56
+ multiline: checkedProp<boolean>(
57
+ props['multiline'],
58
+ { kind: 'terminal', name: 'boolean' },
59
+ false,
60
+ 'multiline',
61
+ acceptedProps,
62
+ ) as boolean,
44
63
  prefixKind: checkedProp<'text' | 'icon'>(
45
64
  props['prefixKind'],
46
65
  { kind: 'terminal', name: 'keyword' },
@@ -112,6 +131,7 @@ const hostState = computed(() =>
112
131
  checkedProps.value.prefixKind && 'prefixKind',
113
132
  checkedProps.value.prefixKind != null
114
133
  && `prefixKind=${encodeURIComponent(checkedProps.value.prefixKind)}`,
134
+ checkedProps.value.multiline && 'multiline',
115
135
  ].filter(Boolean).join(' ')
116
136
  )
117
137
 
@@ -132,7 +152,7 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
132
152
  ? (incoming[name] ?? incoming[kebab] ?? null)
133
153
  : null
134
154
  },
135
- propNames: ['disabled', 'prefixKind'],
155
+ propNames: ['disabled', 'multiline', 'prefixKind'],
136
156
  propValidity: (name: string) =>
137
157
  propValidityState({ contract: propValidityContract, values: { ...props } }, name),
138
158
  })
@@ -144,6 +164,7 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
144
164
  v-bind="nativeAttrs($attrs)"
145
165
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
146
166
  :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
167
+ :data-multiline="reflectedProp('multiline', 'multiline', checkedProps.multiline, undefined, false)"
147
168
  :data-prefix-kind="reflectedProp('prefixKind', 'prefix-kind', checkedProps.prefixKind, undefined, false)"
148
169
  :data-ui-input-group-state="hostState || undefined"
149
170
  ref="root"
@@ -191,6 +212,17 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
191
212
  --_ui-default-input-focus-outline: none;
192
213
  --_ui-default-input-radius: 0;
193
214
  --_ui-default-input-surface: transparent;
215
+ --_ui-default-textarea-border-width: 0;
216
+ --_ui-default-textarea-border: transparent;
217
+ --_ui-default-textarea-border-hover: transparent;
218
+ --_ui-default-textarea-focus-border: transparent;
219
+ --_ui-default-textarea-invalid-border: transparent;
220
+ --_ui-default-textarea-invalid-focus-shadow: none;
221
+ --_ui-default-textarea-shadow: none;
222
+ --_ui-default-textarea-focus-shadow: none;
223
+ --_ui-default-textarea-focus-outline: none;
224
+ --_ui-default-textarea-radius: 0;
225
+ --_ui-default-textarea-surface: transparent;
194
226
 
195
227
  display: flex;
196
228
  align-items: stretch;
@@ -226,13 +258,13 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
226
258
  }
227
259
  }
228
260
 
229
- [data-component~="ui-input-group"]:hover:not(:has(input:focus, input:disabled, input:read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
261
+ [data-component~="ui-input-group"]:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
230
262
  border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
231
263
  }
232
264
 
233
265
  /* The ring shows when the field's input would show its own: when it is focus-visible, which a
234
266
  text input is for a pointer as well as a keyboard. A focused action button draws its own. */
235
- [data-component~="ui-input-group"]:has(.field input:focus-visible) {
267
+ [data-component~="ui-input-group"]:has(.field :is(input, textarea):focus-visible) {
236
268
  border-color: var(--ui-control-focus, var(--ui-accent-solid));
237
269
  box-shadow:
238
270
  var(--ui-control-inset),
@@ -246,7 +278,7 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
246
278
  );
247
279
  }
248
280
 
249
- [data-component~="ui-input-group"]:has(input:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
281
+ [data-component~="ui-input-group"]:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
250
282
  box-shadow: var(
251
283
  --ui-input-group-invalid-focus-shadow,
252
284
  var(--ui-control-inset),
@@ -260,14 +292,14 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
260
292
 
261
293
  /* Forced colors drop box shadows, so the focus ring becomes an outline. */
262
294
  @media (forced-colors: active) {
263
- [data-component~="ui-input-group"]:has(input:focus-visible) {
295
+ [data-component~="ui-input-group"]:has(:is(input, textarea):focus-visible) {
264
296
  outline: var(--ui-focus-width) solid Highlight;
265
297
  outline-offset: var(--ui-border-width);
266
298
  }
267
299
  }
268
300
 
269
301
  [data-component~="ui-input-group"][data-ui-input-group-state~="disabled"],
270
- [data-component~="ui-input-group"]:has(input:disabled) {
302
+ [data-component~="ui-input-group"]:has(:is(input, textarea):disabled) {
271
303
  background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
272
304
  box-shadow: none;
273
305
  cursor: not-allowed;
@@ -323,6 +355,23 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
323
355
  padding-inline: var(--ui-space-1);
324
356
  }
325
357
 
358
+ /* Multiline text owns the first row; its action remains inside the same frame below it. */
359
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] {
360
+ display: grid;
361
+ grid-template-columns: auto minmax(0, 1fr) auto;
362
+ }
363
+
364
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field {
365
+ grid-column: 2;
366
+ }
367
+
368
+ [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action {
369
+ grid-column: 1 / -1;
370
+ justify-content: end;
371
+ padding: var(--ui-space-2);
372
+ padding-block-start: 0;
373
+ }
374
+
326
375
  .affix:empty,
327
376
  .action:empty {
328
377
  display: none;
package/vue/UiList.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 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.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 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,9 +1,7 @@
1
1
  import type { PropType } from 'vue';
2
- declare var __VLS_15: {};
3
- type __VLS_Slots = {} & {
4
- default?: (props: typeof __VLS_15) => any;
5
- };
6
- declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
4
+ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
7
5
  disabled: {
8
6
  type: PropType<boolean | null>;
9
7
  default: boolean;
@@ -94,10 +92,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
94
92
  disabled: boolean | null;
95
93
  multiple: boolean | null;
96
94
  required: boolean | null;
97
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
98
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
99
- declare const _default: typeof __VLS_export;
100
- export default _default;
95
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
96
+ default?: (props: {}) => any;
97
+ }>;
101
98
  type __VLS_WithSlots<T, S> = T & {
102
99
  new (): {
103
100
  $slots: S;
package/vue/UiListbox.vue CHANGED
@@ -1,4 +1,15 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 for Vue 3.5. Do not edit. -->
2
+ <script lang="ts">
3
+ const htmlNextAuthoredCheck2Reported = new Set<string>()
4
+ function htmlNextAuthoredCheck2(accepted: boolean, location: string, message: string): boolean {
5
+ if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
6
+ htmlNextAuthoredCheck2Reported.add(location)
7
+ console.warn(message)
8
+ }
9
+ return accepted
10
+ }
11
+ </script>
12
+
2
13
  <script setup lang="ts">
3
14
  import {
4
15
  computed,
@@ -12,6 +23,7 @@ import {
12
23
  } from 'vue'
13
24
  import type { PropType, VNode } from 'vue'
14
25
  import { createDispatch, useComponentHost } from './host'
26
+ import { acceptsControllerWrite } from './props'
15
27
  import { checkedProp, propValidityState, vPropValidity } from './props'
16
28
  import UiScrollArea from './UiScrollArea.vue'
17
29
 
@@ -234,9 +246,9 @@ const emit = defineEmits<{
234
246
  }>()
235
247
 
236
248
  const root = ref<HTMLElement | null>(null)
237
- const choicesElement = useTemplateRef<HTMLElement>('choices')
238
- const optionsElement = useTemplateRef<HTMLElement>('options')
239
- const validityElement = useTemplateRef<HTMLElement>('validity')
249
+ const choicesElement = useTemplateRef<HTMLElement>('choicesElement')
250
+ const optionsElement = useTemplateRef<HTMLElement>('optionsElement')
251
+ const validityElement = useTemplateRef<HTMLElement>('validityElement')
240
252
  const choices = ref<
241
253
  { value: string; label: string; disabled: boolean; selected: boolean; index: number }[]
242
254
  >([])
@@ -263,24 +275,36 @@ const guarded = computed(() => {
263
275
  })
264
276
  let guardedBindingPrevious: any
265
277
  const guardedBinding = computed(() => {
266
- if (!(validationError.value == null || typeof validationError.value === 'boolean')) {
267
- return guardedBindingPrevious
268
- }
278
+ if (
279
+ !(htmlNextAuthoredCheck2(
280
+ validationError.value == null || typeof validationError.value === 'boolean',
281
+ 'invalid or validationError:validationError',
282
+ './components/ui-listbox/ui-listbox.html: HR007: Reference validationError does not satisfy its declared type.',
283
+ ))
284
+ ) return guardedBindingPrevious
269
285
  return guardedBindingPrevious = checkedProps.value.invalid || validationError.value
270
286
  })
271
287
  let guardedBinding2Previous: any
272
288
  const guardedBinding2 = computed(() => {
273
- if (!(hasSelection.value == null || typeof hasSelection.value === 'boolean')) {
274
- return guardedBinding2Previous
275
- }
289
+ if (
290
+ !(htmlNextAuthoredCheck2(
291
+ hasSelection.value == null || typeof hasSelection.value === 'boolean',
292
+ 'required and not hasSelection and not disabled:hasSelection',
293
+ './components/ui-listbox/ui-listbox.html: HR007: Reference hasSelection does not satisfy its declared type.',
294
+ ))
295
+ ) return guardedBinding2Previous
276
296
  return guardedBinding2Previous = checkedProps.value.required && !hasSelection.value
277
297
  && !checkedProps.value.disabled
278
298
  })
279
299
  let guardedBinding3Previous: any
280
300
  const guardedBinding3 = computed(() => {
281
- if (!(hasSelection.value == null || typeof hasSelection.value === 'boolean')) {
282
- return guardedBinding3Previous
283
- }
301
+ if (
302
+ !(htmlNextAuthoredCheck2(
303
+ hasSelection.value == null || typeof hasSelection.value === 'boolean',
304
+ 'hasSelection:hasSelection',
305
+ './components/ui-listbox/ui-listbox.html: HR007: Reference hasSelection does not satisfy its declared type.',
306
+ ))
307
+ ) return guardedBinding3Previous
284
308
  return guardedBinding3Previous = hasSelection.value ? true : undefined
285
309
  })
286
310
  provide('html-next:ui-listbox:choices', choices)
@@ -306,8 +330,9 @@ if (
306
330
  )
307
331
  }
308
332
 
309
- const isChangeDetail = (detail: unknown): boolean =>
310
- detail !== null && typeof detail === 'object' && !Array.isArray(detail)
333
+ const isChangeDetail = (
334
+ detail: unknown,
335
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
311
336
  && (typeof (detail as Record<string, unknown>)['value'] === 'string'
312
337
  || (detail as Record<string, unknown>)['value'] === null)
313
338
  && (Array.isArray((detail as Record<string, unknown>)['values'])
@@ -316,7 +341,7 @@ const isChangeDetail = (detail: unknown): boolean =>
316
341
  ))
317
342
  && ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
318
343
  || (detail as Record<string, unknown>)['trigger'] === 'pointer')
319
- && Object.keys(detail as object).every((key) => ['value', 'values', 'trigger'].includes(key))
344
+ && Object.keys(detail as object).every((key) => ['value', 'values', 'trigger'].includes(key)))
320
345
  const dispatch = createDispatch(root, emit as (name: string, detail: unknown) => void, {
321
346
  checks: {
322
347
  change: isChangeDetail,
@@ -327,6 +352,32 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
327
352
  useComponentHost(() => import('../components/ui-listbox/ui-listbox.js'), {
328
353
  root,
329
354
  dispatch,
355
+ acceptsState: (name: string, keys: readonly string[], value: unknown) =>
356
+ acceptsControllerWrite(
357
+ value,
358
+ ({
359
+ choices: {
360
+ kind: 'list',
361
+ item: {
362
+ kind: 'object',
363
+ fields: [
364
+ { name: 'value', type: { kind: 'terminal', name: 'string' }, optional: false },
365
+ { name: 'label', type: { kind: 'terminal', name: 'string' }, optional: false },
366
+ { name: 'disabled', type: { kind: 'terminal', name: 'boolean' }, optional: false },
367
+ { name: 'selected', type: { kind: 'terminal', name: 'boolean' }, optional: false },
368
+ { name: 'index', type: { kind: 'terminal', name: 'integer' }, optional: false },
369
+ ],
370
+ open: false,
371
+ },
372
+ },
373
+ selection: { kind: 'list', item: { kind: 'terminal', name: 'string' } },
374
+ hasSelection: { kind: 'terminal', name: 'boolean' },
375
+ active: { kind: 'terminal', name: 'integer' },
376
+ uid: { kind: 'terminal', name: 'string' },
377
+ validationError: { kind: 'terminal', name: 'boolean' },
378
+ } as Record<string, any>)[name],
379
+ keys,
380
+ ),
330
381
  controllerSource: {
331
382
  specifier: '../components/ui-listbox/ui-listbox.js',
332
383
  definition: './components/ui-listbox/ui-listbox.html',
@@ -428,7 +479,7 @@ function uniqueKeys<T>(
428
479
  :data-values="reflectedProp('values', 'values', checkedProps.values, undefined, false)"
429
480
  ref="root"
430
481
  >
431
- <UiScrollArea class="choices" ref="choices"><KeyedBoundary><div
482
+ <UiScrollArea class="choices" ref="choicesElement"><KeyedBoundary><div
432
483
  v-for="choice in uniqueKeys(choices, (choice, index, loop) => choice.index)"
433
484
  :key="choice.index"
434
485
  class="option"
@@ -451,7 +502,7 @@ function uniqueKeys<T>(
451
502
  :disabled="checkedProps.disabled ?? undefined"
452
503
  :required="checkedProps.required ?? undefined"
453
504
  :name="checkedProps.name ?? undefined"
454
- ref="options"
505
+ ref="optionsElement"
455
506
  >
456
507
  <slot />
457
508
  </select>
@@ -470,7 +521,7 @@ function uniqueKeys<T>(
470
521
  :required="guardedBinding2"
471
522
  :checked.attr="guardedBinding3"
472
523
  :disabled="checkedProps.disabled ?? undefined"
473
- ref="validity"
524
+ ref="validityElement"
474
525
  >
475
526
  </div>
476
527
  </template>
package/vue/UiMenu.vue CHANGED
@@ -1,8 +1,9 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 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'
5
5
  import { createDispatch, useComponentHost } from './host'
6
+ import { acceptsControllerWrite } from './props'
6
7
  import { checkedProp, propValidityState, vPropValidity } from './props'
7
8
 
8
9
  defineOptions({ inheritAttrs: false })
@@ -218,26 +219,29 @@ const hostState = computed(() =>
218
219
  ].filter(Boolean).join(' ')
219
220
  )
220
221
 
221
- const isSelectDetail = (detail: unknown): boolean =>
222
- detail !== null && typeof detail === 'object' && !Array.isArray(detail)
222
+ const isSelectDetail = (
223
+ detail: unknown,
224
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
223
225
  && typeof (detail as Record<string, unknown>)['value'] === 'string'
224
226
  && ((detail as Record<string, unknown>)['checked'] === undefined
225
227
  || typeof (detail as Record<string, unknown>)['checked'] === 'boolean')
226
228
  && ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
227
229
  || (detail as Record<string, unknown>)['trigger'] === 'pointer'
228
230
  || (detail as Record<string, unknown>)['trigger'] === 'programmatic')
229
- && Object.keys(detail as object).every((key) => ['value', 'checked', 'trigger'].includes(key))
230
- const isOpenDetail = (detail: unknown): boolean =>
231
- detail !== null && typeof detail === 'object' && !Array.isArray(detail)
231
+ && Object.keys(detail as object).every((key) => ['value', 'checked', 'trigger'].includes(key)))
232
+ const isOpenDetail = (
233
+ detail: unknown,
234
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
232
235
  && typeof (detail as Record<string, unknown>)['open'] === 'boolean'
233
236
  && ((detail as Record<string, unknown>)['reason'] === 'action'
234
237
  || (detail as Record<string, unknown>)['reason'] === 'programmatic')
235
238
  && ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
236
239
  || (detail as Record<string, unknown>)['trigger'] === 'pointer'
237
240
  || (detail as Record<string, unknown>)['trigger'] === 'programmatic')
238
- && Object.keys(detail as object).every((key) => ['open', 'reason', 'trigger'].includes(key))
239
- const isCloseDetail = (detail: unknown): boolean =>
240
- detail !== null && typeof detail === 'object' && !Array.isArray(detail)
241
+ && Object.keys(detail as object).every((key) => ['open', 'reason', 'trigger'].includes(key)))
242
+ const isCloseDetail = (
243
+ detail: unknown,
244
+ ): boolean => (detail !== null && typeof detail === 'object' && !Array.isArray(detail)
241
245
  && typeof (detail as Record<string, unknown>)['open'] === 'boolean'
242
246
  && ((detail as Record<string, unknown>)['reason'] === 'action'
243
247
  || (detail as Record<string, unknown>)['reason'] === 'programmatic'
@@ -246,7 +250,7 @@ const isCloseDetail = (detail: unknown): boolean =>
246
250
  && ((detail as Record<string, unknown>)['trigger'] === 'keyboard'
247
251
  || (detail as Record<string, unknown>)['trigger'] === 'pointer'
248
252
  || (detail as Record<string, unknown>)['trigger'] === 'programmatic')
249
- && Object.keys(detail as object).every((key) => ['open', 'reason', 'trigger'].includes(key))
253
+ && Object.keys(detail as object).every((key) => ['open', 'reason', 'trigger'].includes(key)))
250
254
  const dispatch = createDispatch(root, emit as (name: string, detail: unknown) => void, {
251
255
  checks: {
252
256
  select: isSelectDetail,
@@ -259,6 +263,12 @@ const dispatch = createDispatch(root, emit as (name: string, detail: unknown) =>
259
263
  useComponentHost(() => import('../components/ui-menu/ui-menu.js'), {
260
264
  root,
261
265
  dispatch,
266
+ acceptsState: (name: string, keys: readonly string[], value: unknown) =>
267
+ acceptsControllerWrite(
268
+ value,
269
+ ({ internalOpen: { kind: 'terminal', name: 'boolean' } } as Record<string, any>)[name],
270
+ keys,
271
+ ),
262
272
  controllerSource: {
263
273
  specifier: '../components/ui-menu/ui-menu.js',
264
274
  definition: './components/ui-menu/ui-menu.html',
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.26 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.29 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'