@threadlabs/looma 0.19.1 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (507) hide show
  1. package/components/shared/trigger.js +9 -4
  2. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  3. package/components/ui-avatar/ui-avatar.html +2 -2
  4. package/components/ui-avatar-group/ui-avatar-group.html +1 -1
  5. package/components/ui-avatar-group/ui-avatar-group.js +1 -1
  6. package/components/ui-badge/ui-badge.html +3 -3
  7. package/components/ui-button/ui-button.html +7 -6
  8. package/components/ui-callout/ui-callout.html +1 -1
  9. package/components/ui-card/ui-card.html +5 -4
  10. package/components/ui-checkbox/ui-checkbox.html +6 -2
  11. package/components/ui-cluster/ui-cluster.html +4 -4
  12. package/components/ui-combobox/ui-combobox.html +257 -34
  13. package/components/ui-combobox/ui-combobox.js +21 -20
  14. package/components/ui-container/ui-container.html +2 -2
  15. package/components/ui-context-menu/ui-context-menu.html +17 -5
  16. package/components/ui-cover/ui-cover.html +1 -1
  17. package/components/ui-description-list/ui-description-list.html +3 -3
  18. package/components/ui-dialog/ui-dialog.html +14 -6
  19. package/components/ui-disclosure/ui-disclosure.html +14 -5
  20. package/components/ui-editable/ui-editable.html +15 -4
  21. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +1 -1
  22. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +1 -1
  23. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +26 -6
  24. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +90 -12
  25. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +5 -5
  26. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +33 -7
  27. package/components/ui-grid/ui-grid.html +2 -2
  28. package/components/ui-icon-button/ui-icon-button.html +2 -2
  29. package/components/ui-input/ui-input.html +28 -6
  30. package/components/ui-list/ui-list.html +5 -4
  31. package/components/ui-list-item/ui-list-item.html +1 -1
  32. package/components/ui-listbox/ui-listbox.html +7 -1
  33. package/components/ui-menu/ui-menu.html +18 -5
  34. package/components/ui-menu-item/ui-menu-item.html +7 -2
  35. package/components/ui-meter/ui-meter.html +2 -2
  36. package/components/ui-nav-item/ui-nav-item.html +5 -4
  37. package/components/ui-page-header/ui-page-header.html +1 -1
  38. package/components/ui-popover/ui-popover.html +14 -5
  39. package/components/ui-radio/ui-radio.html +6 -2
  40. package/components/ui-radio-group/ui-radio-group.html +11 -3
  41. package/components/ui-reel/ui-reel.html +3 -3
  42. package/components/ui-scroll-area/ui-scroll-area.html +1 -1
  43. package/components/ui-search-shell/ui-search-shell.html +6 -2
  44. package/components/ui-section/ui-section.html +2 -2
  45. package/components/ui-select/ui-select.html +1 -1
  46. package/components/ui-separator/ui-separator.html +1 -1
  47. package/components/ui-sidebar/ui-sidebar.html +11 -4
  48. package/components/ui-spinner/ui-spinner.html +1 -1
  49. package/components/ui-stack/ui-stack.html +3 -3
  50. package/components/ui-status-message/ui-status-message.html +2 -2
  51. package/components/ui-switch/ui-switch.html +6 -2
  52. package/components/ui-switcher/ui-switcher.html +3 -3
  53. package/components/ui-table/ui-table.html +1 -1
  54. package/components/ui-tabs/ui-tabs.html +9 -4
  55. package/components/ui-text/ui-text.html +6 -6
  56. package/components/ui-textarea/ui-textarea.html +1 -1
  57. package/components/ui-toast/ui-toast.html +6 -2
  58. package/components/ui-toast-region/ui-toast-region.html +16 -4
  59. package/components/ui-tooltip/ui-tooltip.html +15 -6
  60. package/components/ui-tree/ui-tree.html +30 -7
  61. package/components/ui-tree-item/ui-tree-item.html +5 -1
  62. package/dist/index.js +1 -1
  63. package/editor/table-overlay.d.ts +1 -1
  64. package/package.json +3 -3
  65. package/styles/ui-action-bar.css +1 -1
  66. package/styles/ui-affordance-scope.css +1 -1
  67. package/styles/ui-avatar-group.css +1 -1
  68. package/styles/ui-avatar.css +1 -1
  69. package/styles/ui-badge.css +1 -1
  70. package/styles/ui-breadcrumb-item.css +1 -1
  71. package/styles/ui-breadcrumbs.css +1 -1
  72. package/styles/ui-button.css +1 -1
  73. package/styles/ui-callout.css +1 -1
  74. package/styles/ui-card.css +1 -1
  75. package/styles/ui-checkbox.css +1 -1
  76. package/styles/ui-cluster.css +1 -1
  77. package/styles/ui-combobox.css +1 -1
  78. package/styles/ui-container.css +1 -1
  79. package/styles/ui-context-menu.css +1 -1
  80. package/styles/ui-cover.css +1 -1
  81. package/styles/ui-description-item.css +1 -1
  82. package/styles/ui-description-list.css +1 -1
  83. package/styles/ui-dialog.css +1 -1
  84. package/styles/ui-disclosure.css +1 -1
  85. package/styles/ui-editable.css +1 -1
  86. package/styles/ui-editor-insert-table-grid.css +1 -1
  87. package/styles/ui-editor-mention-menu-item.css +1 -1
  88. package/styles/ui-editor-mention-menu.css +1 -1
  89. package/styles/ui-editor-slash-menu-group.css +1 -1
  90. package/styles/ui-editor-slash-menu-item.css +1 -1
  91. package/styles/ui-editor-slash-menu.css +1 -1
  92. package/styles/ui-editor-table-context-menu.css +1 -1
  93. package/styles/ui-editor-table-overlay.css +1 -1
  94. package/styles/ui-editor-table-toolbar.css +1 -1
  95. package/styles/ui-editor-toolbar.css +1 -1
  96. package/styles/ui-floating-action-button.css +1 -1
  97. package/styles/ui-form-field.css +1 -1
  98. package/styles/ui-grid.css +1 -1
  99. package/styles/ui-icon-button.css +1 -1
  100. package/styles/ui-icon.css +1 -1
  101. package/styles/ui-input-group.css +1 -1
  102. package/styles/ui-input.css +1 -1
  103. package/styles/ui-list-item.css +1 -1
  104. package/styles/ui-list.css +1 -1
  105. package/styles/ui-listbox.css +1 -1
  106. package/styles/ui-menu-group.css +1 -1
  107. package/styles/ui-menu-item.css +1 -1
  108. package/styles/ui-menu.css +1 -1
  109. package/styles/ui-meter.css +1 -1
  110. package/styles/ui-nav-item.css +1 -1
  111. package/styles/ui-page-header.css +1 -1
  112. package/styles/ui-popover.css +1 -1
  113. package/styles/ui-radio-group.css +1 -1
  114. package/styles/ui-radio.css +1 -1
  115. package/styles/ui-reel.css +1 -1
  116. package/styles/ui-scroll-area.css +1 -1
  117. package/styles/ui-search-result-row.css +1 -1
  118. package/styles/ui-search-shell.css +1 -1
  119. package/styles/ui-section.css +1 -1
  120. package/styles/ui-select.css +1 -1
  121. package/styles/ui-separator.css +1 -1
  122. package/styles/ui-sidebar.css +1 -1
  123. package/styles/ui-spinner.css +1 -1
  124. package/styles/ui-stack.css +1 -1
  125. package/styles/ui-status-message.css +1 -1
  126. package/styles/ui-switch.css +1 -1
  127. package/styles/ui-switcher.css +1 -1
  128. package/styles/ui-table.css +1 -1
  129. package/styles/ui-tabs.css +1 -1
  130. package/styles/ui-text.css +1 -1
  131. package/styles/ui-textarea.css +1 -1
  132. package/styles/ui-toast-region.css +1 -1
  133. package/styles/ui-toast.css +1 -1
  134. package/styles/ui-tooltip.css +1 -1
  135. package/styles/ui-top-bar.css +1 -1
  136. package/styles/ui-tree-item.css +1 -1
  137. package/styles/ui-tree.css +1 -1
  138. package/vanilla/UiActionBar.d.ts +1 -1
  139. package/vanilla/UiActionBar.js +5 -1
  140. package/vanilla/UiAffordanceScope.d.ts +1 -1
  141. package/vanilla/UiAffordanceScope.js +3 -2
  142. package/vanilla/UiAvatar.d.ts +1 -1
  143. package/vanilla/UiAvatar.js +4 -3
  144. package/vanilla/UiAvatarGroup.d.ts +1 -1
  145. package/vanilla/UiAvatarGroup.js +3 -2
  146. package/vanilla/UiBadge.d.ts +1 -1
  147. package/vanilla/UiBadge.js +2 -1
  148. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  149. package/vanilla/UiBreadcrumbItem.js +2 -1
  150. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  151. package/vanilla/UiBreadcrumbs.js +4 -7
  152. package/vanilla/UiButton.d.ts +1 -1
  153. package/vanilla/UiButton.js +6 -4
  154. package/vanilla/UiCallout.d.ts +1 -1
  155. package/vanilla/UiCallout.js +3 -2
  156. package/vanilla/UiCard.d.ts +1 -1
  157. package/vanilla/UiCard.js +6 -2
  158. package/vanilla/UiCheckbox.d.ts +1 -1
  159. package/vanilla/UiCheckbox.js +4 -2
  160. package/vanilla/UiCluster.d.ts +1 -1
  161. package/vanilla/UiCluster.js +2 -1
  162. package/vanilla/UiCombobox.d.ts +3 -2
  163. package/vanilla/UiCombobox.js +8 -2
  164. package/vanilla/UiContainer.d.ts +1 -1
  165. package/vanilla/UiContainer.js +2 -1
  166. package/vanilla/UiContextMenu.d.ts +1 -1
  167. package/vanilla/UiContextMenu.js +3 -2
  168. package/vanilla/UiCover.d.ts +1 -1
  169. package/vanilla/UiCover.js +4 -5
  170. package/vanilla/UiDescriptionItem.d.ts +1 -1
  171. package/vanilla/UiDescriptionItem.js +4 -7
  172. package/vanilla/UiDescriptionList.d.ts +1 -1
  173. package/vanilla/UiDescriptionList.js +2 -1
  174. package/vanilla/UiDialog.d.ts +1 -1
  175. package/vanilla/UiDialog.js +4 -2
  176. package/vanilla/UiDisclosure.d.ts +1 -1
  177. package/vanilla/UiDisclosure.js +4 -2
  178. package/vanilla/UiEditable.d.ts +1 -1
  179. package/vanilla/UiEditable.js +2 -2
  180. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  181. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  182. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  183. package/vanilla/UiEditorMentionMenu.js +5 -2
  184. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  185. package/vanilla/UiEditorMentionMenuItem.js +3 -1
  186. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  187. package/vanilla/UiEditorSlashMenu.js +6 -2
  188. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  189. package/vanilla/UiEditorSlashMenuGroup.js +4 -7
  190. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  191. package/vanilla/UiEditorSlashMenuItem.js +2 -1
  192. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  193. package/vanilla/UiEditorTableContextMenu.js +2 -2
  194. package/vanilla/UiEditorTableOverlay.d.ts +12 -2
  195. package/vanilla/UiEditorTableOverlay.js +2 -2
  196. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  197. package/vanilla/UiEditorTableToolbar.js +2 -2
  198. package/vanilla/UiEditorToolbar.d.ts +1 -1
  199. package/vanilla/UiEditorToolbar.js +2 -1
  200. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  201. package/vanilla/UiFloatingActionButton.js +2 -1
  202. package/vanilla/UiFormField.d.ts +1 -1
  203. package/vanilla/UiFormField.js +6 -1
  204. package/vanilla/UiGrid.d.ts +1 -1
  205. package/vanilla/UiGrid.js +4 -3
  206. package/vanilla/UiIcon.d.ts +1 -1
  207. package/vanilla/UiIcon.js +1 -1
  208. package/vanilla/UiIconButton.d.ts +1 -1
  209. package/vanilla/UiIconButton.js +4 -3
  210. package/vanilla/UiInput.d.ts +5 -4
  211. package/vanilla/UiInput.js +16 -13
  212. package/vanilla/UiInputGroup.d.ts +1 -1
  213. package/vanilla/UiInputGroup.js +5 -1
  214. package/vanilla/UiList.d.ts +1 -1
  215. package/vanilla/UiList.js +4 -2
  216. package/vanilla/UiListItem.d.ts +1 -1
  217. package/vanilla/UiListItem.js +5 -1
  218. package/vanilla/UiListbox.d.ts +1 -1
  219. package/vanilla/UiListbox.js +3 -2
  220. package/vanilla/UiMenu.d.ts +1 -1
  221. package/vanilla/UiMenu.js +3 -2
  222. package/vanilla/UiMenuGroup.d.ts +1 -1
  223. package/vanilla/UiMenuGroup.js +2 -1
  224. package/vanilla/UiMenuItem.d.ts +1 -1
  225. package/vanilla/UiMenuItem.js +6 -2
  226. package/vanilla/UiMeter.d.ts +1 -1
  227. package/vanilla/UiMeter.js +2 -2
  228. package/vanilla/UiNavItem.d.ts +2 -2
  229. package/vanilla/UiNavItem.js +11 -5
  230. package/vanilla/UiPageHeader.d.ts +1 -1
  231. package/vanilla/UiPageHeader.js +8 -5
  232. package/vanilla/UiPopover.d.ts +1 -1
  233. package/vanilla/UiPopover.js +3 -2
  234. package/vanilla/UiRadio.d.ts +1 -1
  235. package/vanilla/UiRadio.js +4 -2
  236. package/vanilla/UiRadioGroup.d.ts +1 -1
  237. package/vanilla/UiRadioGroup.js +3 -2
  238. package/vanilla/UiReel.d.ts +1 -1
  239. package/vanilla/UiReel.js +2 -1
  240. package/vanilla/UiScrollArea.d.ts +1 -1
  241. package/vanilla/UiScrollArea.js +3 -2
  242. package/vanilla/UiSearchResultRow.d.ts +1 -1
  243. package/vanilla/UiSearchResultRow.js +6 -1
  244. package/vanilla/UiSearchShell.d.ts +1 -1
  245. package/vanilla/UiSearchShell.js +6 -2
  246. package/vanilla/UiSection.d.ts +1 -1
  247. package/vanilla/UiSection.js +5 -2
  248. package/vanilla/UiSelect.d.ts +1 -1
  249. package/vanilla/UiSelect.js +3 -2
  250. package/vanilla/UiSeparator.d.ts +1 -1
  251. package/vanilla/UiSeparator.js +3 -7
  252. package/vanilla/UiSidebar.d.ts +1 -1
  253. package/vanilla/UiSidebar.js +3 -2
  254. package/vanilla/UiSpinner.d.ts +1 -1
  255. package/vanilla/UiSpinner.js +2 -2
  256. package/vanilla/UiStack.d.ts +1 -1
  257. package/vanilla/UiStack.js +2 -1
  258. package/vanilla/UiStatusMessage.d.ts +1 -1
  259. package/vanilla/UiStatusMessage.js +4 -2
  260. package/vanilla/UiSwitch.d.ts +1 -1
  261. package/vanilla/UiSwitch.js +4 -2
  262. package/vanilla/UiSwitcher.d.ts +1 -1
  263. package/vanilla/UiSwitcher.js +3 -2
  264. package/vanilla/UiTable.d.ts +1 -1
  265. package/vanilla/UiTable.js +3 -2
  266. package/vanilla/UiTabs.d.ts +1 -1
  267. package/vanilla/UiTabs.js +4 -2
  268. package/vanilla/UiText.d.ts +1 -1
  269. package/vanilla/UiText.js +13 -2
  270. package/vanilla/UiTextarea.d.ts +1 -1
  271. package/vanilla/UiTextarea.js +3 -3
  272. package/vanilla/UiToast.d.ts +1 -1
  273. package/vanilla/UiToast.js +4 -2
  274. package/vanilla/UiToastRegion.d.ts +1 -1
  275. package/vanilla/UiToastRegion.js +3 -2
  276. package/vanilla/UiTooltip.d.ts +1 -1
  277. package/vanilla/UiTooltip.js +3 -2
  278. package/vanilla/UiTopBar.d.ts +1 -1
  279. package/vanilla/UiTopBar.js +5 -1
  280. package/vanilla/UiTree.d.ts +1 -1
  281. package/vanilla/UiTree.js +3 -2
  282. package/vanilla/UiTreeItem.d.ts +1 -1
  283. package/vanilla/UiTreeItem.js +8 -4
  284. package/vue/UiActionBar.vue +33 -2
  285. package/vue/UiAffordanceScope.d.ts +23 -8
  286. package/vue/UiAffordanceScope.vue +90 -17
  287. package/vue/UiAvatar.d.ts +77 -19
  288. package/vue/UiAvatar.vue +151 -31
  289. package/vue/UiAvatarGroup.d.ts +50 -13
  290. package/vue/UiAvatarGroup.vue +121 -23
  291. package/vue/UiBadge.d.ts +32 -10
  292. package/vue/UiBadge.vue +104 -17
  293. package/vue/UiBreadcrumbItem.d.ts +14 -6
  294. package/vue/UiBreadcrumbItem.vue +82 -15
  295. package/vue/UiBreadcrumbs.d.ts +14 -6
  296. package/vue/UiBreadcrumbs.vue +78 -10
  297. package/vue/UiButton.d.ts +122 -27
  298. package/vue/UiButton.vue +288 -64
  299. package/vue/UiCallout.d.ts +14 -6
  300. package/vue/UiCallout.vue +84 -16
  301. package/vue/UiCard.d.ts +41 -12
  302. package/vue/UiCard.vue +149 -25
  303. package/vue/UiCheckbox.d.ts +85 -28
  304. package/vue/UiCheckbox.vue +173 -43
  305. package/vue/UiCluster.d.ts +41 -7
  306. package/vue/UiCluster.vue +122 -13
  307. package/vue/UiCombobox.d.ts +303 -110
  308. package/vue/UiCombobox.vue +723 -412
  309. package/vue/UiContainer.d.ts +23 -5
  310. package/vue/UiContainer.vue +89 -9
  311. package/vue/UiContextMenu.d.ts +38 -23
  312. package/vue/UiContextMenu.vue +113 -38
  313. package/vue/UiCover.d.ts +14 -6
  314. package/vue/UiCover.vue +76 -12
  315. package/vue/UiDescriptionItem.d.ts +14 -6
  316. package/vue/UiDescriptionItem.vue +78 -11
  317. package/vue/UiDescriptionList.d.ts +32 -9
  318. package/vue/UiDescriptionList.vue +106 -16
  319. package/vue/UiDialog.d.ts +89 -30
  320. package/vue/UiDialog.vue +168 -38
  321. package/vue/UiDisclosure.d.ts +70 -27
  322. package/vue/UiDisclosure.vue +149 -36
  323. package/vue/UiEditable.d.ts +119 -41
  324. package/vue/UiEditable.vue +220 -62
  325. package/vue/UiEditorInsertTableGrid.d.ts +46 -17
  326. package/vue/UiEditorInsertTableGrid.vue +215 -40
  327. package/vue/UiEditorMentionMenu.d.ts +128 -41
  328. package/vue/UiEditorMentionMenu.vue +211 -37
  329. package/vue/UiEditorMentionMenuItem.d.ts +32 -10
  330. package/vue/UiEditorMentionMenuItem.vue +98 -17
  331. package/vue/UiEditorSlashMenu.d.ts +110 -37
  332. package/vue/UiEditorSlashMenu.vue +189 -31
  333. package/vue/UiEditorSlashMenuGroup.d.ts +14 -6
  334. package/vue/UiEditorSlashMenuGroup.vue +80 -12
  335. package/vue/UiEditorSlashMenuItem.d.ts +50 -14
  336. package/vue/UiEditorSlashMenuItem.vue +120 -23
  337. package/vue/UiEditorTableContextMenu.d.ts +64 -20
  338. package/vue/UiEditorTableContextMenu.vue +326 -91
  339. package/vue/UiEditorTableOverlay.d.ts +170 -44
  340. package/vue/UiEditorTableOverlay.vue +420 -149
  341. package/vue/UiEditorTableToolbar.d.ts +64 -20
  342. package/vue/UiEditorTableToolbar.vue +344 -107
  343. package/vue/UiEditorToolbar.d.ts +14 -6
  344. package/vue/UiEditorToolbar.vue +79 -15
  345. package/vue/UiFloatingActionButton.d.ts +32 -10
  346. package/vue/UiFloatingActionButton.vue +96 -18
  347. package/vue/UiFormField.d.ts +32 -10
  348. package/vue/UiFormField.vue +99 -19
  349. package/vue/UiGrid.d.ts +32 -6
  350. package/vue/UiGrid.vue +95 -11
  351. package/vue/UiIcon.d.ts +14 -6
  352. package/vue/UiIcon.vue +99 -14
  353. package/vue/UiIconButton.d.ts +77 -19
  354. package/vue/UiIconButton.vue +176 -39
  355. package/vue/UiInput.d.ts +50 -19
  356. package/vue/UiInput.vue +326 -33
  357. package/vue/UiInputGroup.d.ts +14 -6
  358. package/vue/UiInputGroup.vue +79 -15
  359. package/vue/UiList.d.ts +41 -12
  360. package/vue/UiList.vue +125 -22
  361. package/vue/UiListItem.d.ts +23 -8
  362. package/vue/UiListItem.vue +88 -16
  363. package/vue/UiListbox.d.ts +86 -27
  364. package/vue/UiListbox.vue +272 -64
  365. package/vue/UiMenu.d.ts +69 -33
  366. package/vue/UiMenu.vue +142 -38
  367. package/vue/UiMenuGroup.d.ts +14 -6
  368. package/vue/UiMenuGroup.vue +80 -11
  369. package/vue/UiMenuItem.d.ts +61 -25
  370. package/vue/UiMenuItem.vue +174 -45
  371. package/vue/UiMeter.d.ts +68 -18
  372. package/vue/UiMeter.vue +215 -41
  373. package/vue/UiNavItem.d.ts +50 -11
  374. package/vue/UiNavItem.vue +163 -29
  375. package/vue/UiPageHeader.d.ts +14 -6
  376. package/vue/UiPageHeader.vue +75 -12
  377. package/vue/UiPopover.d.ts +43 -21
  378. package/vue/UiPopover.vue +147 -27
  379. package/vue/UiRadio.d.ts +67 -24
  380. package/vue/UiRadio.vue +147 -36
  381. package/vue/UiRadioGroup.d.ts +79 -29
  382. package/vue/UiRadioGroup.vue +162 -41
  383. package/vue/UiReel.d.ts +32 -6
  384. package/vue/UiReel.vue +97 -11
  385. package/vue/UiScrollArea.d.ts +14 -6
  386. package/vue/UiScrollArea.vue +83 -14
  387. package/vue/UiSearchResultRow.d.ts +23 -8
  388. package/vue/UiSearchResultRow.vue +86 -16
  389. package/vue/UiSearchShell.d.ts +48 -19
  390. package/vue/UiSearchShell.vue +120 -26
  391. package/vue/UiSection.d.ts +32 -10
  392. package/vue/UiSection.vue +103 -17
  393. package/vue/UiSelect.d.ts +59 -17
  394. package/vue/UiSelect.vue +140 -29
  395. package/vue/UiSeparator.d.ts +14 -6
  396. package/vue/UiSeparator.vue +80 -9
  397. package/vue/UiSidebar.d.ts +95 -31
  398. package/vue/UiSidebar.vue +172 -39
  399. package/vue/UiSpinner.d.ts +23 -8
  400. package/vue/UiSpinner.vue +115 -24
  401. package/vue/UiStack.d.ts +32 -6
  402. package/vue/UiStack.vue +107 -11
  403. package/vue/UiStatusMessage.d.ts +32 -10
  404. package/vue/UiStatusMessage.vue +109 -19
  405. package/vue/UiSwitch.d.ts +67 -24
  406. package/vue/UiSwitch.vue +147 -36
  407. package/vue/UiSwitcher.d.ts +41 -7
  408. package/vue/UiSwitcher.vue +118 -15
  409. package/vue/UiTable.d.ts +23 -8
  410. package/vue/UiTable.vue +91 -17
  411. package/vue/UiTabs.d.ts +66 -23
  412. package/vue/UiTabs.vue +230 -44
  413. package/vue/UiText.d.ts +68 -18
  414. package/vue/UiText.vue +308 -48
  415. package/vue/UiTextarea.d.ts +84 -21
  416. package/vue/UiTextarea.vue +172 -38
  417. package/vue/UiToast.d.ts +28 -13
  418. package/vue/UiToast.vue +103 -24
  419. package/vue/UiToastRegion.d.ts +29 -14
  420. package/vue/UiToastRegion.vue +202 -47
  421. package/vue/UiTooltip.d.ts +81 -31
  422. package/vue/UiTooltip.vue +192 -37
  423. package/vue/UiTopBar.vue +33 -2
  424. package/vue/UiTree.d.ts +72 -29
  425. package/vue/UiTree.vue +170 -49
  426. package/vue/UiTreeItem.d.ts +136 -35
  427. package/vue/UiTreeItem.vue +227 -61
  428. package/vue/chunks/UiActionBar.js +16 -3
  429. package/vue/chunks/UiAffordanceScope.js +66 -11
  430. package/vue/chunks/UiAvatar.js +121 -20
  431. package/vue/chunks/UiAvatarGroup.js +94 -15
  432. package/vue/chunks/UiBadge.js +82 -10
  433. package/vue/chunks/UiBreadcrumbItem.js +43 -9
  434. package/vue/chunks/UiBreadcrumbs.js +41 -5
  435. package/vue/chunks/UiButton.js +237 -51
  436. package/vue/chunks/UiCallout.js +53 -11
  437. package/vue/chunks/UiCard.js +145 -18
  438. package/vue/chunks/UiCheckbox.js +130 -30
  439. package/vue/chunks/UiCluster.js +99 -12
  440. package/vue/chunks/UiCombobox.js +545 -162
  441. package/vue/chunks/UiContainer.js +65 -7
  442. package/vue/chunks/UiContextMenu.js +56 -11
  443. package/vue/chunks/UiCover.js +41 -6
  444. package/vue/chunks/UiDescriptionItem.js +39 -4
  445. package/vue/chunks/UiDescriptionList.js +80 -10
  446. package/vue/chunks/UiDialog.js +125 -18
  447. package/vue/chunks/UiDisclosure.js +102 -17
  448. package/vue/chunks/UiEditable.js +154 -29
  449. package/vue/chunks/UiEditorInsertTableGrid.js +154 -31
  450. package/vue/chunks/UiEditorMentionMenu.js +221 -18
  451. package/vue/chunks/UiEditorMentionMenuItem.js +64 -7
  452. package/vue/chunks/UiEditorSlashMenu.js +201 -14
  453. package/vue/chunks/UiEditorSlashMenuGroup.js +43 -9
  454. package/vue/chunks/UiEditorSlashMenuItem.js +80 -14
  455. package/vue/chunks/UiEditorTableContextMenu.js +220 -49
  456. package/vue/chunks/UiEditorTableOverlay.js +390 -85
  457. package/vue/chunks/UiEditorTableToolbar.js +248 -71
  458. package/vue/chunks/UiEditorToolbar.js +44 -10
  459. package/vue/chunks/UiFloatingActionButton.js +57 -9
  460. package/vue/chunks/UiFormField.js +63 -12
  461. package/vue/chunks/UiGrid.js +80 -9
  462. package/vue/chunks/UiIcon.js +73 -16
  463. package/vue/chunks/UiIconButton.js +126 -28
  464. package/vue/chunks/UiInput.js +328 -22
  465. package/vue/chunks/UiInputGroup.js +44 -10
  466. package/vue/chunks/UiList.js +104 -15
  467. package/vue/chunks/UiListItem.js +57 -8
  468. package/vue/chunks/UiListbox.js +208 -49
  469. package/vue/chunks/UiMenu.js +88 -15
  470. package/vue/chunks/UiMenuGroup.js +41 -5
  471. package/vue/chunks/UiMenuItem.js +111 -32
  472. package/vue/chunks/UiMeter.js +166 -36
  473. package/vue/chunks/UiNavItem.js +133 -37
  474. package/vue/chunks/UiPageHeader.js +41 -6
  475. package/vue/chunks/UiPopover.js +81 -11
  476. package/vue/chunks/UiRadio.js +115 -24
  477. package/vue/chunks/UiRadioGroup.js +108 -19
  478. package/vue/chunks/UiReel.js +81 -10
  479. package/vue/chunks/UiScrollArea.js +47 -10
  480. package/vue/chunks/UiSearchResultRow.js +47 -8
  481. package/vue/chunks/UiSearchShell.js +84 -24
  482. package/vue/chunks/UiSection.js +77 -10
  483. package/vue/chunks/UiSelect.js +108 -20
  484. package/vue/chunks/UiSeparator.js +41 -5
  485. package/vue/chunks/UiSidebar.js +136 -20
  486. package/vue/chunks/UiSpinner.js +64 -19
  487. package/vue/chunks/UiStack.js +87 -10
  488. package/vue/chunks/UiStatusMessage.js +82 -12
  489. package/vue/chunks/UiSwitch.js +115 -24
  490. package/vue/chunks/UiSwitcher.js +103 -15
  491. package/vue/chunks/UiTable.js +63 -11
  492. package/vue/chunks/UiTabs.js +170 -30
  493. package/vue/chunks/UiText.js +365 -38
  494. package/vue/chunks/UiTextarea.js +132 -26
  495. package/vue/chunks/UiToast.js +70 -12
  496. package/vue/chunks/UiToastRegion.js +154 -33
  497. package/vue/chunks/UiTooltip.js +124 -16
  498. package/vue/chunks/UiTopBar.js +16 -3
  499. package/vue/chunks/UiTree.js +107 -15
  500. package/vue/chunks/UiTreeItem.js +167 -43
  501. package/vue/chunks/control.js +171 -0
  502. package/vue/chunks/host.js +170 -27
  503. package/vue/chunks/props.js +477 -0
  504. package/vue/components.css +1192 -1192
  505. package/vue/editor/index.js +58 -15
  506. package/vue/editor/primitives.d.ts +52 -2
  507. package/vue/host.ts +370 -39
