@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
package/vue/UiSwitch.d.ts CHANGED
@@ -1,7 +1,11 @@
1
1
  import type { PropType } from 'vue';
2
- declare const _default: typeof __VLS_export;
3
- export default _default;
4
- declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ declare var __VLS_1: {}, __VLS_3: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_1) => any;
5
+ } & {
6
+ description?: (props: typeof __VLS_3) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
9
  checked: {
6
10
  type: PropType<boolean | null>;
7
11
  default: boolean;
@@ -70,15 +74,14 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import
70
74
  }>, {
71
75
  name: string | null;
72
76
  value: string | null;
77
+ required: boolean | null;
73
78
  size: "sm" | "md" | "lg" | null;
74
79
  disabled: boolean | null;
75
80
  checked: boolean | null;
76
- required: boolean | null;
77
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
78
- default?: (props: {}) => any;
79
- } & {
80
- description?: (props: {}) => any;
81
- }>;
81
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
82
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
83
+ declare const _default: typeof __VLS_export;
84
+ export default _default;
82
85
  type __VLS_WithSlots<T, S> = T & {
83
86
  new (): {
84
87
  $slots: S;
package/vue/UiSwitch.vue CHANGED
@@ -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
 
@@ -136,38 +131,7 @@ void checkedProps.value
136
131
  watchSyncEffect(() => {
137
132
  void checkedProps.value
138
133
  })
139
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
140
- const names = Object.keys(attrs)
141
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
142
- return Object.fromEntries(names.map((name) => [
143
- Object.hasOwn(Object.prototype, name)
144
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
145
- : name,
146
- attrs[name],
147
- ]))
148
- }
149
- const componentInstance = getCurrentInstance()
150
- function reflectedProp(
151
- name: string,
152
- kebab: string,
153
- value: unknown,
154
- fallback: string | undefined,
155
- bound: boolean,
156
- separator?: string,
157
- ): string | undefined {
158
- const incoming = componentInstance?.vnode.props
159
- if (
160
- !bound
161
- && (incoming === null || incoming === undefined
162
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
163
- ) return fallback
164
- if (value === null || value === undefined) return undefined
165
- return Array.isArray(value) && separator !== undefined
166
- ? value.join(separator)
167
- : typeof value === 'object'
168
- ? JSON.stringify(value)
169
- : String(value)
170
- }
134
+ const reflectedProp = useReflectedProp()
171
135
  const hydrationInstance = getCurrentInstance()
172
136
  const emit = defineEmits<{
173
137
  'update:checked': [value: boolean]
@@ -187,31 +151,8 @@ const root = ref<HTMLElement | null>(null)
187
151
  const inputElement = useTemplateRef<HTMLElement>('inputElement')
188
152
  const descriptionElement = useTemplateRef<HTMLElement>('descriptionElement')
189
153
  const internalChecked = ref(false)
190
- let guardedPrevious: any
191
- const guarded = computed(() => {
192
- if (
193
- !(htmlNextAuthoredCheck2(
194
- internalChecked.value == null || typeof internalChecked.value === 'boolean',
195
- '$internalChecked:internalChecked',
196
- './components/ui-switch/ui-switch.html: HR007: Reference internalChecked does not satisfy its declared type.',
197
- ))
198
- ) return guardedPrevious
199
- return guardedPrevious = internalChecked.value
200
- })
201
154
  provide('html-next:ui-switch:internalChecked', internalChecked)
202
- const hydrationNode = hydrationInstance?.vnode.el
203
- if (
204
- typeof window !== 'undefined' && hydrationNode != null
205
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('label'))
206
- ) {
207
- throw Object.assign(new Error('HR005: Server markup for <ui-switch> has an incompatible root.'), {
208
- name: 'HtmlDiagnosticError',
209
- diagnostic: Object.freeze({
210
- code: 'HR005',
211
- message: 'Server markup for <ui-switch> has an incompatible root.',
212
- }),
213
- })
214
- }
155
+ checkHydratedRoot('label', 'ui-switch')
215
156
 
216
157
  /** The values the styles' :host-state() rules test. */
217
158
  const hostState = computed(() =>
@@ -269,7 +210,7 @@ useComponentHost(() => import('../components/ui-switch/ui-switch.js'), {
269
210
 
270
211
  <template>
271
212
  <label
272
- data-component="ui-switch"
213
+ class="ui-switch"
273
214
  v-bind="nativeAttrs($attrs)"
274
215
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
275
216
  :data-checked="reflectedProp('checked', 'checked', checkedProps.checked, undefined, false)"
@@ -317,150 +258,151 @@ useComponentHost(() => import('../components/ui-switch/ui-switch.js'), {
317
258
  inherits: false;
318
259
  }
319
260
 
320
- [data-component~="ui-switch"] {
321
- /* Hooks do not inherit, so the parts below read them from the root. */
322
- --_ui-switch-track-width: var(--ui-switch-track-width);
323
- --_ui-switch-track-height: var(--ui-switch-track-height);
261
+ /* The label, and under it an optional line saying what the choice means. */
324
262
 
325
- display: inline-flex;
326
- align-items: flex-start;
327
- gap: var(--ui-switch-gap, var(--ui-space-2));
328
- max-inline-size: 100%;
329
- color: var(--ui-text-primary);
330
- cursor: pointer;
331
- }
263
+ /* A sized switch keeps its track and aligns instead: the label takes that size's field type size,
264
+ and the first line centres in that control height, so the label shares a row's baseline.
265
+ Multi-line labels and descriptions still grow downward from that first line. */
332
266
 
333
- /* The label, and under it an optional line saying what the choice means. */
334
- .text {
335
- display: flex;
336
- flex-direction: column;
337
- gap: var(--ui-space-1);
338
- min-inline-size: 0;
339
- }
267
+ /* The label centres on the track. */
340
268
 
341
- .label {
342
- min-inline-size: 0;
343
- line-height: var(--ui-line-height-md);
344
- }
269
+ /* A component that sets its display still honours the hidden attribute on its root. */
345
270
 
346
- .description {
347
- color: var(--ui-text-secondary);
348
- font-size: var(--ui-font-size-sm);
349
- line-height: var(--ui-line-height);
350
- }
271
+ @scope (.ui-switch) {
272
+ :scope:where(:scope) {
273
+ /* Hooks do not inherit, so the parts below read them from the root. */
274
+ --_ui-switch-track-width: var(--ui-switch-track-width);
275
+ --_ui-switch-track-height: var(--ui-switch-track-height);
351
276
 
352
- .description:empty {
353
- display: none;
354
- }
277
+ display: inline-flex;
278
+ align-items: flex-start;
279
+ gap: var(--ui-switch-gap, var(--ui-space-2));
280
+ max-inline-size: 100%;
281
+ color: var(--ui-text-primary);
282
+ cursor: pointer;
283
+ }
284
+ .text {
285
+ display: flex;
286
+ flex-direction: column;
287
+ gap: var(--ui-space-1);
288
+ min-inline-size: 0;
289
+ }
355
290
 
356
- input {
357
- appearance: none;
358
- -webkit-appearance: none;
359
- position: relative;
360
- flex: 0 0 auto;
361
- width: var(--_ui-switch-track-width, 2.5rem);
362
- height: var(--_ui-switch-track-height, 1.5rem);
363
- padding: 0;
364
- border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
365
- border-radius: var(--ui-radius-round);
366
- background-color: var(--ui-control-surface, var(--ui-surface-default));
367
- box-shadow: var(--ui-control-inset);
368
- cursor: pointer;
369
- transition:
370
- background-color var(--ui-motion-base) var(--ui-motion-ease),
371
- border-color var(--ui-motion-base) var(--ui-motion-ease);
372
- margin: 0;
373
- }
291
+ .label {
292
+ min-inline-size: 0;
293
+ line-height: var(--ui-line-height-md);
294
+ }
374
295
 
375
- input::after {
376
- content: "";
377
- position: absolute;
378
- top: 3px;
379
- left: 3px;
380
- width: 1rem;
381
- height: 1rem;
382
- border-radius: var(--ui-radius-round);
383
- background: var(--ui-text-secondary);
384
- box-shadow: var(--ui-shadow-xs);
385
- transition:
386
- transform var(--ui-motion-base) var(--ui-motion-ease),
387
- background-color var(--ui-motion-base) var(--ui-motion-ease);
388
- }
296
+ .description {
297
+ color: var(--ui-text-secondary);
298
+ font-size: var(--ui-font-size-sm);
299
+ line-height: var(--ui-line-height);
300
+ }
389
301
 
390
- input:checked {
391
- background-color: var(--ui-accent-solid);
392
- border-color: var(--ui-accent-solid);
393
- }
302
+ .description:empty {
303
+ display: none;
304
+ }
394
305
 
395
- input:checked::after {
396
- transform: translateX(1rem);
397
- background: var(--ui-text-on-accent);
398
- }
306
+ input {
307
+ appearance: none;
308
+ -webkit-appearance: none;
309
+ position: relative;
310
+ flex: 0 0 auto;
311
+ width: var(--_ui-switch-track-width, 2.5rem);
312
+ height: var(--_ui-switch-track-height, 1.5rem);
313
+ padding: 0;
314
+ border: var(--ui-border-width) solid var(--ui-control-border, var(--ui-border-strong));
315
+ border-radius: var(--ui-radius-round);
316
+ background-color: var(--ui-control-surface, var(--ui-surface-default));
317
+ box-shadow: var(--ui-control-inset);
318
+ cursor: pointer;
319
+ transition:
320
+ background-color var(--ui-motion-base) var(--ui-motion-ease),
321
+ border-color var(--ui-motion-base) var(--ui-motion-ease);
322
+ margin: 0;
323
+ }
399
324
 
400
- input:focus-visible {
401
- outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
402
- outline-offset: var(--ui-focus-width);
403
- }
325
+ input::after {
326
+ content: "";
327
+ position: absolute;
328
+ top: 3px;
329
+ left: 3px;
330
+ width: 1rem;
331
+ height: 1rem;
332
+ border-radius: var(--ui-radius-round);
333
+ background: var(--ui-text-secondary);
334
+ box-shadow: var(--ui-shadow-xs);
335
+ transition:
336
+ transform var(--ui-motion-base) var(--ui-motion-ease),
337
+ background-color var(--ui-motion-base) var(--ui-motion-ease);
338
+ }
404
339
 
405
- [data-component~="ui-switch"][data-ui-switch-state~="disabled"] {
406
- color: var(--ui-disabled-text);
407
- cursor: not-allowed;
408
- }
409
- [data-component~="ui-switch"][data-ui-switch-state~="disabled"] .description {
410
- color: var(--ui-disabled-text);
411
- }
412
- [data-component~="ui-switch"][data-ui-switch-state~="disabled"] input {
413
- border-color: var(--ui-disabled-border);
414
- background-color: var(--ui-disabled-surface);
415
- box-shadow: none;
416
- cursor: not-allowed;
417
- }
340
+ input:checked {
341
+ background-color: var(--ui-accent-solid);
342
+ border-color: var(--ui-accent-solid);
343
+ }
418
344
 
419
- [data-component~="ui-switch"][data-ui-switch-state~="disabled"] input::after {
420
- background-color: var(--ui-disabled-text);
421
- box-shadow: none;
422
- }
345
+ input:checked::after {
346
+ transform: translateX(1rem);
347
+ background: var(--ui-text-on-accent);
348
+ }
423
349
 
424
- @media (prefers-reduced-motion: reduce) {
425
- input, input::after {
426
- transition: none;
350
+ input:focus-visible {
351
+ outline: var(--ui-focus-width) solid var(--ui-focus-ring, var(--ui-accent-solid));
352
+ outline-offset: var(--ui-focus-width);
427
353
  }
428
- }
429
354
 
430
- /* A sized switch keeps its track and aligns instead: the label takes that size's field type size,
431
- and the first line centres in that control height, so the label shares a row's baseline.
432
- Multi-line labels and descriptions still grow downward from that first line. */
433
- [data-component~="ui-switch"][data-ui-switch-state~="size=sm"] {
434
- --_font: var(--ui-font-size-sm);
435
- --_row: var(--ui-control-size-sm);
436
- }
355
+ :scope:where(:scope):is([data-ui-switch-state~="disabled"]) {
356
+ color: var(--ui-disabled-text);
357
+ cursor: not-allowed;
358
+ }
359
+ :scope[data-ui-switch-state~="disabled"] .description {
360
+ color: var(--ui-disabled-text);
361
+ }
362
+ :scope[data-ui-switch-state~="disabled"] input {
363
+ border-color: var(--ui-disabled-border);
364
+ background-color: var(--ui-disabled-surface);
365
+ box-shadow: none;
366
+ cursor: not-allowed;
367
+ }
437
368
 
438
- [data-component~="ui-switch"][data-ui-switch-state~="size=lg"] {
439
- --_font: var(--ui-font-size-md);
440
- --_row: var(--ui-control-size-lg);
441
- }
369
+ :scope[data-ui-switch-state~="disabled"] input::after {
370
+ background-color: var(--ui-disabled-text);
371
+ box-shadow: none;
372
+ }
442
373
 
443
- [data-component~="ui-switch"][data-ui-switch-state~="size=sm"],
444
- [data-component~="ui-switch"][data-ui-switch-state~="size=lg"] {
445
- --_line: calc(var(--_font) * var(--ui-line-height-md));
446
- font-size: var(--_font);
447
- padding-block: calc((var(--_row) - var(--ui-switch-track-height, 1.5rem)) / 2);
448
- }
374
+ @media (prefers-reduced-motion: reduce) {
375
+ input, input::after {
376
+ transition: none;
377
+ }
378
+ }
379
+ :scope:where(:scope):is([data-ui-switch-state~="size=sm"]) {
380
+ --_font: var(--ui-font-size-sm);
381
+ --_row: var(--ui-control-size-sm);
382
+ }
449
383
 
450
- /* The label centres on the track. */
451
- [data-component~="ui-switch"][data-ui-switch-state~="size=sm"] .text,
452
- [data-component~="ui-switch"][data-ui-switch-state~="size=lg"] .text {
453
- margin-top: calc((var(--_ui-switch-track-height, 1.5rem) - var(--_line)) / 2);
454
- }
384
+ :scope:where(:scope):is([data-ui-switch-state~="size=lg"]) {
385
+ --_font: var(--ui-font-size-md);
386
+ --_row: var(--ui-control-size-lg);
387
+ }
455
388
 
456
- @media (pointer: coarse) {
457
- [data-component~="ui-switch"][data-ui-switch-state~="size=sm"] {
458
- --_row: var(--ui-control-min-block-size);
389
+ :scope:where(:scope):is([data-ui-switch-state~="size=sm"]),
390
+ :scope:where(:scope):is([data-ui-switch-state~="size=lg"]) {
391
+ --_line: calc(var(--_font) * var(--ui-line-height-md));
392
+ font-size: var(--_font);
393
+ padding-block: calc((var(--_row) - var(--ui-switch-track-height, 1.5rem)) / 2);
394
+ }
395
+ :scope[data-ui-switch-state~="size=sm"] .text, :scope[data-ui-switch-state~="size=lg"] .text {
396
+ margin-top: calc((var(--_ui-switch-track-height, 1.5rem) - var(--_line)) / 2);
459
397
  }
460
- }
461
398
 
462
- /* A component that sets its display still honours the hidden attribute on its root. */
463
- [data-component~="ui-switch"][hidden] {
464
- display: none;
399
+ @media (pointer: coarse) {
400
+ :scope:where(:scope):is([data-ui-switch-state~="size=sm"]) {
401
+ --_row: var(--ui-control-min-block-size);
402
+ }
403
+ }
404
+ :scope:where(:scope):is([hidden]) {
405
+ display: none;
406
+ }
465
407
  }
466
408
  </style>
@@ -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, provide, 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 { acceptsControllerWrite } from './props'
7
13
  import { checkedProp, propValidityState, vPropValidity } from './props'
8
14
 
@@ -92,59 +98,13 @@ void checkedProps.value
92
98
  watchSyncEffect(() => {
93
99
  void checkedProps.value
94
100
  })
95
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
96
- const names = Object.keys(attrs)
97
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
98
- return Object.fromEntries(names.map((name) => [
99
- Object.hasOwn(Object.prototype, name)
100
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
101
- : name,
102
- attrs[name],
103
- ]))
104
- }
105
- const componentInstance = getCurrentInstance()
106
- function reflectedProp(
107
- name: string,
108
- kebab: string,
109
- value: unknown,
110
- fallback: string | undefined,
111
- bound: boolean,
112
- separator?: string,
113
- ): string | undefined {
114
- const incoming = componentInstance?.vnode.props
115
- if (
116
- !bound
117
- && (incoming === null || incoming === undefined
118
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
119
- ) return fallback
120
- if (value === null || value === undefined) return undefined
121
- return Array.isArray(value) && separator !== undefined
122
- ? value.join(separator)
123
- : typeof value === 'object'
124
- ? JSON.stringify(value)
125
- : String(value)
126
- }
101
+ const reflectedProp = useReflectedProp()
127
102
  const hydrationInstance = getCurrentInstance()
128
103
 
129
104
  const root = ref<HTMLElement | null>(null)
130
105
  const overLimit = ref(false)
131
106
  provide('html-next:ui-switcher:overLimit', overLimit)
132
- const hydrationNode = hydrationInstance?.vnode.el
133
- if (
134
- typeof window !== 'undefined' && hydrationNode != null
135
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
136
- ) {
137
- throw Object.assign(
138
- new Error('HR005: Server markup for <ui-switcher> has an incompatible root.'),
139
- {
140
- name: 'HtmlDiagnosticError',
141
- diagnostic: Object.freeze({
142
- code: 'HR005',
143
- message: 'Server markup for <ui-switcher> has an incompatible root.',
144
- }),
145
- },
146
- )
147
- }
107
+ checkHydratedRoot('div', 'ui-switcher')
148
108
 
149
109
  /** The values the styles' :host-state() rules test. */
150
110
  const hostState = computed(() =>
@@ -192,7 +152,7 @@ useComponentHost(() => import('../components/ui-switcher/ui-switcher.js'), {
192
152
 
193
153
  <template>
194
154
  <div
195
- data-component="ui-switcher"
155
+ class="ui-switcher"
196
156
  v-bind="nativeAttrs($attrs)"
197
157
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
198
158
  :data-align="reflectedProp('align', 'align', checkedProps.align, undefined, false)"
@@ -217,66 +177,68 @@ useComponentHost(() => import('../components/ui-switcher/ui-switcher.js'), {
217
177
  inherits: false;
218
178
  }
219
179
 
220
- [data-component~="ui-switcher"] {
221
- /* Hooks do not inherit, so the parts below read them from the root. */
222
- --_ui-switcher-threshold: var(--ui-switcher-threshold);
180
+ /* A component that sets its display still honours the hidden attribute on its root. */
223
181
 
224
- --_switcher-gap: var(--ui-space-4);
225
- display: flex;
226
- flex-wrap: wrap;
227
- gap: var(--ui-switcher-gap, var(--_switcher-gap));
228
- min-inline-size: 0;
229
- max-inline-size: 100%;
230
- margin: 0;
231
- }
182
+ @scope (.ui-switcher) {
183
+ :scope:where(:scope) {
184
+ /* Hooks do not inherit, so the parts below read them from the root. */
185
+ --_ui-switcher-threshold: var(--ui-switcher-threshold);
232
186
 
233
- [data-component~="ui-switcher"] > :slotted(*) {
234
- min-inline-size: 0;
235
- flex-grow: 1;
236
- /* The large multiplier makes the basis flip as a group at the intrinsic threshold. */
237
- flex-basis: calc((var(--_ui-switcher-threshold, 30rem) - 100%) * 999);
238
- }
187
+ --_switcher-gap: var(--ui-space-4);
188
+ display: flex;
189
+ flex-wrap: wrap;
190
+ gap: var(--ui-switcher-gap, var(--_switcher-gap));
191
+ min-inline-size: 0;
192
+ max-inline-size: 100%;
193
+ margin: 0;
194
+ }
239
195
 
240
- [data-component~="ui-switcher"][data-ui-switcher-state~="overLimit"] > :slotted(*) {
241
- flex-basis: 100%;
242
- }
196
+ :scope > :slotted(*) {
197
+ min-inline-size: 0;
198
+ flex-grow: 1;
199
+ /* The large multiplier makes the basis flip as a group at the intrinsic threshold. */
200
+ flex-basis: calc((var(--_ui-switcher-threshold, 30rem) - 100%) * 999);
201
+ }
243
202
 
244
- [data-component~="ui-switcher"][data-ui-switcher-state~="gap=xs"] {
245
- --_switcher-gap: var(--ui-space-2);
246
- }
247
- [data-component~="ui-switcher"][data-ui-switcher-state~="gap=s"] {
248
- --_switcher-gap: var(--ui-space-3);
249
- }
250
- [data-component~="ui-switcher"][data-ui-switcher-state~="gap=m"] {
251
- --_switcher-gap: var(--ui-space-4);
252
- }
253
- [data-component~="ui-switcher"][data-ui-switcher-state~="gap=l"] {
254
- --_switcher-gap: var(--ui-space-5);
255
- }
256
- [data-component~="ui-switcher"][data-ui-switcher-state~="gap=xl"] {
257
- --_switcher-gap: var(--ui-space-6);
258
- }
259
- [data-component~="ui-switcher"][data-ui-switcher-state~="threshold=xs"] > :slotted(*) {
260
- flex-basis: calc((var(--_ui-switcher-threshold, 20rem) - 100%) * 999);
261
- }
262
- [data-component~="ui-switcher"][data-ui-switcher-state~="threshold=md"] > :slotted(*) {
263
- flex-basis: calc((var(--_ui-switcher-threshold, 45rem) - 100%) * 999);
264
- }
265
- [data-component~="ui-switcher"][data-ui-switcher-state~="threshold=lg"] > :slotted(*) {
266
- flex-basis: calc((var(--_ui-switcher-threshold, 60rem) - 100%) * 999);
267
- }
268
- [data-component~="ui-switcher"][data-ui-switcher-state~="align=start"] {
269
- align-items: flex-start;
270
- }
271
- [data-component~="ui-switcher"][data-ui-switcher-state~="align=center"] {
272
- align-items: center;
273
- }
274
- [data-component~="ui-switcher"][data-ui-switcher-state~="align=end"] {
275
- align-items: flex-end;
276
- }
203
+ :scope[data-ui-switcher-state~="overLimit"] > :slotted(*) {
204
+ flex-basis: 100%;
205
+ }
277
206
 
278
- /* A component that sets its display still honours the hidden attribute on its root. */
279
- [data-component~="ui-switcher"][hidden] {
280
- display: none;
207
+ :scope:where(:scope):is([data-ui-switcher-state~="gap=xs"]) {
208
+ --_switcher-gap: var(--ui-space-2);
209
+ }
210
+ :scope:where(:scope):is([data-ui-switcher-state~="gap=s"]) {
211
+ --_switcher-gap: var(--ui-space-3);
212
+ }
213
+ :scope:where(:scope):is([data-ui-switcher-state~="gap=m"]) {
214
+ --_switcher-gap: var(--ui-space-4);
215
+ }
216
+ :scope:where(:scope):is([data-ui-switcher-state~="gap=l"]) {
217
+ --_switcher-gap: var(--ui-space-5);
218
+ }
219
+ :scope:where(:scope):is([data-ui-switcher-state~="gap=xl"]) {
220
+ --_switcher-gap: var(--ui-space-6);
221
+ }
222
+ :scope[data-ui-switcher-state~="threshold=xs"] > :slotted(*) {
223
+ flex-basis: calc((var(--_ui-switcher-threshold, 20rem) - 100%) * 999);
224
+ }
225
+ :scope[data-ui-switcher-state~="threshold=md"] > :slotted(*) {
226
+ flex-basis: calc((var(--_ui-switcher-threshold, 45rem) - 100%) * 999);
227
+ }
228
+ :scope[data-ui-switcher-state~="threshold=lg"] > :slotted(*) {
229
+ flex-basis: calc((var(--_ui-switcher-threshold, 60rem) - 100%) * 999);
230
+ }
231
+ :scope:where(:scope):is([data-ui-switcher-state~="align=start"]) {
232
+ align-items: flex-start;
233
+ }
234
+ :scope:where(:scope):is([data-ui-switcher-state~="align=center"]) {
235
+ align-items: center;
236
+ }
237
+ :scope:where(:scope):is([data-ui-switcher-state~="align=end"]) {
238
+ align-items: flex-end;
239
+ }
240
+ :scope:where(:scope):is([hidden]) {
241
+ display: none;
242
+ }
281
243
  }
282
244
  </style>