@threadlabs/looma 0.28.5 → 0.28.6

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 (429) hide show
  1. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  2. package/dist/index.js +1 -1
  3. package/package.json +3 -2
  4. package/styles/ui-action-bar.css +13 -6
  5. package/styles/ui-affordance-scope.css +12 -5
  6. package/styles/ui-avatar-group.css +17 -10
  7. package/styles/ui-avatar.css +23 -16
  8. package/styles/ui-badge.css +78 -71
  9. package/styles/ui-breadcrumb-item.css +12 -5
  10. package/styles/ui-breadcrumbs.css +10 -3
  11. package/styles/ui-button.css +79 -72
  12. package/styles/ui-callout.css +29 -22
  13. package/styles/ui-card.css +25 -18
  14. package/styles/ui-checkbox.css +45 -37
  15. package/styles/ui-cluster.css +34 -27
  16. package/styles/ui-combobox.css +46 -39
  17. package/styles/ui-container.css +20 -13
  18. package/styles/ui-context-menu.css +17 -10
  19. package/styles/ui-cover.css +12 -5
  20. package/styles/ui-description-item.css +10 -3
  21. package/styles/ui-description-list.css +20 -13
  22. package/styles/ui-dialog.css +44 -35
  23. package/styles/ui-disclosure.css +32 -25
  24. package/styles/ui-editable.css +15 -8
  25. package/styles/ui-editor-image-toolbar.css +1 -1
  26. package/styles/ui-editor-insert-table-grid.css +11 -4
  27. package/styles/ui-editor-mention-menu-item.css +17 -8
  28. package/styles/ui-editor-mention-menu.css +14 -7
  29. package/styles/ui-editor-slash-menu-group.css +10 -3
  30. package/styles/ui-editor-slash-menu-item.css +15 -8
  31. package/styles/ui-editor-slash-menu.css +15 -8
  32. package/styles/ui-editor-surface.css +10 -3
  33. package/styles/ui-editor-table-context-menu.css +17 -10
  34. package/styles/ui-editor-table-overlay.css +17 -10
  35. package/styles/ui-editor-table-toolbar.css +22 -15
  36. package/styles/ui-editor-toolbar.css +18 -11
  37. package/styles/ui-floating-action-button.css +21 -14
  38. package/styles/ui-form-field.css +20 -13
  39. package/styles/ui-grid.css +21 -14
  40. package/styles/ui-icon-button.css +80 -73
  41. package/styles/ui-icon.css +14 -7
  42. package/styles/ui-image.css +25 -18
  43. package/styles/ui-input-group.css +34 -27
  44. package/styles/ui-input.css +42 -35
  45. package/styles/ui-list-item.css +33 -26
  46. package/styles/ui-list.css +22 -15
  47. package/styles/ui-listbox.css +22 -14
  48. package/styles/ui-menu-group.css +10 -3
  49. package/styles/ui-menu-item.css +29 -22
  50. package/styles/ui-menu.css +25 -18
  51. package/styles/ui-meter.css +36 -29
  52. package/styles/ui-nav-item.css +26 -19
  53. package/styles/ui-page-header.css +12 -5
  54. package/styles/ui-popover.css +27 -20
  55. package/styles/ui-radio-group.css +14 -6
  56. package/styles/ui-radio.css +24 -17
  57. package/styles/ui-reel.css +28 -21
  58. package/styles/ui-scroll-area.css +22 -15
  59. package/styles/ui-search-result-row.css +28 -21
  60. package/styles/ui-search-shell.css +24 -17
  61. package/styles/ui-section.css +14 -7
  62. package/styles/ui-select.css +33 -26
  63. package/styles/ui-separator.css +17 -10
  64. package/styles/ui-sidebar.css +35 -28
  65. package/styles/ui-spinner.css +32 -23
  66. package/styles/ui-stack.css +29 -21
  67. package/styles/ui-status-message.css +14 -7
  68. package/styles/ui-switch.css +29 -22
  69. package/styles/ui-switcher.css +27 -20
  70. package/styles/ui-table.css +14 -7
  71. package/styles/ui-tabs.css +24 -17
  72. package/styles/ui-text.css +35 -28
  73. package/styles/ui-textarea.css +37 -30
  74. package/styles/ui-toast-region.css +74 -63
  75. package/styles/ui-toast.css +21 -14
  76. package/styles/ui-tooltip.css +38 -31
  77. package/styles/ui-top-bar.css +19 -12
  78. package/styles/ui-tree-item.css +79 -71
  79. package/styles/ui-tree.css +18 -11
  80. package/vanilla/UiActionBar.d.ts +1 -1
  81. package/vanilla/UiActionBar.js +1 -1
  82. package/vanilla/UiAffordanceScope.d.ts +1 -1
  83. package/vanilla/UiAffordanceScope.js +1 -1
  84. package/vanilla/UiAvatar.d.ts +1 -1
  85. package/vanilla/UiAvatar.js +1 -1
  86. package/vanilla/UiAvatarGroup.d.ts +1 -1
  87. package/vanilla/UiAvatarGroup.js +1 -1
  88. package/vanilla/UiBadge.d.ts +1 -1
  89. package/vanilla/UiBadge.js +1 -1
  90. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  91. package/vanilla/UiBreadcrumbItem.js +1 -1
  92. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbs.js +1 -1
  94. package/vanilla/UiButton.d.ts +1 -1
  95. package/vanilla/UiButton.js +19 -57
  96. package/vanilla/UiCallout.d.ts +1 -1
  97. package/vanilla/UiCallout.js +25 -73
  98. package/vanilla/UiCard.d.ts +1 -1
  99. package/vanilla/UiCard.js +1 -1
  100. package/vanilla/UiCheckbox.d.ts +1 -1
  101. package/vanilla/UiCheckbox.js +1 -1
  102. package/vanilla/UiCluster.d.ts +1 -1
  103. package/vanilla/UiCluster.js +1 -1
  104. package/vanilla/UiCombobox.d.ts +1 -1
  105. package/vanilla/UiCombobox.js +60 -166
  106. package/vanilla/UiContainer.d.ts +1 -1
  107. package/vanilla/UiContainer.js +1 -1
  108. package/vanilla/UiContextMenu.d.ts +1 -1
  109. package/vanilla/UiContextMenu.js +1 -1
  110. package/vanilla/UiCover.d.ts +1 -1
  111. package/vanilla/UiCover.js +1 -1
  112. package/vanilla/UiDescriptionItem.d.ts +1 -1
  113. package/vanilla/UiDescriptionItem.js +1 -1
  114. package/vanilla/UiDescriptionList.d.ts +1 -1
  115. package/vanilla/UiDescriptionList.js +1 -1
  116. package/vanilla/UiDialog.d.ts +1 -1
  117. package/vanilla/UiDialog.js +4 -10
  118. package/vanilla/UiDisclosure.d.ts +1 -1
  119. package/vanilla/UiDisclosure.js +1 -1
  120. package/vanilla/UiEditable.d.ts +1 -1
  121. package/vanilla/UiEditable.js +7 -19
  122. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  123. package/vanilla/UiEditorImageToolbar.js +1 -1
  124. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  125. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  126. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  127. package/vanilla/UiEditorMentionMenu.js +17 -37
  128. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  130. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  131. package/vanilla/UiEditorSlashMenu.js +5 -4
  132. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  134. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  136. package/vanilla/UiEditorSurface.d.ts +1 -1
  137. package/vanilla/UiEditorSurface.js +1 -1
  138. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  139. package/vanilla/UiEditorTableContextMenu.js +6 -14
  140. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  141. package/vanilla/UiEditorTableOverlay.js +9 -25
  142. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  143. package/vanilla/UiEditorTableToolbar.js +25 -77
  144. package/vanilla/UiEditorToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorToolbar.js +1 -1
  146. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  147. package/vanilla/UiFloatingActionButton.js +1 -1
  148. package/vanilla/UiFormField.d.ts +1 -1
  149. package/vanilla/UiFormField.js +1 -1
  150. package/vanilla/UiGrid.d.ts +1 -1
  151. package/vanilla/UiGrid.js +1 -1
  152. package/vanilla/UiIcon.d.ts +1 -1
  153. package/vanilla/UiIcon.js +15 -47
  154. package/vanilla/UiIconButton.d.ts +1 -1
  155. package/vanilla/UiIconButton.js +4 -10
  156. package/vanilla/UiImage.d.ts +1 -1
  157. package/vanilla/UiImage.js +1 -1
  158. package/vanilla/UiInput.d.ts +1 -1
  159. package/vanilla/UiInput.js +1 -1
  160. package/vanilla/UiInputGroup.d.ts +1 -1
  161. package/vanilla/UiInputGroup.js +1 -1
  162. package/vanilla/UiList.d.ts +1 -1
  163. package/vanilla/UiList.js +1 -1
  164. package/vanilla/UiListItem.d.ts +1 -1
  165. package/vanilla/UiListItem.js +1 -1
  166. package/vanilla/UiListbox.d.ts +1 -1
  167. package/vanilla/UiListbox.js +4 -10
  168. package/vanilla/UiMenu.d.ts +1 -1
  169. package/vanilla/UiMenu.js +1 -1
  170. package/vanilla/UiMenuGroup.d.ts +1 -1
  171. package/vanilla/UiMenuGroup.js +4 -10
  172. package/vanilla/UiMenuItem.d.ts +1 -1
  173. package/vanilla/UiMenuItem.js +4 -10
  174. package/vanilla/UiMeter.d.ts +1 -1
  175. package/vanilla/UiMeter.js +13 -33
  176. package/vanilla/UiNavItem.d.ts +1 -1
  177. package/vanilla/UiNavItem.js +1 -1
  178. package/vanilla/UiPageHeader.d.ts +1 -1
  179. package/vanilla/UiPageHeader.js +1 -1
  180. package/vanilla/UiPopover.d.ts +1 -1
  181. package/vanilla/UiPopover.js +1 -1
  182. package/vanilla/UiRadio.d.ts +1 -1
  183. package/vanilla/UiRadio.js +1 -1
  184. package/vanilla/UiRadioGroup.d.ts +1 -1
  185. package/vanilla/UiRadioGroup.js +1 -1
  186. package/vanilla/UiReel.d.ts +1 -1
  187. package/vanilla/UiReel.js +1 -1
  188. package/vanilla/UiScrollArea.d.ts +1 -1
  189. package/vanilla/UiScrollArea.js +1 -1
  190. package/vanilla/UiSearchResultRow.d.ts +1 -1
  191. package/vanilla/UiSearchResultRow.js +1 -1
  192. package/vanilla/UiSearchShell.d.ts +1 -1
  193. package/vanilla/UiSearchShell.js +1 -1
  194. package/vanilla/UiSection.d.ts +1 -1
  195. package/vanilla/UiSection.js +1 -1
  196. package/vanilla/UiSelect.d.ts +1 -1
  197. package/vanilla/UiSelect.js +1 -1
  198. package/vanilla/UiSeparator.d.ts +1 -1
  199. package/vanilla/UiSeparator.js +1 -1
  200. package/vanilla/UiSidebar.d.ts +1 -1
  201. package/vanilla/UiSidebar.js +1 -1
  202. package/vanilla/UiSpinner.d.ts +1 -1
  203. package/vanilla/UiSpinner.js +1 -1
  204. package/vanilla/UiStack.d.ts +1 -1
  205. package/vanilla/UiStack.js +1 -1
  206. package/vanilla/UiStatusMessage.d.ts +1 -1
  207. package/vanilla/UiStatusMessage.js +1 -1
  208. package/vanilla/UiSwitch.d.ts +1 -1
  209. package/vanilla/UiSwitch.js +1 -1
  210. package/vanilla/UiSwitcher.d.ts +1 -1
  211. package/vanilla/UiSwitcher.js +1 -1
  212. package/vanilla/UiTable.d.ts +1 -1
  213. package/vanilla/UiTable.js +1 -1
  214. package/vanilla/UiTabs.d.ts +1 -1
  215. package/vanilla/UiTabs.js +1 -1
  216. package/vanilla/UiText.d.ts +1 -1
  217. package/vanilla/UiText.js +1 -1
  218. package/vanilla/UiTextarea.d.ts +1 -1
  219. package/vanilla/UiTextarea.js +1 -1
  220. package/vanilla/UiToast.d.ts +1 -1
  221. package/vanilla/UiToast.js +1 -1
  222. package/vanilla/UiToastRegion.d.ts +1 -1
  223. package/vanilla/UiToastRegion.js +1 -1
  224. package/vanilla/UiTooltip.d.ts +1 -1
  225. package/vanilla/UiTooltip.js +1 -1
  226. package/vanilla/UiTopBar.d.ts +1 -1
  227. package/vanilla/UiTopBar.js +1 -1
  228. package/vanilla/UiTree.d.ts +1 -1
  229. package/vanilla/UiTree.js +1 -1
  230. package/vanilla/UiTreeItem.d.ts +1 -1
  231. package/vanilla/UiTreeItem.js +7 -19
  232. package/vue/UiActionBar.vue +46 -78
  233. package/vue/UiAffordanceScope.vue +27 -66
  234. package/vue/UiAvatar.d.ts +10 -7
  235. package/vue/UiAvatar.vue +100 -218
  236. package/vue/UiAvatarGroup.d.ts +10 -7
  237. package/vue/UiAvatarGroup.vue +78 -160
  238. package/vue/UiBadge.d.ts +1 -1
  239. package/vue/UiBadge.vue +483 -520
  240. package/vue/UiBreadcrumbItem.vue +52 -123
  241. package/vue/UiBreadcrumbs.vue +27 -70
  242. package/vue/UiButton.d.ts +2 -2
  243. package/vue/UiButton.vue +420 -471
  244. package/vue/UiCallout.vue +131 -175
  245. package/vue/UiCard.d.ts +1 -1
  246. package/vue/UiCard.vue +112 -151
  247. package/vue/UiCheckbox.d.ts +13 -10
  248. package/vue/UiCheckbox.vue +160 -221
  249. package/vue/UiCluster.d.ts +1 -1
  250. package/vue/UiCluster.vue +84 -128
  251. package/vue/UiCombobox.d.ts +71 -68
  252. package/vue/UiCombobox.vue +417 -743
  253. package/vue/UiContainer.vue +43 -87
  254. package/vue/UiContextMenu.d.ts +6 -6
  255. package/vue/UiContextMenu.vue +78 -117
  256. package/vue/UiCover.vue +29 -69
  257. package/vue/UiDescriptionItem.vue +39 -82
  258. package/vue/UiDescriptionList.vue +64 -107
  259. package/vue/UiDialog.d.ts +22 -19
  260. package/vue/UiDialog.vue +193 -246
  261. package/vue/UiDisclosure.d.ts +22 -19
  262. package/vue/UiDisclosure.vue +192 -283
  263. package/vue/UiEditable.d.ts +5 -5
  264. package/vue/UiEditable.vue +124 -207
  265. package/vue/UiEditorImageToolbar.d.ts +2 -2
  266. package/vue/UiEditorImageToolbar.vue +41 -251
  267. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  268. package/vue/UiEditorInsertTableGrid.vue +98 -266
  269. package/vue/UiEditorMentionMenu.d.ts +15 -12
  270. package/vue/UiEditorMentionMenu.vue +150 -239
  271. package/vue/UiEditorMentionMenuItem.vue +66 -110
  272. package/vue/UiEditorSlashMenu.d.ts +16 -13
  273. package/vue/UiEditorSlashMenu.vue +172 -253
  274. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  275. package/vue/UiEditorSlashMenuItem.vue +67 -115
  276. package/vue/UiEditorSurface.vue +19 -63
  277. package/vue/UiEditorTableContextMenu.vue +135 -269
  278. package/vue/UiEditorTableOverlay.d.ts +2 -2
  279. package/vue/UiEditorTableOverlay.vue +310 -479
  280. package/vue/UiEditorTableToolbar.d.ts +2 -2
  281. package/vue/UiEditorTableToolbar.vue +182 -357
  282. package/vue/UiEditorToolbar.vue +143 -183
  283. package/vue/UiFloatingActionButton.vue +70 -114
  284. package/vue/UiFormField.d.ts +1 -1
  285. package/vue/UiFormField.vue +76 -117
  286. package/vue/UiGrid.d.ts +1 -1
  287. package/vue/UiGrid.vue +65 -103
  288. package/vue/UiIcon.vue +32 -106
  289. package/vue/UiIconButton.d.ts +2 -2
  290. package/vue/UiIconButton.vue +359 -411
  291. package/vue/UiImage.vue +145 -180
  292. package/vue/UiInput.vue +158 -190
  293. package/vue/UiInputGroup.vue +199 -239
  294. package/vue/UiList.vue +67 -109
  295. package/vue/UiListItem.vue +154 -201
  296. package/vue/UiListbox.d.ts +10 -7
  297. package/vue/UiListbox.vue +86 -260
  298. package/vue/UiMenu.d.ts +11 -11
  299. package/vue/UiMenu.vue +118 -152
  300. package/vue/UiMenuGroup.vue +21 -67
  301. package/vue/UiMenuItem.d.ts +19 -16
  302. package/vue/UiMenuItem.vue +169 -262
  303. package/vue/UiMeter.d.ts +4 -4
  304. package/vue/UiMeter.vue +166 -680
  305. package/vue/UiNavItem.vue +140 -213
  306. package/vue/UiPageHeader.vue +81 -127
  307. package/vue/UiPopover.d.ts +7 -7
  308. package/vue/UiPopover.vue +90 -129
  309. package/vue/UiRadio.d.ts +12 -9
  310. package/vue/UiRadio.vue +91 -149
  311. package/vue/UiRadioGroup.d.ts +2 -2
  312. package/vue/UiRadioGroup.vue +47 -85
  313. package/vue/UiReel.vue +89 -130
  314. package/vue/UiScrollArea.d.ts +1 -1
  315. package/vue/UiScrollArea.vue +78 -119
  316. package/vue/UiSearchResultRow.vue +96 -149
  317. package/vue/UiSearchShell.d.ts +2 -2
  318. package/vue/UiSearchShell.vue +159 -196
  319. package/vue/UiSection.vue +105 -149
  320. package/vue/UiSelect.d.ts +1 -1
  321. package/vue/UiSelect.vue +114 -146
  322. package/vue/UiSeparator.vue +42 -85
  323. package/vue/UiSidebar.d.ts +10 -7
  324. package/vue/UiSidebar.vue +193 -260
  325. package/vue/UiSpinner.vue +54 -130
  326. package/vue/UiStack.vue +66 -107
  327. package/vue/UiStatusMessage.d.ts +1 -1
  328. package/vue/UiStatusMessage.vue +61 -135
  329. package/vue/UiSwitch.d.ts +12 -9
  330. package/vue/UiSwitch.vue +136 -194
  331. package/vue/UiSwitcher.vue +69 -107
  332. package/vue/UiTable.vue +121 -156
  333. package/vue/UiTabs.d.ts +1 -1
  334. package/vue/UiTabs.vue +139 -267
  335. package/vue/UiText.d.ts +4 -4
  336. package/vue/UiText.vue +145 -184
  337. package/vue/UiTextarea.d.ts +2 -2
  338. package/vue/UiTextarea.vue +162 -194
  339. package/vue/UiToast.vue +70 -118
  340. package/vue/UiToastRegion.vue +157 -276
  341. package/vue/UiTooltip.d.ts +21 -18
  342. package/vue/UiTooltip.vue +174 -234
  343. package/vue/UiTopBar.vue +48 -76
  344. package/vue/UiTree.vue +46 -79
  345. package/vue/UiTreeItem.d.ts +18 -15
  346. package/vue/UiTreeItem.vue +526 -668
  347. package/vue/chunks/UiActionBar.js +5 -17
  348. package/vue/chunks/UiAffordanceScope.js +7 -26
  349. package/vue/chunks/UiAvatar.js +20 -74
  350. package/vue/chunks/UiAvatarGroup.js +14 -56
  351. package/vue/chunks/UiBadge.js +10 -28
  352. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  353. package/vue/chunks/UiBreadcrumbs.js +7 -25
  354. package/vue/chunks/UiButton.js +80 -103
  355. package/vue/chunks/UiCallout.js +9 -27
  356. package/vue/chunks/UiCard.js +33 -53
  357. package/vue/chunks/UiCheckbox.js +14 -46
  358. package/vue/chunks/UiCluster.js +13 -31
  359. package/vue/chunks/UiCombobox.js +99 -237
  360. package/vue/chunks/UiContainer.js +9 -27
  361. package/vue/chunks/UiContextMenu.js +7 -26
  362. package/vue/chunks/UiCover.js +7 -25
  363. package/vue/chunks/UiDescriptionItem.js +6 -24
  364. package/vue/chunks/UiDescriptionList.js +9 -27
  365. package/vue/chunks/UiDialog.js +18 -47
  366. package/vue/chunks/UiDisclosure.js +19 -66
  367. package/vue/chunks/UiEditable.js +18 -60
  368. package/vue/chunks/UiEditorImageToolbar.js +34 -103
  369. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  370. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  371. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  372. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  373. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  374. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  375. package/vue/chunks/UiEditorSurface.js +7 -25
  376. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  377. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  378. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  379. package/vue/chunks/UiEditorToolbar.js +7 -26
  380. package/vue/chunks/UiFloatingActionButton.js +10 -28
  381. package/vue/chunks/UiFormField.js +8 -27
  382. package/vue/chunks/UiGrid.js +10 -28
  383. package/vue/chunks/UiIcon.js +21 -74
  384. package/vue/chunks/UiIconButton.js +18 -50
  385. package/vue/chunks/UiImage.js +14 -33
  386. package/vue/chunks/UiInput.js +12 -31
  387. package/vue/chunks/UiInputGroup.js +10 -29
  388. package/vue/chunks/UiList.js +17 -37
  389. package/vue/chunks/UiListItem.js +12 -30
  390. package/vue/chunks/UiListbox.js +22 -124
  391. package/vue/chunks/UiMenu.js +13 -32
  392. package/vue/chunks/UiMenuGroup.js +8 -26
  393. package/vue/chunks/UiMenuItem.js +35 -80
  394. package/vue/chunks/UiMeter.js +17 -351
  395. package/vue/chunks/UiNavItem.js +23 -57
  396. package/vue/chunks/UiPageHeader.js +7 -25
  397. package/vue/chunks/UiPopover.js +9 -28
  398. package/vue/chunks/UiRadio.js +11 -43
  399. package/vue/chunks/UiRadioGroup.js +13 -32
  400. package/vue/chunks/UiReel.js +10 -28
  401. package/vue/chunks/UiScrollArea.js +10 -29
  402. package/vue/chunks/UiSearchResultRow.js +10 -28
  403. package/vue/chunks/UiSearchShell.js +9 -28
  404. package/vue/chunks/UiSection.js +9 -27
  405. package/vue/chunks/UiSelect.js +10 -29
  406. package/vue/chunks/UiSeparator.js +10 -28
  407. package/vue/chunks/UiSidebar.js +15 -47
  408. package/vue/chunks/UiSpinner.js +8 -44
  409. package/vue/chunks/UiStack.js +12 -30
  410. package/vue/chunks/UiStatusMessage.js +10 -42
  411. package/vue/chunks/UiSwitch.js +11 -43
  412. package/vue/chunks/UiSwitcher.js +9 -28
  413. package/vue/chunks/UiTable.js +7 -26
  414. package/vue/chunks/UiTabs.js +15 -91
  415. package/vue/chunks/UiText.js +148 -168
  416. package/vue/chunks/UiTextarea.js +16 -35
  417. package/vue/chunks/UiToast.js +13 -37
  418. package/vue/chunks/UiToastRegion.js +16 -88
  419. package/vue/chunks/UiTooltip.js +14 -46
  420. package/vue/chunks/UiTopBar.js +5 -17
  421. package/vue/chunks/UiTree.js +13 -32
  422. package/vue/chunks/UiTreeItem.js +34 -90
  423. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  424. package/vue/chunks/control.js +3 -0
  425. package/vue/chunks/props.js +1 -1
  426. package/vue/components.css +7606 -7534
  427. package/vue/editor/index.js +1 -1
  428. package/vue/host.ts +999 -14
  429. package/vue/chunks/host.js +0 -443
