@threadlabs/looma 0.28.4 → 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 (437) hide show
  1. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +96 -0
  2. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +56 -0
  3. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  4. package/dist/index.js +34 -33
  5. package/package.json +3 -2
  6. package/styles/ui-action-bar.css +13 -6
  7. package/styles/ui-affordance-scope.css +12 -5
  8. package/styles/ui-avatar-group.css +17 -10
  9. package/styles/ui-avatar.css +23 -16
  10. package/styles/ui-badge.css +78 -71
  11. package/styles/ui-breadcrumb-item.css +12 -5
  12. package/styles/ui-breadcrumbs.css +10 -3
  13. package/styles/ui-button.css +79 -72
  14. package/styles/ui-callout.css +29 -22
  15. package/styles/ui-card.css +25 -18
  16. package/styles/ui-checkbox.css +45 -37
  17. package/styles/ui-cluster.css +34 -27
  18. package/styles/ui-combobox.css +46 -39
  19. package/styles/ui-container.css +20 -13
  20. package/styles/ui-context-menu.css +17 -10
  21. package/styles/ui-cover.css +12 -5
  22. package/styles/ui-description-item.css +10 -3
  23. package/styles/ui-description-list.css +20 -13
  24. package/styles/ui-dialog.css +44 -35
  25. package/styles/ui-disclosure.css +32 -25
  26. package/styles/ui-editable.css +15 -8
  27. package/styles/ui-editor-image-toolbar.css +1 -0
  28. package/styles/ui-editor-insert-table-grid.css +11 -4
  29. package/styles/ui-editor-mention-menu-item.css +17 -8
  30. package/styles/ui-editor-mention-menu.css +14 -7
  31. package/styles/ui-editor-slash-menu-group.css +10 -3
  32. package/styles/ui-editor-slash-menu-item.css +15 -8
  33. package/styles/ui-editor-slash-menu.css +15 -8
  34. package/styles/ui-editor-surface.css +10 -3
  35. package/styles/ui-editor-table-context-menu.css +17 -10
  36. package/styles/ui-editor-table-overlay.css +17 -10
  37. package/styles/ui-editor-table-toolbar.css +22 -15
  38. package/styles/ui-editor-toolbar.css +18 -11
  39. package/styles/ui-floating-action-button.css +21 -14
  40. package/styles/ui-form-field.css +20 -13
  41. package/styles/ui-grid.css +21 -14
  42. package/styles/ui-icon-button.css +80 -73
  43. package/styles/ui-icon.css +14 -7
  44. package/styles/ui-image.css +25 -18
  45. package/styles/ui-input-group.css +34 -27
  46. package/styles/ui-input.css +42 -35
  47. package/styles/ui-list-item.css +33 -26
  48. package/styles/ui-list.css +22 -15
  49. package/styles/ui-listbox.css +22 -14
  50. package/styles/ui-menu-group.css +10 -3
  51. package/styles/ui-menu-item.css +29 -22
  52. package/styles/ui-menu.css +25 -18
  53. package/styles/ui-meter.css +36 -29
  54. package/styles/ui-nav-item.css +26 -19
  55. package/styles/ui-page-header.css +12 -5
  56. package/styles/ui-popover.css +27 -20
  57. package/styles/ui-radio-group.css +14 -6
  58. package/styles/ui-radio.css +24 -17
  59. package/styles/ui-reel.css +28 -21
  60. package/styles/ui-scroll-area.css +22 -15
  61. package/styles/ui-search-result-row.css +28 -21
  62. package/styles/ui-search-shell.css +24 -17
  63. package/styles/ui-section.css +14 -7
  64. package/styles/ui-select.css +33 -26
  65. package/styles/ui-separator.css +17 -10
  66. package/styles/ui-sidebar.css +35 -28
  67. package/styles/ui-spinner.css +32 -23
  68. package/styles/ui-stack.css +29 -21
  69. package/styles/ui-status-message.css +14 -7
  70. package/styles/ui-switch.css +29 -22
  71. package/styles/ui-switcher.css +27 -20
  72. package/styles/ui-table.css +14 -7
  73. package/styles/ui-tabs.css +24 -17
  74. package/styles/ui-text.css +35 -28
  75. package/styles/ui-textarea.css +37 -30
  76. package/styles/ui-toast-region.css +74 -63
  77. package/styles/ui-toast.css +21 -14
  78. package/styles/ui-tooltip.css +38 -31
  79. package/styles/ui-top-bar.css +19 -12
  80. package/styles/ui-tree-item.css +79 -71
  81. package/styles/ui-tree.css +18 -11
  82. package/vanilla/UiActionBar.d.ts +1 -1
  83. package/vanilla/UiActionBar.js +1 -1
  84. package/vanilla/UiAffordanceScope.d.ts +1 -1
  85. package/vanilla/UiAffordanceScope.js +1 -1
  86. package/vanilla/UiAvatar.d.ts +1 -1
  87. package/vanilla/UiAvatar.js +1 -1
  88. package/vanilla/UiAvatarGroup.d.ts +1 -1
  89. package/vanilla/UiAvatarGroup.js +1 -1
  90. package/vanilla/UiBadge.d.ts +1 -1
  91. package/vanilla/UiBadge.js +1 -1
  92. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbItem.js +1 -1
  94. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  95. package/vanilla/UiBreadcrumbs.js +1 -1
  96. package/vanilla/UiButton.d.ts +1 -1
  97. package/vanilla/UiButton.js +19 -57
  98. package/vanilla/UiCallout.d.ts +1 -1
  99. package/vanilla/UiCallout.js +25 -73
  100. package/vanilla/UiCard.d.ts +1 -1
  101. package/vanilla/UiCard.js +1 -1
  102. package/vanilla/UiCheckbox.d.ts +1 -1
  103. package/vanilla/UiCheckbox.js +1 -1
  104. package/vanilla/UiCluster.d.ts +1 -1
  105. package/vanilla/UiCluster.js +1 -1
  106. package/vanilla/UiCombobox.d.ts +1 -1
  107. package/vanilla/UiCombobox.js +60 -166
  108. package/vanilla/UiContainer.d.ts +1 -1
  109. package/vanilla/UiContainer.js +1 -1
  110. package/vanilla/UiContextMenu.d.ts +1 -1
  111. package/vanilla/UiContextMenu.js +1 -1
  112. package/vanilla/UiCover.d.ts +1 -1
  113. package/vanilla/UiCover.js +1 -1
  114. package/vanilla/UiDescriptionItem.d.ts +1 -1
  115. package/vanilla/UiDescriptionItem.js +1 -1
  116. package/vanilla/UiDescriptionList.d.ts +1 -1
  117. package/vanilla/UiDescriptionList.js +1 -1
  118. package/vanilla/UiDialog.d.ts +1 -1
  119. package/vanilla/UiDialog.js +4 -10
  120. package/vanilla/UiDisclosure.d.ts +1 -1
  121. package/vanilla/UiDisclosure.js +1 -1
  122. package/vanilla/UiEditable.d.ts +1 -1
  123. package/vanilla/UiEditable.js +7 -19
  124. package/vanilla/UiEditorImageToolbar.d.ts +19 -0
  125. package/vanilla/UiEditorImageToolbar.js +171 -0
  126. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  127. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  128. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenu.js +17 -37
  130. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +5 -4
  134. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  136. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  137. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  138. package/vanilla/UiEditorSurface.d.ts +1 -1
  139. package/vanilla/UiEditorSurface.js +1 -1
  140. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  141. package/vanilla/UiEditorTableContextMenu.js +6 -14
  142. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  143. package/vanilla/UiEditorTableOverlay.js +9 -25
  144. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorTableToolbar.js +25 -77
  146. package/vanilla/UiEditorToolbar.d.ts +1 -1
  147. package/vanilla/UiEditorToolbar.js +1 -1
  148. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  149. package/vanilla/UiFloatingActionButton.js +1 -1
  150. package/vanilla/UiFormField.d.ts +1 -1
  151. package/vanilla/UiFormField.js +1 -1
  152. package/vanilla/UiGrid.d.ts +1 -1
  153. package/vanilla/UiGrid.js +1 -1
  154. package/vanilla/UiIcon.d.ts +1 -1
  155. package/vanilla/UiIcon.js +15 -47
  156. package/vanilla/UiIconButton.d.ts +1 -1
  157. package/vanilla/UiIconButton.js +4 -10
  158. package/vanilla/UiImage.d.ts +1 -1
  159. package/vanilla/UiImage.js +1 -1
  160. package/vanilla/UiInput.d.ts +1 -1
  161. package/vanilla/UiInput.js +1 -1
  162. package/vanilla/UiInputGroup.d.ts +1 -1
  163. package/vanilla/UiInputGroup.js +1 -1
  164. package/vanilla/UiList.d.ts +1 -1
  165. package/vanilla/UiList.js +1 -1
  166. package/vanilla/UiListItem.d.ts +1 -1
  167. package/vanilla/UiListItem.js +1 -1
  168. package/vanilla/UiListbox.d.ts +1 -1
  169. package/vanilla/UiListbox.js +4 -10
  170. package/vanilla/UiMenu.d.ts +1 -1
  171. package/vanilla/UiMenu.js +1 -1
  172. package/vanilla/UiMenuGroup.d.ts +1 -1
  173. package/vanilla/UiMenuGroup.js +4 -10
  174. package/vanilla/UiMenuItem.d.ts +1 -1
  175. package/vanilla/UiMenuItem.js +4 -10
  176. package/vanilla/UiMeter.d.ts +1 -1
  177. package/vanilla/UiMeter.js +13 -33
  178. package/vanilla/UiNavItem.d.ts +1 -1
  179. package/vanilla/UiNavItem.js +1 -1
  180. package/vanilla/UiPageHeader.d.ts +1 -1
  181. package/vanilla/UiPageHeader.js +1 -1
  182. package/vanilla/UiPopover.d.ts +1 -1
  183. package/vanilla/UiPopover.js +1 -1
  184. package/vanilla/UiRadio.d.ts +1 -1
  185. package/vanilla/UiRadio.js +1 -1
  186. package/vanilla/UiRadioGroup.d.ts +1 -1
  187. package/vanilla/UiRadioGroup.js +1 -1
  188. package/vanilla/UiReel.d.ts +1 -1
  189. package/vanilla/UiReel.js +1 -1
  190. package/vanilla/UiScrollArea.d.ts +1 -1
  191. package/vanilla/UiScrollArea.js +1 -1
  192. package/vanilla/UiSearchResultRow.d.ts +1 -1
  193. package/vanilla/UiSearchResultRow.js +1 -1
  194. package/vanilla/UiSearchShell.d.ts +1 -1
  195. package/vanilla/UiSearchShell.js +1 -1
  196. package/vanilla/UiSection.d.ts +1 -1
  197. package/vanilla/UiSection.js +1 -1
  198. package/vanilla/UiSelect.d.ts +1 -1
  199. package/vanilla/UiSelect.js +1 -1
  200. package/vanilla/UiSeparator.d.ts +1 -1
  201. package/vanilla/UiSeparator.js +1 -1
  202. package/vanilla/UiSidebar.d.ts +1 -1
  203. package/vanilla/UiSidebar.js +1 -1
  204. package/vanilla/UiSpinner.d.ts +1 -1
  205. package/vanilla/UiSpinner.js +1 -1
  206. package/vanilla/UiStack.d.ts +1 -1
  207. package/vanilla/UiStack.js +1 -1
  208. package/vanilla/UiStatusMessage.d.ts +1 -1
  209. package/vanilla/UiStatusMessage.js +1 -1
  210. package/vanilla/UiSwitch.d.ts +1 -1
  211. package/vanilla/UiSwitch.js +1 -1
  212. package/vanilla/UiSwitcher.d.ts +1 -1
  213. package/vanilla/UiSwitcher.js +1 -1
  214. package/vanilla/UiTable.d.ts +1 -1
  215. package/vanilla/UiTable.js +1 -1
  216. package/vanilla/UiTabs.d.ts +1 -1
  217. package/vanilla/UiTabs.js +1 -1
  218. package/vanilla/UiText.d.ts +1 -1
  219. package/vanilla/UiText.js +1 -1
  220. package/vanilla/UiTextarea.d.ts +1 -1
  221. package/vanilla/UiTextarea.js +1 -1
  222. package/vanilla/UiToast.d.ts +1 -1
  223. package/vanilla/UiToast.js +1 -1
  224. package/vanilla/UiToastRegion.d.ts +1 -1
  225. package/vanilla/UiToastRegion.js +1 -1
  226. package/vanilla/UiTooltip.d.ts +1 -1
  227. package/vanilla/UiTooltip.js +1 -1
  228. package/vanilla/UiTopBar.d.ts +1 -1
  229. package/vanilla/UiTopBar.js +1 -1
  230. package/vanilla/UiTree.d.ts +1 -1
  231. package/vanilla/UiTree.js +1 -1
  232. package/vanilla/UiTreeItem.d.ts +1 -1
  233. package/vanilla/UiTreeItem.js +7 -19
  234. package/vanilla/index.js +1 -0
  235. package/vue/UiActionBar.vue +46 -78
  236. package/vue/UiAffordanceScope.vue +27 -66
  237. package/vue/UiAvatar.d.ts +10 -7
  238. package/vue/UiAvatar.vue +100 -218
  239. package/vue/UiAvatarGroup.d.ts +10 -7
  240. package/vue/UiAvatarGroup.vue +78 -160
  241. package/vue/UiBadge.d.ts +1 -1
  242. package/vue/UiBadge.vue +483 -520
  243. package/vue/UiBreadcrumbItem.vue +52 -123
  244. package/vue/UiBreadcrumbs.vue +27 -70
  245. package/vue/UiButton.d.ts +2 -2
  246. package/vue/UiButton.vue +420 -471
  247. package/vue/UiCallout.vue +131 -175
  248. package/vue/UiCard.d.ts +1 -1
  249. package/vue/UiCard.vue +112 -151
  250. package/vue/UiCheckbox.d.ts +13 -10
  251. package/vue/UiCheckbox.vue +160 -221
  252. package/vue/UiCluster.d.ts +1 -1
  253. package/vue/UiCluster.vue +84 -128
  254. package/vue/UiCombobox.d.ts +71 -68
  255. package/vue/UiCombobox.vue +417 -743
  256. package/vue/UiContainer.vue +43 -87
  257. package/vue/UiContextMenu.d.ts +6 -6
  258. package/vue/UiContextMenu.vue +78 -117
  259. package/vue/UiCover.vue +29 -69
  260. package/vue/UiDescriptionItem.vue +39 -82
  261. package/vue/UiDescriptionList.vue +64 -107
  262. package/vue/UiDialog.d.ts +22 -19
  263. package/vue/UiDialog.vue +193 -246
  264. package/vue/UiDisclosure.d.ts +22 -19
  265. package/vue/UiDisclosure.vue +192 -283
  266. package/vue/UiEditable.d.ts +5 -5
  267. package/vue/UiEditable.vue +124 -207
  268. package/vue/UiEditorImageToolbar.d.ts +54 -0
  269. package/vue/UiEditorImageToolbar.js +2 -0
  270. package/vue/UiEditorImageToolbar.vue +415 -0
  271. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  272. package/vue/UiEditorInsertTableGrid.vue +98 -266
  273. package/vue/UiEditorMentionMenu.d.ts +15 -12
  274. package/vue/UiEditorMentionMenu.vue +150 -239
  275. package/vue/UiEditorMentionMenuItem.vue +66 -110
  276. package/vue/UiEditorSlashMenu.d.ts +16 -13
  277. package/vue/UiEditorSlashMenu.vue +172 -253
  278. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  279. package/vue/UiEditorSlashMenuItem.vue +67 -115
  280. package/vue/UiEditorSurface.vue +19 -63
  281. package/vue/UiEditorTableContextMenu.vue +135 -269
  282. package/vue/UiEditorTableOverlay.d.ts +2 -2
  283. package/vue/UiEditorTableOverlay.vue +310 -479
  284. package/vue/UiEditorTableToolbar.d.ts +2 -2
  285. package/vue/UiEditorTableToolbar.vue +182 -357
  286. package/vue/UiEditorToolbar.vue +143 -183
  287. package/vue/UiFloatingActionButton.vue +70 -114
  288. package/vue/UiFormField.d.ts +1 -1
  289. package/vue/UiFormField.vue +76 -117
  290. package/vue/UiGrid.d.ts +1 -1
  291. package/vue/UiGrid.vue +65 -103
  292. package/vue/UiIcon.vue +32 -106
  293. package/vue/UiIconButton.d.ts +2 -2
  294. package/vue/UiIconButton.vue +359 -411
  295. package/vue/UiImage.vue +145 -180
  296. package/vue/UiInput.vue +158 -190
  297. package/vue/UiInputGroup.vue +199 -239
  298. package/vue/UiList.vue +67 -109
  299. package/vue/UiListItem.vue +154 -201
  300. package/vue/UiListbox.d.ts +10 -7
  301. package/vue/UiListbox.vue +86 -260
  302. package/vue/UiMenu.d.ts +11 -11
  303. package/vue/UiMenu.vue +118 -152
  304. package/vue/UiMenuGroup.vue +21 -67
  305. package/vue/UiMenuItem.d.ts +19 -16
  306. package/vue/UiMenuItem.vue +169 -262
  307. package/vue/UiMeter.d.ts +4 -4
  308. package/vue/UiMeter.vue +166 -680
  309. package/vue/UiNavItem.vue +140 -213
  310. package/vue/UiPageHeader.vue +81 -127
  311. package/vue/UiPopover.d.ts +7 -7
  312. package/vue/UiPopover.vue +90 -129
  313. package/vue/UiRadio.d.ts +12 -9
  314. package/vue/UiRadio.vue +91 -149
  315. package/vue/UiRadioGroup.d.ts +2 -2
  316. package/vue/UiRadioGroup.vue +47 -85
  317. package/vue/UiReel.vue +89 -130
  318. package/vue/UiScrollArea.d.ts +1 -1
  319. package/vue/UiScrollArea.vue +78 -119
  320. package/vue/UiSearchResultRow.vue +96 -149
  321. package/vue/UiSearchShell.d.ts +2 -2
  322. package/vue/UiSearchShell.vue +159 -196
  323. package/vue/UiSection.vue +105 -149
  324. package/vue/UiSelect.d.ts +1 -1
  325. package/vue/UiSelect.vue +114 -146
  326. package/vue/UiSeparator.vue +42 -85
  327. package/vue/UiSidebar.d.ts +10 -7
  328. package/vue/UiSidebar.vue +193 -260
  329. package/vue/UiSpinner.vue +54 -130
  330. package/vue/UiStack.vue +66 -107
  331. package/vue/UiStatusMessage.d.ts +1 -1
  332. package/vue/UiStatusMessage.vue +61 -135
  333. package/vue/UiSwitch.d.ts +12 -9
  334. package/vue/UiSwitch.vue +136 -194
  335. package/vue/UiSwitcher.vue +69 -107
  336. package/vue/UiTable.vue +121 -156
  337. package/vue/UiTabs.d.ts +1 -1
  338. package/vue/UiTabs.vue +139 -267
  339. package/vue/UiText.d.ts +4 -4
  340. package/vue/UiText.vue +145 -184
  341. package/vue/UiTextarea.d.ts +2 -2
  342. package/vue/UiTextarea.vue +162 -194
  343. package/vue/UiToast.vue +70 -118
  344. package/vue/UiToastRegion.vue +157 -276
  345. package/vue/UiTooltip.d.ts +21 -18
  346. package/vue/UiTooltip.vue +174 -234
  347. package/vue/UiTopBar.vue +48 -76
  348. package/vue/UiTree.vue +46 -79
  349. package/vue/UiTreeItem.d.ts +18 -15
  350. package/vue/UiTreeItem.vue +526 -668
  351. package/vue/chunks/UiActionBar.js +5 -17
  352. package/vue/chunks/UiAffordanceScope.js +7 -26
  353. package/vue/chunks/UiAvatar.js +20 -74
  354. package/vue/chunks/UiAvatarGroup.js +14 -56
  355. package/vue/chunks/UiBadge.js +10 -28
  356. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  357. package/vue/chunks/UiBreadcrumbs.js +7 -25
  358. package/vue/chunks/UiButton.js +80 -103
  359. package/vue/chunks/UiCallout.js +9 -27
  360. package/vue/chunks/UiCard.js +33 -53
  361. package/vue/chunks/UiCheckbox.js +14 -46
  362. package/vue/chunks/UiCluster.js +13 -31
  363. package/vue/chunks/UiCombobox.js +99 -237
  364. package/vue/chunks/UiContainer.js +9 -27
  365. package/vue/chunks/UiContextMenu.js +7 -26
  366. package/vue/chunks/UiCover.js +7 -25
  367. package/vue/chunks/UiDescriptionItem.js +6 -24
  368. package/vue/chunks/UiDescriptionList.js +9 -27
  369. package/vue/chunks/UiDialog.js +18 -47
  370. package/vue/chunks/UiDisclosure.js +19 -66
  371. package/vue/chunks/UiEditable.js +18 -60
  372. package/vue/chunks/UiEditorImageToolbar.js +515 -0
  373. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  374. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  375. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  376. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  377. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  378. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  379. package/vue/chunks/UiEditorSurface.js +7 -25
  380. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  381. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  382. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  383. package/vue/chunks/UiEditorToolbar.js +7 -26
  384. package/vue/chunks/UiFloatingActionButton.js +10 -28
  385. package/vue/chunks/UiFormField.js +8 -27
  386. package/vue/chunks/UiGrid.js +10 -28
  387. package/vue/chunks/UiIcon.js +21 -74
  388. package/vue/chunks/UiIconButton.js +18 -50
  389. package/vue/chunks/UiImage.js +14 -33
  390. package/vue/chunks/UiInput.js +12 -31
  391. package/vue/chunks/UiInputGroup.js +10 -29
  392. package/vue/chunks/UiList.js +17 -37
  393. package/vue/chunks/UiListItem.js +12 -30
  394. package/vue/chunks/UiListbox.js +22 -124
  395. package/vue/chunks/UiMenu.js +13 -32
  396. package/vue/chunks/UiMenuGroup.js +8 -26
  397. package/vue/chunks/UiMenuItem.js +35 -80
  398. package/vue/chunks/UiMeter.js +17 -351
  399. package/vue/chunks/UiNavItem.js +23 -57
  400. package/vue/chunks/UiPageHeader.js +7 -25
  401. package/vue/chunks/UiPopover.js +9 -28
  402. package/vue/chunks/UiRadio.js +11 -43
  403. package/vue/chunks/UiRadioGroup.js +13 -32
  404. package/vue/chunks/UiReel.js +10 -28
  405. package/vue/chunks/UiScrollArea.js +10 -29
  406. package/vue/chunks/UiSearchResultRow.js +10 -28
  407. package/vue/chunks/UiSearchShell.js +9 -28
  408. package/vue/chunks/UiSection.js +9 -27
  409. package/vue/chunks/UiSelect.js +10 -29
  410. package/vue/chunks/UiSeparator.js +10 -28
  411. package/vue/chunks/UiSidebar.js +15 -47
  412. package/vue/chunks/UiSpinner.js +8 -44
  413. package/vue/chunks/UiStack.js +12 -30
  414. package/vue/chunks/UiStatusMessage.js +10 -42
  415. package/vue/chunks/UiSwitch.js +11 -43
  416. package/vue/chunks/UiSwitcher.js +9 -28
  417. package/vue/chunks/UiTable.js +7 -26
  418. package/vue/chunks/UiTabs.js +15 -91
  419. package/vue/chunks/UiText.js +148 -168
  420. package/vue/chunks/UiTextarea.js +16 -35
  421. package/vue/chunks/UiToast.js +13 -37
  422. package/vue/chunks/UiToastRegion.js +16 -88
  423. package/vue/chunks/UiTooltip.js +14 -46
  424. package/vue/chunks/UiTopBar.js +5 -17
  425. package/vue/chunks/UiTree.js +13 -32
  426. package/vue/chunks/UiTreeItem.js +34 -90
  427. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  428. package/vue/chunks/control.js +3 -0
  429. package/vue/chunks/props.js +1 -1
  430. package/vue/components.css +7902 -7830
  431. package/vue/editor/index.js +42 -171
  432. package/vue/editor/primitives.d.ts +9 -1
  433. package/vue/host.ts +999 -14
  434. package/vue/index.d.ts +1 -0
  435. package/vue/index.js +9 -8
  436. package/vue/chunks/host.js +0 -443
  437. package/vue/editor/image-controls.d.ts +0 -19
