@threadlabs/looma 0.19.1 → 0.21.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 (517) 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 +6 -6
  4. package/components/ui-avatar-group/ui-avatar-group.html +3 -3
  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-breadcrumb-item/ui-breadcrumb-item.html +1 -1
  8. package/components/ui-breadcrumbs/ui-breadcrumbs.html +1 -1
  9. package/components/ui-button/ui-button.html +17 -16
  10. package/components/ui-callout/ui-callout.html +1 -1
  11. package/components/ui-card/ui-card.html +5 -4
  12. package/components/ui-checkbox/ui-checkbox.html +11 -7
  13. package/components/ui-cluster/ui-cluster.html +4 -4
  14. package/components/ui-combobox/ui-combobox.html +299 -74
  15. package/components/ui-combobox/ui-combobox.js +21 -20
  16. package/components/ui-container/ui-container.html +2 -2
  17. package/components/ui-context-menu/ui-context-menu.html +17 -5
  18. package/components/ui-cover/ui-cover.html +1 -1
  19. package/components/ui-description-list/ui-description-list.html +3 -3
  20. package/components/ui-dialog/ui-dialog.html +15 -7
  21. package/components/ui-disclosure/ui-disclosure.html +17 -8
  22. package/components/ui-editable/ui-editable.html +20 -9
  23. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +6 -6
  24. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +6 -6
  25. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +1 -1
  26. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +6 -6
  27. package/components/ui-editor-slash-menu-group/ui-editor-slash-menu-group.html +1 -1
  28. package/components/ui-editor-slash-menu-item/ui-editor-slash-menu-item.html +2 -2
  29. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +33 -13
  30. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +107 -29
  31. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +5 -5
  32. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +48 -22
  33. package/components/ui-floating-action-button/ui-floating-action-button.html +1 -1
  34. package/components/ui-grid/ui-grid.html +2 -2
  35. package/components/ui-icon/ui-icon.html +13 -4
  36. package/components/ui-icon-button/ui-icon-button.html +6 -6
  37. package/components/ui-input/ui-input.html +28 -6
  38. package/components/ui-list/ui-list.html +5 -4
  39. package/components/ui-list-item/ui-list-item.html +2 -2
  40. package/components/ui-listbox/ui-listbox.html +31 -16
  41. package/components/ui-menu/ui-menu.html +18 -5
  42. package/components/ui-menu-group/ui-menu-group.html +1 -1
  43. package/components/ui-menu-item/ui-menu-item.html +14 -9
  44. package/components/ui-meter/ui-meter.html +7 -7
  45. package/components/ui-nav-item/ui-nav-item.html +10 -9
  46. package/components/ui-page-header/ui-page-header.html +1 -1
  47. package/components/ui-popover/ui-popover.html +14 -5
  48. package/components/ui-radio/ui-radio.html +7 -3
  49. package/components/ui-radio-group/ui-radio-group.html +12 -4
  50. package/components/ui-reel/ui-reel.html +3 -3
  51. package/components/ui-scroll-area/ui-scroll-area.html +1 -1
  52. package/components/ui-search-result-row/ui-search-result-row.html +1 -1
  53. package/components/ui-search-shell/ui-search-shell.html +7 -3
  54. package/components/ui-section/ui-section.html +3 -3
  55. package/components/ui-select/ui-select.html +2 -2
  56. package/components/ui-separator/ui-separator.html +2 -2
  57. package/components/ui-sidebar/ui-sidebar.html +13 -6
  58. package/components/ui-spinner/ui-spinner.html +5 -5
  59. package/components/ui-stack/ui-stack.html +3 -3
  60. package/components/ui-status-message/ui-status-message.html +5 -5
  61. package/components/ui-switch/ui-switch.html +16 -3
  62. package/components/ui-switcher/ui-switcher.html +3 -3
  63. package/components/ui-table/ui-table.html +1 -1
  64. package/components/ui-tabs/ui-tabs.html +14 -9
  65. package/components/ui-text/ui-text.html +6 -6
  66. package/components/ui-textarea/ui-textarea.html +10 -2
  67. package/components/ui-toast/ui-toast.html +8 -4
  68. package/components/ui-toast-region/ui-toast-region.html +27 -7
  69. package/components/ui-tooltip/ui-tooltip.html +16 -7
  70. package/components/ui-tree/ui-tree.html +30 -7
  71. package/components/ui-tree-item/ui-tree-item.html +21 -17
  72. package/dist/index.js +1 -1
  73. package/editor/table-overlay.d.ts +1 -1
  74. package/package.json +3 -3
  75. package/styles/ui-action-bar.css +1 -1
  76. package/styles/ui-affordance-scope.css +1 -1
  77. package/styles/ui-avatar-group.css +1 -1
  78. package/styles/ui-avatar.css +1 -1
  79. package/styles/ui-badge.css +1 -1
  80. package/styles/ui-breadcrumb-item.css +1 -1
  81. package/styles/ui-breadcrumbs.css +1 -1
  82. package/styles/ui-button.css +1 -1
  83. package/styles/ui-callout.css +1 -1
  84. package/styles/ui-card.css +1 -1
  85. package/styles/ui-checkbox.css +1 -1
  86. package/styles/ui-cluster.css +1 -1
  87. package/styles/ui-combobox.css +1 -1
  88. package/styles/ui-container.css +1 -1
  89. package/styles/ui-context-menu.css +1 -1
  90. package/styles/ui-cover.css +1 -1
  91. package/styles/ui-description-item.css +1 -1
  92. package/styles/ui-description-list.css +1 -1
  93. package/styles/ui-dialog.css +1 -1
  94. package/styles/ui-disclosure.css +1 -1
  95. package/styles/ui-editable.css +1 -1
  96. package/styles/ui-editor-insert-table-grid.css +1 -1
  97. package/styles/ui-editor-mention-menu-item.css +1 -1
  98. package/styles/ui-editor-mention-menu.css +1 -1
  99. package/styles/ui-editor-slash-menu-group.css +1 -1
  100. package/styles/ui-editor-slash-menu-item.css +1 -1
  101. package/styles/ui-editor-slash-menu.css +1 -1
  102. package/styles/ui-editor-table-context-menu.css +1 -1
  103. package/styles/ui-editor-table-overlay.css +1 -1
  104. package/styles/ui-editor-table-toolbar.css +1 -1
  105. package/styles/ui-editor-toolbar.css +1 -1
  106. package/styles/ui-floating-action-button.css +1 -1
  107. package/styles/ui-form-field.css +1 -1
  108. package/styles/ui-grid.css +1 -1
  109. package/styles/ui-icon-button.css +1 -1
  110. package/styles/ui-icon.css +1 -1
  111. package/styles/ui-input-group.css +1 -1
  112. package/styles/ui-input.css +1 -1
  113. package/styles/ui-list-item.css +1 -1
  114. package/styles/ui-list.css +1 -1
  115. package/styles/ui-listbox.css +1 -1
  116. package/styles/ui-menu-group.css +1 -1
  117. package/styles/ui-menu-item.css +1 -1
  118. package/styles/ui-menu.css +1 -1
  119. package/styles/ui-meter.css +1 -1
  120. package/styles/ui-nav-item.css +1 -1
  121. package/styles/ui-page-header.css +1 -1
  122. package/styles/ui-popover.css +1 -1
  123. package/styles/ui-radio-group.css +1 -1
  124. package/styles/ui-radio.css +1 -1
  125. package/styles/ui-reel.css +1 -1
  126. package/styles/ui-scroll-area.css +1 -1
  127. package/styles/ui-search-result-row.css +1 -1
  128. package/styles/ui-search-shell.css +1 -1
  129. package/styles/ui-section.css +1 -1
  130. package/styles/ui-select.css +1 -1
  131. package/styles/ui-separator.css +1 -1
  132. package/styles/ui-sidebar.css +1 -1
  133. package/styles/ui-spinner.css +1 -1
  134. package/styles/ui-stack.css +1 -1
  135. package/styles/ui-status-message.css +1 -1
  136. package/styles/ui-switch.css +1 -1
  137. package/styles/ui-switcher.css +1 -1
  138. package/styles/ui-table.css +1 -1
  139. package/styles/ui-tabs.css +1 -1
  140. package/styles/ui-text.css +1 -1
  141. package/styles/ui-textarea.css +1 -1
  142. package/styles/ui-toast-region.css +1 -1
  143. package/styles/ui-toast.css +1 -1
  144. package/styles/ui-tooltip.css +1 -1
  145. package/styles/ui-top-bar.css +1 -1
  146. package/styles/ui-tree-item.css +1 -1
  147. package/styles/ui-tree.css +1 -1
  148. package/vanilla/UiActionBar.d.ts +1 -1
  149. package/vanilla/UiActionBar.js +5 -1
  150. package/vanilla/UiAffordanceScope.d.ts +1 -1
  151. package/vanilla/UiAffordanceScope.js +3 -2
  152. package/vanilla/UiAvatar.d.ts +1 -1
  153. package/vanilla/UiAvatar.js +4 -3
  154. package/vanilla/UiAvatarGroup.d.ts +1 -1
  155. package/vanilla/UiAvatarGroup.js +3 -2
  156. package/vanilla/UiBadge.d.ts +1 -1
  157. package/vanilla/UiBadge.js +2 -1
  158. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  159. package/vanilla/UiBreadcrumbItem.js +2 -1
  160. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  161. package/vanilla/UiBreadcrumbs.js +4 -7
  162. package/vanilla/UiButton.d.ts +1 -1
  163. package/vanilla/UiButton.js +6 -4
  164. package/vanilla/UiCallout.d.ts +1 -1
  165. package/vanilla/UiCallout.js +3 -2
  166. package/vanilla/UiCard.d.ts +1 -1
  167. package/vanilla/UiCard.js +6 -2
  168. package/vanilla/UiCheckbox.d.ts +1 -1
  169. package/vanilla/UiCheckbox.js +4 -2
  170. package/vanilla/UiCluster.d.ts +1 -1
  171. package/vanilla/UiCluster.js +2 -1
  172. package/vanilla/UiCombobox.d.ts +3 -2
  173. package/vanilla/UiCombobox.js +8 -2
  174. package/vanilla/UiContainer.d.ts +1 -1
  175. package/vanilla/UiContainer.js +2 -1
  176. package/vanilla/UiContextMenu.d.ts +1 -1
  177. package/vanilla/UiContextMenu.js +3 -2
  178. package/vanilla/UiCover.d.ts +1 -1
  179. package/vanilla/UiCover.js +4 -5
  180. package/vanilla/UiDescriptionItem.d.ts +1 -1
  181. package/vanilla/UiDescriptionItem.js +4 -7
  182. package/vanilla/UiDescriptionList.d.ts +1 -1
  183. package/vanilla/UiDescriptionList.js +2 -1
  184. package/vanilla/UiDialog.d.ts +1 -1
  185. package/vanilla/UiDialog.js +4 -2
  186. package/vanilla/UiDisclosure.d.ts +1 -1
  187. package/vanilla/UiDisclosure.js +4 -2
  188. package/vanilla/UiEditable.d.ts +1 -1
  189. package/vanilla/UiEditable.js +2 -2
  190. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  191. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  192. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  193. package/vanilla/UiEditorMentionMenu.js +5 -2
  194. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  195. package/vanilla/UiEditorMentionMenuItem.js +3 -1
  196. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  197. package/vanilla/UiEditorSlashMenu.js +6 -2
  198. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  199. package/vanilla/UiEditorSlashMenuGroup.js +4 -7
  200. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  201. package/vanilla/UiEditorSlashMenuItem.js +2 -1
  202. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  203. package/vanilla/UiEditorTableContextMenu.js +2 -2
  204. package/vanilla/UiEditorTableOverlay.d.ts +12 -2
  205. package/vanilla/UiEditorTableOverlay.js +2 -2
  206. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  207. package/vanilla/UiEditorTableToolbar.js +2 -2
  208. package/vanilla/UiEditorToolbar.d.ts +1 -1
  209. package/vanilla/UiEditorToolbar.js +2 -1
  210. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  211. package/vanilla/UiFloatingActionButton.js +2 -1
  212. package/vanilla/UiFormField.d.ts +1 -1
  213. package/vanilla/UiFormField.js +6 -1
  214. package/vanilla/UiGrid.d.ts +1 -1
  215. package/vanilla/UiGrid.js +4 -3
  216. package/vanilla/UiIcon.d.ts +1 -1
  217. package/vanilla/UiIcon.js +1 -1
  218. package/vanilla/UiIconButton.d.ts +1 -1
  219. package/vanilla/UiIconButton.js +4 -3
  220. package/vanilla/UiInput.d.ts +5 -4
  221. package/vanilla/UiInput.js +16 -13
  222. package/vanilla/UiInputGroup.d.ts +1 -1
  223. package/vanilla/UiInputGroup.js +5 -1
  224. package/vanilla/UiList.d.ts +1 -1
  225. package/vanilla/UiList.js +4 -2
  226. package/vanilla/UiListItem.d.ts +1 -1
  227. package/vanilla/UiListItem.js +5 -1
  228. package/vanilla/UiListbox.d.ts +1 -1
  229. package/vanilla/UiListbox.js +3 -2
  230. package/vanilla/UiMenu.d.ts +1 -1
  231. package/vanilla/UiMenu.js +3 -2
  232. package/vanilla/UiMenuGroup.d.ts +1 -1
  233. package/vanilla/UiMenuGroup.js +2 -1
  234. package/vanilla/UiMenuItem.d.ts +1 -1
  235. package/vanilla/UiMenuItem.js +6 -2
  236. package/vanilla/UiMeter.d.ts +1 -1
  237. package/vanilla/UiMeter.js +2 -2
  238. package/vanilla/UiNavItem.d.ts +2 -2
  239. package/vanilla/UiNavItem.js +11 -5
  240. package/vanilla/UiPageHeader.d.ts +1 -1
  241. package/vanilla/UiPageHeader.js +8 -5
  242. package/vanilla/UiPopover.d.ts +1 -1
  243. package/vanilla/UiPopover.js +3 -2
  244. package/vanilla/UiRadio.d.ts +1 -1
  245. package/vanilla/UiRadio.js +4 -2
  246. package/vanilla/UiRadioGroup.d.ts +1 -1
  247. package/vanilla/UiRadioGroup.js +3 -2
  248. package/vanilla/UiReel.d.ts +1 -1
  249. package/vanilla/UiReel.js +2 -1
  250. package/vanilla/UiScrollArea.d.ts +1 -1
  251. package/vanilla/UiScrollArea.js +3 -2
  252. package/vanilla/UiSearchResultRow.d.ts +1 -1
  253. package/vanilla/UiSearchResultRow.js +6 -1
  254. package/vanilla/UiSearchShell.d.ts +1 -1
  255. package/vanilla/UiSearchShell.js +6 -2
  256. package/vanilla/UiSection.d.ts +1 -1
  257. package/vanilla/UiSection.js +5 -2
  258. package/vanilla/UiSelect.d.ts +1 -1
  259. package/vanilla/UiSelect.js +3 -2
  260. package/vanilla/UiSeparator.d.ts +1 -1
  261. package/vanilla/UiSeparator.js +3 -7
  262. package/vanilla/UiSidebar.d.ts +1 -1
  263. package/vanilla/UiSidebar.js +3 -2
  264. package/vanilla/UiSpinner.d.ts +1 -1
  265. package/vanilla/UiSpinner.js +2 -2
  266. package/vanilla/UiStack.d.ts +1 -1
  267. package/vanilla/UiStack.js +2 -1
  268. package/vanilla/UiStatusMessage.d.ts +1 -1
  269. package/vanilla/UiStatusMessage.js +4 -2
  270. package/vanilla/UiSwitch.d.ts +1 -1
  271. package/vanilla/UiSwitch.js +4 -2
  272. package/vanilla/UiSwitcher.d.ts +1 -1
  273. package/vanilla/UiSwitcher.js +3 -2
  274. package/vanilla/UiTable.d.ts +1 -1
  275. package/vanilla/UiTable.js +3 -2
  276. package/vanilla/UiTabs.d.ts +1 -1
  277. package/vanilla/UiTabs.js +4 -2
  278. package/vanilla/UiText.d.ts +1 -1
  279. package/vanilla/UiText.js +13 -2
  280. package/vanilla/UiTextarea.d.ts +1 -1
  281. package/vanilla/UiTextarea.js +3 -3
  282. package/vanilla/UiToast.d.ts +1 -1
  283. package/vanilla/UiToast.js +4 -2
  284. package/vanilla/UiToastRegion.d.ts +1 -1
  285. package/vanilla/UiToastRegion.js +3 -2
  286. package/vanilla/UiTooltip.d.ts +1 -1
  287. package/vanilla/UiTooltip.js +3 -2
  288. package/vanilla/UiTopBar.d.ts +1 -1
  289. package/vanilla/UiTopBar.js +5 -1
  290. package/vanilla/UiTree.d.ts +1 -1
  291. package/vanilla/UiTree.js +3 -2
  292. package/vanilla/UiTreeItem.d.ts +1 -1
  293. package/vanilla/UiTreeItem.js +8 -4
  294. package/vue/UiActionBar.vue +33 -2
  295. package/vue/UiAffordanceScope.d.ts +23 -8
  296. package/vue/UiAffordanceScope.vue +90 -17
  297. package/vue/UiAvatar.d.ts +77 -19
  298. package/vue/UiAvatar.vue +151 -31
  299. package/vue/UiAvatarGroup.d.ts +50 -13
  300. package/vue/UiAvatarGroup.vue +121 -23
  301. package/vue/UiBadge.d.ts +32 -10
  302. package/vue/UiBadge.vue +104 -17
  303. package/vue/UiBreadcrumbItem.d.ts +14 -6
  304. package/vue/UiBreadcrumbItem.vue +82 -15
  305. package/vue/UiBreadcrumbs.d.ts +14 -6
  306. package/vue/UiBreadcrumbs.vue +78 -10
  307. package/vue/UiButton.d.ts +122 -27
  308. package/vue/UiButton.vue +288 -64
  309. package/vue/UiCallout.d.ts +14 -6
  310. package/vue/UiCallout.vue +84 -16
  311. package/vue/UiCard.d.ts +41 -12
  312. package/vue/UiCard.vue +149 -25
  313. package/vue/UiCheckbox.d.ts +85 -28
  314. package/vue/UiCheckbox.vue +173 -43
  315. package/vue/UiCluster.d.ts +41 -7
  316. package/vue/UiCluster.vue +122 -13
  317. package/vue/UiCombobox.d.ts +303 -110
  318. package/vue/UiCombobox.vue +723 -412
  319. package/vue/UiContainer.d.ts +23 -5
  320. package/vue/UiContainer.vue +89 -9
  321. package/vue/UiContextMenu.d.ts +38 -23
  322. package/vue/UiContextMenu.vue +113 -38
  323. package/vue/UiCover.d.ts +14 -6
  324. package/vue/UiCover.vue +76 -12
  325. package/vue/UiDescriptionItem.d.ts +14 -6
  326. package/vue/UiDescriptionItem.vue +78 -11
  327. package/vue/UiDescriptionList.d.ts +32 -9
  328. package/vue/UiDescriptionList.vue +106 -16
  329. package/vue/UiDialog.d.ts +89 -30
  330. package/vue/UiDialog.vue +168 -38
  331. package/vue/UiDisclosure.d.ts +70 -27
  332. package/vue/UiDisclosure.vue +149 -36
  333. package/vue/UiEditable.d.ts +119 -41
  334. package/vue/UiEditable.vue +220 -62
  335. package/vue/UiEditorInsertTableGrid.d.ts +46 -17
  336. package/vue/UiEditorInsertTableGrid.vue +215 -40
  337. package/vue/UiEditorMentionMenu.d.ts +128 -41
  338. package/vue/UiEditorMentionMenu.vue +211 -37
  339. package/vue/UiEditorMentionMenuItem.d.ts +32 -10
  340. package/vue/UiEditorMentionMenuItem.vue +98 -17
  341. package/vue/UiEditorSlashMenu.d.ts +110 -37
  342. package/vue/UiEditorSlashMenu.vue +189 -31
  343. package/vue/UiEditorSlashMenuGroup.d.ts +14 -6
  344. package/vue/UiEditorSlashMenuGroup.vue +80 -12
  345. package/vue/UiEditorSlashMenuItem.d.ts +50 -14
  346. package/vue/UiEditorSlashMenuItem.vue +120 -23
  347. package/vue/UiEditorTableContextMenu.d.ts +64 -20
  348. package/vue/UiEditorTableContextMenu.vue +326 -91
  349. package/vue/UiEditorTableOverlay.d.ts +170 -44
  350. package/vue/UiEditorTableOverlay.vue +420 -149
  351. package/vue/UiEditorTableToolbar.d.ts +64 -20
  352. package/vue/UiEditorTableToolbar.vue +344 -107
  353. package/vue/UiEditorToolbar.d.ts +14 -6
  354. package/vue/UiEditorToolbar.vue +79 -15
  355. package/vue/UiFloatingActionButton.d.ts +32 -10
  356. package/vue/UiFloatingActionButton.vue +96 -18
  357. package/vue/UiFormField.d.ts +32 -10
  358. package/vue/UiFormField.vue +99 -19
  359. package/vue/UiGrid.d.ts +32 -6
  360. package/vue/UiGrid.vue +95 -11
  361. package/vue/UiIcon.d.ts +14 -6
  362. package/vue/UiIcon.vue +99 -14
  363. package/vue/UiIconButton.d.ts +77 -19
  364. package/vue/UiIconButton.vue +176 -39
  365. package/vue/UiInput.d.ts +50 -19
  366. package/vue/UiInput.vue +326 -33
  367. package/vue/UiInputGroup.d.ts +14 -6
  368. package/vue/UiInputGroup.vue +79 -15
  369. package/vue/UiList.d.ts +41 -12
  370. package/vue/UiList.vue +125 -22
  371. package/vue/UiListItem.d.ts +23 -8
  372. package/vue/UiListItem.vue +88 -16
  373. package/vue/UiListbox.d.ts +86 -27
  374. package/vue/UiListbox.vue +272 -64
  375. package/vue/UiMenu.d.ts +69 -33
  376. package/vue/UiMenu.vue +142 -38
  377. package/vue/UiMenuGroup.d.ts +14 -6
  378. package/vue/UiMenuGroup.vue +80 -11
  379. package/vue/UiMenuItem.d.ts +61 -25
  380. package/vue/UiMenuItem.vue +174 -45
  381. package/vue/UiMeter.d.ts +68 -18
  382. package/vue/UiMeter.vue +215 -41
  383. package/vue/UiNavItem.d.ts +50 -11
  384. package/vue/UiNavItem.vue +163 -29
  385. package/vue/UiPageHeader.d.ts +14 -6
  386. package/vue/UiPageHeader.vue +75 -12
  387. package/vue/UiPopover.d.ts +43 -21
  388. package/vue/UiPopover.vue +147 -27
  389. package/vue/UiRadio.d.ts +67 -24
  390. package/vue/UiRadio.vue +147 -36
  391. package/vue/UiRadioGroup.d.ts +79 -29
  392. package/vue/UiRadioGroup.vue +162 -41
  393. package/vue/UiReel.d.ts +32 -6
  394. package/vue/UiReel.vue +97 -11
  395. package/vue/UiScrollArea.d.ts +14 -6
  396. package/vue/UiScrollArea.vue +83 -14
  397. package/vue/UiSearchResultRow.d.ts +23 -8
  398. package/vue/UiSearchResultRow.vue +86 -16
  399. package/vue/UiSearchShell.d.ts +48 -19
  400. package/vue/UiSearchShell.vue +120 -26
  401. package/vue/UiSection.d.ts +32 -10
  402. package/vue/UiSection.vue +103 -17
  403. package/vue/UiSelect.d.ts +59 -17
  404. package/vue/UiSelect.vue +140 -29
  405. package/vue/UiSeparator.d.ts +14 -6
  406. package/vue/UiSeparator.vue +80 -9
  407. package/vue/UiSidebar.d.ts +95 -31
  408. package/vue/UiSidebar.vue +172 -39
  409. package/vue/UiSpinner.d.ts +23 -8
  410. package/vue/UiSpinner.vue +115 -24
  411. package/vue/UiStack.d.ts +32 -6
  412. package/vue/UiStack.vue +107 -11
  413. package/vue/UiStatusMessage.d.ts +32 -10
  414. package/vue/UiStatusMessage.vue +109 -19
  415. package/vue/UiSwitch.d.ts +67 -24
  416. package/vue/UiSwitch.vue +147 -36
  417. package/vue/UiSwitcher.d.ts +41 -7
  418. package/vue/UiSwitcher.vue +118 -15
  419. package/vue/UiTable.d.ts +23 -8
  420. package/vue/UiTable.vue +91 -17
  421. package/vue/UiTabs.d.ts +66 -23
  422. package/vue/UiTabs.vue +230 -44
  423. package/vue/UiText.d.ts +68 -18
  424. package/vue/UiText.vue +308 -48
  425. package/vue/UiTextarea.d.ts +84 -21
  426. package/vue/UiTextarea.vue +172 -38
  427. package/vue/UiToast.d.ts +28 -13
  428. package/vue/UiToast.vue +103 -24
  429. package/vue/UiToastRegion.d.ts +29 -14
  430. package/vue/UiToastRegion.vue +202 -47
  431. package/vue/UiTooltip.d.ts +81 -31
  432. package/vue/UiTooltip.vue +192 -37
  433. package/vue/UiTopBar.vue +33 -2
  434. package/vue/UiTree.d.ts +72 -29
  435. package/vue/UiTree.vue +170 -49
  436. package/vue/UiTreeItem.d.ts +136 -35
  437. package/vue/UiTreeItem.vue +227 -61
  438. package/vue/chunks/UiActionBar.js +16 -3
  439. package/vue/chunks/UiAffordanceScope.js +66 -11
  440. package/vue/chunks/UiAvatar.js +121 -20
  441. package/vue/chunks/UiAvatarGroup.js +94 -15
  442. package/vue/chunks/UiBadge.js +82 -10
  443. package/vue/chunks/UiBreadcrumbItem.js +43 -9
  444. package/vue/chunks/UiBreadcrumbs.js +41 -5
  445. package/vue/chunks/UiButton.js +237 -51
  446. package/vue/chunks/UiCallout.js +53 -11
  447. package/vue/chunks/UiCard.js +145 -18
  448. package/vue/chunks/UiCheckbox.js +130 -30
  449. package/vue/chunks/UiCluster.js +99 -12
  450. package/vue/chunks/UiCombobox.js +545 -162
  451. package/vue/chunks/UiContainer.js +65 -7
  452. package/vue/chunks/UiContextMenu.js +56 -11
  453. package/vue/chunks/UiCover.js +41 -6
  454. package/vue/chunks/UiDescriptionItem.js +39 -4
  455. package/vue/chunks/UiDescriptionList.js +80 -10
  456. package/vue/chunks/UiDialog.js +125 -18
  457. package/vue/chunks/UiDisclosure.js +102 -17
  458. package/vue/chunks/UiEditable.js +154 -29
  459. package/vue/chunks/UiEditorInsertTableGrid.js +154 -31
  460. package/vue/chunks/UiEditorMentionMenu.js +221 -18
  461. package/vue/chunks/UiEditorMentionMenuItem.js +64 -7
  462. package/vue/chunks/UiEditorSlashMenu.js +201 -14
  463. package/vue/chunks/UiEditorSlashMenuGroup.js +43 -9
  464. package/vue/chunks/UiEditorSlashMenuItem.js +80 -14
  465. package/vue/chunks/UiEditorTableContextMenu.js +220 -49
  466. package/vue/chunks/UiEditorTableOverlay.js +390 -85
  467. package/vue/chunks/UiEditorTableToolbar.js +248 -71
  468. package/vue/chunks/UiEditorToolbar.js +44 -10
  469. package/vue/chunks/UiFloatingActionButton.js +57 -9
  470. package/vue/chunks/UiFormField.js +63 -12
  471. package/vue/chunks/UiGrid.js +80 -9
  472. package/vue/chunks/UiIcon.js +73 -16
  473. package/vue/chunks/UiIconButton.js +126 -28
  474. package/vue/chunks/UiInput.js +328 -22
  475. package/vue/chunks/UiInputGroup.js +44 -10
  476. package/vue/chunks/UiList.js +104 -15
  477. package/vue/chunks/UiListItem.js +57 -8
  478. package/vue/chunks/UiListbox.js +208 -49
  479. package/vue/chunks/UiMenu.js +88 -15
  480. package/vue/chunks/UiMenuGroup.js +41 -5
  481. package/vue/chunks/UiMenuItem.js +111 -32
  482. package/vue/chunks/UiMeter.js +166 -36
  483. package/vue/chunks/UiNavItem.js +133 -37
  484. package/vue/chunks/UiPageHeader.js +41 -6
  485. package/vue/chunks/UiPopover.js +81 -11
  486. package/vue/chunks/UiRadio.js +115 -24
  487. package/vue/chunks/UiRadioGroup.js +108 -19
  488. package/vue/chunks/UiReel.js +81 -10
  489. package/vue/chunks/UiScrollArea.js +47 -10
  490. package/vue/chunks/UiSearchResultRow.js +47 -8
  491. package/vue/chunks/UiSearchShell.js +84 -24
  492. package/vue/chunks/UiSection.js +77 -10
  493. package/vue/chunks/UiSelect.js +108 -20
  494. package/vue/chunks/UiSeparator.js +41 -5
  495. package/vue/chunks/UiSidebar.js +136 -20
  496. package/vue/chunks/UiSpinner.js +64 -19
  497. package/vue/chunks/UiStack.js +87 -10
  498. package/vue/chunks/UiStatusMessage.js +82 -12
  499. package/vue/chunks/UiSwitch.js +115 -24
  500. package/vue/chunks/UiSwitcher.js +103 -15
  501. package/vue/chunks/UiTable.js +63 -11
  502. package/vue/chunks/UiTabs.js +170 -30
  503. package/vue/chunks/UiText.js +365 -38
  504. package/vue/chunks/UiTextarea.js +132 -26
  505. package/vue/chunks/UiToast.js +70 -12
  506. package/vue/chunks/UiToastRegion.js +154 -33
  507. package/vue/chunks/UiTooltip.js +124 -16
  508. package/vue/chunks/UiTopBar.js +16 -3
  509. package/vue/chunks/UiTree.js +107 -15
  510. package/vue/chunks/UiTreeItem.js +167 -43
  511. package/vue/chunks/control.js +171 -0
  512. package/vue/chunks/host.js +170 -27
  513. package/vue/chunks/props.js +477 -0
  514. package/vue/components.css +1192 -1192
  515. package/vue/editor/index.js +58 -15
  516. package/vue/editor/primitives.d.ts +52 -2
  517. package/vue/host.ts +370 -39