@@ -4,14 +4,19 @@
4
4
  */
5
5
  export function trackTrigger(host) {
6
6
  let trigger = "programmatic";
7
- const offKey = host.on("keydown", (event) => {
7
+ const onKey = (event) => {
8
8
  if (event.key === " " || event.key === "Enter" || event.key.startsWith("Arrow")) trigger = "keyboard";
9
- });
10
- const offPointer = host.on("pointerdown", () => { trigger = "pointer"; });
9
+ };
10
+ const onPointer = () => { trigger = "pointer"; };
11
+ host.element.addEventListener("keydown", onKey);
12
+ host.element.addEventListener("pointerdown", onPointer);
11
13
  const take = () => {
12
14
  const current = trigger;
13
15
  trigger = "programmatic";
14
16
  return current;
15
17
  };
16
- return [take, () => { offKey(); offPointer(); }];
18
+ return [take, () => {
19
+ host.element.removeEventListener("keydown", onKey);
20
+ host.element.removeEventListener("pointerdown", onPointer);
21
+ }];
17
22
  }
@@ -1,7 +1,7 @@
1
1
  <template component="ui-affordance-scope" controller="./ui-affordance-scope.js">
2
2
  <defs>
3
3
  <prop name="nearRadius" type="number" default="16">How close, in pixels, the pointer must come to reveal an affordance.</prop>