@@ -1,8 +1,14 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, ref, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
- import { createDispatch, useComponentHost } from './host'
5
+ import {
6
+ checkHydratedRoot,
7
+ createDispatch,
8
+ nativeAttrs,
9
+ useComponentHost,
10
+ useReflectedProp,
11
+ } from './host'
6
12
  import { checkedProp, propValidityState, vPropValidity } from './props'
7
13
 
8
14
  defineOptions({ inheritAttrs: false })
@@ -111,57 +117,11 @@ void checkedProps.value
111
117
  watchSyncEffect(() => {
112
118
  void checkedProps.value
113
119
  })
114
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
115
- const names = Object.keys(attrs)
116
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
117
- return Object.fromEntries(names.map((name) => [
118
- Object.hasOwn(Object.prototype, name)
119
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
120
- : name,
121
- attrs[name],
122
- ]))
123
- }
124
- const componentInstance = getCurrentInstance()
125
- function reflectedProp(
126
- name: string,
127
- kebab: string,
128
- value: unknown,
129
- fallback: string | undefined,
130
- bound: boolean,
131
- separator?: string,
132
- ): string | undefined {
133
- const incoming = componentInstance?.vnode.props
134
- if (
135
- !bound
136
- && (incoming === null || incoming === undefined
137
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
138
- ) return fallback
139
- if (value === null || value === undefined) return undefined
140
- return Array.isArray(value) && separator !== undefined
141
- ? value.join(separator)
142
- : typeof value === 'object'
143
- ? JSON.stringify(value)
144
- : String(value)
145
- }
120
+ const reflectedProp = useReflectedProp()
146
121
  const hydrationInstance = getCurrentInstance()
147
122
 
148
123
  const root = ref<HTMLElement | null>(null)
149
- const hydrationNode = hydrationInstance?.vnode.el
150
- if (
151
- typeof window !== 'undefined' && hydrationNode != null
152
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
153
- ) {
154
- throw Object.assign(
155
- new Error('HR005: Server markup for <ui-input-group> has an incompatible root.'),
156
- {
157
- name: 'HtmlDiagnosticError',
158
- diagnostic: Object.freeze({
159
- code: 'HR005',
160
- message: 'Server markup for <ui-input-group> has an incompatible root.',
161
- }),
162
- },
163
- )
164
- }
124
+ checkHydratedRoot('div', 'ui-input-group')
165
125
 
166
126
  /** The values the styles' :host-state() rules test. */
167
127
  const hostState = computed(() =>
@@ -205,7 +165,7 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
205
165
 
206
166
  <template>
207
167
  <div
208
- data-component="ui-input-group"
168
+ class="ui-input-group"
209
169
  v-bind="nativeAttrs($attrs)"
210
170
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
211
171
  :data-action-position="reflectedProp('actionPosition', 'action-position', checkedProps.actionPosition, undefined, false)"
@@ -244,220 +204,220 @@ useComponentHost(() => import('../components/ui-input-group/ui-input-group.js'),
244
204
  whole value is. The action slot takes one button at the end, inside the border, for the one
245
205
  thing the field is for ("Continue" after a site's address), so it reads as the field's action
246
206
  and not the form's. */
247
- [data-component~="ui-input-group"] {
248
- /* The group's own border and height stand for the input's, so the group is a lone Input's height.
249
- Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
250
- --_ui-default-input-border-width: 0;
251
- --_ui-default-input-min-block-size: 0;
252
- --_ui-default-input-border: transparent;
253
- --_ui-default-input-border-hover: transparent;
254
- --_ui-default-input-focus-border: transparent;
255
- --_ui-default-input-invalid-border: transparent;
256
- --_ui-default-input-invalid-focus-shadow: none;
257
- --_ui-default-input-shadow: none;
258
- --_ui-default-input-focus-shadow: none;
259
- --_ui-default-input-focus-outline: none;
260
- --_ui-default-input-radius: 0;
261
- --_ui-default-input-surface: transparent;
262
- --_ui-default-textarea-border-width: 0;
263
- --_ui-default-textarea-border: transparent;
264
- --_ui-default-textarea-border-hover: transparent;
265
- --_ui-default-textarea-focus-border: transparent;
266
- --_ui-default-textarea-invalid-border: transparent;
267
- --_ui-default-textarea-invalid-focus-shadow: none;
268
- --_ui-default-textarea-shadow: none;
269
- --_ui-default-textarea-focus-shadow: none;
270
- --_ui-default-textarea-focus-outline: none;
271
- --_ui-default-textarea-radius: 0;
272
- --_ui-default-textarea-surface: transparent;
273
-
274
- display: flex;
275
- align-items: stretch;
276
- box-sizing: border-box;
277
- inline-size: 100%;
278
- min-inline-size: 0;
279
- min-block-size: var(--ui-control-size-md);
280
- /* The frame reads the shared control tokens with a lone Input's fallbacks, so the two match. */
281
- border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
282
- border-radius: var(--ui-input-group-radius, var(--ui-field-radius, var(--ui-radius-md)));
283
- background: var(--ui-control-surface, var(--ui-surface-elevated));
284
- box-shadow: var(--ui-control-inset);
285
- overflow: hidden;
286
- /* A press anywhere in the frame focuses the input. */
287
- cursor: text;
288
- transition:
289
- border-color var(--ui-motion-fast) var(--ui-motion-ease),
290
- box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
291
- }
292
-
293
- [data-component~="ui-input-group"][data-ui-input-group-state~="variant=subtle"] {
294
- border-color: var(--ui-border);
295
- background: var(--ui-surface-muted);
296
- box-shadow: none;
297
- }
298
207
 
299
208
  /* The frame takes its input's size, so a small group lines up with small buttons and fields. */
300
- [data-component~="ui-input-group"]:has(.field [data-ui-input-state~="size=sm"]) {
301
- min-block-size: var(--ui-control-size-sm);
302
- }
303
209
 
304
- [data-component~="ui-input-group"]:has(.field [data-ui-input-state~="size=lg"]) {
305
- min-block-size: var(--ui-control-size-lg);
306
- }
210
+ /* The ring shows when the field's input would show its own: when it is focus-visible, which a
211
+ text input is for a pointer as well as a keyboard. A focused action button draws its own. */
307
212
 
308
- @media (pointer: coarse) {
309
- [data-component~="ui-input-group"] {
310
- min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
311
- }
213
+ /* Forced colors drop box shadows, so the focus ring becomes an outline. */
312
214
 
313
- [data-component~="ui-input-group"]:has(.field [data-ui-input-state~="size=sm"]) {
314
- min-block-size: var(--ui-control-min-block-size);
315
- }
316
- }
215
+ /* Fixed text is part of the value, but should not look editable. */
317
216
 
318
- [data-component~="ui-input-group"]:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
319
- border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
320
- }
217
+ /* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
218
+ small button sits inside it with the difference split evenly, and the field keeps its height. */
321
219
 
322
- /* The ring shows when the field's input would show its own: when it is focus-visible, which a
323
- text input is for a pointer as well as a keyboard. A focused action button draws its own. */
324
- [data-component~="ui-input-group"]:has(.field :is(input, textarea):focus-visible) {
325
- border-color: var(--ui-control-focus, var(--ui-accent-solid));
326
- box-shadow:
327
- var(--ui-control-inset),
328
- var(--ui-control-focus-halo-shadow);
329
- }
220
+ /* Multiline text owns the first row; its action remains inside the same frame below it. */
330
221
 
331
- [data-component~="ui-input-group"]:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])) {
332
- border-color: var(
333
- --ui-input-group-invalid-border,
334
- var(--ui-field-danger, var(--ui-danger-solid))
335
- );
336
- }
222
+ /* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
223
+ so a translated label or pending indicator cannot cover what the person types. */
337
224
 