@@ -4,35 +4,113 @@
4
4
  <prop name="open" type="boolean" default="false">Shows the controls after the editor has supplied current geometry.</prop>
5
5
  <prop
6
6
  name="geometry"
7
- type="object({ rowBoundaries: list(number), columnBoundaries: list(number), activeCell: object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer }) | null, hoveredCell?: object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer }) | null }) | null"
8
- >The authoritative editor-measured table boundaries and active or hovered cell rectangles.</prop>
7
+ type="object"
8
+ >
9
+ <prop name="rowBoundaries" required type="array">
10
+ <prop type="number"></prop>
11
+ </prop>
12
+ <prop name="columnBoundaries" required type="array">
13
+ <prop type="number"></prop>
14
+ </prop>
15
+ <prop name="activeCell" required nullable type="object">
16
+ <prop name="left" required type="number"></prop>
17
+ <prop name="top" required type="number"></prop>
18
+ <prop name="width" required type="number"></prop>
19
+ <prop name="height" required type="number"></prop>
20
+ <prop name="rowIndex" required type="integer"></prop>
21
+ <prop name="columnIndex" required type="integer"></prop>
22
+ </prop>
23
+ <prop name="hoveredCell" nullable type="object">
24
+ <prop name="left" required type="number"></prop>
25
+ <prop name="top" required type="number"></prop>
26
+ <prop name="width" required type="number"></prop>
27
+ <prop name="height" required type="number"></prop>
28
+ <prop name="rowIndex" required type="integer"></prop>
29
+ <prop name="columnIndex" required type="integer"></prop>
30
+ </prop>
31
+ The authoritative editor-measured table boundaries and active or hovered cell rectangles.
32
+ </prop>
9
33
  <state