4
- <prop name="guide" type="dot | none" default="dot"
4
+ <prop name="guide" type="keyword" values="dot, none" default="dot"
5
5
  >What marks an anticipatory control at rest. dot shows a small guide dot where it will appear; none shows nothing until the pointer nears it, it is hovered,
6
6
  or it takes focus. Every guide inside the scope follows it, including a sidebar's resize line and the editor table's handles.</prop>
7
7
  <state name="engaged" :value="false"></state>
@@ -13,9 +13,9 @@
13
13
  <prop name="fallback" type="string" default=""
14
14
  >Text shown instead of the initials derived from name or alt, whenever there is no image. It is uppercased; keep it to a couple of characters, because the
15
15
  circle clips anything wider.</prop>
16
- <prop name="size" type="sm | md" default="md"
16
+ <prop name="size" type="keyword" values="sm, md" default="md"
17
17
  >md is 2.5rem, for a person on their own (a profile, a comment); sm is 1.75rem with smaller initials, for a row of people in a toolbar or header.</prop>
18
- <prop name="shape" type="circle | square" default="circle">Circle by default; square uses the theme's medium radius.</prop>
18
+ <prop name="shape" type="keyword" values="circle, square" default="circle">Circle by default; square uses the theme's medium radius.</prop>
19
19
  <prop name="decorative" type="boolean" default="false">Hides the avatar from assistive technology when adjacent text already identifies the person.</prop>
