@threadlabs/looma 0.28.12 → 0.28.14

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 (427) hide show
  1. package/components/ui-affordance-scope/ui-affordance-scope.html +1 -1
  2. package/components/ui-avatar/ui-avatar.html +1 -1
  3. package/components/ui-combobox/ui-combobox.html +1 -1
  4. package/components/ui-disclosure/ui-disclosure.html +4 -4
  5. package/components/ui-editable/ui-editable.html +3 -3
  6. package/components/ui-menu/ui-menu.html +1 -1
  7. package/components/ui-popover/ui-popover.html +1 -1
  8. package/components/ui-sidebar/ui-sidebar.html +4 -4
  9. package/components/ui-switcher/ui-switcher.html +1 -1
  10. package/components/ui-tree-item/ui-tree-item.html +2 -2
  11. package/dist/index.js +1 -1
  12. package/editor/formatting-selection.d.ts +49 -0
  13. package/package.json +3 -3
  14. package/styles/ui-action-bar.css +1 -1
  15. package/styles/ui-affordance-scope.css +1 -1
  16. package/styles/ui-avatar-group.css +1 -1
  17. package/styles/ui-avatar.css +1 -1
  18. package/styles/ui-badge.css +1 -1
  19. package/styles/ui-breadcrumb-item.css +1 -1
  20. package/styles/ui-breadcrumbs.css +1 -1
  21. package/styles/ui-button.css +1 -1
  22. package/styles/ui-callout.css +1 -1
  23. package/styles/ui-card.css +1 -1
  24. package/styles/ui-checkbox.css +1 -1
  25. package/styles/ui-cluster.css +1 -1
  26. package/styles/ui-combobox.css +1 -1
  27. package/styles/ui-container.css +1 -1
  28. package/styles/ui-context-menu.css +1 -1
  29. package/styles/ui-cover.css +1 -1
  30. package/styles/ui-description-item.css +1 -1
  31. package/styles/ui-description-list.css +1 -1
  32. package/styles/ui-dialog.css +1 -1
  33. package/styles/ui-disclosure.css +2 -2
  34. package/styles/ui-editable.css +1 -1
  35. package/styles/ui-editor-block-actions.css +1 -1
  36. package/styles/ui-editor-chip-editor.css +1 -1
  37. package/styles/ui-editor-code-language.css +1 -1
  38. package/styles/ui-editor-image-toolbar.css +1 -1
  39. package/styles/ui-editor-insert-table-grid.css +1 -1
  40. package/styles/ui-editor-link-card.css +1 -1
  41. package/styles/ui-editor-link-form.css +1 -1
  42. package/styles/ui-editor-mention-menu-item.css +1 -1
  43. package/styles/ui-editor-mention-menu.css +1 -1
  44. package/styles/ui-editor-slash-menu-group.css +1 -1
  45. package/styles/ui-editor-slash-menu-item.css +1 -1
  46. package/styles/ui-editor-slash-menu.css +1 -1
  47. package/styles/ui-editor-surface.css +1 -1
  48. package/styles/ui-editor-table-context-menu.css +1 -1
  49. package/styles/ui-editor-table-overlay.css +1 -1
  50. package/styles/ui-editor-table-toolbar.css +1 -1
  51. package/styles/ui-editor-toolbar.css +1 -1
  52. package/styles/ui-floating-action-button.css +1 -1
  53. package/styles/ui-form-field.css +1 -1
  54. package/styles/ui-grid.css +1 -1
  55. package/styles/ui-icon-button.css +1 -1
  56. package/styles/ui-icon.css +1 -1
  57. package/styles/ui-image.css +1 -1
  58. package/styles/ui-input-group.css +1 -1
  59. package/styles/ui-input.css +1 -1
  60. package/styles/ui-list-item.css +1 -1
  61. package/styles/ui-list.css +1 -1
  62. package/styles/ui-listbox.css +1 -1
  63. package/styles/ui-menu-group.css +1 -1
  64. package/styles/ui-menu-item.css +1 -1
  65. package/styles/ui-menu.css +2 -2
  66. package/styles/ui-meter.css +1 -1
  67. package/styles/ui-nav-item.css +1 -1
  68. package/styles/ui-page-header.css +1 -1
  69. package/styles/ui-popover.css +2 -2
  70. package/styles/ui-radio-group.css +1 -1
  71. package/styles/ui-radio.css +1 -1
  72. package/styles/ui-reel.css +1 -1
  73. package/styles/ui-scroll-area.css +1 -1
  74. package/styles/ui-search-result-row.css +1 -1
  75. package/styles/ui-search-shell.css +1 -1
  76. package/styles/ui-section.css +1 -1
  77. package/styles/ui-select.css +1 -1
  78. package/styles/ui-separator.css +1 -1
  79. package/styles/ui-sidebar.css +2 -2
  80. package/styles/ui-spinner.css +1 -1
  81. package/styles/ui-stack.css +1 -1
  82. package/styles/ui-status-message.css +1 -1
  83. package/styles/ui-swatch.css +1 -1
  84. package/styles/ui-switch.css +1 -1
  85. package/styles/ui-switcher.css +1 -1
  86. package/styles/ui-table.css +1 -1
  87. package/styles/ui-tabs.css +1 -1
  88. package/styles/ui-text.css +1 -1
  89. package/styles/ui-textarea.css +1 -1
  90. package/styles/ui-toast-region.css +1 -1
  91. package/styles/ui-toast.css +1 -1
  92. package/styles/ui-tooltip.css +1 -1
  93. package/styles/ui-top-bar.css +1 -1
  94. package/styles/ui-tree-item.css +1 -1
  95. package/styles/ui-tree.css +1 -1
  96. package/vanilla/UiActionBar.d.ts +1 -1
  97. package/vanilla/UiActionBar.js +1 -1
  98. package/vanilla/UiAffordanceScope.d.ts +1 -1
  99. package/vanilla/UiAffordanceScope.js +2 -2
  100. package/vanilla/UiAvatar.d.ts +1 -1
  101. package/vanilla/UiAvatar.js +2 -2
  102. package/vanilla/UiAvatarGroup.d.ts +1 -1
  103. package/vanilla/UiAvatarGroup.js +2 -2
  104. package/vanilla/UiBadge.d.ts +1 -1
  105. package/vanilla/UiBadge.js +2 -2
  106. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  107. package/vanilla/UiBreadcrumbItem.js +2 -2
  108. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  109. package/vanilla/UiBreadcrumbs.js +2 -2
  110. package/vanilla/UiButton.d.ts +1 -1
  111. package/vanilla/UiButton.js +3 -3
  112. package/vanilla/UiCallout.d.ts +1 -1
  113. package/vanilla/UiCallout.js +2 -2
  114. package/vanilla/UiCard.d.ts +1 -1
  115. package/vanilla/UiCard.js +3 -3
  116. package/vanilla/UiCheckbox.d.ts +1 -1
  117. package/vanilla/UiCheckbox.js +2 -2
  118. package/vanilla/UiCluster.d.ts +1 -1
  119. package/vanilla/UiCluster.js +2 -2
  120. package/vanilla/UiCombobox.d.ts +1 -1
  121. package/vanilla/UiCombobox.js +2 -2
  122. package/vanilla/UiContainer.d.ts +1 -1
  123. package/vanilla/UiContainer.js +2 -2
  124. package/vanilla/UiContextMenu.d.ts +1 -1
  125. package/vanilla/UiContextMenu.js +2 -2
  126. package/vanilla/UiCover.d.ts +1 -1
  127. package/vanilla/UiCover.js +2 -2
  128. package/vanilla/UiDescriptionItem.d.ts +1 -1
  129. package/vanilla/UiDescriptionItem.js +2 -2
  130. package/vanilla/UiDescriptionList.d.ts +1 -1
  131. package/vanilla/UiDescriptionList.js +2 -2
  132. package/vanilla/UiDialog.d.ts +1 -1
  133. package/vanilla/UiDialog.js +2 -2
  134. package/vanilla/UiDisclosure.d.ts +1 -1
  135. package/vanilla/UiDisclosure.js +2 -2
  136. package/vanilla/UiEditable.d.ts +1 -1
  137. package/vanilla/UiEditable.js +2 -2
  138. package/vanilla/UiEditorBlockActions.d.ts +1 -1
  139. package/vanilla/UiEditorBlockActions.js +2 -2
  140. package/vanilla/UiEditorChipEditor.d.ts +1 -1
  141. package/vanilla/UiEditorChipEditor.js +2 -2
  142. package/vanilla/UiEditorCodeLanguage.d.ts +1 -1
  143. package/vanilla/UiEditorCodeLanguage.js +2 -2
  144. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorImageToolbar.js +2 -2
  146. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  147. package/vanilla/UiEditorInsertTableGrid.js +2 -2
  148. package/vanilla/UiEditorLinkCard.d.ts +1 -1
  149. package/vanilla/UiEditorLinkCard.js +2 -2
  150. package/vanilla/UiEditorLinkForm.d.ts +1 -1
  151. package/vanilla/UiEditorLinkForm.js +2 -2
  152. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  153. package/vanilla/UiEditorMentionMenu.js +2 -2
  154. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  155. package/vanilla/UiEditorMentionMenuItem.js +3 -3
  156. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  157. package/vanilla/UiEditorSlashMenu.js +2 -2
  158. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  159. package/vanilla/UiEditorSlashMenuGroup.js +2 -2
  160. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  161. package/vanilla/UiEditorSlashMenuItem.js +3 -3
  162. package/vanilla/UiEditorSurface.d.ts +1 -1
  163. package/vanilla/UiEditorSurface.js +2 -2
  164. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  165. package/vanilla/UiEditorTableContextMenu.js +2 -2
  166. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  167. package/vanilla/UiEditorTableOverlay.js +2 -2
  168. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  169. package/vanilla/UiEditorTableToolbar.js +2 -2
  170. package/vanilla/UiEditorToolbar.d.ts +1 -1
  171. package/vanilla/UiEditorToolbar.js +2 -2
  172. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  173. package/vanilla/UiFloatingActionButton.js +2 -2
  174. package/vanilla/UiFormField.d.ts +1 -1
  175. package/vanilla/UiFormField.js +2 -2
  176. package/vanilla/UiGrid.d.ts +1 -1
  177. package/vanilla/UiGrid.js +2 -2
  178. package/vanilla/UiIcon.d.ts +1 -1
  179. package/vanilla/UiIcon.js +2 -2
  180. package/vanilla/UiIconButton.d.ts +1 -1
  181. package/vanilla/UiIconButton.js +3 -3
  182. package/vanilla/UiImage.d.ts +1 -1
  183. package/vanilla/UiImage.js +2 -2
  184. package/vanilla/UiInput.d.ts +1 -1
  185. package/vanilla/UiInput.js +2 -2
  186. package/vanilla/UiInputGroup.d.ts +1 -1
  187. package/vanilla/UiInputGroup.js +2 -2
  188. package/vanilla/UiList.d.ts +1 -1
  189. package/vanilla/UiList.js +3 -3
  190. package/vanilla/UiListItem.d.ts +1 -1
  191. package/vanilla/UiListItem.js +2 -2
  192. package/vanilla/UiListbox.d.ts +1 -1
  193. package/vanilla/UiListbox.js +2 -2
  194. package/vanilla/UiMenu.d.ts +1 -1
  195. package/vanilla/UiMenu.js +2 -2
  196. package/vanilla/UiMenuGroup.d.ts +1 -1
  197. package/vanilla/UiMenuGroup.js +2 -2
  198. package/vanilla/UiMenuItem.d.ts +1 -1
  199. package/vanilla/UiMenuItem.js +4 -4
  200. package/vanilla/UiMeter.d.ts +1 -1
  201. package/vanilla/UiMeter.js +2 -2
  202. package/vanilla/UiNavItem.d.ts +1 -1
  203. package/vanilla/UiNavItem.js +3 -3
  204. package/vanilla/UiPageHeader.d.ts +1 -1
  205. package/vanilla/UiPageHeader.js +2 -2
  206. package/vanilla/UiPopover.d.ts +1 -1
  207. package/vanilla/UiPopover.js +2 -2
  208. package/vanilla/UiRadio.d.ts +1 -1
  209. package/vanilla/UiRadio.js +2 -2
  210. package/vanilla/UiRadioGroup.d.ts +1 -1
  211. package/vanilla/UiRadioGroup.js +2 -2
  212. package/vanilla/UiReel.d.ts +1 -1
  213. package/vanilla/UiReel.js +2 -2
  214. package/vanilla/UiScrollArea.d.ts +1 -1
  215. package/vanilla/UiScrollArea.js +2 -2
  216. package/vanilla/UiSearchResultRow.d.ts +1 -1
  217. package/vanilla/UiSearchResultRow.js +2 -2
  218. package/vanilla/UiSearchShell.d.ts +1 -1
  219. package/vanilla/UiSearchShell.js +2 -2
  220. package/vanilla/UiSection.d.ts +1 -1
  221. package/vanilla/UiSection.js +2 -2
  222. package/vanilla/UiSelect.d.ts +1 -1
  223. package/vanilla/UiSelect.js +2 -2
  224. package/vanilla/UiSeparator.d.ts +1 -1
  225. package/vanilla/UiSeparator.js +2 -2
  226. package/vanilla/UiSidebar.d.ts +1 -1
  227. package/vanilla/UiSidebar.js +2 -2
  228. package/vanilla/UiSpinner.d.ts +1 -1
  229. package/vanilla/UiSpinner.js +2 -2
  230. package/vanilla/UiStack.d.ts +1 -1
  231. package/vanilla/UiStack.js +2 -2
  232. package/vanilla/UiStatusMessage.d.ts +1 -1
  233. package/vanilla/UiStatusMessage.js +2 -2
  234. package/vanilla/UiSwatch.d.ts +1 -1
  235. package/vanilla/UiSwatch.js +2 -2
  236. package/vanilla/UiSwitch.d.ts +1 -1
  237. package/vanilla/UiSwitch.js +2 -2
  238. package/vanilla/UiSwitcher.d.ts +1 -1
  239. package/vanilla/UiSwitcher.js +2 -2
  240. package/vanilla/UiTable.d.ts +1 -1
  241. package/vanilla/UiTable.js +2 -2
  242. package/vanilla/UiTabs.d.ts +1 -1
  243. package/vanilla/UiTabs.js +2 -2
  244. package/vanilla/UiText.d.ts +1 -1
  245. package/vanilla/UiText.js +3 -3
  246. package/vanilla/UiTextarea.d.ts +1 -1
  247. package/vanilla/UiTextarea.js +2 -2
  248. package/vanilla/UiToast.d.ts +1 -1
  249. package/vanilla/UiToast.js +2 -2
  250. package/vanilla/UiToastRegion.d.ts +1 -1
  251. package/vanilla/UiToastRegion.js +2 -2
  252. package/vanilla/UiTooltip.d.ts +1 -1
  253. package/vanilla/UiTooltip.js +2 -2
  254. package/vanilla/UiTopBar.d.ts +1 -1
  255. package/vanilla/UiTopBar.js +1 -1
  256. package/vanilla/UiTree.d.ts +1 -1
  257. package/vanilla/UiTree.js +2 -2
  258. package/vanilla/UiTreeItem.d.ts +1 -1
  259. package/vanilla/UiTreeItem.js +3 -3
  260. package/vue/UiActionBar.vue +23 -15
  261. package/vue/UiAffordanceScope.vue +11 -9
  262. package/vue/UiAvatar.vue +34 -27
  263. package/vue/UiAvatarGroup.vue +22 -17
  264. package/vue/UiBadge.vue +78 -69
  265. package/vue/UiBreadcrumbItem.vue +17 -14
  266. package/vue/UiBreadcrumbs.vue +9 -7
  267. package/vue/UiButton.vue +150 -138
  268. package/vue/UiCallout.vue +68 -43
  269. package/vue/UiCard.vue +52 -44
  270. package/vue/UiCheckbox.vue +48 -40
  271. package/vue/UiCluster.vue +35 -33
  272. package/vue/UiCombobox.vue +158 -107
  273. package/vue/UiContainer.vue +16 -14
  274. package/vue/UiContextMenu.vue +24 -13
  275. package/vue/UiCover.vue +10 -8
  276. package/vue/UiDescriptionItem.vue +11 -9
  277. package/vue/UiDescriptionList.vue +20 -18
  278. package/vue/UiDialog.vue +41 -37
  279. package/vue/UiDisclosure.vue +65 -51
  280. package/vue/UiEditable.vue +34 -33
  281. package/vue/UiEditorBlockActions.vue +4 -3
  282. package/vue/UiEditorChipEditor.vue +4 -3
  283. package/vue/UiEditorCodeLanguage.vue +5 -4
  284. package/vue/UiEditorImageToolbar.vue +5 -4
  285. package/vue/UiEditorInsertTableGrid.vue +19 -18
  286. package/vue/UiEditorLinkCard.vue +7 -6
  287. package/vue/UiEditorLinkForm.vue +15 -14
  288. package/vue/UiEditorMentionMenu.vue +52 -37
  289. package/vue/UiEditorMentionMenuItem.vue +30 -20
  290. package/vue/UiEditorSlashMenu.vue +49 -36
  291. package/vue/UiEditorSlashMenuGroup.vue +16 -10
  292. package/vue/UiEditorSlashMenuItem.vue +36 -26
  293. package/vue/UiEditorSurface.vue +8 -6
  294. package/vue/UiEditorTableContextMenu.vue +26 -25
  295. package/vue/UiEditorTableOverlay.vue +56 -51
  296. package/vue/UiEditorTableToolbar.vue +37 -36
  297. package/vue/UiEditorToolbar.vue +24 -20
  298. package/vue/UiFloatingActionButton.vue +17 -15
  299. package/vue/UiFormField.vue +27 -22
  300. package/vue/UiGrid.vue +17 -15
  301. package/vue/UiIcon.vue +7 -6
  302. package/vue/UiIconButton.vue +75 -70
  303. package/vue/UiImage.vue +61 -46
  304. package/vue/UiInput.vue +28 -28
  305. package/vue/UiInputGroup.vue +48 -43
  306. package/vue/UiList.vue +25 -21
  307. package/vue/UiListItem.vue +54 -44
  308. package/vue/UiListbox.vue +29 -22
  309. package/vue/UiMenu.vue +25 -23
  310. package/vue/UiMenuGroup.vue +11 -7
  311. package/vue/UiMenuItem.vue +52 -43
  312. package/vue/UiMeter.vue +42 -41
  313. package/vue/UiNavItem.vue +60 -47
  314. package/vue/UiPageHeader.vue +27 -20
  315. package/vue/UiPopover.vue +21 -19
  316. package/vue/UiRadio.vue +32 -28
  317. package/vue/UiRadioGroup.vue +24 -19
  318. package/vue/UiReel.vue +24 -22
  319. package/vue/UiScrollArea.vue +30 -24
  320. package/vue/UiSearchResultRow.vue +41 -26
  321. package/vue/UiSearchShell.vue +37 -29
  322. package/vue/UiSection.vue +31 -24
  323. package/vue/UiSelect.vue +23 -21
  324. package/vue/UiSeparator.vue +14 -13
  325. package/vue/UiSidebar.vue +48 -40
  326. package/vue/UiSpinner.vue +14 -13
  327. package/vue/UiStack.vue +26 -24
  328. package/vue/UiStatusMessage.vue +26 -21
  329. package/vue/UiSwatch.vue +13 -12
  330. package/vue/UiSwitch.vue +37 -33
  331. package/vue/UiSwitcher.vue +27 -22
  332. package/vue/UiTable.vue +23 -19
  333. package/vue/UiTabs.vue +48 -33
  334. package/vue/UiText.vue +173 -151
  335. package/vue/UiTextarea.vue +27 -27
  336. package/vue/UiToast.vue +17 -15
  337. package/vue/UiToastRegion.vue +36 -31
  338. package/vue/UiTooltip.vue +40 -34
  339. package/vue/UiTopBar.vue +17 -13
  340. package/vue/UiTree.vue +17 -15
  341. package/vue/UiTreeItem.vue +202 -133
  342. package/vue/chunks/UiActionBar.js +21 -6
  343. package/vue/chunks/UiAffordanceScope.js +8 -6
  344. package/vue/chunks/UiAvatar.js +30 -20
  345. package/vue/chunks/UiAvatarGroup.js +16 -13
  346. package/vue/chunks/UiBadge.js +19 -13
  347. package/vue/chunks/UiBreadcrumbItem.js +13 -7
  348. package/vue/chunks/UiBreadcrumbs.js +9 -4
  349. package/vue/chunks/UiButton.js +158 -124
  350. package/vue/chunks/UiCallout.js +105 -37
  351. package/vue/chunks/UiCard.js +50 -42
  352. package/vue/chunks/UiCheckbox.js +32 -22
  353. package/vue/chunks/UiCluster.js +18 -16
  354. package/vue/chunks/UiCombobox.js +130 -73
  355. package/vue/chunks/UiContainer.js +10 -8
  356. package/vue/chunks/UiContextMenu.js +7 -4
  357. package/vue/chunks/UiCover.js +7 -5
  358. package/vue/chunks/UiDescriptionItem.js +9 -3
  359. package/vue/chunks/UiDescriptionList.js +10 -8
  360. package/vue/chunks/UiDialog.js +26 -19
  361. package/vue/chunks/UiDisclosure.js +43 -25
  362. package/vue/chunks/UiEditable.js +25 -24
  363. package/vue/chunks/UiEditorBlockActions.js +4 -3
  364. package/vue/chunks/UiEditorChipEditor.js +4 -3
  365. package/vue/chunks/UiEditorCodeLanguage.js +5 -4
  366. package/vue/chunks/UiEditorImageToolbar.js +7 -6
  367. package/vue/chunks/UiEditorInsertTableGrid.js +10 -9
  368. package/vue/chunks/UiEditorLinkCard.js +11 -10
  369. package/vue/chunks/UiEditorLinkForm.js +26 -25
  370. package/vue/chunks/UiEditorMentionMenu.js +41 -24
  371. package/vue/chunks/UiEditorMentionMenuItem.js +23 -11
  372. package/vue/chunks/UiEditorSlashMenu.js +41 -20
  373. package/vue/chunks/UiEditorSlashMenuGroup.js +16 -5
  374. package/vue/chunks/UiEditorSlashMenuItem.js +28 -14
  375. package/vue/chunks/UiEditorSurface.js +6 -4
  376. package/vue/chunks/UiEditorTableContextMenu.js +14 -13
  377. package/vue/chunks/UiEditorTableOverlay.js +6 -5
  378. package/vue/chunks/UiEditorTableToolbar.js +14 -13
  379. package/vue/chunks/UiEditorToolbar.js +8 -5
  380. package/vue/chunks/UiFloatingActionButton.js +11 -9
  381. package/vue/chunks/UiFormField.js +30 -16
  382. package/vue/chunks/UiGrid.js +10 -8
  383. package/vue/chunks/UiIcon.js +6 -3
  384. package/vue/chunks/UiIconButton.js +33 -26
  385. package/vue/chunks/UiImage.js +31 -22
  386. package/vue/chunks/UiInput.js +17 -16
  387. package/vue/chunks/UiInputGroup.js +30 -16
  388. package/vue/chunks/UiList.js +24 -20
  389. package/vue/chunks/UiListItem.js +39 -22
  390. package/vue/chunks/UiListbox.js +35 -25
  391. package/vue/chunks/UiMenu.js +22 -17
  392. package/vue/chunks/UiMenuGroup.js +7 -4
  393. package/vue/chunks/UiMenuItem.js +57 -38
  394. package/vue/chunks/UiMeter.js +22 -21
  395. package/vue/chunks/UiNavItem.js +78 -42
  396. package/vue/chunks/UiPageHeader.js +30 -10
  397. package/vue/chunks/UiPopover.js +16 -11
  398. package/vue/chunks/UiRadio.js +26 -16
  399. package/vue/chunks/UiRadioGroup.js +24 -19
  400. package/vue/chunks/UiReel.js +11 -9
  401. package/vue/chunks/UiScrollArea.js +16 -13
  402. package/vue/chunks/UiSearchResultRow.js +39 -19
  403. package/vue/chunks/UiSearchShell.js +36 -18
  404. package/vue/chunks/UiSection.js +31 -13
  405. package/vue/chunks/UiSelect.js +14 -12
  406. package/vue/chunks/UiSeparator.js +11 -10
  407. package/vue/chunks/UiSidebar.js +33 -23
  408. package/vue/chunks/UiSpinner.js +7 -6
  409. package/vue/chunks/UiStack.js +14 -12
  410. package/vue/chunks/UiStatusMessage.js +23 -11
  411. package/vue/chunks/UiSwatch.js +5 -4
  412. package/vue/chunks/UiSwitch.js +26 -16
  413. package/vue/chunks/UiSwitcher.js +13 -11
  414. package/vue/chunks/UiTable.js +9 -7
  415. package/vue/chunks/UiTabs.js +23 -18
  416. package/vue/chunks/UiText.js +277 -255
  417. package/vue/chunks/UiTextarea.js +21 -20
  418. package/vue/chunks/UiToast.js +13 -7
  419. package/vue/chunks/UiToastRegion.js +15 -8
  420. package/vue/chunks/UiTooltip.js +27 -19
  421. package/vue/chunks/UiTopBar.js +21 -6
  422. package/vue/chunks/UiTree.js +18 -16
  423. package/vue/chunks/UiTreeItem.js +82 -45
  424. package/vue/chunks/_plugin-vue_export-helper.js +17 -4
  425. package/vue/components.css +1507 -1479
  426. package/vue/editor/index.js +108 -65
  427. package/vue/host.ts +26 -6
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -80,7 +80,7 @@ const reflectedProp = useReflectedProp()
80
80
 
