@threadlabs/looma 0.19.0 → 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 (508) 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 +10 -6
  62. package/components/ui-tree-item/ui-tree-item.js +20 -3
  63. package/dist/index.js +1 -1
  64. package/editor/table-overlay.d.ts +1 -1
  65. package/package.json +3 -3
  66. package/styles/ui-action-bar.css +1 -1
  67. package/styles/ui-affordance-scope.css +1 -1
  68. package/styles/ui-avatar-group.css +1 -1
  69. package/styles/ui-avatar.css +1 -1
  70. package/styles/ui-badge.css +1 -1
  71. package/styles/ui-breadcrumb-item.css +1 -1
  72. package/styles/ui-breadcrumbs.css +1 -1
  73. package/styles/ui-button.css +1 -1
  74. package/styles/ui-callout.css +1 -1
  75. package/styles/ui-card.css +1 -1
  76. package/styles/ui-checkbox.css +1 -1
  77. package/styles/ui-cluster.css +1 -1
  78. package/styles/ui-combobox.css +1 -1
  79. package/styles/ui-container.css +1 -1
  80. package/styles/ui-context-menu.css +1 -1
  81. package/styles/ui-cover.css +1 -1
  82. package/styles/ui-description-item.css +1 -1
  83. package/styles/ui-description-list.css +1 -1
  84. package/styles/ui-dialog.css +1 -1
  85. package/styles/ui-disclosure.css +1 -1
  86. package/styles/ui-editable.css +1 -1
  87. package/styles/ui-editor-insert-table-grid.css +1 -1
  88. package/styles/ui-editor-mention-menu-item.css +1 -1
  89. package/styles/ui-editor-mention-menu.css +1 -1
  90. package/styles/ui-editor-slash-menu-group.css +1 -1
  91. package/styles/ui-editor-slash-menu-item.css +1 -1
  92. package/styles/ui-editor-slash-menu.css +1 -1
  93. package/styles/ui-editor-table-context-menu.css +1 -1
  94. package/styles/ui-editor-table-overlay.css +1 -1
  95. package/styles/ui-editor-table-toolbar.css +1 -1
  96. package/styles/ui-editor-toolbar.css +1 -1
  97. package/styles/ui-floating-action-button.css +1 -1
  98. package/styles/ui-form-field.css +1 -1
  99. package/styles/ui-grid.css +1 -1
  100. package/styles/ui-icon-button.css +1 -1
  101. package/styles/ui-icon.css +1 -1
  102. package/styles/ui-input-group.css +1 -1
  103. package/styles/ui-input.css +1 -1
  104. package/styles/ui-list-item.css +1 -1
  105. package/styles/ui-list.css +1 -1
  106. package/styles/ui-listbox.css +1 -1
  107. package/styles/ui-menu-group.css +1 -1
  108. package/styles/ui-menu-item.css +1 -1
  109. package/styles/ui-menu.css +1 -1
  110. package/styles/ui-meter.css +1 -1
  111. package/styles/ui-nav-item.css +1 -1
  112. package/styles/ui-page-header.css +1 -1
  113. package/styles/ui-popover.css +1 -1
  114. package/styles/ui-radio-group.css +1 -1
  115. package/styles/ui-radio.css +1 -1
  116. package/styles/ui-reel.css +1 -1
  117. package/styles/ui-scroll-area.css +1 -1
  118. package/styles/ui-search-result-row.css +1 -1
  119. package/styles/ui-search-shell.css +1 -1
  120. package/styles/ui-section.css +1 -1
  121. package/styles/ui-select.css +1 -1
  122. package/styles/ui-separator.css +1 -1
  123. package/styles/ui-sidebar.css +1 -1
  124. package/styles/ui-spinner.css +1 -1
  125. package/styles/ui-stack.css +1 -1
  126. package/styles/ui-status-message.css +1 -1
  127. package/styles/ui-switch.css +1 -1
  128. package/styles/ui-switcher.css +1 -1
  129. package/styles/ui-table.css +1 -1
  130. package/styles/ui-tabs.css +1 -1
  131. package/styles/ui-text.css +1 -1
  132. package/styles/ui-textarea.css +1 -1
  133. package/styles/ui-toast-region.css +1 -1
  134. package/styles/ui-toast.css +1 -1
  135. package/styles/ui-tooltip.css +1 -1
  136. package/styles/ui-top-bar.css +1 -1
  137. package/styles/ui-tree-item.css +6 -6
  138. package/styles/ui-tree.css +1 -1
  139. package/vanilla/UiActionBar.d.ts +1 -1
  140. package/vanilla/UiActionBar.js +5 -1
  141. package/vanilla/UiAffordanceScope.d.ts +1 -1
  142. package/vanilla/UiAffordanceScope.js +3 -2
  143. package/vanilla/UiAvatar.d.ts +1 -1
  144. package/vanilla/UiAvatar.js +4 -3
  145. package/vanilla/UiAvatarGroup.d.ts +1 -1
  146. package/vanilla/UiAvatarGroup.js +3 -2
  147. package/vanilla/UiBadge.d.ts +1 -1
  148. package/vanilla/UiBadge.js +2 -1
  149. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  150. package/vanilla/UiBreadcrumbItem.js +2 -1
  151. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  152. package/vanilla/UiBreadcrumbs.js +4 -7
  153. package/vanilla/UiButton.d.ts +1 -1
  154. package/vanilla/UiButton.js +6 -4
  155. package/vanilla/UiCallout.d.ts +1 -1
  156. package/vanilla/UiCallout.js +3 -2
  157. package/vanilla/UiCard.d.ts +1 -1
  158. package/vanilla/UiCard.js +6 -2
  159. package/vanilla/UiCheckbox.d.ts +1 -1
  160. package/vanilla/UiCheckbox.js +4 -2
  161. package/vanilla/UiCluster.d.ts +1 -1
  162. package/vanilla/UiCluster.js +2 -1
  163. package/vanilla/UiCombobox.d.ts +3 -2
  164. package/vanilla/UiCombobox.js +8 -2
  165. package/vanilla/UiContainer.d.ts +1 -1
  166. package/vanilla/UiContainer.js +2 -1
  167. package/vanilla/UiContextMenu.d.ts +1 -1
  168. package/vanilla/UiContextMenu.js +3 -2
  169. package/vanilla/UiCover.d.ts +1 -1
  170. package/vanilla/UiCover.js +4 -5
  171. package/vanilla/UiDescriptionItem.d.ts +1 -1
  172. package/vanilla/UiDescriptionItem.js +4 -7
  173. package/vanilla/UiDescriptionList.d.ts +1 -1
  174. package/vanilla/UiDescriptionList.js +2 -1
  175. package/vanilla/UiDialog.d.ts +1 -1
  176. package/vanilla/UiDialog.js +4 -2
  177. package/vanilla/UiDisclosure.d.ts +1 -1
  178. package/vanilla/UiDisclosure.js +4 -2
  179. package/vanilla/UiEditable.d.ts +1 -1
  180. package/vanilla/UiEditable.js +2 -2
  181. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  182. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  183. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  184. package/vanilla/UiEditorMentionMenu.js +5 -2
  185. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  186. package/vanilla/UiEditorMentionMenuItem.js +3 -1
  187. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  188. package/vanilla/UiEditorSlashMenu.js +6 -2
  189. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  190. package/vanilla/UiEditorSlashMenuGroup.js +4 -7
  191. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  192. package/vanilla/UiEditorSlashMenuItem.js +2 -1
  193. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  194. package/vanilla/UiEditorTableContextMenu.js +2 -2
  195. package/vanilla/UiEditorTableOverlay.d.ts +12 -2
  196. package/vanilla/UiEditorTableOverlay.js +2 -2
  197. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  198. package/vanilla/UiEditorTableToolbar.js +2 -2
  199. package/vanilla/UiEditorToolbar.d.ts +1 -1
  200. package/vanilla/UiEditorToolbar.js +2 -1
  201. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  202. package/vanilla/UiFloatingActionButton.js +2 -1
  203. package/vanilla/UiFormField.d.ts +1 -1
  204. package/vanilla/UiFormField.js +6 -1
  205. package/vanilla/UiGrid.d.ts +1 -1
  206. package/vanilla/UiGrid.js +4 -3
  207. package/vanilla/UiIcon.d.ts +1 -1
  208. package/vanilla/UiIcon.js +1 -1
  209. package/vanilla/UiIconButton.d.ts +1 -1
  210. package/vanilla/UiIconButton.js +4 -3
  211. package/vanilla/UiInput.d.ts +5 -4
  212. package/vanilla/UiInput.js +16 -13
  213. package/vanilla/UiInputGroup.d.ts +1 -1
  214. package/vanilla/UiInputGroup.js +5 -1
  215. package/vanilla/UiList.d.ts +1 -1
  216. package/vanilla/UiList.js +4 -2
  217. package/vanilla/UiListItem.d.ts +1 -1
  218. package/vanilla/UiListItem.js +5 -1
  219. package/vanilla/UiListbox.d.ts +1 -1
  220. package/vanilla/UiListbox.js +3 -2
  221. package/vanilla/UiMenu.d.ts +1 -1
  222. package/vanilla/UiMenu.js +3 -2
  223. package/vanilla/UiMenuGroup.d.ts +1 -1
  224. package/vanilla/UiMenuGroup.js +2 -1
  225. package/vanilla/UiMenuItem.d.ts +1 -1
  226. package/vanilla/UiMenuItem.js +6 -2
  227. package/vanilla/UiMeter.d.ts +1 -1
  228. package/vanilla/UiMeter.js +2 -2
  229. package/vanilla/UiNavItem.d.ts +2 -2
  230. package/vanilla/UiNavItem.js +11 -5
  231. package/vanilla/UiPageHeader.d.ts +1 -1
  232. package/vanilla/UiPageHeader.js +8 -5
  233. package/vanilla/UiPopover.d.ts +1 -1
  234. package/vanilla/UiPopover.js +3 -2
  235. package/vanilla/UiRadio.d.ts +1 -1
  236. package/vanilla/UiRadio.js +4 -2
  237. package/vanilla/UiRadioGroup.d.ts +1 -1
  238. package/vanilla/UiRadioGroup.js +3 -2
  239. package/vanilla/UiReel.d.ts +1 -1
  240. package/vanilla/UiReel.js +2 -1
  241. package/vanilla/UiScrollArea.d.ts +1 -1
  242. package/vanilla/UiScrollArea.js +3 -2
  243. package/vanilla/UiSearchResultRow.d.ts +1 -1
  244. package/vanilla/UiSearchResultRow.js +6 -1
  245. package/vanilla/UiSearchShell.d.ts +1 -1
  246. package/vanilla/UiSearchShell.js +6 -2
  247. package/vanilla/UiSection.d.ts +1 -1
  248. package/vanilla/UiSection.js +5 -2
  249. package/vanilla/UiSelect.d.ts +1 -1
  250. package/vanilla/UiSelect.js +3 -2
  251. package/vanilla/UiSeparator.d.ts +1 -1
  252. package/vanilla/UiSeparator.js +3 -7
  253. package/vanilla/UiSidebar.d.ts +1 -1
  254. package/vanilla/UiSidebar.js +3 -2
  255. package/vanilla/UiSpinner.d.ts +1 -1
  256. package/vanilla/UiSpinner.js +2 -2
  257. package/vanilla/UiStack.d.ts +1 -1
  258. package/vanilla/UiStack.js +2 -1
  259. package/vanilla/UiStatusMessage.d.ts +1 -1
  260. package/vanilla/UiStatusMessage.js +4 -2
  261. package/vanilla/UiSwitch.d.ts +1 -1
  262. package/vanilla/UiSwitch.js +4 -2
  263. package/vanilla/UiSwitcher.d.ts +1 -1
  264. package/vanilla/UiSwitcher.js +3 -2
  265. package/vanilla/UiTable.d.ts +1 -1
  266. package/vanilla/UiTable.js +3 -2
  267. package/vanilla/UiTabs.d.ts +1 -1
  268. package/vanilla/UiTabs.js +4 -2
  269. package/vanilla/UiText.d.ts +1 -1
  270. package/vanilla/UiText.js +13 -2
  271. package/vanilla/UiTextarea.d.ts +1 -1
  272. package/vanilla/UiTextarea.js +3 -3
  273. package/vanilla/UiToast.d.ts +1 -1
  274. package/vanilla/UiToast.js +4 -2
  275. package/vanilla/UiToastRegion.d.ts +1 -1
  276. package/vanilla/UiToastRegion.js +3 -2
  277. package/vanilla/UiTooltip.d.ts +1 -1
  278. package/vanilla/UiTooltip.js +3 -2
  279. package/vanilla/UiTopBar.d.ts +1 -1
  280. package/vanilla/UiTopBar.js +5 -1
  281. package/vanilla/UiTree.d.ts +1 -1
  282. package/vanilla/UiTree.js +3 -2
  283. package/vanilla/UiTreeItem.d.ts +1 -1
  284. package/vanilla/UiTreeItem.js +8 -4
  285. package/vue/UiActionBar.vue +33 -2
  286. package/vue/UiAffordanceScope.d.ts +23 -8
  287. package/vue/UiAffordanceScope.vue +90 -17
  288. package/vue/UiAvatar.d.ts +77 -19
  289. package/vue/UiAvatar.vue +151 -31
  290. package/vue/UiAvatarGroup.d.ts +50 -13
  291. package/vue/UiAvatarGroup.vue +121 -23
  292. package/vue/UiBadge.d.ts +32 -10
  293. package/vue/UiBadge.vue +104 -17
  294. package/vue/UiBreadcrumbItem.d.ts +14 -6
  295. package/vue/UiBreadcrumbItem.vue +82 -15
  296. package/vue/UiBreadcrumbs.d.ts +14 -6
  297. package/vue/UiBreadcrumbs.vue +78 -10
  298. package/vue/UiButton.d.ts +122 -27
  299. package/vue/UiButton.vue +288 -64
  300. package/vue/UiCallout.d.ts +14 -6
  301. package/vue/UiCallout.vue +84 -16
  302. package/vue/UiCard.d.ts +41 -12
  303. package/vue/UiCard.vue +149 -25
  304. package/vue/UiCheckbox.d.ts +85 -28
  305. package/vue/UiCheckbox.vue +173 -43
  306. package/vue/UiCluster.d.ts +41 -7
  307. package/vue/UiCluster.vue +122 -13
  308. package/vue/UiCombobox.d.ts +303 -110
  309. package/vue/UiCombobox.vue +723 -412
  310. package/vue/UiContainer.d.ts +23 -5
  311. package/vue/UiContainer.vue +89 -9
  312. package/vue/UiContextMenu.d.ts +38 -23
  313. package/vue/UiContextMenu.vue +113 -38
  314. package/vue/UiCover.d.ts +14 -6
  315. package/vue/UiCover.vue +76 -12
  316. package/vue/UiDescriptionItem.d.ts +14 -6
  317. package/vue/UiDescriptionItem.vue +78 -11
  318. package/vue/UiDescriptionList.d.ts +32 -9
  319. package/vue/UiDescriptionList.vue +106 -16
  320. package/vue/UiDialog.d.ts +89 -30
  321. package/vue/UiDialog.vue +168 -38
  322. package/vue/UiDisclosure.d.ts +70 -27
  323. package/vue/UiDisclosure.vue +149 -36
  324. package/vue/UiEditable.d.ts +119 -41
  325. package/vue/UiEditable.vue +220 -62
  326. package/vue/UiEditorInsertTableGrid.d.ts +46 -17
  327. package/vue/UiEditorInsertTableGrid.vue +215 -40
  328. package/vue/UiEditorMentionMenu.d.ts +128 -41
  329. package/vue/UiEditorMentionMenu.vue +211 -37
  330. package/vue/UiEditorMentionMenuItem.d.ts +32 -10
  331. package/vue/UiEditorMentionMenuItem.vue +98 -17
  332. package/vue/UiEditorSlashMenu.d.ts +110 -37
  333. package/vue/UiEditorSlashMenu.vue +189 -31
  334. package/vue/UiEditorSlashMenuGroup.d.ts +14 -6
  335. package/vue/UiEditorSlashMenuGroup.vue +80 -12
  336. package/vue/UiEditorSlashMenuItem.d.ts +50 -14
  337. package/vue/UiEditorSlashMenuItem.vue +120 -23
  338. package/vue/UiEditorTableContextMenu.d.ts +64 -20
  339. package/vue/UiEditorTableContextMenu.vue +326 -91
  340. package/vue/UiEditorTableOverlay.d.ts +170 -44
  341. package/vue/UiEditorTableOverlay.vue +420 -149
  342. package/vue/UiEditorTableToolbar.d.ts +64 -20
  343. package/vue/UiEditorTableToolbar.vue +344 -107
  344. package/vue/UiEditorToolbar.d.ts +14 -6
  345. package/vue/UiEditorToolbar.vue +79 -15
  346. package/vue/UiFloatingActionButton.d.ts +32 -10
  347. package/vue/UiFloatingActionButton.vue +96 -18
  348. package/vue/UiFormField.d.ts +32 -10
  349. package/vue/UiFormField.vue +99 -19
  350. package/vue/UiGrid.d.ts +32 -6
  351. package/vue/UiGrid.vue +95 -11
  352. package/vue/UiIcon.d.ts +14 -6
  353. package/vue/UiIcon.vue +99 -14
  354. package/vue/UiIconButton.d.ts +77 -19
  355. package/vue/UiIconButton.vue +176 -39
  356. package/vue/UiInput.d.ts +50 -19
  357. package/vue/UiInput.vue +326 -33
  358. package/vue/UiInputGroup.d.ts +14 -6
  359. package/vue/UiInputGroup.vue +79 -15
  360. package/vue/UiList.d.ts +41 -12
  361. package/vue/UiList.vue +125 -22
  362. package/vue/UiListItem.d.ts +23 -8
  363. package/vue/UiListItem.vue +88 -16
  364. package/vue/UiListbox.d.ts +86 -27
  365. package/vue/UiListbox.vue +272 -64
  366. package/vue/UiMenu.d.ts +69 -33
  367. package/vue/UiMenu.vue +142 -38
  368. package/vue/UiMenuGroup.d.ts +14 -6
  369. package/vue/UiMenuGroup.vue +80 -11
  370. package/vue/UiMenuItem.d.ts +61 -25
  371. package/vue/UiMenuItem.vue +174 -45
  372. package/vue/UiMeter.d.ts +68 -18
  373. package/vue/UiMeter.vue +215 -41
  374. package/vue/UiNavItem.d.ts +50 -11
  375. package/vue/UiNavItem.vue +163 -29
  376. package/vue/UiPageHeader.d.ts +14 -6
  377. package/vue/UiPageHeader.vue +75 -12
  378. package/vue/UiPopover.d.ts +43 -21
  379. package/vue/UiPopover.vue +147 -27
  380. package/vue/UiRadio.d.ts +67 -24
  381. package/vue/UiRadio.vue +147 -36
  382. package/vue/UiRadioGroup.d.ts +79 -29
  383. package/vue/UiRadioGroup.vue +162 -41
  384. package/vue/UiReel.d.ts +32 -6
  385. package/vue/UiReel.vue +97 -11
  386. package/vue/UiScrollArea.d.ts +14 -6
  387. package/vue/UiScrollArea.vue +83 -14
  388. package/vue/UiSearchResultRow.d.ts +23 -8
  389. package/vue/UiSearchResultRow.vue +86 -16
  390. package/vue/UiSearchShell.d.ts +48 -19
  391. package/vue/UiSearchShell.vue +120 -26
  392. package/vue/UiSection.d.ts +32 -10
  393. package/vue/UiSection.vue +103 -17
  394. package/vue/UiSelect.d.ts +59 -17
  395. package/vue/UiSelect.vue +140 -29
  396. package/vue/UiSeparator.d.ts +14 -6
  397. package/vue/UiSeparator.vue +80 -9
  398. package/vue/UiSidebar.d.ts +95 -31
  399. package/vue/UiSidebar.vue +172 -39
  400. package/vue/UiSpinner.d.ts +23 -8
  401. package/vue/UiSpinner.vue +115 -24
  402. package/vue/UiStack.d.ts +32 -6
  403. package/vue/UiStack.vue +107 -11
  404. package/vue/UiStatusMessage.d.ts +32 -10
  405. package/vue/UiStatusMessage.vue +109 -19
  406. package/vue/UiSwitch.d.ts +67 -24
  407. package/vue/UiSwitch.vue +147 -36
  408. package/vue/UiSwitcher.d.ts +41 -7
  409. package/vue/UiSwitcher.vue +118 -15
  410. package/vue/UiTable.d.ts +23 -8
  411. package/vue/UiTable.vue +91 -17
  412. package/vue/UiTabs.d.ts +66 -23
  413. package/vue/UiTabs.vue +230 -44
  414. package/vue/UiText.d.ts +68 -18
  415. package/vue/UiText.vue +308 -48
  416. package/vue/UiTextarea.d.ts +84 -21
  417. package/vue/UiTextarea.vue +172 -38
  418. package/vue/UiToast.d.ts +28 -13
  419. package/vue/UiToast.vue +103 -24
  420. package/vue/UiToastRegion.d.ts +29 -14
  421. package/vue/UiToastRegion.vue +202 -47
  422. package/vue/UiTooltip.d.ts +81 -31
  423. package/vue/UiTooltip.vue +192 -37
  424. package/vue/UiTopBar.vue +33 -2
  425. package/vue/UiTree.d.ts +72 -29
  426. package/vue/UiTree.vue +170 -49
  427. package/vue/UiTreeItem.d.ts +136 -35
  428. package/vue/UiTreeItem.vue +232 -66
  429. package/vue/chunks/UiActionBar.js +16 -3
  430. package/vue/chunks/UiAffordanceScope.js +66 -11
  431. package/vue/chunks/UiAvatar.js +121 -20
  432. package/vue/chunks/UiAvatarGroup.js +94 -15
  433. package/vue/chunks/UiBadge.js +82 -10
  434. package/vue/chunks/UiBreadcrumbItem.js +43 -9
  435. package/vue/chunks/UiBreadcrumbs.js +41 -5
  436. package/vue/chunks/UiButton.js +237 -51
  437. package/vue/chunks/UiCallout.js +53 -11
  438. package/vue/chunks/UiCard.js +145 -18
  439. package/vue/chunks/UiCheckbox.js +130 -30
  440. package/vue/chunks/UiCluster.js +99 -12
  441. package/vue/chunks/UiCombobox.js +545 -162
  442. package/vue/chunks/UiContainer.js +65 -7
  443. package/vue/chunks/UiContextMenu.js +56 -11
  444. package/vue/chunks/UiCover.js +41 -6
  445. package/vue/chunks/UiDescriptionItem.js +39 -4
  446. package/vue/chunks/UiDescriptionList.js +80 -10
  447. package/vue/chunks/UiDialog.js +125 -18
  448. package/vue/chunks/UiDisclosure.js +102 -17
  449. package/vue/chunks/UiEditable.js +154 -29
  450. package/vue/chunks/UiEditorInsertTableGrid.js +154 -31
  451. package/vue/chunks/UiEditorMentionMenu.js +221 -18
  452. package/vue/chunks/UiEditorMentionMenuItem.js +64 -7
  453. package/vue/chunks/UiEditorSlashMenu.js +201 -14
  454. package/vue/chunks/UiEditorSlashMenuGroup.js +43 -9
  455. package/vue/chunks/UiEditorSlashMenuItem.js +80 -14
  456. package/vue/chunks/UiEditorTableContextMenu.js +220 -49
  457. package/vue/chunks/UiEditorTableOverlay.js +390 -85
  458. package/vue/chunks/UiEditorTableToolbar.js +248 -71
  459. package/vue/chunks/UiEditorToolbar.js +44 -10
  460. package/vue/chunks/UiFloatingActionButton.js +57 -9
  461. package/vue/chunks/UiFormField.js +63 -12
  462. package/vue/chunks/UiGrid.js +80 -9
  463. package/vue/chunks/UiIcon.js +73 -16
  464. package/vue/chunks/UiIconButton.js +126 -28
  465. package/vue/chunks/UiInput.js +328 -22
  466. package/vue/chunks/UiInputGroup.js +44 -10
  467. package/vue/chunks/UiList.js +104 -15
  468. package/vue/chunks/UiListItem.js +57 -8
  469. package/vue/chunks/UiListbox.js +208 -49
  470. package/vue/chunks/UiMenu.js +88 -15
  471. package/vue/chunks/UiMenuGroup.js +41 -5
  472. package/vue/chunks/UiMenuItem.js +111 -32
  473. package/vue/chunks/UiMeter.js +166 -36
  474. package/vue/chunks/UiNavItem.js +133 -37
  475. package/vue/chunks/UiPageHeader.js +41 -6
  476. package/vue/chunks/UiPopover.js +81 -11
  477. package/vue/chunks/UiRadio.js +115 -24
  478. package/vue/chunks/UiRadioGroup.js +108 -19
  479. package/vue/chunks/UiReel.js +81 -10
  480. package/vue/chunks/UiScrollArea.js +47 -10
  481. package/vue/chunks/UiSearchResultRow.js +47 -8
  482. package/vue/chunks/UiSearchShell.js +84 -24
  483. package/vue/chunks/UiSection.js +77 -10
  484. package/vue/chunks/UiSelect.js +108 -20
  485. package/vue/chunks/UiSeparator.js +41 -5
  486. package/vue/chunks/UiSidebar.js +136 -20
  487. package/vue/chunks/UiSpinner.js +64 -19
  488. package/vue/chunks/UiStack.js +87 -10
  489. package/vue/chunks/UiStatusMessage.js +82 -12
  490. package/vue/chunks/UiSwitch.js +115 -24
  491. package/vue/chunks/UiSwitcher.js +103 -15
  492. package/vue/chunks/UiTable.js +63 -11
  493. package/vue/chunks/UiTabs.js +170 -30
  494. package/vue/chunks/UiText.js +365 -38
  495. package/vue/chunks/UiTextarea.js +132 -26
  496. package/vue/chunks/UiToast.js +70 -12
  497. package/vue/chunks/UiToastRegion.js +154 -33
  498. package/vue/chunks/UiTooltip.js +124 -16
  499. package/vue/chunks/UiTopBar.js +16 -3
  500. package/vue/chunks/UiTree.js +107 -15
  501. package/vue/chunks/UiTreeItem.js +167 -43
  502. package/vue/chunks/control.js +171 -0
  503. package/vue/chunks/host.js +170 -27
  504. package/vue/chunks/props.js +477 -0
  505. package/vue/components.css +1197 -1197
  506. package/vue/editor/index.js +58 -15
  507. package/vue/editor/primitives.d.ts +52 -2
  508. package/vue/host.ts +370 -39
