@threadlabs/looma 0.28.5 → 0.28.7

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 (453) hide show
  1. package/components/ui-editor-block-actions/ui-editor-block-actions.html +20 -0
  2. package/components/ui-editor-block-actions/ui-editor-block-actions.js +14 -0
  3. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +7 -6
  4. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +2 -1
  5. package/components/ui-editor-link-card/ui-editor-link-card.html +57 -0
  6. package/components/ui-editor-link-card/ui-editor-link-card.js +27 -0
  7. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  8. package/dist/index.js +36 -34
  9. package/package.json +3 -2
  10. package/styles/ui-action-bar.css +13 -6
  11. package/styles/ui-affordance-scope.css +12 -5
  12. package/styles/ui-avatar-group.css +17 -10
  13. package/styles/ui-avatar.css +23 -16
  14. package/styles/ui-badge.css +78 -71
  15. package/styles/ui-breadcrumb-item.css +12 -5
  16. package/styles/ui-breadcrumbs.css +10 -3
  17. package/styles/ui-button.css +79 -72
  18. package/styles/ui-callout.css +29 -22
  19. package/styles/ui-card.css +25 -18
  20. package/styles/ui-checkbox.css +45 -37
  21. package/styles/ui-cluster.css +34 -27
  22. package/styles/ui-combobox.css +46 -39
  23. package/styles/ui-container.css +20 -13
  24. package/styles/ui-context-menu.css +17 -10
  25. package/styles/ui-cover.css +12 -5
  26. package/styles/ui-description-item.css +10 -3
  27. package/styles/ui-description-list.css +20 -13
  28. package/styles/ui-dialog.css +44 -35
  29. package/styles/ui-disclosure.css +32 -25
  30. package/styles/ui-editable.css +15 -8
  31. package/styles/ui-editor-block-actions.css +1 -0
  32. package/styles/ui-editor-image-toolbar.css +1 -1
  33. package/styles/ui-editor-insert-table-grid.css +11 -4
  34. package/styles/ui-editor-link-card.css +1 -0
  35. package/styles/ui-editor-mention-menu-item.css +17 -8
  36. package/styles/ui-editor-mention-menu.css +14 -7
  37. package/styles/ui-editor-slash-menu-group.css +10 -3
  38. package/styles/ui-editor-slash-menu-item.css +15 -8
  39. package/styles/ui-editor-slash-menu.css +15 -8
  40. package/styles/ui-editor-surface.css +10 -3
  41. package/styles/ui-editor-table-context-menu.css +17 -10
  42. package/styles/ui-editor-table-overlay.css +17 -10
  43. package/styles/ui-editor-table-toolbar.css +22 -15
  44. package/styles/ui-editor-toolbar.css +18 -11
  45. package/styles/ui-floating-action-button.css +21 -14
  46. package/styles/ui-form-field.css +20 -13
  47. package/styles/ui-grid.css +21 -14
  48. package/styles/ui-icon-button.css +80 -73
  49. package/styles/ui-icon.css +14 -7
  50. package/styles/ui-image.css +25 -18
  51. package/styles/ui-input-group.css +34 -27
  52. package/styles/ui-input.css +42 -35
  53. package/styles/ui-list-item.css +33 -26
  54. package/styles/ui-list.css +22 -15
  55. package/styles/ui-listbox.css +22 -14
  56. package/styles/ui-menu-group.css +10 -3
  57. package/styles/ui-menu-item.css +29 -22
  58. package/styles/ui-menu.css +25 -18
  59. package/styles/ui-meter.css +36 -29
  60. package/styles/ui-nav-item.css +26 -19
  61. package/styles/ui-page-header.css +12 -5
  62. package/styles/ui-popover.css +27 -20
  63. package/styles/ui-radio-group.css +14 -6
  64. package/styles/ui-radio.css +24 -17
  65. package/styles/ui-reel.css +28 -21
  66. package/styles/ui-scroll-area.css +22 -15
  67. package/styles/ui-search-result-row.css +28 -21
  68. package/styles/ui-search-shell.css +24 -17
  69. package/styles/ui-section.css +14 -7
  70. package/styles/ui-select.css +33 -26
  71. package/styles/ui-separator.css +17 -10
  72. package/styles/ui-sidebar.css +35 -28
  73. package/styles/ui-spinner.css +32 -23
  74. package/styles/ui-stack.css +29 -21
  75. package/styles/ui-status-message.css +14 -7
  76. package/styles/ui-switch.css +29 -22
  77. package/styles/ui-switcher.css +27 -20
  78. package/styles/ui-table.css +14 -7
  79. package/styles/ui-tabs.css +24 -17
  80. package/styles/ui-text.css +35 -28
  81. package/styles/ui-textarea.css +37 -30
  82. package/styles/ui-toast-region.css +74 -63
  83. package/styles/ui-toast.css +21 -14
  84. package/styles/ui-tooltip.css +38 -31
  85. package/styles/ui-top-bar.css +19 -12
  86. package/styles/ui-tree-item.css +79 -71
  87. package/styles/ui-tree.css +18 -11
  88. package/vanilla/UiActionBar.d.ts +1 -1
  89. package/vanilla/UiActionBar.js +1 -1
  90. package/vanilla/UiAffordanceScope.d.ts +1 -1
  91. package/vanilla/UiAffordanceScope.js +1 -1
  92. package/vanilla/UiAvatar.d.ts +1 -1
  93. package/vanilla/UiAvatar.js +1 -1
  94. package/vanilla/UiAvatarGroup.d.ts +1 -1
  95. package/vanilla/UiAvatarGroup.js +1 -1
  96. package/vanilla/UiBadge.d.ts +1 -1
  97. package/vanilla/UiBadge.js +1 -1
  98. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  99. package/vanilla/UiBreadcrumbItem.js +1 -1
  100. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  101. package/vanilla/UiBreadcrumbs.js +1 -1
  102. package/vanilla/UiButton.d.ts +1 -1
  103. package/vanilla/UiButton.js +19 -57
  104. package/vanilla/UiCallout.d.ts +1 -1
  105. package/vanilla/UiCallout.js +25 -73
  106. package/vanilla/UiCard.d.ts +1 -1
  107. package/vanilla/UiCard.js +1 -1
  108. package/vanilla/UiCheckbox.d.ts +1 -1
  109. package/vanilla/UiCheckbox.js +1 -1
  110. package/vanilla/UiCluster.d.ts +1 -1
  111. package/vanilla/UiCluster.js +1 -1
  112. package/vanilla/UiCombobox.d.ts +1 -1
  113. package/vanilla/UiCombobox.js +60 -166
  114. package/vanilla/UiContainer.d.ts +1 -1
  115. package/vanilla/UiContainer.js +1 -1
  116. package/vanilla/UiContextMenu.d.ts +1 -1
  117. package/vanilla/UiContextMenu.js +1 -1
  118. package/vanilla/UiCover.d.ts +1 -1
  119. package/vanilla/UiCover.js +1 -1
  120. package/vanilla/UiDescriptionItem.d.ts +1 -1
  121. package/vanilla/UiDescriptionItem.js +1 -1
  122. package/vanilla/UiDescriptionList.d.ts +1 -1
  123. package/vanilla/UiDescriptionList.js +1 -1
  124. package/vanilla/UiDialog.d.ts +1 -1
  125. package/vanilla/UiDialog.js +4 -10
  126. package/vanilla/UiDisclosure.d.ts +1 -1
  127. package/vanilla/UiDisclosure.js +1 -1
  128. package/vanilla/UiEditable.d.ts +1 -1
  129. package/vanilla/UiEditable.js +7 -19
  130. package/vanilla/UiEditorBlockActions.d.ts +16 -0
  131. package/vanilla/UiEditorBlockActions.js +41 -0
  132. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  133. package/vanilla/UiEditorImageToolbar.js +2 -2
  134. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  135. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  136. package/vanilla/UiEditorLinkCard.d.ts +20 -0
  137. package/vanilla/UiEditorLinkCard.js +153 -0
  138. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  139. package/vanilla/UiEditorMentionMenu.js +17 -37
  140. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  141. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  142. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  143. package/vanilla/UiEditorSlashMenu.js +5 -4
  144. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  145. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  146. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  147. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  148. package/vanilla/UiEditorSurface.d.ts +1 -1
  149. package/vanilla/UiEditorSurface.js +1 -1
  150. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  151. package/vanilla/UiEditorTableContextMenu.js +6 -14
  152. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  153. package/vanilla/UiEditorTableOverlay.js +9 -25
  154. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  155. package/vanilla/UiEditorTableToolbar.js +25 -77
  156. package/vanilla/UiEditorToolbar.d.ts +1 -1
  157. package/vanilla/UiEditorToolbar.js +1 -1
  158. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  159. package/vanilla/UiFloatingActionButton.js +1 -1
  160. package/vanilla/UiFormField.d.ts +1 -1
  161. package/vanilla/UiFormField.js +1 -1
  162. package/vanilla/UiGrid.d.ts +1 -1
  163. package/vanilla/UiGrid.js +1 -1
  164. package/vanilla/UiIcon.d.ts +1 -1
  165. package/vanilla/UiIcon.js +15 -47
  166. package/vanilla/UiIconButton.d.ts +1 -1
  167. package/vanilla/UiIconButton.js +4 -10
  168. package/vanilla/UiImage.d.ts +1 -1
  169. package/vanilla/UiImage.js +1 -1
  170. package/vanilla/UiInput.d.ts +1 -1
  171. package/vanilla/UiInput.js +1 -1
  172. package/vanilla/UiInputGroup.d.ts +1 -1
  173. package/vanilla/UiInputGroup.js +1 -1
  174. package/vanilla/UiList.d.ts +1 -1
  175. package/vanilla/UiList.js +1 -1
  176. package/vanilla/UiListItem.d.ts +1 -1
  177. package/vanilla/UiListItem.js +1 -1
  178. package/vanilla/UiListbox.d.ts +1 -1
  179. package/vanilla/UiListbox.js +4 -10
  180. package/vanilla/UiMenu.d.ts +1 -1
  181. package/vanilla/UiMenu.js +1 -1
  182. package/vanilla/UiMenuGroup.d.ts +1 -1
  183. package/vanilla/UiMenuGroup.js +4 -10
  184. package/vanilla/UiMenuItem.d.ts +1 -1
  185. package/vanilla/UiMenuItem.js +4 -10
  186. package/vanilla/UiMeter.d.ts +1 -1
  187. package/vanilla/UiMeter.js +13 -33
  188. package/vanilla/UiNavItem.d.ts +1 -1
  189. package/vanilla/UiNavItem.js +1 -1
  190. package/vanilla/UiPageHeader.d.ts +1 -1
  191. package/vanilla/UiPageHeader.js +1 -1
  192. package/vanilla/UiPopover.d.ts +1 -1
  193. package/vanilla/UiPopover.js +1 -1
  194. package/vanilla/UiRadio.d.ts +1 -1
  195. package/vanilla/UiRadio.js +1 -1
  196. package/vanilla/UiRadioGroup.d.ts +1 -1
  197. package/vanilla/UiRadioGroup.js +1 -1
  198. package/vanilla/UiReel.d.ts +1 -1
  199. package/vanilla/UiReel.js +1 -1
  200. package/vanilla/UiScrollArea.d.ts +1 -1
  201. package/vanilla/UiScrollArea.js +1 -1
  202. package/vanilla/UiSearchResultRow.d.ts +1 -1
  203. package/vanilla/UiSearchResultRow.js +1 -1
  204. package/vanilla/UiSearchShell.d.ts +1 -1
  205. package/vanilla/UiSearchShell.js +1 -1
  206. package/vanilla/UiSection.d.ts +1 -1
  207. package/vanilla/UiSection.js +1 -1
  208. package/vanilla/UiSelect.d.ts +1 -1
  209. package/vanilla/UiSelect.js +1 -1
  210. package/vanilla/UiSeparator.d.ts +1 -1
  211. package/vanilla/UiSeparator.js +1 -1
  212. package/vanilla/UiSidebar.d.ts +1 -1
  213. package/vanilla/UiSidebar.js +1 -1
  214. package/vanilla/UiSpinner.d.ts +1 -1
  215. package/vanilla/UiSpinner.js +1 -1
  216. package/vanilla/UiStack.d.ts +1 -1
  217. package/vanilla/UiStack.js +1 -1
  218. package/vanilla/UiStatusMessage.d.ts +1 -1
  219. package/vanilla/UiStatusMessage.js +1 -1
  220. package/vanilla/UiSwitch.d.ts +1 -1
  221. package/vanilla/UiSwitch.js +1 -1
  222. package/vanilla/UiSwitcher.d.ts +1 -1
  223. package/vanilla/UiSwitcher.js +1 -1
  224. package/vanilla/UiTable.d.ts +1 -1
  225. package/vanilla/UiTable.js +1 -1
  226. package/vanilla/UiTabs.d.ts +1 -1
  227. package/vanilla/UiTabs.js +1 -1
  228. package/vanilla/UiText.d.ts +1 -1
  229. package/vanilla/UiText.js +1 -1
  230. package/vanilla/UiTextarea.d.ts +1 -1
  231. package/vanilla/UiTextarea.js +1 -1
  232. package/vanilla/UiToast.d.ts +1 -1
  233. package/vanilla/UiToast.js +1 -1
  234. package/vanilla/UiToastRegion.d.ts +1 -1
  235. package/vanilla/UiToastRegion.js +1 -1
  236. package/vanilla/UiTooltip.d.ts +1 -1
  237. package/vanilla/UiTooltip.js +1 -1
  238. package/vanilla/UiTopBar.d.ts +1 -1
  239. package/vanilla/UiTopBar.js +1 -1
  240. package/vanilla/UiTree.d.ts +1 -1
  241. package/vanilla/UiTree.js +1 -1
  242. package/vanilla/UiTreeItem.d.ts +1 -1
  243. package/vanilla/UiTreeItem.js +7 -19
  244. package/vanilla/index.js +2 -0
  245. package/vue/UiActionBar.vue +46 -78
  246. package/vue/UiAffordanceScope.vue +27 -66
  247. package/vue/UiAvatar.d.ts +10 -7
  248. package/vue/UiAvatar.vue +100 -218
  249. package/vue/UiAvatarGroup.d.ts +10 -7
  250. package/vue/UiAvatarGroup.vue +78 -160
  251. package/vue/UiBadge.d.ts +1 -1
  252. package/vue/UiBadge.vue +483 -520
  253. package/vue/UiBreadcrumbItem.vue +52 -123
  254. package/vue/UiBreadcrumbs.vue +27 -70
  255. package/vue/UiButton.d.ts +2 -2
  256. package/vue/UiButton.vue +420 -471
  257. package/vue/UiCallout.vue +131 -175
  258. package/vue/UiCard.d.ts +1 -1
  259. package/vue/UiCard.vue +112 -151
  260. package/vue/UiCheckbox.d.ts +13 -10
  261. package/vue/UiCheckbox.vue +160 -221
  262. package/vue/UiCluster.d.ts +1 -1
  263. package/vue/UiCluster.vue +84 -128
  264. package/vue/UiCombobox.d.ts +71 -68
  265. package/vue/UiCombobox.vue +417 -743
  266. package/vue/UiContainer.vue +43 -87
  267. package/vue/UiContextMenu.d.ts +6 -6
  268. package/vue/UiContextMenu.vue +78 -117
  269. package/vue/UiCover.vue +29 -69
  270. package/vue/UiDescriptionItem.vue +39 -82
  271. package/vue/UiDescriptionList.vue +64 -107
  272. package/vue/UiDialog.d.ts +22 -19
  273. package/vue/UiDialog.vue +193 -246
  274. package/vue/UiDisclosure.d.ts +22 -19
  275. package/vue/UiDisclosure.vue +192 -283
  276. package/vue/UiEditable.d.ts +5 -5
  277. package/vue/UiEditable.vue +124 -207
  278. package/vue/UiEditorBlockActions.d.ts +33 -0
  279. package/vue/UiEditorBlockActions.js +2 -0
  280. package/vue/UiEditorBlockActions.vue +125 -0
  281. package/vue/UiEditorImageToolbar.d.ts +2 -2
  282. package/vue/UiEditorImageToolbar.vue +45 -256
  283. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  284. package/vue/UiEditorInsertTableGrid.vue +98 -266
  285. package/vue/UiEditorLinkCard.d.ts +58 -0
  286. package/vue/UiEditorLinkCard.js +2 -0
  287. package/vue/UiEditorLinkCard.vue +319 -0
  288. package/vue/UiEditorMentionMenu.d.ts +15 -12
  289. package/vue/UiEditorMentionMenu.vue +150 -239
  290. package/vue/UiEditorMentionMenuItem.vue +66 -110
  291. package/vue/UiEditorSlashMenu.d.ts +16 -13
  292. package/vue/UiEditorSlashMenu.vue +172 -253
  293. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  294. package/vue/UiEditorSlashMenuItem.vue +67 -115
  295. package/vue/UiEditorSurface.vue +19 -63
  296. package/vue/UiEditorTableContextMenu.vue +135 -269
  297. package/vue/UiEditorTableOverlay.d.ts +2 -2
  298. package/vue/UiEditorTableOverlay.vue +310 -479
  299. package/vue/UiEditorTableToolbar.d.ts +2 -2
  300. package/vue/UiEditorTableToolbar.vue +182 -357
  301. package/vue/UiEditorToolbar.vue +143 -183
  302. package/vue/UiFloatingActionButton.vue +70 -114
  303. package/vue/UiFormField.d.ts +1 -1
  304. package/vue/UiFormField.vue +76 -117
  305. package/vue/UiGrid.d.ts +1 -1
  306. package/vue/UiGrid.vue +65 -103
  307. package/vue/UiIcon.vue +32 -106
  308. package/vue/UiIconButton.d.ts +2 -2
  309. package/vue/UiIconButton.vue +359 -411
  310. package/vue/UiImage.vue +145 -180
  311. package/vue/UiInput.vue +158 -190
  312. package/vue/UiInputGroup.vue +199 -239
  313. package/vue/UiList.vue +67 -109
  314. package/vue/UiListItem.vue +154 -201
  315. package/vue/UiListbox.d.ts +10 -7
  316. package/vue/UiListbox.vue +86 -260
  317. package/vue/UiMenu.d.ts +11 -11
  318. package/vue/UiMenu.vue +118 -152
  319. package/vue/UiMenuGroup.vue +21 -67
  320. package/vue/UiMenuItem.d.ts +19 -16
  321. package/vue/UiMenuItem.vue +169 -262
  322. package/vue/UiMeter.d.ts +4 -4
  323. package/vue/UiMeter.vue +166 -680
  324. package/vue/UiNavItem.vue +140 -213
  325. package/vue/UiPageHeader.vue +81 -127
  326. package/vue/UiPopover.d.ts +7 -7
  327. package/vue/UiPopover.vue +90 -129
  328. package/vue/UiRadio.d.ts +12 -9
  329. package/vue/UiRadio.vue +91 -149
  330. package/vue/UiRadioGroup.d.ts +2 -2
  331. package/vue/UiRadioGroup.vue +47 -85
  332. package/vue/UiReel.vue +89 -130
  333. package/vue/UiScrollArea.d.ts +1 -1
  334. package/vue/UiScrollArea.vue +78 -119
  335. package/vue/UiSearchResultRow.vue +96 -149
  336. package/vue/UiSearchShell.d.ts +2 -2
  337. package/vue/UiSearchShell.vue +159 -196
  338. package/vue/UiSection.vue +105 -149
  339. package/vue/UiSelect.d.ts +1 -1
  340. package/vue/UiSelect.vue +114 -146
  341. package/vue/UiSeparator.vue +42 -85
  342. package/vue/UiSidebar.d.ts +10 -7
  343. package/vue/UiSidebar.vue +193 -260
  344. package/vue/UiSpinner.vue +54 -130
  345. package/vue/UiStack.vue +66 -107
  346. package/vue/UiStatusMessage.d.ts +1 -1
  347. package/vue/UiStatusMessage.vue +61 -135
  348. package/vue/UiSwitch.d.ts +12 -9
  349. package/vue/UiSwitch.vue +136 -194
  350. package/vue/UiSwitcher.vue +69 -107
  351. package/vue/UiTable.vue +121 -156
  352. package/vue/UiTabs.d.ts +1 -1
  353. package/vue/UiTabs.vue +139 -267
  354. package/vue/UiText.d.ts +4 -4
  355. package/vue/UiText.vue +145 -184
  356. package/vue/UiTextarea.d.ts +2 -2
  357. package/vue/UiTextarea.vue +162 -194
  358. package/vue/UiToast.vue +70 -118
  359. package/vue/UiToastRegion.vue +157 -276
  360. package/vue/UiTooltip.d.ts +21 -18
  361. package/vue/UiTooltip.vue +174 -234
  362. package/vue/UiTopBar.vue +48 -76
  363. package/vue/UiTree.vue +46 -79
  364. package/vue/UiTreeItem.d.ts +18 -15
  365. package/vue/UiTreeItem.vue +526 -668
  366. package/vue/chunks/UiActionBar.js +5 -17
  367. package/vue/chunks/UiAffordanceScope.js +7 -26
  368. package/vue/chunks/UiAvatar.js +20 -74
  369. package/vue/chunks/UiAvatarGroup.js +14 -56
  370. package/vue/chunks/UiBadge.js +10 -28
  371. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  372. package/vue/chunks/UiBreadcrumbs.js +7 -25
  373. package/vue/chunks/UiButton.js +80 -103
  374. package/vue/chunks/UiCallout.js +9 -27
  375. package/vue/chunks/UiCard.js +33 -53
  376. package/vue/chunks/UiCheckbox.js +14 -46
  377. package/vue/chunks/UiCluster.js +13 -31
  378. package/vue/chunks/UiCombobox.js +99 -237
  379. package/vue/chunks/UiContainer.js +9 -27
  380. package/vue/chunks/UiContextMenu.js +7 -26
  381. package/vue/chunks/UiCover.js +7 -25
  382. package/vue/chunks/UiDescriptionItem.js +6 -24
  383. package/vue/chunks/UiDescriptionList.js +9 -27
  384. package/vue/chunks/UiDialog.js +18 -47
  385. package/vue/chunks/UiDisclosure.js +19 -66
  386. package/vue/chunks/UiEditable.js +18 -60
  387. package/vue/chunks/UiEditorBlockActions.js +127 -0
  388. package/vue/chunks/UiEditorImageToolbar.js +40 -127
  389. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  390. package/vue/chunks/UiEditorLinkCard.js +356 -0
  391. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  392. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  393. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  394. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  395. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  396. package/vue/chunks/UiEditorSurface.js +7 -25
  397. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  398. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  399. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  400. package/vue/chunks/UiEditorToolbar.js +7 -26
  401. package/vue/chunks/UiFloatingActionButton.js +10 -28
  402. package/vue/chunks/UiFormField.js +8 -27
  403. package/vue/chunks/UiGrid.js +10 -28
  404. package/vue/chunks/UiIcon.js +21 -74
  405. package/vue/chunks/UiIconButton.js +18 -50
  406. package/vue/chunks/UiImage.js +14 -33
  407. package/vue/chunks/UiInput.js +12 -31
  408. package/vue/chunks/UiInputGroup.js +10 -29
  409. package/vue/chunks/UiList.js +17 -37
  410. package/vue/chunks/UiListItem.js +12 -30
  411. package/vue/chunks/UiListbox.js +22 -124
  412. package/vue/chunks/UiMenu.js +13 -32
  413. package/vue/chunks/UiMenuGroup.js +8 -26
  414. package/vue/chunks/UiMenuItem.js +35 -80
  415. package/vue/chunks/UiMeter.js +17 -351
  416. package/vue/chunks/UiNavItem.js +23 -57
  417. package/vue/chunks/UiPageHeader.js +7 -25
  418. package/vue/chunks/UiPopover.js +9 -28
  419. package/vue/chunks/UiRadio.js +11 -43
  420. package/vue/chunks/UiRadioGroup.js +13 -32
  421. package/vue/chunks/UiReel.js +10 -28
  422. package/vue/chunks/UiScrollArea.js +10 -29
  423. package/vue/chunks/UiSearchResultRow.js +10 -28
  424. package/vue/chunks/UiSearchShell.js +9 -28
  425. package/vue/chunks/UiSection.js +9 -27
  426. package/vue/chunks/UiSelect.js +10 -29
  427. package/vue/chunks/UiSeparator.js +10 -28
  428. package/vue/chunks/UiSidebar.js +15 -47
  429. package/vue/chunks/UiSpinner.js +8 -44
  430. package/vue/chunks/UiStack.js +12 -30
  431. package/vue/chunks/UiStatusMessage.js +10 -42
  432. package/vue/chunks/UiSwitch.js +11 -43
  433. package/vue/chunks/UiSwitcher.js +9 -28
  434. package/vue/chunks/UiTable.js +7 -26
  435. package/vue/chunks/UiTabs.js +15 -91
  436. package/vue/chunks/UiText.js +148 -168
  437. package/vue/chunks/UiTextarea.js +16 -35
  438. package/vue/chunks/UiToast.js +13 -37
  439. package/vue/chunks/UiToastRegion.js +16 -88
  440. package/vue/chunks/UiTooltip.js +14 -46
  441. package/vue/chunks/UiTopBar.js +5 -17
  442. package/vue/chunks/UiTree.js +13 -32
  443. package/vue/chunks/UiTreeItem.js +34 -90
  444. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  445. package/vue/chunks/control.js +3 -0
  446. package/vue/chunks/props.js +1 -1
  447. package/vue/components.css +7689 -7617
  448. package/vue/editor/index.js +30 -95
  449. package/vue/editor/primitives.d.ts +8 -2
  450. package/vue/host.ts +999 -14
  451. package/vue/index.d.ts +2 -0
  452. package/vue/index.js +5 -3
  453. 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 })