20
20
  <prop name="active" type="boolean" default="false"
21
21
  >Marks the person as active now, such as editing the same page: a fine accent ring around the avatar. The ring is not announced, so say what it means in alt
@@ -10,7 +10,7 @@
10
10
  >Accessible label for the overflow badge. Replace {count} with the number of people beyond the visible avatars.</prop>
11
11
  <prop name="label" type="string" default="People"
12
12
  >The group's accessible name, announced for the set of avatars as a whole. Name who they are rather than repeating the default.</prop>
13
- <prop name="size" type="sm | md" default="md"
13
+ <prop name="size" type="keyword" values="sm, md" default="md"
14
14
  >The size of the avatars inside, matched by the +N badge and the overlap. Give each Avatar the same size.</prop>
15
15
  <state name="overflowCount" :value="0"></state>
16
16
  <state name="overflowAnnouncement" :value="''"></state>
@@ -18,7 +18,7 @@ export default function controller(host) {
18
18
  });
19
19
  const authoredVisible = Math.min(avatars.length, visible);
20
20
  const suppliedTotal = Number(host.state.total);
21
- const total = host.state.total === undefined || !Number.isFinite(suppliedTotal) ? avatars.length : Math.max(avatars.length, suppliedTotal);
21
+ const total = host.state.total == null || !Number.isFinite(suppliedTotal) ? avatars.length : Math.max(avatars.length, suppliedTotal);
22
22
  const count = Math.max(0, total - authoredVisible);