@@ -8,10 +8,10 @@
8
8
  cleared.</prop>
9
9
  <prop name="pending" type="boolean" default="false">Deprecated alias for loading.</prop>
10
10
  <prop name="label" type="string">Accessible name for the icon.</prop>
11
- <prop name="size" type="sm | md | lg" default="md"
11
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
12
12
  >Button and icon size together: sm is 1.75rem with a small icon, md is 2rem, and lg is 2.5rem with a large icon. On touch, every size gets an invisible hit
13
13
  area of at least 44px.</prop>
14
- <prop name="variant" type="ghost | outline | solid" default="ghost"
14
+ <prop name="variant" type="keyword" values="ghost, outline, solid" default="ghost"
15
15
  >Emphasis. ghost shows only the icon until it is hovered, for toolbars and dense rows; outline adds a border on the default surface; solid fills with the
16
16
  accent colour, for the one primary action in a group.</prop>
17
17
  <prop name="anticipatory" type="boolean" default="false"
@@ -1,20 +1,42 @@
1
1
  <template component="ui-input" controller="./ui-input.js">
2
2
  <defs>
3
- <prop name="value" type="string | number"
4
- >The input's value: text, or a number for a type="number" field. Setting or changing it replaces the live text; between changes the user's typing stands, so
5
- follow input events to keep it in step. A number field keeps text that means the same number, such as 1.0 for 1. It is also the input's default, so a form
6
- reset returns to it.</prop>
3
+ <prop
4
+ name="type"
5
+ type="keyword"
6
+ values="text, search, tel, url, email, password, date, month, week, time, datetime-local, number, range, color"
7
+ default="text"
8
+ >The native input mode. Number and range modes accept numeric values; the other supported modes accept strings.</prop>
9
+ <type name="input-value" from="type">
10
+ <option value="text" type="string"></option>
11
+ <option value="search" type="string"></option>
12
+ <option value="tel" type="string"></option>
13
+ <option value="url" type="string"></option>
14
+ <option value="email" type="string"></option>
15
+ <option value="password" type="string"></option>
16
+ <option value="date" type="string"></option>
17
+ <option value="month" type="string"></option>
18
+ <option value="week" type="string"></option>
19
+ <option value="time" type="string"></option>
20
+ <option value="datetime-local" type="string"></option>
21
+ <option value="number" type="number"></option>
22
+ <option value="range" type="number"></option>
23
+ <option value="color" type="string"></option>
24
+ </type>
25
+ <prop name="value" type="input-value"
26
+ >The input's value: text, or a number for type="number" and type="range" fields. Setting or changing it replaces the live text; between changes the user's
27
+ typing stands, so follow input events to keep it in step. A number field keeps text that means the same number, such as 1.0 for 1. It is also the input's
28
+ default, so a form reset returns to it.</prop>
7
29
  <prop name="disabled" type="boolean" default="false">Prevents editing and form submission.</prop>