10
34
  name="rows"
11
- type="list(object({ key: string, index: integer, offset: string, affordance: insert-row | insert-column, action: add-row-before | add-row-after | add-column-before | add-column-after, label: string }))"
35
+ type="array"
12
36
  :value="[]"
13
- ></state>
37
+ >
38
+ <prop type="object">
39
+ <prop name="key" required type="string"></prop>
40
+ <prop name="index" required type="integer"></prop>
41
+ <prop name="offset" required type="string"></prop>
42
+ <prop name="affordance" required type="keyword" values="insert-row, insert-column"></prop>
43
+ <prop name="action" required type="keyword" values="add-row-before, add-row-after, add-column-before, add-column-after"></prop>
44
+ <prop name="label" required type="string"></prop>
45
+ </prop>
46
+ </state>
14
47
  <state
15
48
  name="cols"
16
- type="list(object({ key: string, index: integer, offset: string, affordance: insert-row | insert-column, action: add-row-before | add-row-after | add-column-before | add-column-after, label: string }))"
49
+ type="array"
17
50
  :value="[]"
18
- ></state>
51
+ >
52
+ <prop type="object">
53
+ <prop name="key" required type="string"></prop>
54
+ <prop name="index" required type="integer"></prop>
55
+ <prop name="offset" required type="string"></prop>
56
+ <prop name="affordance" required type="keyword" values="insert-row, insert-column"></prop>
57
+ <prop name="action" required type="keyword" values="add-row-before, add-row-after, add-column-before, add-column-after"></prop>
58
+ <prop name="label" required type="string"></prop>
59
+ </prop>
60
+ </state>
19
61
  <state