338
- [data-component~="ui-input-group"]:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
339
- box-shadow: var(
340
- --ui-input-group-invalid-focus-shadow,
341
- var(--ui-control-inset),
342
- 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
343
- in srgb,
344
- var(--ui-input-group-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
345
- transparent
346
- )
347
- );
348
- }
225
+ /* A component that sets its display still honours the hidden attribute on its root. */
349
226
 
350
- /* Forced colors drop box shadows, so the focus ring becomes an outline. */
351
- @media (forced-colors: active) {
352
- [data-component~="ui-input-group"]:has(:is(input, textarea):focus-visible) {
353
- outline: var(--ui-focus-width) solid Highlight;
354
- outline-offset: var(--ui-border-width);
227
+ @scope (.ui-input-group) {
228
+ :scope:where(:scope) {
229
+ /* The group's own border and height stand for the input's, so the group is a lone Input's height.
230
+ Hooks do not inherit, so these are defaults for the input; its own hooks still win. */
231
+ --_ui-default-input-border-width: 0;
232
+ --_ui-default-input-min-block-size: 0;
233
+ --_ui-default-input-border: transparent;
234
+ --_ui-default-input-border-hover: transparent;
235
+ --_ui-default-input-focus-border: transparent;
236
+ --_ui-default-input-invalid-border: transparent;
237
+ --_ui-default-input-invalid-focus-shadow: none;
238
+ --_ui-default-input-shadow: none;
239
+ --_ui-default-input-focus-shadow: none;
240
+ --_ui-default-input-focus-outline: none;
241
+ --_ui-default-input-radius: 0;
242
+ --_ui-default-input-surface: transparent;
243
+ --_ui-default-textarea-border-width: 0;
244
+ --_ui-default-textarea-border: transparent;
245
+ --_ui-default-textarea-border-hover: transparent;
246
+ --_ui-default-textarea-focus-border: transparent;
247
+ --_ui-default-textarea-invalid-border: transparent;
248
+ --_ui-default-textarea-invalid-focus-shadow: none;
249
+ --_ui-default-textarea-shadow: none;
250
+ --_ui-default-textarea-focus-shadow: none;
251
+ --_ui-default-textarea-focus-outline: none;
252
+ --_ui-default-textarea-radius: 0;
253
+ --_ui-default-textarea-surface: transparent;
254
+
255
+ display: flex;
256
+ align-items: stretch;
257
+ box-sizing: border-box;
258
+ inline-size: 100%;
259
+ min-inline-size: 0;
260
+ min-block-size: var(--ui-control-size-md);
261
+ /* The frame reads the shared control tokens with a lone Input's fallbacks, so the two match. */
262
+ border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
263
+ border-radius: var(--ui-input-group-radius, var(--ui-field-radius, var(--ui-radius-md)));
264
+ background: var(--ui-control-surface, var(--ui-surface-elevated));
265
+ box-shadow: var(--ui-control-inset);
266
+ overflow: hidden;
267
+ /* A press anywhere in the frame focuses the input. */
268
+ cursor: text;
269
+ transition:
270
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
271
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
355
272
  }
356
- }
357
273
 
358
- [data-component~="ui-input-group"][data-ui-input-group-state~="disabled"],
359
- [data-component~="ui-input-group"]:has(:is(input, textarea):disabled) {
360
- background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
361
- box-shadow: none;
362
- cursor: not-allowed;
363
- }
364
-
365
- .field {
366
- display: flex;
367
- flex: 1;
368
- min-inline-size: 0;
369
- }
274
+ :scope:where(:scope):is([data-ui-input-group-state~="variant=subtle"]) {
275
+ border-color: var(--ui-border);
276
+ background: var(--ui-surface-muted);
277
+ box-shadow: none;
278
+ }
279
+ :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=sm"])) {
280
+ min-block-size: var(--ui-control-size-sm);
281
+ }
370
282
 
371
- .affix {
372
- display: inline-flex;
373
- flex: none;
374
- align-items: center;
375
- padding-inline: var(--ui-space-2);
376
- color: var(--ui-text-muted);
377
- font-family: var(--ui-font-family-mono);
378
- font-size: var(--ui-font-size-sm);
379
- white-space: nowrap;
380
- }
283
+ :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=lg"])) {
284
+ min-block-size: var(--ui-control-size-lg);
285
+ }
381
286
 