8
30
  <prop name="invalid" type="boolean" default="false">Exposes invalid state to assistive technology and styling.</prop>
9
31
  <prop name="readonly" type="boolean" default="false">Allows selection without allowing edits.</prop>
10
32
  <prop name="required" type="boolean" default="false">Marks the control as required for form validation.</prop>
11
- <prop name="size" type="sm | md | lg" default="md"
33
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
12
34
  >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 default)
13
35
  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. Under a
14
36
  coarse pointer, sm grows to the 44px touch minimum and keeps body-size text. Change it after render through this option; the element's size property is
15
37
  the native one.</prop>
16
38
  </defs>
17
- <input :value="value" :disabled="disabled" :readonly="readonly" :required="required" :aria-invalid="invalid">
39
+ <input :type="type" :value="value" :disabled="disabled" :readonly="readonly" :required="required" :aria-invalid="invalid">
18
40
  <style>
19
41
  /* This component's hooks style the element they are set on, and never a nested one. An Input
20
42
  Group sets --_ui-default-input-* for the input inside it, below the input's own hooks. */
@@ -1,11 +1,12 @@
1
1
  <template component="ui-list">
2
2
  <defs>
3
- <prop name="as" type="ul | ol" default="ul">The native list element. Use ol when item order matters; its native numbers are shown.</prop>
4
- <prop name="markers" type="none | disc" default="none">Show disc bullets for a ul of native li elements. An ol always shows native numbers.</prop>
5
- <prop name="layout" type="rows | grid" default="rows"
3
+ <prop name="as" type="keyword" values="ul, ol" default="ul">The native list element. Use ol when item order matters; its native numbers are shown.</prop>
4
+ <prop name="markers" type="keyword" values="none, disc" default="none"
5
+ >Show disc bullets for a ul of native li elements. An ol always shows native numbers.</prop>
6
+ <prop name="layout" type="keyword" values="rows, grid" default="rows"
6
7
  >How the items are laid out. Rows stack the items one per line, for a list read top to bottom. Grid sets them in as many columns as fit, each at least