20
62
  name="hovered"
21
- type="object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer, rowOffset: string, columnOffset: string }) | null"
63
+ type="object"
22
64
  :value="null"
23
- ></state>
65
+ nullable
66
+ >
67
+ <prop name="left" required type="number"></prop>
68
+ <prop name="top" required type="number"></prop>
69
+ <prop name="width" required type="number"></prop>
70
+ <prop name="height" required type="number"></prop>
71
+ <prop name="rowIndex" required type="integer"></prop>
72
+ <prop name="columnIndex" required type="integer"></prop>
73
+ <prop name="rowOffset" required type="string"></prop>
74
+ <prop name="columnOffset" required type="string"></prop>
75
+ </state>
24
76
  <state
25
77
  name="active"
26
- type="object({ left: number, top: number, width: number, height: number, rowIndex: integer, columnIndex: integer, menuLeft: string, menuTop: string }) | null"
78
+ type="object"
27
79
  :value="null"
28
- ></state>
80
+ nullable
81
+ >
82
+ <prop name="left" required type="number"></prop>
83
+ <prop name="top" required type="number"></prop>
84
+ <prop name="width" required type="number"></prop>
85
+ <prop name="height" required type="number"></prop>
86
+ <prop name="rowIndex" required type="integer"></prop>
87
+ <prop name="columnIndex" required type="integer"></prop>
88
+ <prop name="menuLeft" required type="string"></prop>
89
+ <prop name="menuTop" required type="string"></prop>
90
+ </state>
29
91
  <state name="activeKey" :value="''"></state>