382
- /* Fixed text is part of the value, but should not look editable. */
383
- .affix:has([slot="prefix"]),
384
- .affix:has([slot="suffix"]) {
385
- background: var(--ui-surface-muted);
386
- }
287
+ @media (pointer: coarse) {
288
+ :scope:where(:scope) {
289
+ min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
290
+ }
387
291
 
388
- .affix:has([slot="prefix"]) {
389
- border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
390
- }
292
+ :scope:where(:scope):is(:has(.field [data-ui-input-state~="size=sm"])) {
293
+ min-block-size: var(--ui-control-min-block-size);
294
+ }
295
+ }
391
296
 
392
- .affix:has([slot="suffix"]) {
393
- border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
394
- }
297
+ :scope:where(:scope):is(:hover:not(:has(:is(input, textarea):focus, :is(input, textarea):disabled, :is(input, textarea):read-only, [aria-invalid="true"], :is(:user-invalid, [data-user-invalid])))) {
298
+ border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
299
+ }
300
+ :scope:where(:scope):is(:has(.field :is(input, textarea):focus-visible)) {
301
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
302
+ box-shadow:
303
+ var(--ui-control-inset),
304
+ var(--ui-control-focus-halo-shadow);
305
+ }
395
306
 
396
- [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"] {
397
- --_ui-default-input-padding-inline-start: var(--ui-space-2);
398
- }
399
- [data-component~="ui-input-group"][data-ui-input-group-state~="prefixKind=icon"]
400
- .affix:first-child {
401
- padding-inline-end: 0;
402
- border-inline-end: 0;
403
- background: transparent;
404
- }
307
+ :scope:where(:scope):is(:has([aria-invalid="true"], :is(:user-invalid, [data-user-invalid]))) {
308
+ border-color: var(
309
+ --ui-input-group-invalid-border,
310
+ var(--ui-field-danger, var(--ui-danger-solid))
311
+ );
312
+ }
405
313
 