7
8
  --ui-list-min-item-width (14rem) wide, for card items such as pinned or featured entries.</prop>
8
- <prop name="density" type="comfortable | compact" default="comfortable"
9
+ <prop name="density" type="keyword" values="comfortable, compact" default="comfortable"
9
10
  >How much room each item takes. comfortable is a full row, easy to point at, for lists of things to open; compact sets items close together with no row
10
11
  padding, for a short list of facts inside other content, such as the features a plan includes.</prop>
11
12
  </defs>
@@ -1,6 +1,6 @@
1
1
  <template component="ui-list-item">
2
2
  <defs>
3
- <prop name="variant" type="row | card" default="row"
3
+ <prop name="variant" type="keyword" values="row, card" default="row"
4
4
  >How the item is drawn. A row is flat and takes a hover surface when it is a link, for items read down a list. A card sits on a raised, bordered surface,
5
5
  for items set in a grid (a List with layout="grid"). Both have the same parts: leading, title, description, and trailing.</prop>
6
6
  <prop name="current" type="boolean" default="false"
@@ -15,7 +15,13 @@
15
15
  <state name="active" type="integer" :value="-1"></state>
16
16
  <state name="uid" type="string" :value="''"></state>
17
17
  <state name="validationError" type="boolean" :value="false"></state>