92
+ <event name="add-row-before" type="object({ boundaryIndex: integer })"></event>
93
+ <event name="add-row-after" type="object({ boundaryIndex: integer })"></event>
94
+ <event name="add-column-before" type="object({ boundaryIndex: integer })"></event>
95
+ <event name="add-column-after" type="object({ boundaryIndex: integer })"></event>
96
+ <event name="select-row" type="object({ rowIndex: integer, columnIndex: integer })"></event>
97
+ <event name="select-column" type="object({ rowIndex: integer, columnIndex: integer })"></event>
98
+ <event name="reorder-row" type="object({ fromIndex: integer, toIndex: integer })"></event>
99
+ <event name="reorder-column" type="object({ fromIndex: integer, toIndex: integer })"></event>
100
+ <event
101
+ name="open-cell-menu"
102
+ type="object({ rowIndex: integer, columnIndex: integer, anchor: object({ left: number, top: number, right: number, bottom: number }) })"
103
+ ></event>
104
+ <event
105
+ name="open-row-menu"
106
+ type="object({ rowIndex: integer, columnIndex: integer, anchor: object({ left: number, top: number, right: number, bottom: number }) })"
107
+ ></event>
30
108
  <event
31
- name="action"
32
- type="object({ action: add-row-before | add-row-after | add-column-before | add-column-after, boundaryIndex: integer }) | object({ action: select-row | select-column, rowIndex: integer, columnIndex: integer }) | object({ action: reorder-row | reorder-column, fromIndex: integer, toIndex: integer }) | object({ action: open-cell-menu | open-row-menu | open-column-menu, rowIndex: integer, columnIndex: integer, anchor: object({ left: number, top: number, right: number, bottom: number }) })"
109
+ name="open-column-menu"
110
+ type="object({ rowIndex: integer, columnIndex: integer, anchor: object({ left: number, top: number, right: number, bottom: number }) })"
33
111
  ></event>