23
23
  host.state.overflowCount = count;
24
24
  host.state.overflowAnnouncement = String(host.state.overflowLabel || "{count} more").replaceAll("{count}", String(count));
@@ -1,13 +1,13 @@
1
1
  <template component="ui-badge">
2
2
  <defs>
3
- <prop name="variant" type="solid | subtle | outline" default="subtle"
3
+ <prop name="variant" type="keyword" values="solid, subtle, outline" default="subtle"
4
4
  >Emphasis. subtle sets toned text over a soft wash; solid fills with the tone and uses contrasting text; outline keeps the surface with a toned edge.
5
5
  Neutral looks the same in solid and subtle.</prop>
6
- <prop name="tone" type="neutral | accent | info | success | warning | danger" default="neutral"
6
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger" default="neutral"
7
7
  >Which colour the badge speaks in. neutral is a quiet grey for plain labels; accent draws the eye in the accent colour; info, success, warning, and danger
8
8
  mark a status, so match the tone to what the badge says. For a category rather than a status, set the --ui-badge-color hook on the badge instead: any CSS
9
9
  colour, which overrides the tone.</prop>
10
- <prop name="shape" type="pill | tag" default="pill"
10
+ <prop name="shape" type="keyword" values="pill, tag" default="pill"
11
11
  >Silhouette. pill is rounded at both ends; tag is a label: flat at the start and coming to a point at the end, for a tag or a chosen chip.</prop>
12
12
  </defs>
13
13
  <span><slot></slot></span>
@@ -1,13 +1,13 @@
1
1
  <link rel="component" href="../ui-spinner/ui-spinner.html">
2
2
  <template component="ui-button" controller="./ui-button.js">
3
3
  <defs>
4
- <prop name="variant" type="outline | solid | danger | ghost | link" default="outline"
4
+ <prop name="variant" type="keyword" values="outline, solid, danger, ghost, link" default="outline"
5
5
  >Emphasis: how loudly the button asks. solid fills with its tone, outline draws its tone at the edge over a wash of it, ghost carries only text until it is
6
6
  hovered, and link is an inline text action that reads as a link. danger is solid in the danger tone, kept for the call sites that name it.</prop>
7
- <prop name="size" type="sm | md | lg" default="md"
7
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
8
8
  >Height, padding, and type size. sm is the small control height (2rem by default) with tighter padding and smaller text, md is the standard control height
9
9
  (2.5rem), and lg is taller (3rem) with roomier padding.</prop>
10
- <prop name="tone" type="accent | neutral | danger | success | warning | info" default="accent"
10
+ <prop name="tone" type="keyword" values="accent, neutral, danger, success, warning, info" default="accent"
11
11
  >Which colour the button speaks in. It applies to every variant, so an outline, a ghost, and a solid in the same tone are the same action at three volumes:
12
12
  tone="danger" variant="outline" is a destructive secondary action. neutral is the quiet one, for a button that should not claim a colour.</prop>
13
13
  <prop name="disabled" type="boolean" default="false"
@@ -17,17 +17,18 @@
17
17
  >Keeps the action focusable and its label visible while work is in progress. It shows a decorative spinner, states aria-disabled and aria-busy, and prevents
18
18
  activation or form submission until cleared.</prop>
19
19
  <prop name="pending" type="boolean" default="false">Deprecated alias for loading.</prop>
20
- <prop name="align" type="center | start" default="center"
20
+ <prop name="align" type="keyword" values="center, start" default="center"
21
21
  >Content alignment. start lays the content out like a list option: from the start edge, with start-aligned text.</prop>
22
22
  <prop name="stretch" type="boolean" default="false">Fills the inline size of its container.</prop>
23
- <prop name="type" type="button | submit | reset" default="button"
23
+ <prop name="type" type="keyword" values="button, submit, reset" default="button"
24
24
  >The button's type, as on a native button. button by default, so it never submits a form by accident. A link has no type.</prop>
25
25
  <prop name="href" type="string"
26
26
  >The link's destination. Pair it with as="a" so the button renders as a real link that navigates. A disabled link drops its href and states