@@ -1,20 +1,15 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
2
- <script lang="ts">
3
- const htmlNextAuthoredCheck2Reported = new Set<string>()
4
- function htmlNextAuthoredCheck2(accepted: boolean, location: string, message: string): boolean {
5
- if (!accepted && !htmlNextAuthoredCheck2Reported.has(location)) {
6
- htmlNextAuthoredCheck2Reported.add(location)
7
- console.warn(message)
8
- }
9
- return accepted
10
- }
11
- </script>
12
-
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
13
2
  <script setup lang="ts">
14
3
  import { computed, getCurrentInstance, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
15
4
  import type { PropType } from 'vue'
16
5
  import { vBindControl } from './control'
17
- import { createDispatch, useComponentHost } from './host'
6
+ import {
7
+ checkHydratedRoot,
8
+ createDispatch,
9
+ nativeAttrs,
10
+ useComponentHost,
11
+ useReflectedProp,
12
+ } from './host'
18
13
  import { acceptsControllerWrite } from './props'
19
14
  import { checkedProp, propValidityState, vPropValidity } from './props'
20
15
 
@@ -187,38 +182,7 @@ void checkedProps.value
187
182
  watchSyncEffect(() => {
188
183
  void checkedProps.value
189
184
  })
190
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
191
- const names = Object.keys(attrs)
192
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
193
- return Object.fromEntries(names.map((name) => [
194
- Object.hasOwn(Object.prototype, name)
195
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
196
- : name,
197
- attrs[name],
198
- ]))
199
- }
200
- const componentInstance = getCurrentInstance()
201
- function reflectedProp(
202
- name: string,
203
- kebab: string,
204
- value: unknown,
205
- fallback: string | undefined,
206
- bound: boolean,
207
- separator?: string,
208
- ): string | undefined {
209
- const incoming = componentInstance?.vnode.props
210
- if (
211
- !bound
212
- && (incoming === null || incoming === undefined
213
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
214
- ) return fallback
215
- if (value === null || value === undefined) return undefined
216
- return Array.isArray(value) && separator !== undefined
217
- ? value.join(separator)
218
- : typeof value === 'object'
219
- ? JSON.stringify(value)
220
- : String(value)
221
- }
185
+ const reflectedProp = useReflectedProp()
222
186
  const hydrationInstance = getCurrentInstance()
223
187
  const emit = defineEmits<{
224
188
  'update:checked': [value: boolean]
@@ -238,34 +202,8 @@ const root = ref<HTMLElement | null>(null)
238
202
  const inputElement = useTemplateRef<HTMLElement>('inputElement')
239
203
  const descriptionElement = useTemplateRef<HTMLElement>('descriptionElement')
240
204
  const internalChecked = ref(false)
241
- let guardedPrevious: any
242
- const guarded = computed(() => {
243
- if (
244
- !(htmlNextAuthoredCheck2(
245
- internalChecked.value == null || typeof internalChecked.value === 'boolean',
246
- '$internalChecked:internalChecked',
247
- './components/ui-checkbox/ui-checkbox.html: HR007: Reference internalChecked does not satisfy its declared type.',
248
- ))
249
- ) return guardedPrevious
250
- return guardedPrevious = internalChecked.value
251
- })
252
205
  provide('html-next:ui-checkbox:internalChecked', internalChecked)
253
- const hydrationNode = hydrationInstance?.vnode.el
254
- if (
255
- typeof window !== 'undefined' && hydrationNode != null
256
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('label'))
257
- ) {
258
- throw Object.assign(
259
- new Error('HR005: Server markup for <ui-checkbox> has an incompatible root.'),
260
- {
261
- name: 'HtmlDiagnosticError',
262
- diagnostic: Object.freeze({
263
- code: 'HR005',
264
- message: 'Server markup for <ui-checkbox> has an incompatible root.',
265
- }),
266
- },
267
- )
268
- }
206
+ checkHydratedRoot('label', 'ui-checkbox')
269
207
 
270
208
  /** The values the styles' :host-state() rules test. */
271
209
  const hostState = computed(() =>
@@ -334,7 +272,7 @@ useComponentHost(() => import('../components/ui-checkbox/ui-checkbox.js'), {
334
272
 
335
273
  <template>
336
274
  <label
337
- data-component="ui-checkbox"
275
+ class="ui-checkbox"
338
276
  v-bind="nativeAttrs($attrs)"
339
277
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
340
278
  :data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
@@ -387,102 +325,9 @@ useComponentHost(() => import('../components/ui-checkbox/ui-checkbox.js'), {
387
325
  inherits: false;
388
326
  }
389
327
 
390
- [data-component~="ui-checkbox"] {
391
- /* Hooks do not inherit, so the parts below read them from the root. */
392
- --_ui-checkbox-size: var(--ui-checkbox-size);
393
- --_ui-checkbox-invalid-border: var(
394
- --ui-checkbox-invalid-border,
395
- var(--ui-field-danger, var(--ui-danger-solid))
396
- );
397
-
398
- display: inline-flex;
399
- align-items: flex-start;
400
- gap: var(--ui-checkbox-gap, var(--ui-space-2));
401
- max-inline-size: 100%;
402
- color: var(--ui-text-primary);
403
- cursor: pointer;
404
- }
405
-
406
328
  /* The label, and under it an optional line saying what the choice means. */
407
- .text {
408
- display: flex;
409
- flex-direction: column;
410
- gap: var(--ui-space-1);
411
- min-inline-size: 0;
412
- }
413
-
414
- .label {
415
- min-inline-size: 0;
416
- line-height: var(--ui-line-height-md);
417
- }
418
-
419
- .description {
420
- color: var(--ui-text-secondary);
421
- font-size: var(--ui-font-size-sm);
422
- line-height: var(--ui-line-height);
423
- }
424
-
425
- .description:empty {
426
- display: none;
427
- }
428
-
429
- input {
430
- appearance: none;
431
- -webkit-appearance: none;
432
- position: relative;
433
- flex: 0 0 auto;
434
- inline-size: var(--_ui-checkbox-size, 1.125rem);
435
- block-size: var(--_ui-checkbox-size, 1.125rem);
436
- margin: 0.125em 0 0;
437
- border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
438
- border-radius: var(--ui-radius-sm);
439
- background: var(--ui-control-surface, var(--ui-surface-default));
440
- box-shadow: var(--ui-control-inset);
441
- cursor: pointer;
442
- transition:
443
- background-color var(--ui-motion-fast) var(--ui-motion-ease),
444
- border-color var(--ui-motion-fast) var(--ui-motion-ease),
445
- box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
446
- }
447
-
448
- input::after {
449
- content: "";
450
- position: absolute;
451
- opacity: 0;
452
- transition: opacity 120ms var(--ui-motion-ease);
453
- }
454
-
455
- input:checked,
456
- input:indeterminate {
457
- border-color: var(--ui-accent-solid);
458
- background: var(--ui-accent-solid);
459
- box-shadow: var(--ui-control-inset);
460
- }
461
329
 
462
330
  /* Centre the tick's box and lift it slightly for the rotated check shape. */
463
- input:checked::after {
464
- inset: 0;
465
- margin: auto;
466
- inline-size: 0.28rem;
467
- block-size: 0.5rem;
468
- /* Longhands, not `border: solid var(...)`: lowering drops a shorthand that omits a
469
- component, which left the tick with no style and no colour. */
470
- border-style: solid;
471
- border-color: var(--ui-text-on-accent);
472
- border-width: 0 0.125rem 0.125rem 0;
473
- opacity: 1;
474
- transform: translateY(-0.09rem) rotate(45deg);
475
- animation: ui-checkbox-check 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
476
- }
477
-
478
- input:indeterminate::after {
479
- inset: 50% 0.23rem auto;
480
- block-size: 0.125rem;
481
- border-radius: var(--ui-radius-round);
482
- background: var(--ui-text-on-accent);
483
- opacity: 1;
484
- transform: translateY(-50%);
485
- }
486
331
 
487
332
  @keyframes ui-checkbox-check {
488
333
  from {
@@ -499,73 +344,167 @@ input:indeterminate::after {
499
344
  }
500
345
  }
501
346
 
502
- @media (prefers-reduced-motion: reduce) {
347
+ /* A sized choice keeps its box and aligns instead: the label takes that size's field type size,
348
+ and the first line centres in that control height, so the label shares a row's baseline.
349
+ Multi-line labels and descriptions still grow downward from that first line. */
350
+
351
+ /* A component that sets its display still honours the hidden attribute on its root. */
352
+
353
+ @scope (.ui-checkbox) {
354
+ :scope:where(:scope) {
355
+ /* Hooks do not inherit, so the parts below read them from the root. */
356
+ --_ui-checkbox-size: var(--ui-checkbox-size);
357
+ --_ui-checkbox-invalid-border: var(
358
+ --ui-checkbox-invalid-border,
359
+ var(--ui-field-danger, var(--ui-danger-solid))
360
+ );
361
+
362
+ display: inline-flex;
363
+ align-items: flex-start;
364
+ gap: var(--ui-checkbox-gap, var(--ui-space-2));
365
+ max-inline-size: 100%;
366
+ color: var(--ui-text-primary);
367
+ cursor: pointer;
368
+ }
369
+ .text {
370
+ display: flex;
371
+ flex-direction: column;
372
+ gap: var(--ui-space-1);
373
+ min-inline-size: 0;
374
+ }
375
+
376
+ .label {
377
+ min-inline-size: 0;
378
+ line-height: var(--ui-line-height-md);
379
+ }
380
+
381
+ .description {
382
+ color: var(--ui-text-secondary);
383
+ font-size: var(--ui-font-size-sm);
384
+ line-height: var(--ui-line-height);
385
+ }
386
+
387
+ .description:empty {
388
+ display: none;
389
+ }
390
+
391
+ input {
392
+ appearance: none;
393
+ -webkit-appearance: none;
394
+ position: relative;
395
+ flex: 0 0 auto;
396
+ inline-size: var(--_ui-checkbox-size, 1.125rem);
397
+ block-size: var(--_ui-checkbox-size, 1.125rem);
398
+ margin: 0.125em 0 0;
399
+ border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
400
+ border-radius: var(--ui-radius-sm);
401
+ background: var(--ui-control-surface, var(--ui-surface-default));
402
+ box-shadow: var(--ui-control-inset);
403
+ cursor: pointer;
404
+ transition:
405
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
406
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
407
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
408
+ }
409
+
503
410
  input::after {
504
- transition: none;
505
- animation: none;
411
+ content: "";
412
+ position: absolute;
413
+ opacity: 0;
414
+ transition: opacity 120ms var(--ui-motion-ease);
506
415
  }
507
- }
508
416
 
509
- input:hover:enabled {
510
- border-color: var(--ui-accent-solid);
511
- }
417
+ input:checked, input:indeterminate {
418
+ border-color: var(--ui-accent-solid);
419
+ background: var(--ui-accent-solid);
420
+ box-shadow: var(--ui-control-inset);
421
+ }
422
+ input:checked::after {
423
+ inset: 0;
424
+ margin: auto;
425
+ inline-size: 0.28rem;
426
+ block-size: 0.5rem;
427
+ /* Longhands, not `border: solid var(...)`: lowering drops a shorthand that omits a
428
+ component, which left the tick with no style and no colour. */
429
+ border-style: solid;
430
+ border-color: var(--ui-text-on-accent);
431
+ border-width: 0 0.125rem 0.125rem 0;
432
+ opacity: 1;
433
+ transform: translateY(-0.09rem) rotate(45deg);
434
+ animation: ui-checkbox-check 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1))
435
+ both;
436
+ }
512
437
 
513
- input:focus-visible {
514
- outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
515
- outline-offset: var(--ui-focus-width);
516
- }
438
+ input:indeterminate::after {
439
+ inset: 50% 0.23rem auto;
440
+ block-size: 0.125rem;
441
+ border-radius: var(--ui-radius-round);
442
+ background: var(--ui-text-on-accent);
443
+ opacity: 1;
444
+ transform: translateY(-50%);
445
+ }
517
446
 
518
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="invalid"] input {
519
- border-color: var(--_ui-checkbox-invalid-border);
520
- }
447
+ @media (prefers-reduced-motion: reduce) {
448
+ input::after {
449
+ transition: none;
450
+ animation: none;
451
+ }
452
+ }
521
453
 
522
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] {
523
- color: var(--ui-disabled-text);
524
- cursor: not-allowed;
525
- }
526
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] .description {
527
- color: var(--ui-disabled-text);
528
- }
529
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input {
530
- border-color: var(--ui-disabled-border);
531
- background: var(--ui-disabled-surface);
532
- box-shadow: none;
533
- cursor: not-allowed;
534
- }
454
+ input:hover:enabled {
455
+ border-color: var(--ui-accent-solid);
456
+ }
535
457
 
536
- /* A sized choice keeps its box and aligns instead: the label takes that size's field type size,
537
- and the first line centres in that control height, so the label shares a row's baseline.
538
- Multi-line labels and descriptions still grow downward from that first line. */
539
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] {
540
- --_font: var(--ui-font-size-sm);
541
- --_row: var(--ui-control-size-sm);
542
- }
458
+ input:focus-visible {
459
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
460
+ outline-offset: var(--ui-focus-width);
461
+ }
543
462
 
544
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] {
545
- --_font: var(--ui-font-size-md);
546
- --_row: var(--ui-control-size-lg);
547
- }
463
+ :scope[data-ui-checkbox-state~="invalid"] input {
464
+ border-color: var(--_ui-checkbox-invalid-border);
465
+ }
548
466
 