18
- <event name="change" type="object({ value: string | null, values: list(string), trigger: keyboard | pointer })"></event>
18
+ <event name="change" type="object">
19
+ <prop name="value" required nullable type="string"></prop>
20
+ <prop name="values" required type="array">
21
+ <prop type="string"></prop>
22
+ </prop>
23
+ <prop name="trigger" required type="keyword" values="keyboard, pointer"></prop>
24
+ </event>
19
25
  </defs>
20
26
  <div
21
27
  role="listbox"
@@ -1,17 +1,30 @@
1
1
  <template component="ui-menu" controller="./ui-menu.js">
2
2
  <defs>
3
- <prop name="density" type="comfortable | compact" default="comfortable">Compact trades padding and type size for rows that fit more on screen.</prop>
3
+ <prop name="density" type="keyword" values="comfortable, compact" default="comfortable"
4
+ >Compact trades padding and type size for rows that fit more on screen.</prop>
4
5
  <prop name="open" type="boolean" default="false">Whether the menu is open initially or when set externally.</prop>
5
6
  <prop name="inline" type="boolean" default="false">Displays the menu in the page flow without an overlay or trigger, for an embedded list of actions.</prop>
6
7
  <prop name="for" type="string" default="">ID of the control that toggles and anchors the menu.</prop>
7
8
  <prop name="placement" type="string" default="bottom-start">Positions an associated menu relative to its trigger.</prop>
8
9
  <state name="internalOpen" :value="false"></state>
9
- <event name="select" type="object({ value: string, checked?: boolean, trigger: keyboard | pointer | programmatic })"></event>
10
- <event name="open" type="object({ open: boolean, reason: action | programmatic, trigger: keyboard | pointer | programmatic })"></event>
10
+ <event name="select" type="object">
11
+ <prop name="value" required type="string"></prop>
12
+ <prop name="checked" type="boolean"></prop>
13
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
14
+ </event>
15
+ <event name="open" type="object">
16
+ <prop name="open" required type="boolean"></prop>
17
+ <prop name="reason" required type="keyword" values="action, programmatic"></prop>
18
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
19
+ </event>
11
20
  <event
12
21
  name="close"
13
- type="object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })"
14
- ></event>
22
+ type="object"
23
+ >
24
+ <prop name="open" required type="boolean"></prop>
25
+ <prop name="reason" required type="keyword" values="action, programmatic, light-dismiss, escape"></prop>
26
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
27
+ </event>
15
28
  </defs>
16
29
  <div role="menu" aria-orientation="vertical"><div class="surface"><slot></slot></div></div>
17
30
  <style>
@@ -7,11 +7,16 @@
7
7
  >The value the enclosing menu reports in its select event when this item is chosen. Give each item a distinct value so one handler can tell them
8
8
  apart.</prop>
9
9
  <prop name="href" type="string" default="">A destination makes an action item a real link, with native navigation and link context actions.</prop>
10
- <prop name="type" type="action | checkbox | radio" default="action"
10
+ <prop name="type" type="keyword" values="action, checkbox, radio" default="action"
11
11
  >An action closes its menu; a checkbox toggles, and a radio chooses one item within its nearest Menu Group. Checkable items keep the menu open.</prop>
12
12
  <prop name="checked" type="boolean" default="false">Initial or externally controlled checked state of a checkbox or radio item.</prop>
13
13
  <state name="internalChecked" :value="false"></state>
14
- <event name="change" type="object({ checked: boolean, value: string, type: checkbox | radio, trigger: keyboard | pointer | programmatic })"></event>
14
+ <event name="change" type="object">
15
+ <prop name="checked" required type="boolean"></prop>
16
+ <prop name="value" required type="string"></prop>
17
+ <prop name="type" required type="keyword" values="checkbox, radio"></prop>
18
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
19
+ </event>
15
20
  </defs>
16
21
  <template $match>
17
22
  <a
@@ -5,11 +5,11 @@
5
5
  <prop name="max" type="number" default="1"
6
6
  >The value of a full bar, as on a native meter: 1 for a fraction, or the whole amount (a total, a count of items) with value as the part of it. Must be
7
7
  above 0; otherwise the bar is empty.</prop>
8
- <prop name="tone" type="neutral | accent | info | success | warning | danger" default="neutral"
8
+ <prop name="tone" type="keyword" values="neutral, accent, info, success, warning, danger" default="neutral"
9
9
  >Which colour the filled part speaks in, as on Badge: neutral is a quiet grey, accent draws the eye, and info, success, warning, and danger mark a state
10
10
  (such as nothing yet, partial, complete, or needs attention). Colour alone says nothing to assistive technology or in forced colours, so say the state in
11
11
  valueText or in text beside the meter too.</prop>
12
- <prop name="size" type="sm | md" default="md"
12
+ <prop name="size" type="keyword" values="sm, md" default="md"
13
13
  >Thickness. sm is a thin bar that sits in a line of text, such as a table cell beside an amount; md stands on its own.</prop>
14
14
  <prop name="segments" type="number" default="0"
15
15
  >How many equal segments to draw the bar as, from 2 to 12, for a count of steps: set max to the same number and value to the steps done, so whole segments