27
27
  aria-disabled="true", so it cannot be followed.</prop>
28
28
  <prop name="target" type="string">Where a link opens, as on a native link. Only meaningful with as="a".</prop>
29
29
  <prop name="rel" type="string">The link's relationship to its destination, as on a native link. Only meaningful with as="a".</prop>
30
- <prop name="as" type="button | a" default="button">The native element the button renders: a button, or a link (a) that navigates to href.</prop>
30
+ <prop name="as" type="keyword" values="button, a" default="button"
31
+ >The native element the button renders: a button, or a link (a) that navigates to href.</prop>
31
32
  <!-- Each root carries only its own attributes: a link has no type or disabled, and a disabled link
32
33
  loses its href and states aria-disabled instead. The language has no conditional expression, so a
33
34
  table keyed by a boolean's text picks each value, and null leaves the attribute off. -->
@@ -1,6 +1,6 @@
1
1
  <template component="ui-callout">
2
2
  <defs>
3
- <prop name="tone" type="info | neutral | note | warning | success | danger" default="info"
3
+ <prop name="tone" type="keyword" values="info, neutral, note, warning, success, danger" default="info"
4
4
  >Which kind of message the callout carries, shown by its icon and colour: info (the default) for information, neutral for a muted aside, warning for a
5
5
  caution, success for a confirmation, and danger for a harmful consequence. note remains as an alias for neutral.</prop>
6
6
  </defs>
@@ -1,12 +1,13 @@
1
1
  <template component="ui-card">
2
2
  <defs>
3
- <prop name="variant" type="outlined | subtle | elevated" default="outlined"
3
+ <prop name="variant" type="keyword" values="outlined, subtle, elevated" default="outlined"
4
4
  >The surface. outlined is a bordered panel on the page; subtle is a quiet filled one with no border, for supporting details set apart from the flow;
5
5
  elevated floats above the page with a shadow, for a view's one card, such as sign-in.</prop>
6
- <prop name="padding" type="sm | md | lg" default="md"
6
+ <prop name="padding" type="keyword" values="sm, md, lg" default="md"
7
7
  >The space inside the card: sm is snug (0.75rem), md is the default (1.5rem), and lg is roomy (2rem).</prop>
8
- <prop name="tone" type="neutral | danger" default="neutral">danger adds a soft danger surface and a strong leading edge for consequential content.</prop>
9
- <prop name="as" type="div | section | article | aside" default="div"
8
+ <prop name="tone" type="keyword" values="neutral, danger" default="neutral"
9
+ >danger adds a soft danger surface and a strong leading edge for consequential content.</prop>
10
+ <prop name="as" type="keyword" values="div, section, article, aside" default="div"
10
11
  >The native element the card renders. Choose the one that names the content: a section of a page, a self-contained article, or an aside.</prop>
11
12
  </defs>
12
13
  <template $match>
@@ -15,12 +15,16 @@
15
15
  <prop name="value" type="string" default="on"
16
16
  >The value a form submits under name while the checkbox is checked, also reported in the change event's detail so one handler can tell checkboxes apart. on
17
17
  by default, as on a native checkbox.</prop>
18
- <prop name="size" type="sm | md | lg" default="md"
18
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
19
19
  >Aligns the checkbox with fields and buttons of the same size. It keeps its box size; the label takes that size's field type size and its first line centres
20
20
  in that control height (sm 2rem, lg 3rem by default), so in a row of inputs, selects, and buttons of one size it shares their height and their text
21
21
  baseline. Under a coarse pointer an sm row grows to the 44px touch minimum, as they do. md is the standard layout.</prop>
22
22
  <state name="internalChecked" :value="false"></state>
23
- <event name="change" type="object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })"></event>
23
+ <event name="change" type="object">
24
+ <prop name="checked" required type="boolean"></prop>
25
+ <prop name="value" required type="string"></prop>
26
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
27
+ </event>
24
28
  </defs>
25
29
  <label>
26
30
  <input
@@ -1,15 +1,15 @@
1
1
  <template component="ui-cluster">
2
2
  <defs>
3
- <prop name="gap" type="xs | s | m | l | xl"
3
+ <prop name="gap" type="keyword" values="xs, s, m, l, xl"
4
4
  >Space between items, on the spacing scale: xs is 0.5rem, s 0.75rem (also the default), m 1rem, l 1.5rem, and xl 2rem. The --ui-cluster-gap custom property,
5
5
  set on the cluster itself, overrides it; set on an ancestor, it does nothing.</prop>
6
- <prop name="align" type="start | center | end | stretch"
6
+ <prop name="align" type="keyword" values="start, center, end, stretch"
7
7
  >How items line up within each row: center (the default) aligns their middles, start their tops, end their bottoms, and stretch makes every item as tall as
8
8
  its row.</prop>
9
- <prop name="justify" type="start | center | end | between"
9
+ <prop name="justify" type="keyword" values="start, center, end, between"
10
10
  >Where items sit along each row: start (the default), center, end, or between, which pushes the first and last items to the ends of the row and spreads the
11
11
  spare space between them, as for a title with its actions.</prop>
12
- <prop name="wrap" type="wrap | nowrap"
12
+ <prop name="wrap" type="keyword" values="wrap, nowrap"
13
13
  >Whether items move onto a new row when they run out of space: wrap (the default) or nowrap, which keeps them on one row at their own sizes. Use nowrap for
14
14
  a small group that must read as one unit, such as a meter and its value in a table cell, so the cell grows to fit it; a whole row of actions should keep
15
15
  wrapping so it fits narrow screens.</prop>
@@ -11,15 +11,30 @@
11
11
  >The form field name the combobox submits its value under, never the label shown in the field. Single mode sends one entry: the selected option's value, the
12
12
  typed text when allowFreeText is set and no option is selected, or an empty string. Multiple mode sends one entry per chosen item's value, and nothing
13
13
  when none is chosen. A disabled combobox sends nothing.</prop>
14
- <prop name="value" type="string | null"
14
+ <prop name="value" type="string"
15
15
  >The selected value in single mode, which a named combobox submits with its form. The field shows the matching option's label, and a form reset returns to
16
16
  this value. In a strict combobox, typing a search does not change the selection; leaving with no match restores its label. If omitted, the first authored
17
17
  option with selected sets the initial value.</prop>
18
18
  <prop
19
19
  name="items"
20
- type="list(object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }))"
21
- >The selected items in multiple mode, as JSON; a named combobox submits each one's value. A form reset returns to these items, or to authored selected
22
- options when unset.</prop>
20
+ type="array"
21
+ >
22
+ <prop type="object">
23
+ <prop name="id" required type="string"></prop>
24
+ <prop name="value" required type="string"></prop>
25
+ <prop name="label" required type="string"></prop>
26
+ <prop name="group" type="string"></prop>
27
+ <prop name="disabled" type="boolean"></prop>
28
+ <prop name="description" type="string"></prop>
29
+ <prop name="tag" type="object">
30
+ <prop name="label" required type="string"></prop>
31
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
32
+ <prop name="color" type="string"></prop>
33
+ </prop>
34
+ </prop>
35
+ The selected items in multiple mode, as JSON; a named combobox submits each one's value. A form reset returns to these items, or to authored selected
36
+ options when unset.
37
+ </prop>
23
38
  <prop name="selectedValues" type="list(string)"
24
39
  >The selected option values in multiple mode, when the consumer controls the selection. Without it or items, authored options with selected set the initial
25
40
  selection. Once set, the consumer owns it: each value shows as a badge with its authored option's label, adding or removing one reports
@@ -27,7 +42,7 @@
27
42
  It takes precedence over items; leave it unset to let the combobox keep its own selection.</prop>
28
43
  <prop name="multiple" type="boolean" default="false"
29
44
  >Lets the user choose several options. Each choice becomes a removable badge before the input, the list stays open between picks, and choosing a checked