549
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"],
550
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] {
551
- --_line: calc(var(--_font) * var(--ui-line-height-md));
552
- font-size: var(--_font);
553
- padding-block: calc((var(--_row) - var(--_line)) / 2);
554
- }
467
+ :scope:where(:scope):is([data-ui-checkbox-state~="disabled"]) {
468
+ color: var(--ui-disabled-text);
469
+ cursor: not-allowed;
470
+ }
471
+ :scope[data-ui-checkbox-state~="disabled"] .description {
472
+ color: var(--ui-disabled-text);
473
+ }
474
+ :scope[data-ui-checkbox-state~="disabled"] input {
475
+ border-color: var(--ui-disabled-border);
476
+ background: var(--ui-disabled-surface);
477
+ box-shadow: none;
478
+ cursor: not-allowed;
479
+ }
480
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=sm"]) {
481
+ --_font: var(--ui-font-size-sm);
482
+ --_row: var(--ui-control-size-sm);
483
+ }
555
484
 
556
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] input,
557
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=lg"] input {
558
- margin-top: calc((var(--_line) - var(--_ui-checkbox-size, 1.125rem)) / 2);
559
- }
485
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=lg"]) {
486
+ --_font: var(--ui-font-size-md);
487
+ --_row: var(--ui-control-size-lg);
488
+ }
560
489
 