81
81
  checkHydratedRoot('button', 'ui-search-result-row')
82
82
 
83
- /** The values the styles' :host-state() rules test. */
83
+ /** The values the styles' :host() prop and state rules test. */
84
84
  const hostState = computed(() =>
85
85
  [
86
86
  checkedProps.value.density && 'density',
@@ -96,19 +96,24 @@ const hostState = computed(() =>
96
96
  class="ui-search-result-row"
97
97
  type="button"
98
98
  v-bind="nativeAttrs($attrs)"
99
+ data-hn
100
+ data-hn-ui-search-result-row
99
101
  :disabled="checkedProps.disabled ?? undefined"
100
102
  :aria-current="checkedProps.selected ?? undefined"
101
103
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
102
- :data-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
103
- :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
104
- :data-selected="reflectedProp('selected', 'selected', checkedProps.selected, undefined, false)"
104
+ :data-ui-search-result-row-prop-density="reflectedProp('density', 'density', checkedProps.density, undefined, false)"
105
+ :data-ui-search-result-row-prop-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
106
+ :data-ui-search-result-row-prop-selected="reflectedProp('selected', 'selected', checkedProps.selected, undefined, false)"
105
107
  :data-ui-search-result-row-state="hostState || undefined"
106
108
  >
107
- <span class="leading"><slot name="leading" /></span>
108
- <span class="content"><span class="title"><slot name="title" /></span>
109
- <span class="meta"><slot name="meta" /></span>
110
- <span class="excerpt"><slot name="excerpt" /></span></span>
111
- <span class="trailing"><slot name="trailing" /></span>
109
+ <span class="leading" data-hn-ui-search-result-row><slot name="leading" /></span>
110
+ <span class="content" data-hn-ui-search-result-row><span
111
+ class="title"
112
+ data-hn-ui-search-result-row
113
+ ><slot name="title" /></span>
114
+ <span class="meta" data-hn-ui-search-result-row><slot name="meta" /></span>
115
+ <span class="excerpt" data-hn-ui-search-result-row><slot name="excerpt" /></span></span>
116
+ <span class="trailing" data-hn-ui-search-result-row><slot name="trailing" /></span>
112
117
  </button>
113
118
  </template>
114
119
 
@@ -153,8 +158,8 @@ const hostState = computed(() =>
153
158
 
154
159
  /* A component that sets its display still honours the hidden attribute on its root. */
155
160
 
156
- @scope (.ui-search-result-row) {
157
- :scope:where(:scope) {
161
+ @scope (.ui-search-result-row) to ([data-hn]) {
162
+ :global(:scope:where([data-hn-ui-search-result-row])) {
158
163
  appearance: none;
159
164
  inline-size: 100%;
160
165
  min-block-size: var(--ui-search-result-row-min-height, 56px);
@@ -173,7 +178,7 @@ const hostState = computed(() =>
173
178
  transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
174
179
  }
175
180
 
176
- :scope:where(:scope):is([data-ui-search-result-row-state~="density=compact"]) {
181
+ :global(:scope[data-ui-search-result-row-state~="density=compact"]:where([data-hn-ui-search-result-row])) {
177
182
  min-block-size: var(--ui-search-result-row-min-height, 3.125rem);
178
183
  padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-1));
179
184
  padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-2));
@@ -181,24 +186,26 @@ const hostState = computed(() =>
181
186
  align-items: center;
182
187
  font-family: var(--ui-font-family-sans, sans-serif);
183
188
  }
184
- :scope[data-ui-search-result-row-state~="density=compact"] .title {
189
+ :global(:scope[data-ui-search-result-row-state~="density=compact"]
190
+ .title:where([data-hn-ui-search-result-row])) {
185
191
  font-size: var(--ui-font-size-sm);
186
192
  line-height: var(--ui-line-height);
187
193
  }
188
194
 
189
- :scope[data-ui-search-result-row-state~="density=compact"] .meta {
195
+ :global(:scope[data-ui-search-result-row-state~="density=compact"]
196
+ .meta:where([data-hn-ui-search-result-row])) {
190
197
  font-size: var(--ui-font-size-xs);
191
198
  line-height: var(--ui-line-height);
192
199
  }
193
200
 
194
- :scope:where(:scope):is(:hover:enabled) {
201
+ :global(:scope:hover:enabled:where([data-hn-ui-search-result-row])) {
195
202
  background: var(
196
203
  --ui-search-result-row-hover-surface,
197
204
  var(--_ui-selection-context-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%))
198
205
  );
199
206
  }
200
207
 
201
- :scope:where(:scope):is([data-ui-search-result-row-state~="selected"]) {
208
+ :global(:scope[data-ui-search-result-row-state~="selected"]:where([data-hn-ui-search-result-row])) {
202
209
  background: var(
203
210
  --ui-search-result-row-selected-bg,
204
211
  var(--_ui-selection-context-surface, var(--ui-selection-surface))
@@ -206,50 +213,58 @@ const hostState = computed(() =>
206
213
  color: var(--_ui-selection-context-text, var(--ui-selection-text));
207
214
  }
208
215
 
209
- :scope:where(:scope):is(:focus-visible) {
216
+ :global(:scope:focus-visible:where([data-hn-ui-search-result-row])) {
210
217
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
211
218
  outline-offset: calc(-1 * var(--ui-focus-width));
212
219
  }
213
220
 
214
- :scope:where(:scope):is(:disabled) {
221
+ :global(:scope:disabled:where([data-hn-ui-search-result-row])) {
215
222
  background: var(--ui-disabled-surface);
216
223
  color: var(--ui-disabled-text);
217
224
  cursor: not-allowed;
218
225
  }
219
226
 
220
- .leading, .trailing {
227
+ :global(.leading:where([data-hn-ui-search-result-row])),
228
+ :global(.trailing:where([data-hn-ui-search-result-row])) {
221
229
  display: inline-flex;
222
230
  align-items: flex-start;
223
231
  flex-shrink: 0;
224
232
  }
225
233
 
226
- .content {
234
+ :global(.content:where([data-hn-ui-search-result-row])) {
227
235
  min-inline-size: 0;
228
236
  flex: 1;
229
237
  display: flex;
230
238
  flex-direction: column;
231
239
  }
232
240
 
233
- .title, .meta, .excerpt {
241
+ :global(.title:where([data-hn-ui-search-result-row])),
242
+ :global(.meta:where([data-hn-ui-search-result-row])),
243
+ :global(.excerpt:where([data-hn-ui-search-result-row])) {
234
244
  display: block;
235
245
  min-inline-size: 0;
236
246
  }
237
- .leading:empty, .meta:empty, .excerpt:empty, .trailing:empty {
247
+ :global(.leading:empty:where([data-hn-ui-search-result-row])),
248
+ :global(.meta:empty:where([data-hn-ui-search-result-row])),
249
+ :global(.excerpt:empty:where([data-hn-ui-search-result-row])),
250
+ :global(.trailing:empty:where([data-hn-ui-search-result-row])) {
238
251
  display: none;
239
252
  }
240
253
 
241
- :slotted([slot="title"]), :slotted([slot="meta"]), :slotted([slot="excerpt"]) {
254
+ :global(:where(:not([data-hn-ui-search-result-row])):is([slot="title"])),
255
+ :global(:where(:not([data-hn-ui-search-result-row])):is([slot="meta"])),
256
+ :global(:where(:not([data-hn-ui-search-result-row])):is([slot="excerpt"])) {
242
257
  display: block;
243
258
  margin: 0;
244
259
  }
245
260
 
246
261
  @media (forced-colors: active) {
247
- :scope:where(:scope):is([data-ui-search-result-row-state~="selected"]:not(:focus-visible):not(:disabled)) {
262
+ :global(:scope[data-ui-search-result-row-state~="selected"]:not(:focus-visible):not(:disabled):where([data-hn-ui-search-result-row])) {
248
263
  outline: var(--ui-border-width) solid Highlight;
249
264
  outline-offset: calc(-1 * var(--ui-border-width));
250
265
  }
251
266
  }
252
- :scope:where(:scope):is([hidden]) {
267
+ :global(:scope[hidden]:where([data-hn-ui-search-result-row])) {
253
268
  display: none;
254
269
  }
255
270
  }
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, provide, ref, useTemplateRef, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -166,19 +166,25 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
166
166
  <div
167
167
  class="ui-search-shell"
168
168
  v-bind="nativeAttrs($attrs)"
169
+ data-hn
170
+ data-hn-ui-search-shell
169
171
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
170
- :data-dismissible="reflectedProp('dismissible', 'dismissible', checkedProps.dismissible, undefined, false)"
171
- :data-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
172
- :data-modal="reflectedProp('modal', 'modal', checkedProps.modal, undefined, false)"
173
- :data-open="reflectedProp('open', 'open', checkedProps.open, undefined, false)"
172
+ :data-ui-search-shell-prop-dismissible="reflectedProp('dismissible', 'dismissible', checkedProps.dismissible, undefined, false)"
173
+ :data-ui-search-shell-prop-label="reflectedProp('label', 'label', checkedProps.label, undefined, false)"
174
+ :data-ui-search-shell-prop-modal="reflectedProp('modal', 'modal', checkedProps.modal, undefined, false)"
175
+ :data-ui-search-shell-prop-open="reflectedProp('open', 'open', checkedProps.open, undefined, false)"
174
176
  ref="root"
175
177
  >
176
- <dialog :aria-label="checkedProps.label ?? undefined" ref="dialogElement">
177
- <div class="panel">
178
- <div class="search"><slot name="search" /></div>
179
- <div class="status"><slot name="status" /></div>
180
- <div class="body"><slot name="body" /></div>
181
- <div class="actions"><slot name="footer" /></div>
178
+ <dialog
179
+ data-hn-ui-search-shell
180
+ :aria-label="checkedProps.label ?? undefined"
181
+ ref="dialogElement"
182
+ >
183
+ <div class="panel" data-hn-ui-search-shell>
184
+ <div class="search" data-hn-ui-search-shell><slot name="search" /></div>
185
+ <div class="status" data-hn-ui-search-shell><slot name="status" /></div>
186
+ <div class="body" data-hn-ui-search-shell><slot name="body" /></div>
187
+ <div class="actions" data-hn-ui-search-shell><slot name="footer" /></div>
182
188
  </div>
183
189
  </dialog>
184
190
  </div>
@@ -231,8 +237,8 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
231
237
 
232
238
  /* A component that sets its display still honours the hidden attribute on its root. */
233
239
 
234
- @scope (.ui-search-shell) {
235
- :scope:where(:scope) {
240
+ @scope (.ui-search-shell) to ([data-hn]) {
241
+ :global(:scope:where([data-hn-ui-search-shell])) {
236
242
  /* Hooks do not inherit, so the parts below read them from the root. */
237
243
  --_ui-search-shell-z-index: var(--ui-search-shell-z-index);
238
244
  --_ui-search-shell-padding-top: var(--ui-search-shell-padding-top);
@@ -248,7 +254,7 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
248
254
  display: contents;
249
255
  }
250
256
 
251
- dialog {
257
+ :global(dialog:where([data-hn-ui-search-shell])) {
252
258
  position: fixed;
253
259
  inset: 0;
254
260
  z-index: var(--_ui-search-shell-z-index, 400);
@@ -267,19 +273,19 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
267
273
  color: var(--ui-text-primary);
268
274
  }
269
275
 
270
- dialog:modal::backdrop {
276
+ :global(dialog:modal:where([data-hn-ui-search-shell])::backdrop) {
271
277
  background: var(--ui-overlay-backdrop);
272
278
  }
273
279
 
274
- dialog:modal {
280
+ :global(dialog:modal:where([data-hn-ui-search-shell])) {
275
281
  background: transparent;
276
282
  }
277
283
 
278
- dialog[data-ui-backdrop-hidden]::backdrop {
284
+ :global(dialog[data-ui-backdrop-hidden]:where([data-hn-ui-search-shell])::backdrop) {
279
285
  background: transparent;
280
286
  }
281
287
 
282
- .panel {
288
+ :global(.panel:where([data-hn-ui-search-shell])) {
283
289
  position: relative;
284
290
  display: flex;
285
291
  flex-direction: column;
@@ -303,11 +309,11 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
303
309
  );
304
310
  }
305
311
 
306
- .search {
312
+ :global(.search:where([data-hn-ui-search-shell])) {
307
313
  padding: var(--ui-space-3);
308
314
  }
309
315
 
310
- :slotted(input[slot="search"]) {
316
+ :global(:where(:not([data-hn-ui-search-shell])):is(input[slot="search"])) {
311
317
  box-sizing: border-box;
312
318
  inline-size: 100%;
313
319
  min-block-size: var(--ui-control-min-block-size);
@@ -320,23 +326,24 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
320
326
  box-shadow: var(--ui-shadow-xs);
321
327
  }
322
328
 
323
- :slotted(input[slot="search"]:focus-visible) {
329
+ :global(:where(:not([data-hn-ui-search-shell])):is(input[slot="search"]:focus-visible)) {
324
330
  border-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
325
331
  outline: var(--ui-focus-width) solid var(--ui-focus-ring);
326
332
  outline-offset: var(--ui-focus-width);
327
333
  }
328
334
 
329
- .status, .actions {
335
+ :global(.status:where([data-hn-ui-search-shell])),
336
+ :global(.actions:where([data-hn-ui-search-shell])) {
330
337
  flex-shrink: 0;
331
338
  padding: var(--ui-space-2) var(--ui-space-4);
332
339
  color: var(--ui-text-secondary);
333
340
  font-size: var(--ui-font-size-sm);
334
341
  }
335
342
 
336
- .status {
343
+ :global(.status:where([data-hn-ui-search-shell])) {
337
344
  padding-block-start: 0;
338
345
  }
339
- .actions {
346
+ :global(.actions:where([data-hn-ui-search-shell])) {
340
347
  display: flex;
341
348
  flex-wrap: wrap;
342
349
  align-items: center;
@@ -345,11 +352,12 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
345
352
  padding: var(--ui-space-3) var(--ui-space-4);
346
353
  }
347
354
 
348
- .status:empty, .actions:empty {
355
+ :global(.status:empty:where([data-hn-ui-search-shell])),
356
+ :global(.actions:empty:where([data-hn-ui-search-shell])) {
349
357
  display: none;
350
358
  }
351
359
 
352
- .body {
360
+ :global(.body:where([data-hn-ui-search-shell])) {
353
361
  flex: 1;
354
362
  min-block-size: 0;
355
363
  overflow: auto;
@@ -378,11 +386,11 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
378
386
  }
379
387
 
380
388
  @media (max-width: 47.9375rem) {
381
- dialog {
389
+ :global(dialog:where([data-hn-ui-search-shell])) {
382
390
  padding: 0;
383
391
  }
384
392
 
385
- .panel {
393
+ :global(.panel:where([data-hn-ui-search-shell])) {
386
394
  inline-size: 100%;
387
395
  min-block-size: 100dvh;
388
396
  max-block-size: none;
@@ -390,7 +398,7 @@ useComponentHost(() => import('../components/ui-search-shell/ui-search-shell.js'
390
398
  border-radius: 0;
391
399
  }
392
400
  }
393
- :scope:where(:scope):is([hidden]) {
401
+ :global(:scope[hidden]:where([data-hn-ui-search-shell])) {
394
402
  display: none;
395
403
  }
396
404
  }
package/vue/UiSection.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, watchSyncEffect } from 'vue'
4
4
  import type { PropType } from 'vue'
@@ -77,7 +77,7 @@ const reflectedProp = useReflectedProp()
77
77
 
78
78
  checkHydratedRoot('section', 'ui-section')
79
79
 
80
- /** The values the styles' :host-state() rules test. */
80
+ /** The values the styles' :host() prop and state rules test. */
81
81
  const hostState = computed(() =>
82
82
  [
83
83
  checkedProps.value.variant && 'variant',
@@ -93,18 +93,24 @@ const hostState = computed(() =>
93
93
  <section
94
94
  class="ui-section"
95
95
  v-bind="nativeAttrs($attrs)"
96
+ data-hn
97
+ data-hn-ui-section
96
98
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
97
- :data-heading="reflectedProp('heading', 'heading', checkedProps.heading, undefined, false)"
98
- :data-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
99
- :data-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
99
+ :data-ui-section-prop-heading="reflectedProp('heading', 'heading', checkedProps.heading, undefined, false)"
100
+ :data-ui-section-prop-tone="reflectedProp('tone', 'tone', checkedProps.tone, undefined, false)"
101
+ :data-ui-section-prop-variant="reflectedProp('variant', 'variant', checkedProps.variant, undefined, false)"
100
102
  :data-ui-section-state="hostState || undefined"
101
103
  >
102
- <span class="head"><span class="copy"><h2 class="heading" :hidden="!checkedProps.heading">
104
+ <span class="head" data-hn-ui-section><span class="copy" data-hn-ui-section><h2
105
+ class="heading"
106
+ data-hn-ui-section
107
+ :hidden="!checkedProps.heading"
108
+ >
103
109
  {{ checkedProps.heading }}
104
110
  </h2>
105
- <span class="description"><slot name="description" /></span></span>
106
- <span class="actions"><slot name="actions" /></span></span>
107
- <span class="body"><slot /></span>
111
+ <span class="description" data-hn-ui-section><slot name="description" /></span></span>
112
+ <span class="actions" data-hn-ui-section><slot name="actions" /></span></span>
113
+ <span class="body" data-hn-ui-section><slot /></span>
108
114
  </section>
109
115
  </template>
110
116
 
@@ -114,15 +120,15 @@ const hostState = computed(() =>
114
120
 
115
121
  /* A component that sets its display still honours the hidden attribute on its root. */
116
122
 
117
- @scope (.ui-section) {
118
- :scope:where(:scope) {
123
+ @scope (.ui-section) to ([data-hn]) {
124
+ :global(:scope:where([data-hn-ui-section])) {
119
125
  display: flex;
120
126
  flex-direction: column;
121
127
  gap: var(--ui-space-4);
122
128
  min-inline-size: 0;
123
129
  }
124
130
 
125
- :scope:where(:scope):is([data-ui-section-state~="variant=card"]) {
131
+ :global(:scope[data-ui-section-state~="variant=card"]:where([data-hn-ui-section])) {
126
132
  --_ui-selection-context-surface: initial;
127
133
  --_ui-selection-context-border: initial;
128
134
  --_ui-selection-context-text: initial;
@@ -132,12 +138,12 @@ const hostState = computed(() =>
132
138
  background: var(--ui-surface-raised);
133
139
  }
134
140
 
135
- :scope:where(:scope):is([data-ui-section-state~="variant=divided"]) {
141
+ :global(:scope[data-ui-section-state~="variant=divided"]:where([data-hn-ui-section])) {
136
142
  padding-block-start: var(--ui-space-6);
137
143
  border-block-start: var(--ui-border-width) solid var(--ui-border-divider);
138
144
  }
139
145
 
140
- :scope:where(:scope):is([data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"]) {
146
+ :global(:scope[data-ui-section-state~="variant=card"][data-ui-section-state~="tone=danger"]:where([data-hn-ui-section])) {
141
147
  --_ui-selection-context-surface: light-dark(
142
148
  oklch(from var(--ui-danger-soft) calc(l - 0.045) calc(max(c, min(0.045, c * 3))) h),
143
149
  oklch(from var(--ui-danger-soft) calc(l + 0.045) calc(max(c, min(0.045, c * 3))) h)
@@ -155,7 +161,7 @@ const hostState = computed(() =>
155
161
  background: var(--ui-danger-soft);
156
162
  }
157
163
 
158
- .head {
164
+ :global(.head:where([data-hn-ui-section])) {
159
165
  display: flex;
160
166
  flex-wrap: wrap;
161
167
  align-items: flex-start;
@@ -163,7 +169,7 @@ const hostState = computed(() =>
163
169
  gap: var(--ui-space-2) var(--ui-space-4);
164
170
  }
165
171
 
166
- .copy {
172
+ :global(.copy:where([data-hn-ui-section])) {
167
173
  display: flex;
168
174
  flex: 1 1 16rem;
169
175
  flex-direction: column;
@@ -171,7 +177,7 @@ const hostState = computed(() =>
171
177
  min-inline-size: 0;
172
178
  }
173
179
 
174
- .heading {
180
+ :global(.heading:where([data-hn-ui-section])) {
175
181
  margin: 0;
176
182
  color: var(--ui-text-primary);
177
183
  font-size: var(--ui-font-size-lg);
@@ -179,37 +185,38 @@ const hostState = computed(() =>
179
185
  line-height: var(--ui-line-height-tight);
180
186
  }
181
187
 
182
- :scope[data-ui-section-state~="tone=danger"] .heading {
188
+ :global(:scope[data-ui-section-state~="tone=danger"] .heading:where([data-hn-ui-section])) {
183
189
  color: var(--ui-danger);
184
190
  }
185
191
 
186
- .description {
192
+ :global(.description:where([data-hn-ui-section])) {
187
193
  color: var(--ui-text-secondary);
188
194
  font-size: var(--ui-font-size-sm);
189
195
  line-height: var(--ui-line-height);
190
196
  }
191
197
 
192
- .actions {
198
+ :global(.actions:where([data-hn-ui-section])) {
193
199
  display: inline-flex;
194
200
  flex-wrap: wrap;
195
201
  gap: var(--ui-space-2);
196
202
  }
197
203
 
198
- .body {
204
+ :global(.body:where([data-hn-ui-section])) {
199
205
  display: flex;
200
206
  flex-direction: column;
201
207
  gap: var(--ui-space-4);
202
208
  min-inline-size: 0;
203
209
  }
204
210
 
205
- .description:empty, .actions:empty {
211
+ :global(.description:empty:where([data-hn-ui-section])),
212
+ :global(.actions:empty:where([data-hn-ui-section])) {
206
213
  display: none;
207
214
  }
208
215
 
209
- .head:has(.heading[hidden]):has(.description:empty):has(.actions:empty) {
216
+ :global(.head:has(.heading[hidden]):has(.description:empty):has(.actions:empty):where([data-hn-ui-section])) {
210
217
  display: none;
211
218
  }
212
- :scope:where(:scope):is([hidden]) {
219
+ :global(:scope[hidden]:where([data-hn-ui-section])) {
213
220
  display: none;
214
221
  }
215
222
  }
package/vue/UiSelect.vue CHANGED
@@ -1,4 +1,4 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.52 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'
@@ -131,7 +131,7 @@ const model = computed({
131
131
  const root = ref<HTMLElement | null>(null)
132
132
  checkHydratedRoot('select', 'ui-select')
133
133
 
134
- /** The values the styles' :host-state() rules test. */
134
+ /** The values the styles' :host() prop and state rules test. */
135
135
  const hostState = computed(() =>
136
136
  [
137
137
  checkedProps.value.size && 'size',
@@ -166,15 +166,17 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
166
166
  <select
167
167
  class="ui-select"
168
168
  v-bind="nativeAttrs($attrs)"
169
+ data-hn
170
+ data-hn-ui-select
169
171
  :disabled="checkedProps.disabled ?? undefined"
170
172
  :required="checkedProps.required ?? undefined"
171
173
  :aria-invalid="checkedProps.invalid ?? undefined"
172
174
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
173
- :data-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
174
- :data-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
175
- :data-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
176
- :data-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
177
- :data-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
175
+ :data-ui-select-prop-disabled="reflectedProp('disabled', 'disabled', checkedProps.disabled, undefined, false)"
176
+ :data-ui-select-prop-invalid="reflectedProp('invalid', 'invalid', checkedProps.invalid, undefined, false)"
177
+ :data-ui-select-prop-required="reflectedProp('required', 'required', checkedProps.required, undefined, false)"
178
+ :data-ui-select-prop-size="reflectedProp('size', 'size', checkedProps.size, undefined, false)"
179
+ :data-ui-select-prop-value="reflectedProp('value', 'value', checkedProps.value, undefined, false)"
178
180
  v-bind-control="{ tag: 'select', name: 'value', value: model, optionalValue: true, defaultValue: '' }"
179
181
  @change="model = readBoundControl(
180
182
  $event.currentTarget as HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement,
@@ -244,8 +246,8 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
244
246
 
245
247
  /* A component that sets its display still honours the hidden attribute on its root. */
246
248
 
247
- @scope (.ui-select) {
248
- :scope:where(:scope) {
249
+ @scope (.ui-select) to ([data-hn]) {
250
+ :global(:scope:where([data-hn-ui-select])) {
249
251
  box-sizing: border-box;
250
252
  display: inline-block;
251
253
  inline-size: var(--ui-select-inline-size, 100%);
@@ -270,7 +272,7 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
270
272
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
271
273
  background-color var(--ui-motion-fast) var(--ui-motion-ease);
272
274
  }
273
- :scope:where(:scope) {
275
+ :global(:scope:where([data-hn-ui-select])) {
274
276
  appearance: none;
275
277
  padding-inline-end: calc(var(--ui-space-3) + 1.5rem);
276
278
  background-image: var(
@@ -282,14 +284,14 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
282
284
  background-size: 1.125rem 1.125rem;
283
285
  }
284
286
 
285
- :scope:where(:scope):is(:hover:not(:focus):not(:disabled):not([aria-invalid="true"]):not(:is(:user-invalid, [data-user-invalid]))) {
287
+ :global(:scope:hover:not(:focus):not(:disabled):not([aria-invalid="true"]):not(:is(:user-invalid, [data-user-invalid])):where([data-hn-ui-select])) {
286
288
  border-color: var(
287
289
  --ui-select-border-hover,
288
290
  var(--ui-control-border-hover, var(--ui-text-secondary))
289
291
  );
290
292
  }
291
293
 
292
- :scope:where(:scope):is(:focus-visible) {
294
+ :global(:scope:focus-visible:where([data-hn-ui-select])) {
293
295
  border-color: var(--ui-select-focus-border, var(--ui-control-focus, var(--ui-accent-solid)));
294
296
  outline: none;
295
297
  box-shadow: var(
@@ -298,12 +300,12 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
298
300
  var(--ui-control-focus-halo-shadow)
299
301
  );
300
302
  }
301
- :scope:where(:scope):is([aria-invalid="true"]),
302
- :scope:where(:scope):is(:is(:user-invalid, [data-user-invalid])) {
303
+ :global(:scope[aria-invalid="true"]:where([data-hn-ui-select])),
304
+ :global(:scope:is(:user-invalid, [data-user-invalid]):where([data-hn-ui-select])) {
303
305
  border-color: var(--ui-select-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)));
304
306
  }
305
307
 
306
- :scope:where(:scope):is(:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible) {
308
+ :global(:scope:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible:where([data-hn-ui-select])) {
307
309
  box-shadow: var(
308
310
  --ui-select-invalid-focus-shadow,
309
311
  var(--ui-shadow-sm),
@@ -315,14 +317,14 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
315
317
  );
316
318
  }
317
319
 
318
- :scope:where(:scope):is(:disabled) {
320
+ :global(:scope:disabled:where([data-hn-ui-select])) {
319
321
  background-color: var(--ui-control-surface-disabled, var(--ui-surface-muted));
320
322
  color: var(--ui-disabled-text);
321
323
  box-shadow: none;
322
324
  cursor: not-allowed;
323
325
  }
324
326
 
325
- :scope:where(:scope):is([data-ui-select-state~="size=sm"]) {
327
+ :global(:scope[data-ui-select-state~="size=sm"]:where([data-hn-ui-select])) {
326
328
  min-block-size: var(--ui-control-size-sm);
327
329
  padding: var(--ui-space-1) var(--ui-space-2);
328
330
  padding-inline-end: calc(var(--ui-space-2) + var(--ui-icon-size-sm) + var(--ui-space-1));
@@ -331,7 +333,7 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
331
333
  font-size: var(--ui-font-size-sm);
332
334
  }
333
335
 
334
- :scope:where(:scope):is([data-ui-select-state~="size=lg"]) {
336
+ :global(:scope[data-ui-select-state~="size=lg"]:where([data-hn-ui-select])) {
335
337
  min-block-size: var(--ui-control-size-lg);
336
338
  padding: var(--ui-space-3) var(--ui-space-4);
337
339
  padding-inline-end: calc(var(--ui-space-4) + 1.5rem);
@@ -339,16 +341,16 @@ useComponentHost(() => import('../components/ui-select/ui-select.js'), {
339
341
  font-size: var(--ui-font-size-md);
340
342
  }
341
343
  @media (pointer: coarse) {
342
- :scope:where(:scope) {
344
+ :global(:scope:where([data-hn-ui-select])) {
343
345
  min-block-size: max(var(--ui-control-size-md), var(--ui-control-min-block-size));
344
346
  }
345
347
 
346
- :scope:where(:scope):is([data-ui-select-state~="size=sm"]) {
348
+ :global(:scope[data-ui-select-state~="size=sm"]:where([data-hn-ui-select])) {
347
349
  min-block-size: var(--ui-control-min-block-size);
348
350
  font-size: inherit;
349
351
  }
350
352
  }
351
- :scope:where(:scope):is([hidden]) {
353
+ :global(:scope[hidden]:where([data-hn-ui-select])) {
352
354
  display: none;
353
355
  }
354
356
  }