@@ -1,15 +1,16 @@
1
1
  <template component="ui-nav-item">
2
2
  <defs>
3
- <prop name="current" type="boolean | page | step | location" default="false"
3
+ <prop name="current" type="keyword" values="true, false, page, step, location" default="false"
4
4
  >Marks the item as where you are: it takes the selected surface, a stronger label, and a bar on its start edge, and states aria-current, which assistive
5
- technology announces. true means the current page (aria-current="page"); step marks the current step of a process, and location the current place in a
6
- set, such as a section of a record. Set it on one item at a time.</prop>
5
+ technology announces. "true" means the current page (aria-current="page"); "step" marks the current step of a process, and "location" the current place in
6
+ a set, such as a section of a record. Set it on one item at a time.</prop>
7
7
  <prop name="href" type="string"
8
8
  >The link's destination. Pair it with as="a" so the item renders as a real link: a router, a modified click, and "open in new tab" all work. Without it the
9
9
  item is a button, for switching views inside the app.</prop>
10
10
  <prop name="target" type="string">Where a link opens, as on a native link. Only meaningful with as="a".</prop>
11
11
  <prop name="rel" type="string">The link's relationship to its destination, as on a native link. Only meaningful with as="a".</prop>
12
- <prop name="as" type="button | a" default="button">The native element the item renders: a button, or a link (a) that navigates to href.</prop>
12
+ <prop name="as" type="keyword" values="button, a" default="button"
13
+ >The native element the item renders: a button, or a link (a) that navigates to href.</prop>
13
14
  <!-- A button or a link, as Button does. A button never submits a form; a link carries no type. The
14
15
  language has no conditional expression, so a table keyed by a value's text picks each attribute,
15
16
  and null leaves it off. -->
@@ -1,6 +1,6 @@
1
1
  <template component="ui-page-header">
2
2
  <defs>
3
- <prop name="align" type="start | center" default="start"
3
+ <prop name="align" type="keyword" values="start, center" default="start"
4
4
  >Where the header sits. start runs along the page's start edge with actions at the end; center stacks everything centred, for a standalone card such as
5
5
  sign-in.</prop>
6
6
  </defs>
@@ -4,18 +4,27 @@
4
4
  <prop name="for" type="string" default="">ID of the control that toggles and anchors the popover.</prop>
5
5
  <prop
6
6
  name="placement"
7
- type="top | top-start | top-end | bottom | bottom-start | bottom-end | left | left-start | left-end | right | right-start | right-end"
7
+ type="keyword"
8
+ values="top, top-start, top-end, bottom, bottom-start, bottom-end, left, left-start, left-end, right, right-start, right-end"
8
9
  default="bottom-start"
9
10
  >Positions the surface around its trigger. Start and end on top or bottom follow the writing direction.</prop>
10
11
  <state name="internalOpen" :value="false"></state>
11
12
  <event
12
13
  name="open"
13
- type="object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })"
14
- ></event>
14
+ type="object"
15
+ >
16
+ <prop name="open" required type="boolean"></prop>
17
+ <prop name="reason" required type="keyword" values="action, programmatic, light-dismiss, escape"></prop>
18
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
19
+ </event>
15
20
  <event
16
21
  name="close"
17
- type="object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })"
18
- ></event>
22
+ type="object"
23
+ >
24
+ <prop name="open" required type="boolean"></prop>
25
+ <prop name="reason" required type="keyword" values="action, programmatic, light-dismiss, escape"></prop>
26
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
27
+ </event>
19
28
  </defs>
20
29
  <span><div class="surface"><slot></slot></div></span>
21
30
  <style>
@@ -12,12 +12,16 @@
12
12
  <prop name="value" type="string" default="on"
13
13
  >The value this radio stands for: submitted with a form, reported in its change event, and matched against a ui-radio-group's value to decide which radio is
14
14
  checked.</prop>
15
- <prop name="size" type="sm | md | lg" default="md"
15
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
16
16
  >Aligns the radio 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 in
17
17
  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 baseline.
18
18
  Under a coarse pointer an sm row grows to the 44px touch minimum, as they do. md is the standard layout.</prop>
19
19
  <state name="internalChecked" :value="false"></state>
20
- <event name="change" type="object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })"></event>
20
+ <event name="change" type="object">
21
+ <prop name="checked" required type="boolean"></prop>
22
+ <prop name="value" required type="string"></prop>
23
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
24
+ </event>
21
25
  </defs>
22
26
  <label>
23
27
  <input type="radio" $ref="input" .checked="internalChecked" :disabled="disabled" :required="required" :value="value" :name="name">
@@ -8,7 +8,7 @@
8
8
  the radios together, so set it when the choice submits with a form.</prop>
9
9
  <prop name="label" type="string" default="Options"
10
10
  >The group's legend, shown above the radios and announced as the group's name. Phrase it as the question the radios answer.</prop>
11
- <prop name="orientation" type="horizontal | vertical" default="horizontal"
11
+ <prop name="orientation" type="keyword" values="horizontal, vertical" default="horizontal"
12
12
  >horizontal lays the radios out in a row; vertical stacks them in a column. The arrow keys move between radios either way.</prop>
13
13
  <prop name="disabled" type="boolean" default="false"
14
14
  >Disables every radio in the group through the native fieldset, so no choice can be made and the group submits nothing with its form. A radio disabled on
@@ -19,8 +19,16 @@
19
19
  <prop name="invalid" type="boolean" default="false"
20
20
  >Exposes an externally validated error on the group and styles its legend with the field danger colour.</prop>
21
21
  <state name="internalValue" :value="''"></state>
22
- <event name="select" type="object({ value: string, previousValue: string, trigger: keyboard | pointer | programmatic })"></event>
23
- <event name="change" type="object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })"></event>
22
+ <event name="select" type="object">
23
+ <prop name="value" required type="string"></prop>
24
+ <prop name="previousValue" required type="string"></prop>
25
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
26
+ </event>
27
+ <event name="change" type="object">
28
+ <prop name="checked" required type="boolean"></prop>
29
+ <prop name="value" required type="string"></prop>
30
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
31
+ </event>
24
32
  </defs>
25
33
  <fieldset role="radiogroup" :aria-required="required" :aria-invalid="invalid" :disabled="disabled">
26
34
  <legend><template $value="label"></template></legend>
@@ -1,12 +1,12 @@
1
1
  <template component="ui-reel">
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, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-reel-gap custom property,
5
5
  set on the reel itself, overrides it; set on an ancestor, it does nothing.</prop>
6
- <prop name="itemWidth" type="sm | md | lg"
6
+ <prop name="itemWidth" type="keyword" values="sm, md, lg"
7
7
  >A fixed width for every item: sm is 12rem, md is 16rem, and lg is 20rem. Unset, each item keeps its content's width. Items never shrink to fit, so the reel
8
8
  scrolls sideways once they overflow.</prop>
9
- <prop name="snap" type="start | center"
9
+ <prop name="snap" type="keyword" values="start, center"
10
10
  >Snaps scrolling to items: start comes to rest with an item's start edge at the reel's start, and center with an item centred in the reel. Unset, the reel
11
11
  scrolls freely.</prop>
12
12
  </defs>
@@ -1,6 +1,6 @@
1
1
  <template component="ui-scroll-area" controller="./ui-scroll-area.js">
2
2
  <defs>
3
- <prop name="orientation" type="vertical | horizontal" default="vertical"
3
+ <prop name="orientation" type="keyword" values="vertical, horizontal" default="vertical"
4
4
  >The direction the content scrolls. Vertical scrolls up and down and clips sideways overflow; horizontal scrolls sideways and clips vertical
5
5
  overflow.</prop>
6
6
  </defs>
@@ -7,8 +7,12 @@
7
7
  <state name="internalOpen" :value="false"></state>