34
112
  </defs>
35
- <div aria-label="Table controls" :hidden="not open">
113
+ <div aria-label="Table controls" from:hidden="not open">
36
114
  <div class="rows">
37
115
  <div
38
116
  $each="control of rows"
@@ -40,17 +118,17 @@
40
118
  class="control row"
41
119
  class:active="control.key = activeKey"
42
120
  style:top="control.offset"
43
- :data-control-key="control.key"
121
+ from:data-control-key="control.key"
44
122
  >
45
123
  <span class="line" aria-hidden="true"></span>
46
124
  <span class="guide" data-ui-guide aria-hidden="true"></span>
47
125
  <button
48
126
  type="button"
49
127
  class="handle"
50
- :data-ui-affordance="control.affordance"
51
- :data-action="control.action"
52
- :data-boundary-index="control.index"
53
- :aria-label="control.label"
128
+ from:data-ui-affordance="control.affordance"
129
+ from:data-action="control.action"
130
+ from:data-boundary-index="control.index"
131
+ from:aria-label="control.label"
54
132
  >
55
133
  <ui-icon name="plus"></ui-icon>
56
134
  <span class="tooltip" role="tooltip" $value="control.label"></span>
@@ -64,17 +142,17 @@
64
142
  class="control col"
65
143
  class:active="control.key = activeKey"
66
144
  style:left="control.offset"
67
- :data-control-key="control.key"
145
+ from:data-control-key="control.key"
68
146
  >
69
147
  <span class="line" aria-hidden="true"></span>
70
148
  <span class="guide" data-ui-guide aria-hidden="true"></span>
71
149
  <button
72
150
  type="button"
73
151
  class="handle"
74
- :data-ui-affordance="control.affordance"
75
- :data-action="control.action"
76
- :data-boundary-index="control.index"
77
- :aria-label="control.label"
152
+ from:data-ui-affordance="control.affordance"
153
+ from:data-action="control.action"
154
+ from:data-boundary-index="control.index"
155
+ from:aria-label="control.label"
78
156
  >
79
157
  <ui-icon name="plus"></ui-icon>
80
158
  <span class="tooltip" role="tooltip" $value="control.label"></span>
@@ -87,8 +165,8 @@
87
165
  class="selector row"
88
166
  style:top="hovered.rowOffset"
89
167
  data-action="select-row"
90
- :data-row-index="hovered.rowIndex"
91
- :data-column-index="hovered.columnIndex"
168
+ from:data-row-index="hovered.rowIndex"
169
+ from:data-column-index="hovered.columnIndex"
92
170
  title="Drag row to reorder; click for actions"
93
171
  aria-label="Row actions"
94
172
  >
@@ -99,8 +177,8 @@
99
177
  class="selector column"
100
178
  style:left="hovered.columnOffset"
101
179
  data-action="select-column"
102
- :data-row-index="hovered.rowIndex"
103
- :data-column-index="hovered.columnIndex"
180
+ from:data-row-index="hovered.rowIndex"
181
+ from:data-column-index="hovered.columnIndex"
104
182
  title="Drag column to reorder; click for actions"
105
183
  aria-label="Column actions"
106
184
  >
@@ -114,8 +192,8 @@
114
192
  style:left="active.menuLeft"
115
193
  style:top="active.menuTop"
116
194
  data-action="open-cell-menu"
117
- :data-row-index="active.rowIndex"
118
- :data-column-index="active.columnIndex"
195
+ from:data-row-index="active.rowIndex"
196
+ from:data-column-index="active.columnIndex"
119
197
  title="Cell actions"
120
198
  aria-label="Cell actions"
121
199
  >
@@ -96,7 +96,7 @@ export default function controller(host) {
96
96
  if (to === null) return;
97
97
  suppressClick = true;
98
98
  setTimeout(() => { suppressClick = false; }, 0);
99
- if (to !== from) host.dispatch("action", { action: axis === "row" ? "reorder-row" : "reorder-column", fromIndex: from, toIndex: to });
99
+ if (to !== from) host.dispatch(axis === "row" ? "reorder-row" : "reorder-column", { fromIndex: from, toIndex: to });
100
100
  };
101
101
  const boundaries = (axis) => {
102
102
  const values = host.state.geometry?.[axis === "row" ? "rowBoundaries" : "columnBoundaries"];
@@ -141,13 +141,13 @@ export default function controller(host) {
141
141
  const action = button.dataset.action;
142
142
  const cell = { rowIndex: Number(button.dataset.rowIndex), columnIndex: Number(button.dataset.columnIndex) };
143
143
  if (action === "select-row" || action === "select-column") {
144
- host.dispatch("action", { action, ...cell });
144
+ host.dispatch(action, cell);
145
145
  const rect = button.getBoundingClientRect();
146
- host.dispatch("action", { action: action === "select-row" ? "open-row-menu" : "open-column-menu", ...cell, anchor: { left: rect.left, top: rect.top, right: rect.right, bottom: rect.bottom } });
146
+ host.dispatch(action === "select-row" ? "open-row-menu" : "open-column-menu", { ...cell, anchor: { left: rect.left, top: rect.top, right: rect.right, bottom: rect.bottom } });
147
147
  } else if (action === "open-cell-menu") {
148
148
  const rect = button.getBoundingClientRect();
149
- host.dispatch("action", { action, ...cell, anchor: { left: rect.left, top: rect.top, right: rect.right, bottom: rect.bottom } });
150
- } else host.dispatch("action", { action, boundaryIndex: Number(button.dataset.boundaryIndex) });
149
+ host.dispatch(action, { ...cell, anchor: { left: rect.left, top: rect.top, right: rect.right, bottom: rect.bottom } });
150
+ } else host.dispatch(action, { boundaryIndex: Number(button.dataset.boundaryIndex) });
151
151
  };