561
- @media (pointer: coarse) {
562
- [data-component~="ui-checkbox"][data-ui-checkbox-state~="size=sm"] {
563
- --_row: var(--ui-control-min-block-size);
490
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=sm"]),
491
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=lg"]) {
492
+ --_line: calc(var(--_font) * var(--ui-line-height-md));
493
+ font-size: var(--_font);
494
+ padding-block: calc((var(--_row) - var(--_line)) / 2);
564
495
  }
565
- }
566
496
 
567
- /* A component that sets its display still honours the hidden attribute on its root. */
568
- [data-component~="ui-checkbox"][hidden] {
569
- display: none;
497
+ :scope[data-ui-checkbox-state~="size=sm"] input, :scope[data-ui-checkbox-state~="size=lg"] input {
498
+ margin-top: calc((var(--_line) - var(--_ui-checkbox-size, 1.125rem)) / 2);
499
+ }
500
+
501
+ @media (pointer: coarse) {
502
+ :scope:where(:scope):is([data-ui-checkbox-state~="size=sm"]) {
503
+ --_row: var(--ui-control-min-block-size);
504
+ }
505
+ }
506
+ :scope:where(:scope):is([hidden]) {
507
+ display: none;
508
+ }
570
509
  }
571
510
  </style>
@@ -62,9 +62,9 @@ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPro
62
62
  default: null;