8
8
  <event
9
9
  name="close"
10
- type="object({ open: boolean, reason: action | programmatic | light-dismiss | escape, trigger: keyboard | pointer | programmatic })"
11
- ></event>
10
+ type="object"
11
+ >
12
+ <prop name="open" required type="boolean"></prop>
13
+ <prop name="reason" required type="keyword" values="action, programmatic, light-dismiss, escape"></prop>
14
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
15
+ </event>
12
16
  </defs>
13
17
  <div>
14
18
  <dialog $ref="dialog" :aria-label="label">
@@ -2,10 +2,10 @@
2
2
  <defs>
3
3
  <prop name="heading" type="string" default=""
4
4
  >The section's heading, an h2. Leave it empty for a section with no visible heading, and name the section with aria-label.</prop>
5
- <prop name="variant" type="plain | card | divided" default="plain"
5
+ <prop name="variant" type="keyword" values="plain, card, divided" default="plain"
6
6
  >How the section is set apart. plain is a heading and content in the flow of the page; card sits it on a bordered surface, for a settings group; divided
7
7
  rules it off from the section before it, for a long form.</prop>
8
- <prop name="tone" type="neutral | danger" default="neutral"
8
+ <prop name="tone" type="keyword" values="neutral, danger" default="neutral"
9
9
  >danger marks a section of destructive actions (a danger zone): its heading and a card's border take the danger colour.</prop>
10
10
  </defs>
11
11
  <section>
@@ -6,7 +6,7 @@
6
6
  <prop name="disabled" type="boolean" default="false">Prevents selection and form submission.</prop>
7
7
  <prop name="invalid" type="boolean" default="false">Exposes invalid state to assistive technology and styling.</prop>
8
8
  <prop name="required" type="boolean" default="false">Requires a non-empty option for form validation.</prop>
9
- <prop name="size" type="sm | md | lg" default="md"
9
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
10
10
  >Height, padding, chevron, and type size, matching Button's sizes so a field and a button of one size share a row. sm is the small control height (2rem by
11
11
  default) with smaller text and a smaller chevron, for compact rows such as a table row or a filter bar; md is the standard control height; lg is taller
12
12
  with roomier padding. Under a coarse pointer, sm grows to the 44px touch minimum and keeps body-size text. It is not the native size attribute: a select
@@ -1,6 +1,6 @@
1
1
  <template component="ui-separator">
2
2
  <defs>
3
- <prop name="orientation" type="horizontal | vertical" default="horizontal"
3
+ <prop name="orientation" type="keyword" values="horizontal, vertical" default="horizontal"
4
4
  >Whether the separator divides stacked content (horizontal) or inline content (vertical).</prop>
5
5
  </defs>
6
6
  <hr :aria-orientation="orientation">
@@ -1,6 +1,6 @@
1
1
  <template component="ui-sidebar" controller="./ui-sidebar.js">
2
2
  <defs>
3
- <prop name="side" type="start | end" default="start">The edge the sidebar sits on. The page places it beside its main content.</prop>
3
+ <prop name="side" type="keyword" values="start, end" default="start">The edge the sidebar sits on. The page places it beside its main content.</prop>
4
4
  <prop name="width" type="number" default="0">Docked width in pixels. 0 uses --ui-sidebar-width (280px by default); dragging the handle updates it.</prop>
5
5
  <prop name="minWidth" type="number" default="200">The narrowest width the resize handle allows, in pixels.</prop>
6
6
  <prop name="maxWidth" type="number" default="480">The widest width the resize handle allows, in pixels.</prop>
@@ -8,12 +8,19 @@
8
8
  <prop name="resizeStep" type="number" default="16">Arrow-key resize step in pixels.</prop>
9
9
  <prop name="resizeLabel" type="string" default="Resize sidebar">Accessible name of the resize handle.</prop>
10
10
  <prop name="collapsed" type="boolean" default="false">Whether the docked sidebar is collapsed.</prop>
11
- <prop name="breakpoint" type="sm | md | lg" default="md"
11
+ <prop name="breakpoint" type="keyword" values="sm, md, lg" default="md"
12
12
  >Below this viewport width (40rem, 48rem, 64rem) the sidebar becomes an off-canvas drawer, closed until toggled.</prop>
13
13
  <state name="internalCollapsed" :value="false"></state>
14
14
  <state name="drawer" :value="false"></state>
15
- <event name="resize" type="object({ width: number, trigger: keyboard | pointer | programmatic })"></event>
16
- <event name="toggle" type="object({ open: boolean, mode: docked | drawer, trigger: keyboard | pointer | programmatic })"></event>
15
+ <event name="resize" type="object">
16
+ <prop name="width" required type="number"></prop>
17
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
18
+ </event>
19
+ <event name="toggle" type="object">
20
+ <prop name="open" required type="boolean"></prop>
21
+ <prop name="mode" required type="keyword" values="docked, drawer"></prop>
22
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
23
+ </event>
17
24
  </defs>
18
25
  <aside>
19
26
  <div class="content"><slot></slot></div>
@@ -3,7 +3,7 @@
3
3
  <prop name="label" type="string" default=""
4
4
  >What is loading, for assistive technology ("Loading pages"). With a label the spinner is a status that is announced; without one it is decoration, for a
5
5
  spinner beside visible text that already says so.</prop>
6
- <prop name="size" type="sm | md" default="md">sm fits inside a button or a line of small text; md sits beside body text.</prop>
6
+ <prop name="size" type="keyword" values="sm, md" default="md">sm fits inside a button or a line of small text; md sits beside body text.</prop>
7
7
  </defs>
8
8
  <span
9
9
  class="ring"
@@ -1,12 +1,12 @@
1
1
  <template component="ui-stack">
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, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-stack-gap custom property,
5
5
  set on the stack 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 sit across the stack: stretch (the default) makes each fill the stack's width; start, center, and end keep each at its own width, against the
8
8
  start, in the middle, or against the end.</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 a stack that is taller than its content: start (the default), center, end, or between, which spreads the spare space between items.
11
11
  It has no effect unless the stack is given a height or stretched to one.</prop>
12
12
  </defs>
@@ -1,10 +1,10 @@
1
1
  <template component="ui-status-message">
2
2
  <defs>
3
- <prop name="kind" type="empty | loading | error" default="empty"
3
+ <prop name="kind" type="keyword" values="empty, loading, error" default="empty"
4
4
  >What the view is saying. empty: there is nothing here yet (announced politely); loading: it is on its way, with a spinner (announced politely); error: it
5
5
  could not be shown, in the danger tone (announced at once).</prop>
6
6
  <prop name="heading" type="string" default="">A short heading above the message, such as "No pages yet". Optional.</prop>
7
- <prop name="layout" type="inline | panel | fill" default="inline"
7
+ <prop name="layout" type="keyword" values="inline, panel, fill" default="inline"
8
8
  >Where it sits. inline takes its place in the view's flow; panel sits it on a dashed surface, for an empty area in a page; fill centres it in all the space
9
9
  it is given, for a whole view that is loading or failed.</prop>
10
10
  </defs>
@@ -9,12 +9,16 @@
9
9
  <prop name="value" type="string" default="on"
10
10
  >The value a form submits under name while the switch is on, also reported in the change event's detail so one handler can tell switches apart. on by
11
11
  default, as on a native checkbox.</prop>
12
- <prop name="size" type="sm | md | lg" default="md"
12
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
13
13
  >Aligns the switch with fields and buttons of the same size. It keeps its track size; the label takes that size's field type size and its first line centres
14
14
  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
15
15
  baseline. Under a coarse pointer an sm row grows to the 44px touch minimum, as they do. md is the standard layout.</prop>