@@ -68,57 +74,11 @@ void checkedProps.value
68
74
  watchSyncEffect(() => {
69
75
  void checkedProps.value
70
76
  })
71
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
72
- const names = Object.keys(attrs)
73
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
74
- return Object.fromEntries(names.map((name) => [
75
- Object.hasOwn(Object.prototype, name)
76
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
77
- : name,
78
- attrs[name],
79
- ]))
80
- }
81
- const componentInstance = getCurrentInstance()
82
- function reflectedProp(
83
- name: string,
84
- kebab: string,
85
- value: unknown,
86
- fallback: string | undefined,
87
- bound: boolean,
88
- separator?: string,
89
- ): string | undefined {
90
- const incoming = componentInstance?.vnode.props
91
- if (
92
- !bound
93
- && (incoming === null || incoming === undefined
94
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
95
- ) return fallback
96
- if (value === null || value === undefined) return undefined
97
- return Array.isArray(value) && separator !== undefined
98
- ? value.join(separator)
99
- : typeof value === 'object'
100
- ? JSON.stringify(value)
101
- : String(value)
102
- }
77
+ const reflectedProp = useReflectedProp()
103
78
  const hydrationInstance = getCurrentInstance()
104
79
 
105
80
  const root = ref<HTMLElement | null>(null)
106
- const hydrationNode = hydrationInstance?.vnode.el
107
- if (
108
- typeof window !== 'undefined' && hydrationNode != null
109
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
110
- ) {
111
- throw Object.assign(
112
- new Error('HR005: Server markup for <ui-form-field> has an incompatible root.'),
113
- {
114
- name: 'HtmlDiagnosticError',
115
- diagnostic: Object.freeze({
116
- code: 'HR005',
117
- message: 'Server markup for <ui-form-field> has an incompatible root.',
118
- }),
119
- },
120
- )
121
- }
81
+ checkHydratedRoot('div', 'ui-form-field')
122
82
 
123
83
  /** The values the styles' :host-state() rules test. */
124
84
  const hostState = computed(() =>
@@ -152,7 +112,7 @@ useComponentHost(() => import('../components/ui-form-field/ui-form-field.js'), {
152
112
 
153
113
  <template>
154
114
  <div
155
- data-component="ui-form-field"
115
+ class="ui-form-field"
156
116
  v-bind="nativeAttrs($attrs)"
157
117
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
158
118
  :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
@@ -202,81 +162,80 @@ useComponentHost(() => import('../components/ui-form-field/ui-form-field.js'), {
202
162
  inherits: false;
203
163
  }
204
164
 
205
- [data-component~="ui-form-field"] {
206
- /* Hooks do not inherit, so the parts below read them from the root. */
207
- --_ui-form-field-danger: var(--ui-form-field-danger);
208
- --_ui-form-field-help-min-block-size: var(--ui-form-field-help-min-block-size);
209
- --_ui-form-field-label-text: var(--ui-form-field-label-text);
210
- --_ui-form-field-label-font-size: var(--ui-form-field-label-font-size);
211
- --_ui-form-field-help-text: var(--ui-form-field-help-text);
212
- --_ui-form-field-help-font-size: var(--ui-form-field-help-font-size);
213
-
214
- display: grid;
215
- gap: var(--ui-space-2);
216
- min-inline-size: var(--ui-form-field-min-inline-size, 0);
217
- align-content: start;
218
- color: var(--ui-text-primary);
219
- }
220
-
221
165
  /* Each named region styles whatever fills it, however it was slotted (slot="…" in HTML, #label
222
166
  in Vue), and generates no box of its own, so an empty region adds no gap. */
223
- .label,
224
- .help,
225
- .error {
226
- display: contents;
227
- }
228
-
229
- .label {
230
- color: var(--_ui-form-field-label-text, var(--ui-text-secondary));
231
- font-size: var(--_ui-form-field-label-font-size, var(--ui-font-size-sm));
232
- }
233
167
 
234
168
  /* A label action, such as a small help button, sits after the label text in a box one line
235
169
  tall, centred on the first line and overflowing it. A button taller than a line of label
236
170
  text then never makes this field's label row taller than its neighbours' in a grid row. */
237
- .label:has(> .label-action > *) {
238
- display: flex;
239
- align-items: start;
240
- gap: var(--ui-space-1);
241
- }
242
-
243
- .label-action {
244
- display: flex;
245
- align-items: unsafe center;
246
- block-size: 1lh;
247
- }
248
-
249
- .label-action:not(:has(> *)) {
250
- display: none;
251
- }
252
-
253
- .help {
254
- color: var(--_ui-form-field-help-text, var(--ui-text-muted));
255
- font-size: var(--_ui-form-field-help-font-size, var(--ui-font-size-sm));
256
- line-height: var(--ui-line-height-md);
257
- }
258
-
259
- .help > :slotted(*) {
260
- min-block-size: var(--_ui-form-field-help-min-block-size, 0);
261
- }
262
-
263
- .error {
264
- display: none;
265
- }
266
-
267
- [data-component~="ui-form-field"][data-ui-form-field-state~="invalid"] .error {
268
- display: contents;
269
- }
270
171
 
271
172
  /* An error reads in the danger colour, the one the invalid control's border takes. */
272
- .error,
273
- :slotted([role="alert"]) {
274
- color: var(--_ui-form-field-danger, var(--ui-field-danger, var(--ui-danger)));
275
- font-size: var(--ui-font-size-sm);
276
- }
277
173
 
278
174
  /* A component that sets its display still honours the hidden attribute on its root. */
279
- [data-component~="ui-form-field"][hidden] {
280
- display: none;
175
+
176
+ @scope (.ui-form-field) {
177
+ :scope:where(:scope) {
178
+ /* Hooks do not inherit, so the parts below read them from the root. */
179
+ --_ui-form-field-danger: var(--ui-form-field-danger);
180
+ --_ui-form-field-help-min-block-size: var(--ui-form-field-help-min-block-size);
181
+ --_ui-form-field-label-text: var(--ui-form-field-label-text);
182
+ --_ui-form-field-label-font-size: var(--ui-form-field-label-font-size);
183
+ --_ui-form-field-help-text: var(--ui-form-field-help-text);
184
+ --_ui-form-field-help-font-size: var(--ui-form-field-help-font-size);
185
+
186
+ display: grid;
187
+ gap: var(--ui-space-2);
188
+ min-inline-size: var(--ui-form-field-min-inline-size, 0);
189
+ align-content: start;
190
+ color: var(--ui-text-primary);
191
+ }
192
+ .label, .help, .error {
193
+ display: contents;
194
+ }
195
+
196
+ .label {
197
+ color: var(--_ui-form-field-label-text, var(--ui-text-secondary));
198
+ font-size: var(--_ui-form-field-label-font-size, var(--ui-font-size-sm));
199
+ }
200
+ .label:has(> .label-action > *) {
201
+ display: flex;
202
+ align-items: start;
203
+ gap: var(--ui-space-1);
204
+ }
205
+
206
+ .label-action {
207
+ display: flex;
208
+ align-items: unsafe center;
209
+ block-size: 1lh;
210
+ }
211
+
212
+ .label-action:not(:has(> *)) {
213
+ display: none;
214
+ }
215
+
216
+ .help {
217
+ color: var(--_ui-form-field-help-text, var(--ui-text-muted));
218
+ font-size: var(--_ui-form-field-help-font-size, var(--ui-font-size-sm));
219
+ line-height: var(--ui-line-height-md);
220
+ }
221
+
222
+ .help > :slotted(*) {
223
+ min-block-size: var(--_ui-form-field-help-min-block-size, 0);
224
+ }
225
+
226
+ .error {
227
+ display: none;
228
+ }
229
+
230
+ :scope[data-ui-form-field-state~="invalid"] .error {
231
+ display: contents;
232
+ }
233
+ .error, :slotted([role="alert"]) {
234
+ color: var(--_ui-form-field-danger, var(--ui-field-danger, var(--ui-danger)));
235
+ font-size: var(--ui-font-size-sm);
236
+ }
237
+ :scope:where(:scope):is([hidden]) {
238
+ display: none;
239
+ }
281
240
  }
282
241
  </style>
package/vue/UiGrid.d.ts CHANGED
@@ -30,9 +30,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
30
30
  default: null;
31
31
  };
32
32
  }>> & Readonly<{}>, {
33
+ min: "sm" | "md" | "lg" | null;
33
34
  columns: number | null;
34
35
  gap: "s" | "xs" | "m" | "l" | "xl" | null;
35
- min: "sm" | "md" | "lg" | null;
36
36
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
37
37
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
38
  declare const _default: typeof __VLS_export;
package/vue/UiGrid.vue CHANGED
@@ -1,7 +1,8 @@
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
- import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
3
+ import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
+ import { checkHydratedRoot, nativeAttrs, useReflectedProp } from './host'
5
6
  import { checkedProp, vPropValidity } from './props'
6
7
 
7
8
  defineOptions({ inheritAttrs: false })
@@ -66,53 +67,9 @@ void checkedProps.value
66
67
  watchSyncEffect(() => {
67
68
  void checkedProps.value
68
69
  })
69
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
70
- const names = Object.keys(attrs)
71
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
72
- return Object.fromEntries(names.map((name) => [
73
- Object.hasOwn(Object.prototype, name)
74
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
75
- : name,
76
- attrs[name],
77
- ]))
78
- }
79
- const componentInstance = getCurrentInstance()
80
- function reflectedProp(
81
- name: string,
82
- kebab: string,
83
- value: unknown,
84
- fallback: string | undefined,
85
- bound: boolean,
86
- separator?: string,
87
- ): string | undefined {
88
- const incoming = componentInstance?.vnode.props
89
- if (
90
- !bound
91
- && (incoming === null || incoming === undefined
92
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
93
- ) return fallback
94
- if (value === null || value === undefined) return undefined
95
- return Array.isArray(value) && separator !== undefined
96
- ? value.join(separator)
97
- : typeof value === 'object'
98
- ? JSON.stringify(value)
99
- : String(value)
100
- }
101
- const hydrationInstance = getCurrentInstance()
70
+ const reflectedProp = useReflectedProp()
102
71
 
103
- const hydrationNode = hydrationInstance?.vnode.el
104
- if (
105
- typeof window !== 'undefined' && hydrationNode != null
106
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
107
- ) {
108
- throw Object.assign(new Error('HR005: Server markup for <ui-grid> has an incompatible root.'), {
109
- name: 'HtmlDiagnosticError',
110
- diagnostic: Object.freeze({
111
- code: 'HR005',
112
- message: 'Server markup for <ui-grid> has an incompatible root.',
113
- }),
114
- })
115
- }
72
+ checkHydratedRoot('div', 'ui-grid')
116
73
 
117
74
  /** The values the styles' :host-state() rules test. */
118
75
  const hostState = computed(() =>
@@ -127,9 +84,9 @@ const hostState = computed(() =>
127
84
 
128
85
  <template>
129
86
  <div
130
- data-component="ui-grid"
87
+ class="ui-grid"
131
88
  v-bind="nativeAttrs($attrs)"
132
- :style="{ '--_grid-column-cap': checkedProps.columns ?? undefined }"
89
+ :style="{ '--_grid-column-cap': checkedProps.columns?.toString() }"
133
90
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
134
91
  :data-columns="reflectedProp('columns', 'columns', checkedProps.columns, undefined, false)"
135
92
  :data-gap="reflectedProp('gap', 'gap', checkedProps.gap, undefined, false)"
@@ -151,60 +108,65 @@ const hostState = computed(() =>
151
108
  inherits: false;
152
109
  }
153
110
 
154
- [data-component~="ui-grid"] {
155
- --_grid-gap: var(--ui-space-4);
156
- --_grid-min: 12rem;
157
- display: grid;
158
- gap: var(--ui-grid-gap, var(--_grid-gap));
159
- grid-template-columns:
160
- repeat(
161
- auto-fit,
162
- minmax(
163
- min(
164
- max(
165
- var(--ui-grid-min, var(--_grid-min)),
166
- calc(
167
- (
168
- 100% -
169
- (max(1, var(--_grid-column-cap, 9999)) - 1) * var(--ui-grid-gap, var(--_grid-gap))
170
- ) /
171
- max(1, var(--_grid-column-cap, 9999))
172
- )
173
- ),
174
- 100%
175
- ),
176
- 1fr
177
- )
178
- );
179
- min-inline-size: 0;
180
- max-inline-size: 100%;
181
- margin: 0;
182
- }
111
+ /* A component that sets its display still honours the hidden attribute on its root. */
183
112
 
184
- [data-component~="ui-grid"][data-ui-grid-state~="gap=xs"] {
185
- --_grid-gap: var(--ui-space-2);
186
- }
187
- [data-component~="ui-grid"][data-ui-grid-state~="gap=s"] {
188
- --_grid-gap: var(--ui-space-3);
189
- }
190
- [data-component~="ui-grid"][data-ui-grid-state~="gap=m"] {
191
- --_grid-gap: var(--ui-space-4);
192
- }
193
- [data-component~="ui-grid"][data-ui-grid-state~="gap=l"] {
194
- --_grid-gap: var(--ui-space-5);
195
- }
196
- [data-component~="ui-grid"][data-ui-grid-state~="gap=xl"] {
197
- --_grid-gap: var(--ui-space-6);
198
- }
199
- [data-component~="ui-grid"][data-ui-grid-state~="min=md"] {
200
- --_grid-min: 16rem;
201
- }
202
- [data-component~="ui-grid"][data-ui-grid-state~="min=lg"] {
203
- --_grid-min: 20rem;
204
- }
113
+ @scope (.ui-grid) {
114
+ :scope:where(:scope) {
115
+ --_grid-gap: var(--ui-space-4);
116
+ --_grid-min: 12rem;
117
+ display: grid;
118
+ gap: var(--ui-grid-gap, var(--_grid-gap));
119
+ grid-template-columns:
120
+ repeat(
121
+ auto-fit,
122
+ minmax(
123
+ min(
124
+ max(
125
+ var(--ui-grid-min, var(--_grid-min)),
126
+ calc(
127
+ (
128
+ 100% -
129
+ (
130
+ max(1, var(--_grid-column-cap, 9999)) - 1
131
+ ) *
132
+ var(--ui-grid-gap, var(--_grid-gap))
133
+ ) /
134
+ max(1, var(--_grid-column-cap, 9999))
135
+ )
136
+ ),
137
+ 100%
138
+ ),
139
+ 1fr
140
+ )
141
+ );
142
+ min-inline-size: 0;
143
+ max-inline-size: 100%;
144
+ margin: 0;
145
+ }
205
146
 
206
- /* A component that sets its display still honours the hidden attribute on its root. */
207
- [data-component~="ui-grid"][hidden] {
208
- display: none;
147
+ :scope:where(:scope):is([data-ui-grid-state~="gap=xs"]) {
148
+ --_grid-gap: var(--ui-space-2);
149
+ }
150
+ :scope:where(:scope):is([data-ui-grid-state~="gap=s"]) {
151
+ --_grid-gap: var(--ui-space-3);
152
+ }
153
+ :scope:where(:scope):is([data-ui-grid-state~="gap=m"]) {
154
+ --_grid-gap: var(--ui-space-4);
155
+ }
156
+ :scope:where(:scope):is([data-ui-grid-state~="gap=l"]) {
157
+ --_grid-gap: var(--ui-space-5);
158
+ }
159
+ :scope:where(:scope):is([data-ui-grid-state~="gap=xl"]) {
160
+ --_grid-gap: var(--ui-space-6);
161
+ }
162
+ :scope:where(:scope):is([data-ui-grid-state~="min=md"]) {
163
+ --_grid-min: 16rem;
164
+ }
165
+ :scope:where(:scope):is([data-ui-grid-state~="min=lg"]) {
166
+ --_grid-min: 20rem;
167
+ }
168
+ :scope:where(:scope):is([hidden]) {
169
+ display: none;
170
+ }
209
171
  }
210
172
  </style>
package/vue/UiIcon.vue CHANGED
@@ -1,7 +1,15 @@
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
- import { computed, getCurrentInstance, watchSyncEffect } from 'vue'
3
+ import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
5
+ import {
6
+ attribute,
7
+ checkHydratedRoot,
8
+ cycleCheckedComputed,
9
+ list,
10
+ nativeAttrs,
11
+ useReflectedProp,
12
+ } from './host'
5
13
  import { checkedProp, vPropValidity } from './props'
6
14
 
7
15
  defineOptions({ inheritAttrs: false })
@@ -35,63 +43,8 @@ void checkedProps.value
35
43
  watchSyncEffect(() => {
36
44
  void checkedProps.value
37
45
  })
38
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
39
- const names = Object.keys(attrs)
40
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
41
- return Object.fromEntries(names.map((name) => [
42
- Object.hasOwn(Object.prototype, name)
43
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
44
- : name,
45
- attrs[name],
46
- ]))
47
- }
48
- const componentInstance = getCurrentInstance()
49
- function reflectedProp(
50
- name: string,
51
- kebab: string,
52
- value: unknown,
53
- fallback: string | undefined,
54
- bound: boolean,
55
- separator?: string,
56
- ): string | undefined {
57
- const incoming = componentInstance?.vnode.props
58
- if (
59
- !bound
60
- && (incoming === null || incoming === undefined
61
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
62
- ) return fallback
63
- if (value === null || value === undefined) return undefined
64
- return Array.isArray(value) && separator !== undefined
65
- ? value.join(separator)
66
- : typeof value === 'object'
67
- ? JSON.stringify(value)
68
- : String(value)
69
- }
70
- const hydrationInstance = getCurrentInstance()
46
+ const reflectedProp = useReflectedProp()
71
47
 
72
- // Vue may return an in-progress computed value on a cyclic read; guard the public value access instead.
73
- function cycleCheckedComputed<T>(evaluate: () => T) {
74
- const value = computed(evaluate)
75
- let reading = false
76
- return new Proxy(value, {
77
- get(target, property) {
78
- if (property !== 'value') return Reflect.get(target, property)
79
- if (reading) {
80
- const message = 'A reactive computed value depends on itself.'
81
- throw Object.assign(new Error(`HR006: ${message}`), {
82
- name: 'HtmlDiagnosticError',
83
- diagnostic: Object.freeze({ code: 'HR006', message }),
84
- })
85
- }
86
- reading = true
87
- try {
88
- return target.value
89
- } finally {
90
- reading = false
91
- }
92
- },
93
- })
94
- }
95
48
  const shapes = cycleCheckedComputed(() =>
96
49
  (({
97
50
  'align-center': [{ tag: 'path', d: 'M21 5H3' }, { tag: 'path', d: 'M17 12H7' }, {
@@ -464,41 +417,12 @@ const shapes = cycleCheckedComputed(() =>
464
417
  x: [{ tag: 'path', d: 'M18 6 6 18' }, { tag: 'path', d: 'm6 6 12 12' }],
465
418
  }) as Record<string, any>)[checkedProps.value.name]
466
419
  )
467
- const hydrationNode = hydrationInstance?.vnode.el
468
- if (
469
- typeof window !== 'undefined' && hydrationNode != null
470
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('span'))
471
- ) {
472
- throw Object.assign(new Error('HR005: Server markup for <ui-icon> has an incompatible root.'), {
473
- name: 'HtmlDiagnosticError',
474
- diagnostic: Object.freeze({
475
- code: 'HR005',
476
- message: 'Server markup for <ui-icon> has an incompatible root.',
477
- }),
478
- })
479
- }
480
-
481
- function text(value: unknown): string {
482
- if (Array.isArray(value)) return value.map(text).join(' ')
483
- return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
484
- }
485
-
486
- function attribute(value: unknown): any {
487
- if (
488
- value === null || value === undefined || value === false
489
- || (typeof value === 'object' && !Array.isArray(value))
490
- ) return undefined
491
- return value === true ? '' : text(value)
492
- }
493
-
494
- function list(value: unknown): any[] {
495
- return Array.isArray(value) ? value : []
496
- }
420
+ checkHydratedRoot('span', 'ui-icon')
497
421
  </script>
498
422
 
499
423
  <template>
500
424
  <span
501
- data-component="ui-icon"
425
+ class="ui-icon"
502
426
  aria-hidden="true"
503
427
  v-bind="nativeAttrs($attrs)"
504
428
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
@@ -554,25 +478,27 @@ function list(value: unknown): any[] {
554
478
  inherits: false;
555
479
  }
556
480
 
557
- [data-component~="ui-icon"] {
558
- /* Hooks do not inherit, so the svg reads the stroke from the root. A Looma component that
559
- sizes the icons it renders sets --_ui-default-icon-*, which the icon's own hooks override. */
560
- --_ui-icon-stroke-width: var(--ui-icon-stroke-width, var(--_ui-default-icon-stroke-width));
481
+ /* A component that sets its display still honours the hidden attribute on its root. */
561
482
 
562
- display: inline-flex;
563
- flex: none;
564
- inline-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
565
- block-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
566
- }
483
+ @scope (.ui-icon) {
484
+ :scope:where(:scope) {
485
+ /* Hooks do not inherit, so the svg reads the stroke from the root. A Looma component that
486
+ sizes the icons it renders sets --_ui-default-icon-*, which the icon's own hooks override. */
487
+ --_ui-icon-stroke-width: var(--ui-icon-stroke-width, var(--_ui-default-icon-stroke-width));
567
488
 
568
- svg {
569
- inline-size: 100%;
570
- block-size: 100%;
571
- stroke-width: var(--_ui-icon-stroke-width, 2);
572
- }
489
+ display: inline-flex;
490
+ flex: none;
491
+ inline-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
492
+ block-size: var(--ui-icon-size, var(--_ui-default-icon-size, 1em));
493
+ }
573
494
 
574
- /* A component that sets its display still honours the hidden attribute on its root. */
575
- [data-component~="ui-icon"][hidden] {
576
- display: none;
495
+ svg {
496
+ inline-size: 100%;
497
+ block-size: 100%;
498
+ stroke-width: var(--_ui-icon-stroke-width, 2);
499
+ }
500
+ :scope:where(:scope):is([hidden]) {
501
+ display: none;
502
+ }
577
503
  }
578
504
  </style>
@@ -95,9 +95,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
95
95
  };
96
96
  }>> & Readonly<{}>, {
97
97
  label: string | null;
98
- guide: "bar" | "dot" | null;
99
- round: boolean | null;
100
98
  size: "sm" | "md" | "lg" | null;
99
+ round: boolean | null;
100
+ guide: "bar" | "dot" | null;
101
101
  tone: "neutral" | "accent" | null;
102
102
  variant: "solid" | "outline" | "ghost" | null;
103
103
  disabled: boolean | null;