63
63
  };
64
64
  }>> & Readonly<{}>, {
65
+ fixed: boolean | null;
65
66
  align: "center" | "start" | "stretch" | "end" | "baseline" | null;
66
67
  padding: "s" | "none" | "m" | "l" | null;
67
- fixed: boolean | null;
68
68
  gap: "s" | "xs" | "m" | "l" | "xl" | null;
69
69
  justify: "center" | "start" | "end" | "between" | null;
70
70
  wrap: "wrap" | "nowrap" | null;
package/vue/UiCluster.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 })
@@ -148,56 +149,9 @@ void checkedProps.value
148
149
  watchSyncEffect(() => {
149
150
  void checkedProps.value
150
151
  })
151
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
152
- const names = Object.keys(attrs)
153
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
154
- return Object.fromEntries(names.map((name) => [
155
- Object.hasOwn(Object.prototype, name)
156
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
157
- : name,
158
- attrs[name],
159
- ]))
160
- }
161
- const componentInstance = getCurrentInstance()
162
- function reflectedProp(
163
- name: string,
164
- kebab: string,
165
- value: unknown,
166
- fallback: string | undefined,
167
- bound: boolean,
168
- separator?: string,
169
- ): string | undefined {
170
- const incoming = componentInstance?.vnode.props
171
- if (
172
- !bound
173
- && (incoming === null || incoming === undefined
174
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
175
- ) return fallback
176
- if (value === null || value === undefined) return undefined
177
- return Array.isArray(value) && separator !== undefined
178
- ? value.join(separator)
179
- : typeof value === 'object'
180
- ? JSON.stringify(value)
181
- : String(value)
182
- }
183
- const hydrationInstance = getCurrentInstance()
152
+ const reflectedProp = useReflectedProp()
184
153
 
185
- const hydrationNode = hydrationInstance?.vnode.el
186
- if (
187
- typeof window !== 'undefined' && hydrationNode != null
188
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
189
- ) {
190
- throw Object.assign(
191
- new Error('HR005: Server markup for <ui-cluster> has an incompatible root.'),
192
- {
193
- name: 'HtmlDiagnosticError',
194
- diagnostic: Object.freeze({
195
- code: 'HR005',
196
- message: 'Server markup for <ui-cluster> has an incompatible root.',
197
- }),
198
- },
199
- )
200
- }
154
+ checkHydratedRoot('div', 'ui-cluster')
201
155
 
202
156
  /** The values the styles' :host-state() rules test. */
203
157
  const hostState = computed(() =>
@@ -224,7 +178,7 @@ const hostState = computed(() =>
224
178
 
225
179
  <template>
226
180
  <div
227
- data-component="ui-cluster"
181
+ class="ui-cluster"
228
182
  v-bind="nativeAttrs($attrs)"
229
183
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
230
184
  :data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
@@ -247,84 +201,86 @@ const hostState = computed(() =>
247
201
  inherits: false;
248
202
  }
249
203
 
250
- [data-component~="ui-cluster"] {
251
- --_layout-gap: var(--ui-space-3);
252
- display: flex;
253
- flex-wrap: wrap;
254
- align-items: center;
255
- gap: var(--ui-cluster-gap, var(--_layout-gap));
256
- min-inline-size: 0;
257
- max-inline-size: 100%;
258
- margin: 0;
259
- }
204
+ /* A component that sets its display still honours the hidden attribute on its root. */
260
205
 
261
- [data-component~="ui-cluster"][data-ui-cluster-state~="fixed"] {
262
- flex: none;
263
- }
264
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=s"] {
265
- padding: var(--ui-space-2);
266
- }
267
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=m"] {
268
- padding: var(--ui-space-3);
269
- }
270
- [data-component~="ui-cluster"][data-ui-cluster-state~="padding=l"] {
271
- padding: var(--ui-space-4);
272
- }
273
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=s"] {
274
- padding-inline-end: var(--ui-space-2);
275
- }
276
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=m"] {
277
- padding-inline-end: var(--ui-space-3);
278
- }
279
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=l"] {
280
- padding-inline-end: var(--ui-space-4);
281
- }
282
- [data-component~="ui-cluster"][data-ui-cluster-state~="paddingEnd=xl"] {
283
- padding-inline-end: calc(var(--ui-space-4) * 4);
284
- }
206
+ @scope (.ui-cluster) {
207
+ :scope:where(:scope) {
208
+ --_layout-gap: var(--ui-space-3);
209
+ display: flex;
210
+ flex-wrap: wrap;
211
+ align-items: center;
212
+ gap: var(--ui-cluster-gap, var(--_layout-gap));
213
+ min-inline-size: 0;
214
+ max-inline-size: 100%;
215
+ margin: 0;
216
+ }
285
217
 
286
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xs"] {
287
- --_layout-gap: var(--ui-space-2);
288
- }
289
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=s"] {
290
- --_layout-gap: var(--ui-space-3);
291
- }
292
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=m"] {
293
- --_layout-gap: var(--ui-space-4);
294
- }
295
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=l"] {
296
- --_layout-gap: var(--ui-space-5);
297
- }
298
- [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xl"] {
299
- --_layout-gap: var(--ui-space-6);
300
- }
301
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=start"] {
302
- align-items: flex-start;
303
- }
304
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=end"] {
305
- align-items: flex-end;
306
- }
307
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=baseline"] {
308
- align-items: baseline;
309
- }
310
- [data-component~="ui-cluster"][data-ui-cluster-state~="align=stretch"] {
311
- align-items: stretch;
312
- }
313
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=center"] {
314
- justify-content: center;
315
- }
316
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=end"] {
317
- justify-content: flex-end;
318
- }
319
- [data-component~="ui-cluster"][data-ui-cluster-state~="justify=between"] {
320
- justify-content: space-between;
321
- }
322
- [data-component~="ui-cluster"][data-ui-cluster-state~="wrap=nowrap"] {
323
- flex-wrap: nowrap;
324
- }
218
+ :scope:where(:scope):is([data-ui-cluster-state~="fixed"]) {
219
+ flex: none;
220
+ }
221
+ :scope:where(:scope):is([data-ui-cluster-state~="padding=s"]) {
222
+ padding: var(--ui-space-2);
223
+ }
224
+ :scope:where(:scope):is([data-ui-cluster-state~="padding=m"]) {
225
+ padding: var(--ui-space-3);
226
+ }
227
+ :scope:where(:scope):is([data-ui-cluster-state~="padding=l"]) {
228
+ padding: var(--ui-space-4);
229
+ }
230
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=s"]) {
231
+ padding-inline-end: var(--ui-space-2);
232
+ }
233
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=m"]) {
234
+ padding-inline-end: var(--ui-space-3);
235
+ }
236
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=l"]) {
237
+ padding-inline-end: var(--ui-space-4);
238
+ }
239
+ :scope:where(:scope):is([data-ui-cluster-state~="paddingEnd=xl"]) {
240
+ padding-inline-end: calc(var(--ui-space-4) * 4);
241
+ }
325
242
 