16
16
  <state name="internalChecked" :value="false"></state>
17
- <event name="change" type="object({ checked: boolean, value: string, trigger: keyboard | pointer | programmatic })"></event>
17
+ <event name="change" type="object">
18
+ <prop name="checked" required type="boolean"></prop>
19
+ <prop name="value" required type="string"></prop>
20
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
21
+ </event>
18
22
  </defs>
19
23
  <label>
20
24
  <input type="checkbox" role="switch" $ref="input" .checked="internalChecked" :disabled="disabled" :required="required" :name="name" :value="value">
@@ -1,12 +1,12 @@
1
1
  <template component="ui-switcher" controller="./ui-switcher.js">
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, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-switcher-gap custom
5
5
  property, set on the switcher itself, overrides it; set on an ancestor, it does nothing.</prop>
6
- <prop name="threshold" type="xs | sm | md | lg"
6
+ <prop name="threshold" type="keyword" values="xs, sm, md, lg"
7
7
  >The container width at which items switch between a row and a stack: wider, they all sit side by side; narrower, each takes the full width. xs is 20rem, sm
8
8
  is 30rem (also the default), md is 45rem, and lg is 60rem.</prop>
9
- <prop name="align" type="start | center | end | stretch"
9
+ <prop name="align" type="keyword" values="start, center, end, stretch"
10
10
  >How items line up while they sit in a row: stretch (the default) makes them equally tall; start, center, and end align their tops, middles, or
11
11
  bottoms.</prop>
12
12
  <prop name="limit" type="integer"
@@ -1,6 +1,6 @@
1
1
  <template component="ui-table" controller="./ui-table.js">
2
2
  <defs>
3
- <prop name="density" type="comfortable | compact" default="comfortable"
3
+ <prop name="density" type="keyword" values="comfortable, compact" default="comfortable"
4
4
  >How tall each row is. Every row is at least one control tall, so a row holding a control lines up with the rows around it. comfortable fits a control of
5
5
  the standard height (2.5rem), for tables read or edited at a glance; compact fits a small one (2rem), such as a Checkbox or a Button with size="sm", for
6
6
  long tables to scan.</prop>
@@ -1,21 +1,26 @@
1
1
  <template component="ui-tabs" controller="./ui-tabs.js">
2
2
  <defs>
3
- <prop name="density" type="comfortable | compact" default="comfortable">Compact trades padding and type size for rows that fit more on screen.</prop>
3
+ <prop name="density" type="keyword" values="comfortable, compact" default="comfortable"
4
+ >Compact trades padding and type size for rows that fit more on screen.</prop>
4
5
  <prop name="label" type="string" default="Tabs"
5
6
  >The tab list's accessible name, announced when focus enters the list. Name what the tabs switch between.</prop>
6
7
  <prop name="value" type="string" default=""
7
8
  >The id of the selected panel, initially or when set externally; empty selects the first panel. Choosing a tab updates it from there and reports a select
8
9
  event. A panel without an id is given a generated one.</prop>
9
- <prop name="orientation" type="horizontal | vertical" default="horizontal"
10
+ <prop name="orientation" type="keyword" values="horizontal, vertical" default="horizontal"
10
11
  >horizontal puts the tabs in a row above the panels, moved between with the Left and Right arrow keys; vertical puts them in a column beside the panels,
11
12
  moved between with Up and Down.</prop>
12
- <prop name="activation" type="auto | manual" default="auto"
13
+ <prop name="activation" type="keyword" values="auto, manual" default="auto"
13
14
  >In auto mode, arrow keys move focus and select the next panel. In manual mode, arrows move focus while Enter or Space selects a panel. Use manual when
14
15
  displaying a panel takes time.</prop>
15
16
  <prop name="stretch" type="boolean" default="false">Share the full width of the tab list equally between tabs instead of sizing each to its label.</prop>
16
17
  <state name="internalValue" :value="''"></state>
17
18
  <state name="tabs" type="list(object({ id: string, label: string }))" :value="[]"></state>
18
- <event name="select" type="object({ value: string, previousValue: string, trigger: keyboard | pointer | programmatic })"></event>
19
+ <event name="select" type="object">
20
+ <prop name="value" required type="string"></prop>
21
+ <prop name="previousValue" required type="string"></prop>
22
+ <prop name="trigger" required type="keyword" values="keyboard, pointer, programmatic"></prop>
23
+ </event>
19
24
  </defs>
20
25
  <div>
21
26
  <div class="list" $ref="list" role="tablist" :aria-label="label" :aria-orientation="orientation">
@@ -1,20 +1,20 @@
1
1
  <template component="ui-text">
2
2
  <defs>
3
- <prop name="size" type="inherit | xs | sm | md | lg" default="inherit"
3
+ <prop name="size" type="keyword" values="inherit, xs, sm, md, lg" default="inherit"
4
4
  >The step on the type scale. inherit (the default) keeps the size of the text around it; xs is for fine print, sm for supporting text such as help and
5
5
  metadata, md is body text, and lg is a lead paragraph.</prop>
6
- <prop name="tone" type="default | secondary | muted | accent | danger | success | info | warning" default="default"
6
+ <prop name="tone" type="keyword" values="default, secondary, muted, accent, danger, success, info, warning" default="default"
7
7
  >The text's colour, by meaning. secondary is supporting prose such as a description; muted is quieter still, for metadata and hints; accent draws the eye;
8
8
  danger states an error; success confirms one; info marks something moving forward normally; warning marks something that needs attention. Colour alone
9
9
  does not carry the meaning, so the words must say it too.</prop>
10
- <prop name="weight" type="inherit | normal | medium | semibold" default="inherit"
10
+ <prop name="weight" type="keyword" values="inherit, normal, medium, semibold" default="inherit"
11
11
  >The weight. inherit keeps the surrounding weight; medium and semibold emphasise a name or a figure.</prop>
12
- <prop name="variant" type="body | eyebrow | code" default="body"
12
+ <prop name="variant" type="keyword" values="body, eyebrow, code" default="body"
13
13
  >body is running text. eyebrow is a short, uppercase, tracked label that names what follows, such as a group of links; code sets a value to copy or read
14
14
  exactly, such as an address, in the monospace face.</prop>
15
15
  <prop name="truncate" type="boolean" default="false">Keeps the text on one line, ending in an ellipsis when it does not fit.</prop>
16
- <prop name="align" type="start | center" default="start">Aligns the text within its line.</prop>
17
- <prop name="as" type="p | span | div | small | strong | label | h2 | h3 | h4 | h5 | h6" default="p"
16
+ <prop name="align" type="keyword" values="start, center" default="start">Aligns the text within its line.</prop>
17
+ <prop name="as" type="keyword" values="p, span, div, small, strong, label, h2, h3, h4, h5, h6" default="p"
18
18
  >The native element the text renders: a paragraph by default, inline span, small, or strong within a line, a div for a block, a label for a control, or a
19
19
  heading, h2 to h6, below a Page Header's h1 and a Section's h2. A heading takes its size and weight from size and weight, like any other text.</prop>
20
20
  </defs>
@@ -11,7 +11,7 @@
11
11
  <prop name="autosize" type="boolean" default="false"
12
12
  >Grow with the text while keeping rows as the minimum visible height. Uses CSS field sizing where supported; other browsers keep the native rows
13
13
  behavior.</prop>
14
- <prop name="size" type="sm | md | lg" default="md"
14
+ <prop name="size" type="keyword" values="sm, md, lg" default="md"
15
15
  >Padding and type size, matching Input's sizes so a textarea sits with fields of the same size; rows sets its height. sm has tighter padding and smaller
16
16
  text, for compact forms; lg has roomier padding. Under a coarse pointer, sm keeps body-size text.</prop>
17
17
  </defs>