152
152
  const keyOf = (target) => target instanceof Element ? target.closest("[data-control-key]")?.dataset.controlKey ?? "" : "";
153
153
  const enter = (event) => { host.state.activeKey = keyOf(event.target); };
@@ -2,16 +2,35 @@
2
2
  <template component="ui-editor-table-toolbar" controller="./ui-editor-table-toolbar.js">
3
3
  <defs>
4
4
  <prop name="open" type="boolean" default="false">Shows the toolbar while a table selection is active.</prop>
5
- <prop name="cellAlignment" type="left | center | right" default="left">Marks the alignment command that is active for the current cell.</prop>
5
+ <prop name="cellAlignment" type="keyword" values="left, center, right" default="left"
6
+ >Marks the alignment command that is active for the current cell.</prop>
6
7
  <prop name="cellBackground" type="string" default="">Identifies the background choice that is active for the current cell.</prop>
7
8
  <prop name="headerRow" type="boolean" default="false">Whether the table's first row currently uses header cells.</prop>
8
9
  <prop name="headerColumn" type="boolean" default="false">Whether the table's first column currently uses header cells.</prop>
9
10
  <prop
10
11
  name="actions"
11
- type="list(align-left | align-center | align-right | background-none | background-gray | background-yellow | background-blue | background-green | background-red | add-row-before | add-row-after | add-column-before | add-column-after | toggle-header-row | toggle-header-column | move-row-up | move-row-down | move-column-left | move-column-right | clear-cells | merge-cells | split-cell | delete-row | delete-column | delete-table)"
12
- >The complete set of commands the current selection permits.</prop>
13
- <state name="alignments" type="list(object({ action: align-left | align-center | align-right, label: string, active: boolean }))" :value="[]"></state>
14
- <state name="structure" type="list(object({ action: add-row-after | add-column-after, label: string, icon: string }))" :value="[]"></state>
12
+ type="array"
13
+ >
14
+ <prop
15
+ type="keyword"
16
+ values="align-left, align-center, align-right, background-none, background-gray, background-yellow, background-blue, background-green, background-red, add-row-before, add-row-after, add-column-before, add-column-after, toggle-header-row, toggle-header-column, move-row-up, move-row-down, move-column-left, move-column-right, clear-cells, merge-cells, split-cell, delete-row, delete-column, delete-table"
17
+ ></prop>
18
+ The complete set of commands the current selection permits.
19
+ </prop>
20
+ <state name="alignments" type="array" :value="[]">
21
+ <prop type="object">
22
+ <prop name="action" required type="keyword" values="align-left, align-center, align-right"></prop>
23
+ <prop name="label" required type="string"></prop>
24
+ <prop name="active" required type="boolean"></prop>
25
+ </prop>
26
+ </state>
27
+ <state name="structure" type="array" :value="[]">
28
+ <prop type="object">
29
+ <prop name="action" required type="keyword" values="add-row-after, add-column-after"></prop>
30
+ <prop name="label" required type="string"></prop>
31
+ <prop name="icon" required type="string"></prop>
32
+ </prop>
33
+ </state>
15
34
  <state name="swatches" type="list(object({ action: string, label: string, color: string, selected: boolean }))" :value="[]"></state>
16
35
  <state
17
36
  name="sections"
@@ -22,10 +41,17 @@
22
41
  <state name="overflowOpen" :value="false"></state>
23
42
  <event
24
43
  name="action"
25
- type="object({ action: align-left | align-center | align-right | background-none | background-gray | background-yellow | background-blue | background-green | background-red | add-row-before | add-row-after | add-column-before | add-column-after | toggle-header-row | toggle-header-column | move-row-up | move-row-down | move-column-left | move-column-right | clear-cells | merge-cells | split-cell | delete-row | delete-column | delete-table })"
26
- ></event>
44
+ type="object"
45
+ >
46
+ <prop
47
+ name="action"
48
+ required
49
+ type="keyword"
50
+ values="align-left, align-center, align-right, background-none, background-gray, background-yellow, background-blue, background-green, background-red, add-row-before, add-row-after, add-column-before, add-column-after, toggle-header-row, toggle-header-column, move-row-up, move-row-down, move-column-left, move-column-right, clear-cells, merge-cells, split-cell, delete-row, delete-column, delete-table"
51
+ ></prop>
52
+ </event>
27
53
  </defs>
28
- <div role="toolbar" aria-label="Table actions" :hidden="not open">
54
+ <div role="toolbar" aria-label="Table actions" from:hidden="not open">
29
55
  <div $if="alignments" class="group" role="group" aria-label="Cell alignment">
30
56
  <button
31
57
  $each="item of alignments"
@@ -33,24 +59,24 @@
33
59
  type="button"
34
60
  class="icon-button"
35
61
  class:active="item.active"
36
- :data-action="item.action"
37
- :aria-label="item.label"
38
- :title="item.label"
39
- :aria-pressed="item.active"
62
+ from:data-action="item.action"
63
+ from:aria-label="item.label"
64
+ from:title="item.label"
65
+ from:aria-pressed="item.active"
40
66
  >
41
- <ui-icon :name="item.action"></ui-icon>
67
+ <ui-icon from:name="item.action"></ui-icon>
42
68
  </button>
43
69
  </div>
44
70
  <div $if="alignments and structure" class="sep" aria-hidden="true"></div>
45
71
  <div $if="structure" class="group" role="group" aria-label="Table structure">
46
- <button $each="item of structure" $key="item.action" type="button" :data-action="item.action">
47
- <ui-icon :name="item.icon"></ui-icon>
72
+ <button $each="item of structure" $key="item.action" type="button" from:data-action="item.action">
73
+ <ui-icon from:name="item.icon"></ui-icon>
48
74
  <span $value="item.label"></span>
49
75
  </button>
50
76
  </div>
51
77
  <div $if="(alignments or structure) and hasOverflow" class="sep" aria-hidden="true"></div>
52
78
  <div $if="hasOverflow" class="overflow">
53
- <button type="button" class="more" data-action="toggle-overflow" aria-haspopup="menu" :aria-expanded="overflowOpen">
79
+ <button type="button" class="more" data-action="toggle-overflow" aria-haspopup="menu" from:aria-expanded="overflowOpen">
54
80
  <ui-icon name="table"></ui-icon>
55
81
  <span>Table options</span>
56
82
  <span class="chevron"><ui-icon name="chevron-down"></ui-icon></span>
@@ -66,8 +92,8 @@
66
92
  class="swatch-button"
67
93
  class:selected="swatch.selected"
68
94
  role="menuitemradio"
69
- :aria-checked="swatch.selected"
70
- :data-action="swatch.action"
95
+ from:aria-checked="swatch.selected"
96
+ from:data-action="swatch.action"
71
97
  >
72
98
  <span class="swatch" class:default="not swatch.color" style:--_swatch="swatch.color"></span>
73
99
  <span $value="swatch.label"></span>
@@ -80,12 +106,12 @@
80
106
  $each="item of section.items"
81
107
  $key="item.action"
82
108
  type="button"
83
- :role="{ true: 'menuitemcheckbox', false: 'menuitem' }[format('%s', item.checkable)]"
84
- :aria-checked="{ true: item.checked, false: null }[format('%s', item.checkable)]"
109
+ from:role="{ true: 'menuitemcheckbox', false: 'menuitem' }[format('%s', item.checkable)]"
110
+ from:aria-checked="{ true: item.checked, false: null }[format('%s', item.checkable)]"
85
111
  class:danger="item.danger"