406
- /* Centred rather than padded above and below: the group is exactly a lone Input's height, so a
407
- small button sits inside it with the difference split evenly, and the field keeps its height. */
408
- .action {
409
- display: flex;
410
- flex: none;
411
- align-items: center;
412
- padding-inline: var(--ui-space-1);
413
- }
314
+ :scope:where(:scope):is(:has(:is(input, textarea):is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible)) {
315
+ box-shadow: var(
316
+ --ui-input-group-invalid-focus-shadow,
317
+ var(--ui-control-inset),
318
+ 0 0 0 calc(var(--ui-focus-width) * 1.5) color-mix(
319
+ in srgb,
320
+ var(--ui-input-group-invalid-border, var(--ui-field-danger, var(--ui-danger-solid))) 22%,
321
+ transparent
322
+ )
323
+ );
324
+ }
325
+ @media (forced-colors: active) {
326
+ :scope:where(:scope):is(:has(:is(input, textarea):focus-visible)) {
327
+ outline: var(--ui-focus-width) solid Highlight;
328
+ outline-offset: var(--ui-border-width);
329
+ }
330
+ }
414
331
 
415
- /* Multiline text owns the first row; its action remains inside the same frame below it. */
416
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] {
417
- display: grid;
418
- grid-template-columns: auto minmax(0, 1fr) auto;
419
- }
332
+ :scope:where(:scope):is([data-ui-input-group-state~="disabled"]),
333
+ :scope:where(:scope):is(:has(:is(input, textarea):disabled)) {
334
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
335
+ box-shadow: none;
336
+ cursor: not-allowed;
337
+ }
420
338
 