326
- /* A component that sets its display still honours the hidden attribute on its root. */
327
- [data-component~="ui-cluster"][hidden] {
328
- display: none;
243
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=xs"]) {
244
+ --_layout-gap: var(--ui-space-2);
245
+ }
246
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=s"]) {
247
+ --_layout-gap: var(--ui-space-3);
248
+ }
249
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=m"]) {
250
+ --_layout-gap: var(--ui-space-4);
251
+ }
252
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=l"]) {
253
+ --_layout-gap: var(--ui-space-5);
254
+ }
255
+ :scope:where(:scope):is([data-ui-cluster-state~="gap=xl"]) {
256
+ --_layout-gap: var(--ui-space-6);
257
+ }
258
+ :scope:where(:scope):is([data-ui-cluster-state~="align=start"]) {
259
+ align-items: flex-start;
260
+ }
261
+ :scope:where(:scope):is([data-ui-cluster-state~="align=end"]) {
262
+ align-items: flex-end;
263
+ }
264
+ :scope:where(:scope):is([data-ui-cluster-state~="align=baseline"]) {
265
+ align-items: baseline;
266
+ }
267
+ :scope:where(:scope):is([data-ui-cluster-state~="align=stretch"]) {
268
+ align-items: stretch;
269
+ }
270
+ :scope:where(:scope):is([data-ui-cluster-state~="justify=center"]) {
271
+ justify-content: center;
272
+ }
273
+ :scope:where(:scope):is([data-ui-cluster-state~="justify=end"]) {
274
+ justify-content: flex-end;
275
+ }
276
+ :scope:where(:scope):is([data-ui-cluster-state~="justify=between"]) {
277
+ justify-content: space-between;
278
+ }
279
+ :scope:where(:scope):is([data-ui-cluster-state~="wrap=nowrap"]) {
280
+ flex-wrap: nowrap;
281
+ }
282
+ :scope:where(:scope):is([hidden]) {
283
+ display: none;
284
+ }
329
285
  }
330
286
  </style>