86
- :data-action="item.action"
112
+ from:data-action="item.action"
87
113
  >
88
- <ui-icon :name="item.icon"></ui-icon>
114
+ <ui-icon from:name="item.icon"></ui-icon>
89
115
  <span $value="item.label"></span>
90
116
  </button>
91
117
  </div>
@@ -6,7 +6,7 @@
6
6
  widths.</prop>
7
7
  <prop name="label" type="string" default="">The button's accessible name. The button usually holds only an icon, so name the action it performs.</prop>
8
8
  </defs>
9
- <button type="button" :aria-label="label" :disabled="disabled"><slot></slot></button>
9
+ <button type="button" from:aria-label="label" from:disabled="disabled"><slot></slot></button>
10
10
  <style>
11
11
  /* This component's hooks style the element they are set on, and never a nested one. */
12
12
  @property --ui-floating-action-button-inset-block-end {
@@ -1,9 +1,9 @@
1
1
  <template component="ui-grid">
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 cells, on the spacing scale: xs is 0.5rem, s 0.75rem, m 1rem (also the default), l 1.5rem, and xl 2rem. The --ui-grid-gap custom property,
5
5
  set on the grid itself, overrides it; set on an ancestor, it does nothing.</prop>
6
- <prop name="min" type="sm | md | lg"
6
+ <prop name="min" type="keyword" values="sm, md, lg"
7
7
  >The narrowest a column may get before the grid drops to fewer columns: sm is 12rem (also the default), md is 16rem, and lg is 20rem. The grid fits as many
8
8
  equal columns as its width allows, and a single column never overflows a narrower container.</prop>
9
9
  <prop name="columns" type="integer"
@@ -78,10 +78,19 @@
78
78
  <span aria-hidden="true">
79
79
  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" focusable="false">
80
80
  <g $each="shape of shapes">
81
- <path $if="shape.tag = 'path'" :d="shape.d"></path>
82
- <circle $if="shape.tag = 'circle'" :cx="shape.cx" :cy="shape.cy" :r="shape.r"></circle>
83
- <rect $if="shape.tag = 'rect'" :x="shape.x" :y="shape.y" :width="shape.width" :height="shape.height" :rx="shape.rx" :ry="shape.ry"></rect>
84
- <line $if="shape.tag = 'line'" :x1="shape.x1" :y1="shape.y1" :x2="shape.x2" :y2="shape.y2"></line>
81
+ <path $if="shape.tag = 'path'" from:d="shape.d"></path>
82
+ <circle $if="shape.tag = 'circle'" from:cx="shape.cx" from:cy="shape.cy" from:r="shape.r"></circle>
83
+ <rect
84
+ $if="shape.tag = 'rect'"
85
+ from:x="shape.x"
86
+ from:y="shape.y"
87
+ from:width="shape.width"
88
+ from:height="shape.height"
89
+ from:rx="shape.rx"
90
+ from:ry="shape.ry"
91
+ >
92
+ </rect>
93
+ <line $if="shape.tag = 'line'" from:x1="shape.x1" from:y1="shape.y1" from:x2="shape.x2" from:y2="shape.y2"></line>
85
94
  </g>
86
95
  </svg>
87
96
  </span>
@@ -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"
@@ -20,11 +20,11 @@
20
20
  <prop name="round" type="boolean" default="false">Use a fully circular shape.</prop>
21
21
  </defs>
22
22
  <button
23
- :disabled="disabled"
23
+ from:disabled="disabled"
24
24
  type="button"
25
- :aria-label="label"
26
- :aria-disabled="{ true: 'true', false: null }[format('%s', loading or pending)]"
27
- :aria-busy="loading or pending"
25
+ from:aria-label="label"
26
+ from:aria-disabled="{ true: 'true', false: null }[format('%s', loading or pending)]"
27
+ from:aria-busy="loading or pending"
28
28
  >
29
29
  <ui-spinner $if="loading or pending" size="sm"></ui-spinner>
30
30
  <span class="content"><slot></slot></span>
@@ -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 from:type="type" from:value="value" from:disabled="disabled" from:readonly="readonly" from:required="required" from: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,13 +1,13 @@
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"
7
7
  >Marks the item as the current one, such as the site you are in: it takes the selected surface and aria-current="true", which assistive technology
8
8
  announces. Set it on one item at a time.</prop>
9
9
  </defs>
10
- <li :aria-current="current">
10
+ <li from:aria-current="current">
11
11
  <span class="leading"><slot name="leading"></slot></span>
12
12
  <span class="content">
13
13
  <span class="title"><slot></slot></span>
@@ -15,15 +15,21 @@
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"
22
- :tabindex="{ true: '-1', false: '0' }[format('%s', disabled)]"
23
- :aria-multiselectable="multiple"
24
- :aria-disabled="disabled"
25
- :aria-required="required"
26
- :aria-invalid="invalid or validationError"
28
+ from:tabindex="{ true: '-1', false: '0' }[format('%s', disabled)]"
29
+ from:aria-multiselectable="multiple"
30
+ from:aria-disabled="disabled"
31
+ from:aria-required="required"
32
+ from:aria-invalid="invalid or validationError"
27
33
  style:--_rows="rows"
28
34
  >
29
35
  <ui-scroll-area class="choices" $ref="choices">
@@ -34,28 +40,37 @@
34
40
  class:active="choice.index = active"
35
41
  role="option"
36
42
  data-ui-choice-option
37
- :data-multiple="multiple"
38
- :id="format('%s-option-%s', uid, choice.index)"
39
- :data-index="choice.index"
40
- :aria-selected="choice.selected"
41
- :aria-disabled="choice.disabled"
43
+ from:data-multiple="multiple"
44
+ from:id="format('%s-option-%s', uid, choice.index)"
45
+ from:data-index="choice.index"
46
+ from:aria-selected="choice.selected"
47
+ from:aria-disabled="choice.disabled"
42
48
  >
43
49
  <span $value="choice.label"></span>
44
50
  </div>
45
51
  </ui-scroll-area>
46
- <select class="fallback" $ref="options" :size="rows" :multiple="multiple" :disabled="disabled" :required="required" :name="name" aria-label="Choices">
52
+ <select
53
+ class="fallback"
54
+ $ref="options"
55
+ from:size="rows"
56
+ from:multiple="multiple"
57
+ from:disabled="disabled"
58
+ from:required="required"
59
+ from:name="name"
60
+ aria-label="Choices"
61
+ >
47
62
  <slot></slot>
48
63
  </select>
49
64
  <template $if="name and not disabled">
50
- <input $each="selected of selection" type="hidden" :name="name" :value="selected">
65
+ <input $each="selected of selection" type="hidden" from:name="name" from:value="selected">
51
66
  </template>
52
67
  <input
53
68
  class="validity"
54
69
  $ref="validity"
55
70
  type="checkbox"
56
- :required="required and not hasSelection and not disabled"
57
- :checked="hasSelection"
58
- :disabled="disabled"
71
+ from:required="required and not hasSelection and not disabled"
72
+ from:checked="hasSelection"
73
+ from:disabled="disabled"
59
74
  aria-hidden="true"
60
75
  tabindex="-1"
61
76
  >