421
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .field {
422
- grid-column: 2;
423
- }
339
+ .field {
340
+ display: flex;
341
+ flex: 1;
342
+ min-inline-size: 0;
343
+ }
424
344
 
425
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"] .action {
426
- grid-column: 1 / -1;
427
- justify-content: end;
428
- padding: var(--ui-space-2);
429
- padding-block-start: 0;
430
- }
345
+ .affix {
346
+ display: inline-flex;
347
+ flex: none;
348
+ align-items: center;
349
+ padding-inline: var(--ui-space-2);
350
+ color: var(--ui-text-muted);
351
+ font-family: var(--ui-font-family-mono);
352
+ font-size: var(--ui-font-size-sm);
353
+ white-space: nowrap;
354
+ }
355
+ .affix:has([slot="prefix"]), .affix:has([slot="suffix"]) {
356
+ background: var(--ui-surface-muted);
357
+ }
431
358
 
432
- /* The same textarea keeps its full resizeable box. Its text reserves the action's live width,
433
- so a translated label or pending indicator cannot cover what the person types. */
434
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"] {
435
- --_ui-default-textarea-padding-inline-end: calc(
436
- var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
437
- );
438
- }
359
+ .affix:has([slot="prefix"]) {
360
+ border-inline-end: var(--ui-border-width) solid var(--ui-border-divider);
361
+ }
439
362
 