30
- option removes it. value-change then reports the whole list of items, and selected-values-change the list of their values; use selectedValues or items,
45
+ option removes it. items-change then reports the whole list of items, and selected-values-change the list of their values; use selectedValues or items,
31
46
  not value, in this mode.</prop>
32
47
  <prop name="tokenSeparators" type="list(string)"
33
48
  >Keys that commit the typed text in multiple mode, as KeyboardEvent key values such as "," or ";". The text is added as the option whose label matches it,
@@ -35,7 +50,7 @@
35
50
  <prop name="query" type="string"
36
51
  >The input's text, when the consumer controls it. Once set, the consumer owns the text: typing reports query-change, and the input returns to query unless
37
52
  query is updated to match. Leave it unset to let the combobox manage its own text, showing the chosen option's label.</prop>
38
- <prop name="filter" type="label | none" default="label"
53
+ <prop name="filter" type="keyword" values="label, none" default="label"
39
54
  >How the list narrows as the user types. label lists the options whose label contains the typed text, ignoring case. none lists every authored option, for
40
55
  options already narrowed elsewhere, such as a server search, so a result that matched on data other than its label still shows. Leaving the field still
41
56
  commits an option whose label matches the text, or the only one listed.</prop>
@@ -57,11 +72,11 @@
57
72
  <prop name="openOnFocus" type="boolean" default="false">Opens suggestions when the input receives focus, before typing.</prop>
58
73
  <prop name="loading" type="boolean" default="false"
59
74
  >Marks the suggestion list busy while the consumer loads options. It announces loading and suppresses the empty state and create offer until cleared.</prop>
60
- <prop name="size" type="sm | md | lg" default="md"
75
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
61
76
  >Field height, padding, and type size, matching Button's sizes so a field and a button of one size share a row. sm is the small control height (2rem by
62
77
  default) with smaller text, for compact rows such as a table row or a filter bar; md is the standard control height; lg is taller with roomier padding.
63
78
  Under a coarse pointer, sm grows to the 44px touch minimum and keeps body-size text. The label keeps its size.</prop>
64
- <prop name="labelVisibility" type="visible | sr-only" default="visible"
79
+ <prop name="labelVisibility" type="keyword" values="visible, sr-only" default="visible"
65
80
  >visible shows the label above the field; sr-only hides it visually but keeps it as the input's accessible name. Use sr-only only when the surrounding
66
81
  layout already makes the field's purpose clear.</prop>
67
82
  <prop name="disclosure" type="boolean" default="false"
@@ -75,69 +90,277 @@
75
90
  it.</prop>
76
91
  <state
77
92
  name="internalItems"
78
- type="list(object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }))"
93
+ type="array"
79
94
  :value="[]"
80
- ></state>
95
+ >
96
+ <prop type="object">
97
+ <prop name="id" required type="string"></prop>
98
+ <prop name="value" required type="string"></prop>
99
+ <prop name="label" required type="string"></prop>
100
+ <prop name="group" type="string"></prop>
101
+ <prop name="disabled" type="boolean"></prop>
102
+ <prop name="description" type="string"></prop>
103
+ <prop name="tag" type="object">
104
+ <prop name="label" required type="string"></prop>
105
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
106
+ <prop name="color" type="string"></prop>
107
+ </prop>
108
+ </prop>
109
+ </state>
81
110
  <state name="raw" :value="''"></state>
82
111
  <state name="display" :value="''"></state>
83
- <state name="selected" type="string | null" :value="null"></state>
112
+ <state name="selected" type="string" :value="null" nullable></state>
84
113
  <state name="expanded" :value="false"></state>
85
114
  <state
86
115
  name="rows"
87
- type="list(object({ id: string, value: string, label: string, group?: string, disabled: boolean, selected: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }))"
116
+ type="array"
88
117
  :value="[]"
89
- ></state>
118
+ >
119
+ <prop type="object">
120
+ <prop name="id" required type="string"></prop>
121
+ <prop name="value" required type="string"></prop>
122
+ <prop name="label" required type="string"></prop>
123
+ <prop name="group" type="string"></prop>
124
+ <prop name="disabled" required type="boolean"></prop>
125
+ <prop name="selected" required type="boolean"></prop>
126
+ <prop name="description" type="string"></prop>
127
+ <prop name="tag" type="object">
128
+ <prop name="label" required type="string"></prop>
129
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
130
+ <prop name="color" type="string"></prop>
131
+ </prop>
132
+ </prop>
133
+ </state>
90
134
  <state name="active" :value="-1"></state>
91
135
  <state name="helpOpen" :value="false"></state>
92
136
  <state name="lookupError" :value="''"></state>
93
137
  <state
94
138
  name="validation"
95
- type="object({ status: pristine | pending | valid | warning | error, touched: boolean, dirty: boolean, issues: list(object({ message: string })), ... })"
139
+ type="object"
96
140
  :value="{ status: 'pristine', touched: false, dirty: false, issues: [] }"
97
- ></state>
141
+ open
142
+ >
143
+ <prop name="status" required type="keyword" values="pristine, pending, valid, warning, error"></prop>
144
+ <prop name="touched" required type="boolean"></prop>
145
+ <prop name="dirty" required type="boolean"></prop>
146
+ <prop name="issues" required type="array">
147
+ <prop type="object">
148
+ <prop name="message" required type="string"></prop>
149
+ </prop>
150
+ </prop>
151
+ </state>
98
152
  <state name="uid" :value="''"></state>
99
153
  <state name="submitted" :value="''"></state>
100
154
  <state
101
155
  name="groups"
102
- type="list(object({ name: string, role: group | presentation, label: string | null, rows: list(object({ id: string, value: string, label: string, group?: string, disabled: boolean, selected: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }), index: integer, labelledBy: string | null, detail: string | null })) }))"
156
+ type="array"
103
157
  :value="[]"
104
- ></state>
158
+ >
159
+ <prop type="object">
160
+ <prop name="name" required type="string"></prop>
161
+ <prop name="role" required type="keyword" values="group, presentation"></prop>
162
+ <prop name="label" required nullable type="string"></prop>
163
+ <prop name="rows" required type="array">
164
+ <prop type="object">
165
+ <prop name="id" required type="string"></prop>
166
+ <prop name="value" required type="string"></prop>
167
+ <prop name="label" required type="string"></prop>
168
+ <prop name="group" type="string"></prop>
169
+ <prop name="disabled" required type="boolean"></prop>
170
+ <prop name="selected" required type="boolean"></prop>
171
+ <prop name="description" type="string"></prop>
172
+ <prop name="tag" type="object">
173
+ <prop name="label" required type="string"></prop>
174
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
175
+ <prop name="color" type="string"></prop>
176
+ </prop>
177
+ <prop name="index" required type="integer"></prop>
178
+ <prop name="labelledBy" required nullable type="string"></prop>
179
+ <prop name="detail" required nullable type="string"></prop>
180
+ </prop>
181
+ </prop>
182
+ </prop>
183
+ </state>
105
184
  <state name="creatable" :value="false"></state>
106
185
  <state name="createIndex" :value="0"></state>
107
186
  <state name="message" :value="''"></state>
108
187
  <state name="statusText" :value="''"></state>
109
188
  <state name="validationStatus" :value="'pristine'"></state>
110
- <event name="query-change" type="object({ query: string, display: string, trigger: keyboard | pointer | programmatic })"></event>
189
+ <event name="query-change" type="object">
190
+ <prop name="query" required type="string"></prop>
191
+ <prop name="display" required type="string"></prop>
192
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
193
+ </event>
111
194
  <event
112
195
  name="value-change"