440
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
441
- .field {
442
- grid-row: 1;
443
- }
363
+ .affix:has([slot="suffix"]) {
364
+ border-inline-start: var(--ui-border-width) solid var(--ui-border-divider);
365
+ }
444
366
 
445
- [data-component~="ui-input-group"][data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
367
+ :scope:where(:scope):is([data-ui-input-group-state~="prefixKind=icon"]) {
368
+ --_ui-default-input-padding-inline-start: var(--ui-space-2);
369
+ }
370
+ :scope[data-ui-input-group-state~="prefixKind=icon"] .affix:first-child {
371
+ padding-inline-end: 0;
372
+ border-inline-end: 0;
373
+ background: transparent;
374
+ }
446
375
  .action {
447
- grid-column: 2;
448
- grid-row: 1;
449
- align-self: start;
450
- justify-self: end;
451
- padding: var(--ui-space-2);
452
- }
376
+ display: flex;
377
+ flex: none;
378
+ align-items: center;
379
+ padding-inline: var(--ui-space-1);
380
+ }
381
+ :scope:where(:scope):is([data-ui-input-group-state~="multiline"]) {
382
+ display: grid;
383
+ grid-template-columns: auto minmax(0, 1fr) auto;
384
+ }
453
385
 
454
- .affix:empty,
455
- .action:empty {
456
- display: none;
457
- }
386
+ :scope[data-ui-input-group-state~="multiline"] .field {
387
+ grid-column: 2;
388
+ }
458
389
 
459
- /* A component that sets its display still honours the hidden attribute on its root. */
460
- [data-component~="ui-input-group"][hidden] {
461
- display: none;
390
+ :scope[data-ui-input-group-state~="multiline"] .action {
391
+ grid-column: 1 / -1;
392
+ justify-content: end;
393
+ padding: var(--ui-space-2);
394
+ padding-block-start: 0;
395
+ }
396
+ :scope:where(:scope):is([data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]) {
397
+ --_ui-default-textarea-padding-inline-end: calc(
398
+ var(--_ui-input-group-action-inline-size, 7rem) + var(--ui-space-3)
399
+ );
400
+ }
401
+
402
+ :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
403
+ .field {
404
+ grid-row: 1;
405
+ }
406
+
407
+ :scope[data-ui-input-group-state~="multiline"][data-ui-input-group-state~="actionPosition=top-end"]
408
+ .action {
409
+ grid-column: 2;
410
+ grid-row: 1;
411
+ align-self: start;
412
+ justify-self: end;
413
+ padding: var(--ui-space-2);
414
+ }
415
+
416
+ .affix:empty, .action:empty {
417
+ display: none;
418
+ }
419
+ :scope:where(:scope):is([hidden]) {
420
+ display: none;
421
+ }
462
422
  }
463
423
  </style>