113
- type="object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }) | null, kind: selection | clear | free-entry | create, trigger: keyboard | pointer | programmatic }) | list(object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }))"
114
- ></event>
196
+ type="object"
197
+ >
198
+ <prop name="value" required nullable type="string"></prop>
199
+ <prop name="query" required type="string"></prop>
200
+ <prop name="option" required nullable type="object">
201
+ <prop name="id" required type="string"></prop>
202
+ <prop name="value" required type="string"></prop>
203
+ <prop name="label" required type="string"></prop>
204
+ <prop name="group" type="string"></prop>
205
+ <prop name="disabled" type="boolean"></prop>
206
+ <prop name="description" type="string"></prop>
207
+ <prop name="tag" type="object">
208
+ <prop name="label" required type="string"></prop>
209
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
210
+ <prop name="color" type="string"></prop>
211
+ </prop>
212
+ </prop>
213
+ <prop name="kind" required type="keyword" values="selection, clear, free-entry, create"></prop>
214
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
215
+ </event>
216
+ <event
217
+ name="items-change"
218
+ type="array"
219
+ >
220
+ <prop type="object">
221
+ <prop name="id" required type="string"></prop>
222
+ <prop name="value" required type="string"></prop>
223
+ <prop name="label" required type="string"></prop>
224
+ <prop name="group" type="string"></prop>
225
+ <prop name="disabled" type="boolean"></prop>
226
+ <prop name="description" type="string"></prop>
227
+ <prop name="tag" type="object">
228
+ <prop name="label" required type="string"></prop>
229
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
230
+ <prop name="color" type="string"></prop>
231
+ </prop>
232
+ </prop>
233
+ </event>
115
234
  <event
116
235
  name="free-entry"
117
- type="object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }) | null, kind: selection | clear | free-entry | create, trigger: keyboard | pointer | programmatic })"
118
- ></event>
236
+ type="object"
237
+ >
238
+ <prop name="value" required nullable type="string"></prop>
239
+ <prop name="query" required type="string"></prop>
240
+ <prop name="option" required nullable type="object">
241
+ <prop name="id" required type="string"></prop>
242
+ <prop name="value" required type="string"></prop>
243
+ <prop name="label" required type="string"></prop>
244
+ <prop name="group" type="string"></prop>
245
+ <prop name="disabled" type="boolean"></prop>
246
+ <prop name="description" type="string"></prop>
247
+ <prop name="tag" type="object">
248
+ <prop name="label" required type="string"></prop>
249
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
250
+ <prop name="color" type="string"></prop>
251
+ </prop>
252
+ </prop>
253
+ <prop name="kind" required type="keyword" values="selection, clear, free-entry, create"></prop>
254
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
255
+ </event>
119
256
  <event
120
257
  name="create-entry"
121
- type="object({ value: string | null, query: string, option: object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }) | null, kind: selection | clear | free-entry | create, trigger: keyboard | pointer | programmatic })"
122
- ></event>
258
+ type="object"
259
+ >
260
+ <prop name="value" required nullable type="string"></prop>
261
+ <prop name="query" required type="string"></prop>
262
+ <prop name="option" required nullable type="object">
263
+ <prop name="id" required type="string"></prop>
264
+ <prop name="value" required type="string"></prop>
265
+ <prop name="label" required type="string"></prop>
266
+ <prop name="group" type="string"></prop>
267
+ <prop name="disabled" type="boolean"></prop>
268
+ <prop name="description" type="string"></prop>
269
+ <prop name="tag" type="object">
270
+ <prop name="label" required type="string"></prop>
271
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
272
+ <prop name="color" type="string"></prop>
273
+ </prop>
274
+ </prop>
275
+ <prop name="kind" required type="keyword" values="selection, clear, free-entry, create"></prop>
276
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
277
+ </event>
123
278
  <event
124
279
  name="validation-change"
125
- type="object({ status: pristine | pending | valid | warning | error, touched: boolean, dirty: boolean, issues: list(object({ message: string, path?: list(unknown), severity?: error | warning })), output?: unknown })"
126
- ></event>
280
+ type="object"
281
+ >
282
+ <prop name="status" required type="keyword" values="pristine, pending, valid, warning, error"></prop>
283
+ <prop name="touched" required type="boolean"></prop>
284
+ <prop name="dirty" required type="boolean"></prop>
285
+ <prop name="issues" required type="array">
286
+ <prop type="object">
287
+ <prop name="message" required type="string"></prop>
288
+ <prop name="path" type="array">
289
+ <prop type="unknown"></prop>
290
+ </prop>
291
+ <prop name="severity" type="keyword" values="error, warning"></prop>
292
+ </prop>
293
+ </prop>
294
+ <prop name="output" type="unknown"></prop>
295
+ </event>
127
296
  <event
128
297
  name="options-change"
129
- type="list(object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }))"
130
- ></event>
298
+ type="array"
299
+ >
300
+ <prop type="object">
301
+ <prop name="id" required type="string"></prop>
302
+ <prop name="value" required type="string"></prop>
303
+ <prop name="label" required type="string"></prop>
304
+ <prop name="group" type="string"></prop>
305
+ <prop name="disabled" type="boolean"></prop>
306
+ <prop name="description" type="string"></prop>
307
+ <prop name="tag" type="object">
308
+ <prop name="label" required type="string"></prop>
309
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
310
+ <prop name="color" type="string"></prop>
311
+ </prop>
312
+ </prop>
313
+ </event>
131
314
  <event
132
315
  name="add-item"
133
- type="object({ item: object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }), index: integer, trigger: keyboard | pointer | programmatic })"
134
- ></event>
316
+ type="object"
317
+ >
318
+ <prop name="item" required type="object">
319
+ <prop name="id" required type="string"></prop>
320
+ <prop name="value" required type="string"></prop>
321
+ <prop name="label" required type="string"></prop>
322
+ <prop name="group" type="string"></prop>
323
+ <prop name="disabled" type="boolean"></prop>
324
+ <prop name="description" type="string"></prop>
325
+ <prop name="tag" type="object">
326
+ <prop name="label" required type="string"></prop>
327
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
328
+ <prop name="color" type="string"></prop>
329
+ </prop>
330
+ </prop>
331
+ <prop name="index" required type="integer"></prop>
332
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
333
+ </event>
135
334
  <event
136
335
  name="remove-item"
137
- type="object({ item: object({ id: string, value: string, label: string, group?: string, disabled?: boolean, description?: string, tag?: object({ label: string, tone?: neutral | accent | info | success | warning | danger, color?: string }) }), index: integer, trigger: keyboard | pointer | programmatic })"
138
- ></event>
139
- <event name="create-item" type="object({ query: string, trigger: keyboard | pointer | programmatic })"></event>
140
- <event name="selected-values-change" type="object({ selectedValues: list(string), trigger: keyboard | pointer | programmatic })"></event>
336
+ type="object"
337
+ >
338
+ <prop name="item" required type="object">
339
+ <prop name="id" required type="string"></prop>
340
+ <prop name="value" required type="string"></prop>
341
+ <prop name="label" required type="string"></prop>
342
+ <prop name="group" type="string"></prop>
343
+ <prop name="disabled" type="boolean"></prop>
344
+ <prop name="description" type="string"></prop>
345
+ <prop name="tag" type="object">
346
+ <prop name="label" required type="string"></prop>
347
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger"></prop>
348
+ <prop name="color" type="string"></prop>
349
+ </prop>
350
+ </prop>
351
+ <prop name="index" required type="integer"></prop>
352
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
353
+ </event>
354
+ <event name="create-item" type="object">
355
+ <prop name="query" required type="string"></prop>
356
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
357
+ </event>
358
+ <event name="selected-values-change" type="object">
359
+ <prop name="selectedValues" required type="array">
360
+ <prop type="string"></prop>
361
+ </prop>
362
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
363
+ </event>
141
364
  <method name="validate" export="validate" returns="promise(unknown)"></method>
142
365
  <method name="focusInput" export="focusInput" returns="promise(undefined)"></method>
143
366
  </defs>