@threadlabs/looma 0.28.5 → 0.28.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/components/ui-editor-block-actions/ui-editor-block-actions.html +20 -0
  2. package/components/ui-editor-block-actions/ui-editor-block-actions.js +14 -0
  3. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +7 -6
  4. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +2 -1
  5. package/components/ui-editor-link-card/ui-editor-link-card.html +57 -0
  6. package/components/ui-editor-link-card/ui-editor-link-card.js +27 -0
  7. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  8. package/dist/index.js +36 -34
  9. package/package.json +3 -2
  10. package/styles/ui-action-bar.css +13 -6
  11. package/styles/ui-affordance-scope.css +12 -5
  12. package/styles/ui-avatar-group.css +17 -10
  13. package/styles/ui-avatar.css +23 -16
  14. package/styles/ui-badge.css +78 -71
  15. package/styles/ui-breadcrumb-item.css +12 -5
  16. package/styles/ui-breadcrumbs.css +10 -3
  17. package/styles/ui-button.css +79 -72
  18. package/styles/ui-callout.css +29 -22
  19. package/styles/ui-card.css +25 -18
  20. package/styles/ui-checkbox.css +45 -37
  21. package/styles/ui-cluster.css +34 -27
  22. package/styles/ui-combobox.css +46 -39
  23. package/styles/ui-container.css +20 -13
  24. package/styles/ui-context-menu.css +17 -10
  25. package/styles/ui-cover.css +12 -5
  26. package/styles/ui-description-item.css +10 -3
  27. package/styles/ui-description-list.css +20 -13
  28. package/styles/ui-dialog.css +44 -35
  29. package/styles/ui-disclosure.css +32 -25
  30. package/styles/ui-editable.css +15 -8
  31. package/styles/ui-editor-block-actions.css +1 -0
  32. package/styles/ui-editor-image-toolbar.css +1 -1
  33. package/styles/ui-editor-insert-table-grid.css +11 -4
  34. package/styles/ui-editor-link-card.css +1 -0
  35. package/styles/ui-editor-mention-menu-item.css +17 -8
  36. package/styles/ui-editor-mention-menu.css +14 -7
  37. package/styles/ui-editor-slash-menu-group.css +10 -3
  38. package/styles/ui-editor-slash-menu-item.css +15 -8
  39. package/styles/ui-editor-slash-menu.css +15 -8
  40. package/styles/ui-editor-surface.css +10 -3
  41. package/styles/ui-editor-table-context-menu.css +17 -10
  42. package/styles/ui-editor-table-overlay.css +17 -10
  43. package/styles/ui-editor-table-toolbar.css +22 -15
  44. package/styles/ui-editor-toolbar.css +18 -11
  45. package/styles/ui-floating-action-button.css +21 -14
  46. package/styles/ui-form-field.css +20 -13
  47. package/styles/ui-grid.css +21 -14
  48. package/styles/ui-icon-button.css +80 -73
  49. package/styles/ui-icon.css +14 -7
  50. package/styles/ui-image.css +25 -18
  51. package/styles/ui-input-group.css +34 -27
  52. package/styles/ui-input.css +42 -35
  53. package/styles/ui-list-item.css +33 -26
  54. package/styles/ui-list.css +22 -15
  55. package/styles/ui-listbox.css +22 -14
  56. package/styles/ui-menu-group.css +10 -3
  57. package/styles/ui-menu-item.css +29 -22
  58. package/styles/ui-menu.css +25 -18
  59. package/styles/ui-meter.css +36 -29
  60. package/styles/ui-nav-item.css +26 -19
  61. package/styles/ui-page-header.css +12 -5
  62. package/styles/ui-popover.css +27 -20
  63. package/styles/ui-radio-group.css +14 -6
  64. package/styles/ui-radio.css +24 -17
  65. package/styles/ui-reel.css +28 -21
  66. package/styles/ui-scroll-area.css +22 -15
  67. package/styles/ui-search-result-row.css +28 -21
  68. package/styles/ui-search-shell.css +24 -17
  69. package/styles/ui-section.css +14 -7
  70. package/styles/ui-select.css +33 -26
  71. package/styles/ui-separator.css +17 -10
  72. package/styles/ui-sidebar.css +35 -28
  73. package/styles/ui-spinner.css +32 -23
  74. package/styles/ui-stack.css +29 -21
  75. package/styles/ui-status-message.css +14 -7
  76. package/styles/ui-switch.css +29 -22
  77. package/styles/ui-switcher.css +27 -20
  78. package/styles/ui-table.css +14 -7
  79. package/styles/ui-tabs.css +24 -17
  80. package/styles/ui-text.css +35 -28
  81. package/styles/ui-textarea.css +37 -30
  82. package/styles/ui-toast-region.css +74 -63
  83. package/styles/ui-toast.css +21 -14
  84. package/styles/ui-tooltip.css +38 -31
  85. package/styles/ui-top-bar.css +19 -12
  86. package/styles/ui-tree-item.css +79 -71
  87. package/styles/ui-tree.css +18 -11
  88. package/vanilla/UiActionBar.d.ts +1 -1
  89. package/vanilla/UiActionBar.js +1 -1
  90. package/vanilla/UiAffordanceScope.d.ts +1 -1
  91. package/vanilla/UiAffordanceScope.js +1 -1
  92. package/vanilla/UiAvatar.d.ts +1 -1
  93. package/vanilla/UiAvatar.js +1 -1
  94. package/vanilla/UiAvatarGroup.d.ts +1 -1
  95. package/vanilla/UiAvatarGroup.js +1 -1
  96. package/vanilla/UiBadge.d.ts +1 -1
  97. package/vanilla/UiBadge.js +1 -1
  98. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  99. package/vanilla/UiBreadcrumbItem.js +1 -1
  100. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  101. package/vanilla/UiBreadcrumbs.js +1 -1
  102. package/vanilla/UiButton.d.ts +1 -1
  103. package/vanilla/UiButton.js +19 -57
  104. package/vanilla/UiCallout.d.ts +1 -1
  105. package/vanilla/UiCallout.js +25 -73
  106. package/vanilla/UiCard.d.ts +1 -1
  107. package/vanilla/UiCard.js +1 -1
  108. package/vanilla/UiCheckbox.d.ts +1 -1
  109. package/vanilla/UiCheckbox.js +1 -1
  110. package/vanilla/UiCluster.d.ts +1 -1
  111. package/vanilla/UiCluster.js +1 -1
  112. package/vanilla/UiCombobox.d.ts +1 -1
  113. package/vanilla/UiCombobox.js +60 -166
  114. package/vanilla/UiContainer.d.ts +1 -1
  115. package/vanilla/UiContainer.js +1 -1
  116. package/vanilla/UiContextMenu.d.ts +1 -1
  117. package/vanilla/UiContextMenu.js +1 -1
  118. package/vanilla/UiCover.d.ts +1 -1
  119. package/vanilla/UiCover.js +1 -1
  120. package/vanilla/UiDescriptionItem.d.ts +1 -1
  121. package/vanilla/UiDescriptionItem.js +1 -1
  122. package/vanilla/UiDescriptionList.d.ts +1 -1
  123. package/vanilla/UiDescriptionList.js +1 -1
  124. package/vanilla/UiDialog.d.ts +1 -1
  125. package/vanilla/UiDialog.js +4 -10
  126. package/vanilla/UiDisclosure.d.ts +1 -1
  127. package/vanilla/UiDisclosure.js +1 -1
  128. package/vanilla/UiEditable.d.ts +1 -1
  129. package/vanilla/UiEditable.js +7 -19
  130. package/vanilla/UiEditorBlockActions.d.ts +16 -0
  131. package/vanilla/UiEditorBlockActions.js +41 -0
  132. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  133. package/vanilla/UiEditorImageToolbar.js +2 -2
  134. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  135. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  136. package/vanilla/UiEditorLinkCard.d.ts +20 -0
  137. package/vanilla/UiEditorLinkCard.js +153 -0
  138. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  139. package/vanilla/UiEditorMentionMenu.js +17 -37
  140. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  141. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  142. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  143. package/vanilla/UiEditorSlashMenu.js +5 -4
  144. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  145. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  146. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  147. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  148. package/vanilla/UiEditorSurface.d.ts +1 -1
  149. package/vanilla/UiEditorSurface.js +1 -1
  150. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  151. package/vanilla/UiEditorTableContextMenu.js +6 -14
  152. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  153. package/vanilla/UiEditorTableOverlay.js +9 -25
  154. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  155. package/vanilla/UiEditorTableToolbar.js +25 -77
  156. package/vanilla/UiEditorToolbar.d.ts +1 -1
  157. package/vanilla/UiEditorToolbar.js +1 -1
  158. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  159. package/vanilla/UiFloatingActionButton.js +1 -1
  160. package/vanilla/UiFormField.d.ts +1 -1
  161. package/vanilla/UiFormField.js +1 -1
  162. package/vanilla/UiGrid.d.ts +1 -1
  163. package/vanilla/UiGrid.js +1 -1
  164. package/vanilla/UiIcon.d.ts +1 -1
  165. package/vanilla/UiIcon.js +15 -47
  166. package/vanilla/UiIconButton.d.ts +1 -1
  167. package/vanilla/UiIconButton.js +4 -10
  168. package/vanilla/UiImage.d.ts +1 -1
  169. package/vanilla/UiImage.js +1 -1
  170. package/vanilla/UiInput.d.ts +1 -1
  171. package/vanilla/UiInput.js +1 -1
  172. package/vanilla/UiInputGroup.d.ts +1 -1
  173. package/vanilla/UiInputGroup.js +1 -1
  174. package/vanilla/UiList.d.ts +1 -1
  175. package/vanilla/UiList.js +1 -1
  176. package/vanilla/UiListItem.d.ts +1 -1
  177. package/vanilla/UiListItem.js +1 -1
  178. package/vanilla/UiListbox.d.ts +1 -1
  179. package/vanilla/UiListbox.js +4 -10
  180. package/vanilla/UiMenu.d.ts +1 -1
  181. package/vanilla/UiMenu.js +1 -1
  182. package/vanilla/UiMenuGroup.d.ts +1 -1
  183. package/vanilla/UiMenuGroup.js +4 -10
  184. package/vanilla/UiMenuItem.d.ts +1 -1
  185. package/vanilla/UiMenuItem.js +4 -10
  186. package/vanilla/UiMeter.d.ts +1 -1
  187. package/vanilla/UiMeter.js +13 -33
  188. package/vanilla/UiNavItem.d.ts +1 -1
  189. package/vanilla/UiNavItem.js +1 -1
  190. package/vanilla/UiPageHeader.d.ts +1 -1
  191. package/vanilla/UiPageHeader.js +1 -1
  192. package/vanilla/UiPopover.d.ts +1 -1
  193. package/vanilla/UiPopover.js +1 -1
  194. package/vanilla/UiRadio.d.ts +1 -1
  195. package/vanilla/UiRadio.js +1 -1
  196. package/vanilla/UiRadioGroup.d.ts +1 -1
  197. package/vanilla/UiRadioGroup.js +1 -1
  198. package/vanilla/UiReel.d.ts +1 -1
  199. package/vanilla/UiReel.js +1 -1
  200. package/vanilla/UiScrollArea.d.ts +1 -1
  201. package/vanilla/UiScrollArea.js +1 -1
  202. package/vanilla/UiSearchResultRow.d.ts +1 -1
  203. package/vanilla/UiSearchResultRow.js +1 -1
  204. package/vanilla/UiSearchShell.d.ts +1 -1
  205. package/vanilla/UiSearchShell.js +1 -1
  206. package/vanilla/UiSection.d.ts +1 -1
  207. package/vanilla/UiSection.js +1 -1
  208. package/vanilla/UiSelect.d.ts +1 -1
  209. package/vanilla/UiSelect.js +1 -1
  210. package/vanilla/UiSeparator.d.ts +1 -1
  211. package/vanilla/UiSeparator.js +1 -1
  212. package/vanilla/UiSidebar.d.ts +1 -1
  213. package/vanilla/UiSidebar.js +1 -1
  214. package/vanilla/UiSpinner.d.ts +1 -1
  215. package/vanilla/UiSpinner.js +1 -1
  216. package/vanilla/UiStack.d.ts +1 -1
  217. package/vanilla/UiStack.js +1 -1
  218. package/vanilla/UiStatusMessage.d.ts +1 -1
  219. package/vanilla/UiStatusMessage.js +1 -1
  220. package/vanilla/UiSwitch.d.ts +1 -1
  221. package/vanilla/UiSwitch.js +1 -1
  222. package/vanilla/UiSwitcher.d.ts +1 -1
  223. package/vanilla/UiSwitcher.js +1 -1
  224. package/vanilla/UiTable.d.ts +1 -1
  225. package/vanilla/UiTable.js +1 -1
  226. package/vanilla/UiTabs.d.ts +1 -1
  227. package/vanilla/UiTabs.js +1 -1
  228. package/vanilla/UiText.d.ts +1 -1
  229. package/vanilla/UiText.js +1 -1
  230. package/vanilla/UiTextarea.d.ts +1 -1
  231. package/vanilla/UiTextarea.js +1 -1
  232. package/vanilla/UiToast.d.ts +1 -1
  233. package/vanilla/UiToast.js +1 -1
  234. package/vanilla/UiToastRegion.d.ts +1 -1
  235. package/vanilla/UiToastRegion.js +1 -1
  236. package/vanilla/UiTooltip.d.ts +1 -1
  237. package/vanilla/UiTooltip.js +1 -1
  238. package/vanilla/UiTopBar.d.ts +1 -1
  239. package/vanilla/UiTopBar.js +1 -1
  240. package/vanilla/UiTree.d.ts +1 -1
  241. package/vanilla/UiTree.js +1 -1
  242. package/vanilla/UiTreeItem.d.ts +1 -1
  243. package/vanilla/UiTreeItem.js +7 -19
  244. package/vanilla/index.js +2 -0
  245. package/vue/UiActionBar.vue +46 -78
  246. package/vue/UiAffordanceScope.vue +27 -66
  247. package/vue/UiAvatar.d.ts +10 -7
  248. package/vue/UiAvatar.vue +100 -218
  249. package/vue/UiAvatarGroup.d.ts +10 -7
  250. package/vue/UiAvatarGroup.vue +78 -160
  251. package/vue/UiBadge.d.ts +1 -1
  252. package/vue/UiBadge.vue +483 -520
  253. package/vue/UiBreadcrumbItem.vue +52 -123
  254. package/vue/UiBreadcrumbs.vue +27 -70
  255. package/vue/UiButton.d.ts +2 -2
  256. package/vue/UiButton.vue +420 -471
  257. package/vue/UiCallout.vue +131 -175
  258. package/vue/UiCard.d.ts +1 -1
  259. package/vue/UiCard.vue +112 -151
  260. package/vue/UiCheckbox.d.ts +13 -10
  261. package/vue/UiCheckbox.vue +160 -221
  262. package/vue/UiCluster.d.ts +1 -1
  263. package/vue/UiCluster.vue +84 -128
  264. package/vue/UiCombobox.d.ts +71 -68
  265. package/vue/UiCombobox.vue +417 -743
  266. package/vue/UiContainer.vue +43 -87
  267. package/vue/UiContextMenu.d.ts +6 -6
  268. package/vue/UiContextMenu.vue +78 -117
  269. package/vue/UiCover.vue +29 -69
  270. package/vue/UiDescriptionItem.vue +39 -82
  271. package/vue/UiDescriptionList.vue +64 -107
  272. package/vue/UiDialog.d.ts +22 -19
  273. package/vue/UiDialog.vue +193 -246
  274. package/vue/UiDisclosure.d.ts +22 -19
  275. package/vue/UiDisclosure.vue +192 -283
  276. package/vue/UiEditable.d.ts +5 -5
  277. package/vue/UiEditable.vue +124 -207
  278. package/vue/UiEditorBlockActions.d.ts +33 -0
  279. package/vue/UiEditorBlockActions.js +2 -0
  280. package/vue/UiEditorBlockActions.vue +125 -0
  281. package/vue/UiEditorImageToolbar.d.ts +2 -2
  282. package/vue/UiEditorImageToolbar.vue +45 -256
  283. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  284. package/vue/UiEditorInsertTableGrid.vue +98 -266
  285. package/vue/UiEditorLinkCard.d.ts +58 -0
  286. package/vue/UiEditorLinkCard.js +2 -0
  287. package/vue/UiEditorLinkCard.vue +319 -0
  288. package/vue/UiEditorMentionMenu.d.ts +15 -12
  289. package/vue/UiEditorMentionMenu.vue +150 -239
  290. package/vue/UiEditorMentionMenuItem.vue +66 -110
  291. package/vue/UiEditorSlashMenu.d.ts +16 -13
  292. package/vue/UiEditorSlashMenu.vue +172 -253
  293. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  294. package/vue/UiEditorSlashMenuItem.vue +67 -115
  295. package/vue/UiEditorSurface.vue +19 -63
  296. package/vue/UiEditorTableContextMenu.vue +135 -269
  297. package/vue/UiEditorTableOverlay.d.ts +2 -2
  298. package/vue/UiEditorTableOverlay.vue +310 -479
  299. package/vue/UiEditorTableToolbar.d.ts +2 -2
  300. package/vue/UiEditorTableToolbar.vue +182 -357
  301. package/vue/UiEditorToolbar.vue +143 -183
  302. package/vue/UiFloatingActionButton.vue +70 -114
  303. package/vue/UiFormField.d.ts +1 -1
  304. package/vue/UiFormField.vue +76 -117
  305. package/vue/UiGrid.d.ts +1 -1
  306. package/vue/UiGrid.vue +65 -103
  307. package/vue/UiIcon.vue +32 -106
  308. package/vue/UiIconButton.d.ts +2 -2
  309. package/vue/UiIconButton.vue +359 -411
  310. package/vue/UiImage.vue +145 -180
  311. package/vue/UiInput.vue +158 -190
  312. package/vue/UiInputGroup.vue +199 -239
  313. package/vue/UiList.vue +67 -109
  314. package/vue/UiListItem.vue +154 -201
  315. package/vue/UiListbox.d.ts +10 -7
  316. package/vue/UiListbox.vue +86 -260
  317. package/vue/UiMenu.d.ts +11 -11
  318. package/vue/UiMenu.vue +118 -152
  319. package/vue/UiMenuGroup.vue +21 -67
  320. package/vue/UiMenuItem.d.ts +19 -16
  321. package/vue/UiMenuItem.vue +169 -262
  322. package/vue/UiMeter.d.ts +4 -4
  323. package/vue/UiMeter.vue +166 -680
  324. package/vue/UiNavItem.vue +140 -213
  325. package/vue/UiPageHeader.vue +81 -127
  326. package/vue/UiPopover.d.ts +7 -7
  327. package/vue/UiPopover.vue +90 -129
  328. package/vue/UiRadio.d.ts +12 -9
  329. package/vue/UiRadio.vue +91 -149
  330. package/vue/UiRadioGroup.d.ts +2 -2
  331. package/vue/UiRadioGroup.vue +47 -85
  332. package/vue/UiReel.vue +89 -130
  333. package/vue/UiScrollArea.d.ts +1 -1
  334. package/vue/UiScrollArea.vue +78 -119
  335. package/vue/UiSearchResultRow.vue +96 -149
  336. package/vue/UiSearchShell.d.ts +2 -2
  337. package/vue/UiSearchShell.vue +159 -196
  338. package/vue/UiSection.vue +105 -149
  339. package/vue/UiSelect.d.ts +1 -1
  340. package/vue/UiSelect.vue +114 -146
  341. package/vue/UiSeparator.vue +42 -85
  342. package/vue/UiSidebar.d.ts +10 -7
  343. package/vue/UiSidebar.vue +193 -260
  344. package/vue/UiSpinner.vue +54 -130
  345. package/vue/UiStack.vue +66 -107
  346. package/vue/UiStatusMessage.d.ts +1 -1
  347. package/vue/UiStatusMessage.vue +61 -135
  348. package/vue/UiSwitch.d.ts +12 -9
  349. package/vue/UiSwitch.vue +136 -194
  350. package/vue/UiSwitcher.vue +69 -107
  351. package/vue/UiTable.vue +121 -156
  352. package/vue/UiTabs.d.ts +1 -1
  353. package/vue/UiTabs.vue +139 -267
  354. package/vue/UiText.d.ts +4 -4
  355. package/vue/UiText.vue +145 -184
  356. package/vue/UiTextarea.d.ts +2 -2
  357. package/vue/UiTextarea.vue +162 -194
  358. package/vue/UiToast.vue +70 -118
  359. package/vue/UiToastRegion.vue +157 -276
  360. package/vue/UiTooltip.d.ts +21 -18
  361. package/vue/UiTooltip.vue +174 -234
  362. package/vue/UiTopBar.vue +48 -76
  363. package/vue/UiTree.vue +46 -79
  364. package/vue/UiTreeItem.d.ts +18 -15
  365. package/vue/UiTreeItem.vue +526 -668
  366. package/vue/chunks/UiActionBar.js +5 -17
  367. package/vue/chunks/UiAffordanceScope.js +7 -26
  368. package/vue/chunks/UiAvatar.js +20 -74
  369. package/vue/chunks/UiAvatarGroup.js +14 -56
  370. package/vue/chunks/UiBadge.js +10 -28
  371. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  372. package/vue/chunks/UiBreadcrumbs.js +7 -25
  373. package/vue/chunks/UiButton.js +80 -103
  374. package/vue/chunks/UiCallout.js +9 -27
  375. package/vue/chunks/UiCard.js +33 -53
  376. package/vue/chunks/UiCheckbox.js +14 -46
  377. package/vue/chunks/UiCluster.js +13 -31
  378. package/vue/chunks/UiCombobox.js +99 -237
  379. package/vue/chunks/UiContainer.js +9 -27
  380. package/vue/chunks/UiContextMenu.js +7 -26
  381. package/vue/chunks/UiCover.js +7 -25
  382. package/vue/chunks/UiDescriptionItem.js +6 -24
  383. package/vue/chunks/UiDescriptionList.js +9 -27
  384. package/vue/chunks/UiDialog.js +18 -47
  385. package/vue/chunks/UiDisclosure.js +19 -66
  386. package/vue/chunks/UiEditable.js +18 -60
  387. package/vue/chunks/UiEditorBlockActions.js +127 -0
  388. package/vue/chunks/UiEditorImageToolbar.js +40 -127
  389. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  390. package/vue/chunks/UiEditorLinkCard.js +356 -0
  391. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  392. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  393. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  394. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  395. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  396. package/vue/chunks/UiEditorSurface.js +7 -25
  397. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  398. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  399. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  400. package/vue/chunks/UiEditorToolbar.js +7 -26
  401. package/vue/chunks/UiFloatingActionButton.js +10 -28
  402. package/vue/chunks/UiFormField.js +8 -27
  403. package/vue/chunks/UiGrid.js +10 -28
  404. package/vue/chunks/UiIcon.js +21 -74
  405. package/vue/chunks/UiIconButton.js +18 -50
  406. package/vue/chunks/UiImage.js +14 -33
  407. package/vue/chunks/UiInput.js +12 -31
  408. package/vue/chunks/UiInputGroup.js +10 -29
  409. package/vue/chunks/UiList.js +17 -37
  410. package/vue/chunks/UiListItem.js +12 -30
  411. package/vue/chunks/UiListbox.js +22 -124
  412. package/vue/chunks/UiMenu.js +13 -32
  413. package/vue/chunks/UiMenuGroup.js +8 -26
  414. package/vue/chunks/UiMenuItem.js +35 -80
  415. package/vue/chunks/UiMeter.js +17 -351
  416. package/vue/chunks/UiNavItem.js +23 -57
  417. package/vue/chunks/UiPageHeader.js +7 -25
  418. package/vue/chunks/UiPopover.js +9 -28
  419. package/vue/chunks/UiRadio.js +11 -43
  420. package/vue/chunks/UiRadioGroup.js +13 -32
  421. package/vue/chunks/UiReel.js +10 -28
  422. package/vue/chunks/UiScrollArea.js +10 -29
  423. package/vue/chunks/UiSearchResultRow.js +10 -28
  424. package/vue/chunks/UiSearchShell.js +9 -28
  425. package/vue/chunks/UiSection.js +9 -27
  426. package/vue/chunks/UiSelect.js +10 -29
  427. package/vue/chunks/UiSeparator.js +10 -28
  428. package/vue/chunks/UiSidebar.js +15 -47
  429. package/vue/chunks/UiSpinner.js +8 -44
  430. package/vue/chunks/UiStack.js +12 -30
  431. package/vue/chunks/UiStatusMessage.js +10 -42
  432. package/vue/chunks/UiSwitch.js +11 -43
  433. package/vue/chunks/UiSwitcher.js +9 -28
  434. package/vue/chunks/UiTable.js +7 -26
  435. package/vue/chunks/UiTabs.js +15 -91
  436. package/vue/chunks/UiText.js +148 -168
  437. package/vue/chunks/UiTextarea.js +16 -35
  438. package/vue/chunks/UiToast.js +13 -37
  439. package/vue/chunks/UiToastRegion.js +16 -88
  440. package/vue/chunks/UiTooltip.js +14 -46
  441. package/vue/chunks/UiTopBar.js +5 -17
  442. package/vue/chunks/UiTree.js +13 -32
  443. package/vue/chunks/UiTreeItem.js +34 -90
  444. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  445. package/vue/chunks/control.js +3 -0
  446. package/vue/chunks/props.js +1 -1
  447. package/vue/components.css +7689 -7617
  448. package/vue/editor/index.js +30 -95
  449. package/vue/editor/primitives.d.ts +8 -2
  450. package/vue/host.ts +999 -14
  451. package/vue/index.d.ts +2 -0
  452. package/vue/index.js +5 -3
  453. package/vue/chunks/host.js +0 -443
@@ -1,8 +1,14 @@
1
- <!-- Generated by HTML Next 1.0.0-alpha.35 for Vue 3.5. Do not edit. -->
1
+ <!-- Generated by HTML Next 1.0.0-alpha.51 for Vue 3.5. Do not edit. -->
2
2
  <script setup lang="ts">
3
3
  import { computed, getCurrentInstance, 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
 
@@ -53,59 +59,13 @@ void checkedProps.value
53
59
  watchSyncEffect(() => {
54
60
  void checkedProps.value
55
61
  })
56
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
57
- const names = Object.keys(attrs)
58
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
59
- return Object.fromEntries(names.map((name) => [
60
- Object.hasOwn(Object.prototype, name)
61
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
62
- : name,
63
- attrs[name],
64
- ]))
65
- }
66
- const componentInstance = getCurrentInstance()
67
- function reflectedProp(
68
- name: string,
69
- kebab: string,
70
- value: unknown,
71
- fallback: string | undefined,
72
- bound: boolean,
73
- separator?: string,
74
- ): string | undefined {
75
- const incoming = componentInstance?.vnode.props
76
- if (
77
- !bound
78
- && (incoming === null || incoming === undefined
79
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
80
- ) return fallback
81
- if (value === null || value === undefined) return undefined
82
- return Array.isArray(value) && separator !== undefined
83
- ? value.join(separator)
84
- : typeof value === 'object'
85
- ? JSON.stringify(value)
86
- : String(value)
87
- }
62
+ const reflectedProp = useReflectedProp()
88
63
  const hydrationInstance = getCurrentInstance()
89
64
 
90
65
  const root = ref<HTMLElement | null>(null)
91
66
  const engaged = ref(false)
92
67
  provide('html-next:ui-affordance-scope:engaged', engaged)
93
- const hydrationNode = hydrationInstance?.vnode.el
94
- if (
95
- typeof window !== 'undefined' && hydrationNode != null
96
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('span'))
97
- ) {
98
- throw Object.assign(
99
- new Error('HR005: Server markup for <ui-affordance-scope> has an incompatible root.'),
100
- {
101
- name: 'HtmlDiagnosticError',
102
- diagnostic: Object.freeze({
103
- code: 'HR005',
104
- message: 'Server markup for <ui-affordance-scope> has an incompatible root.',
105
- }),
106
- },
107
- )
108
- }
68
+ checkHydratedRoot('span', 'ui-affordance-scope')
109
69
 
110
70
  /** The values the styles' :host-state() rules test. */
111
71
  const hostState = computed(() =>
@@ -148,7 +108,7 @@ useComponentHost(() => import('../components/ui-affordance-scope/ui-affordance-s
148
108
 
149
109
  <template>
150
110
  <span
151
- data-component="ui-affordance-scope"
111
+ class="ui-affordance-scope"
152
112
  v-bind="nativeAttrs($attrs)"
153
113
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
154
114
  :data-guide="reflectedProp('guide', 'guide', checkedProps.guide, undefined, false)"
@@ -159,23 +119,24 @@ useComponentHost(() => import('../components/ui-affordance-scope/ui-affordance-s
159
119
  </template>
160
120
 
161
121
  <style scoped>
162
- [data-component~="ui-affordance-scope"] {
163
- display: contents;
164
- --ui-affordance-scope-engaged: 0;
165
- --ui-affordance-scope-guide: 1;
166
- }
167
-
168
- [data-component~="ui-affordance-scope"][data-ui-affordance-scope-state~="engaged"] {
169
- --ui-affordance-scope-engaged: 1;
170
- }
171
-
172
122
  /* Published to descendants: each guide multiplies its opacity by it, so none reaches them all. */
173
- [data-component~="ui-affordance-scope"][data-ui-affordance-scope-state~="guide=none"] {
174
- --ui-affordance-scope-guide: 0;
175
- }
176
123
 
177
124
  /* A component that sets its display still honours the hidden attribute on its root. */
178
- [data-component~="ui-affordance-scope"][hidden] {
179
- display: none;
125
+
126
+ @scope (.ui-affordance-scope) {
127
+ :scope:where(:scope) {
128
+ display: contents;
129
+ --ui-affordance-scope-engaged: 0;
130
+ --ui-affordance-scope-guide: 1;
131
+ }
132
+ :scope:where(:scope):is([data-ui-affordance-scope-state~="engaged"]) {
133
+ --ui-affordance-scope-engaged: 1;
134
+ }
135
+ :scope:where(:scope):is([data-ui-affordance-scope-state~="guide=none"]) {
136
+ --ui-affordance-scope-guide: 0;
137
+ }
138
+ :scope:where(:scope):is([hidden]) {
139
+ display: none;
140
+ }
180
141
  }
181
142
  </style>
package/vue/UiAvatar.d.ts CHANGED
@@ -1,7 +1,9 @@
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: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_1) => any;
5
+ };
6
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
7
  active: {
6
8
  type: PropType<boolean | null>;
7
9
  default: boolean;
@@ -70,15 +72,16 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import
70
72
  }>> & Readonly<{}>, {
71
73
  name: string | null;
72
74
  alt: string | null;
75
+ size: "xs" | "sm" | "md" | null;
73
76
  shape: "circle" | "square" | null;
74
77
  active: boolean | null;
75
78
  decorative: boolean | null;
76
79
  fallback: string | null;
77
- size: "xs" | "sm" | "md" | null;
78
80
  src: string | null;
79
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
80
- default?: (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/UiAvatar.vue CHANGED
@@ -1,19 +1,14 @@
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
- import { createDispatch, useComponentHost } from './host'
5
+ import {
6
+ checkHydratedRoot,
7
+ createDispatch,
8
+ nativeAttrs,
9
+ useComponentHost,
10
+ useReflectedProp,
11
+ } from './host'
17
12
  import { acceptsControllerWrite } from './props'
18
13
  import { checkedProp, propValidityState, vPropValidity } from './props'
19
14
  import UiIcon from './UiIcon.vue'
@@ -171,38 +166,7 @@ void checkedProps.value
171
166
  watchSyncEffect(() => {
172
167
  void checkedProps.value
173
168
  })
174
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
175
- const names = Object.keys(attrs)
176
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
177
- return Object.fromEntries(names.map((name) => [
178
- Object.hasOwn(Object.prototype, name)
179
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
180
- : name,
181
- attrs[name],
182
- ]))
183
- }
184
- const componentInstance = getCurrentInstance()
185
- function reflectedProp(
186
- name: string,
187
- kebab: string,
188
- value: unknown,
189
- fallback: string | undefined,
190
- bound: boolean,
191
- separator?: string,
192
- ): string | undefined {
193
- const incoming = componentInstance?.vnode.props
194
- if (
195
- !bound
196
- && (incoming === null || incoming === undefined
197
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
198
- ) return fallback
199
- if (value === null || value === undefined) return undefined
200
- return Array.isArray(value) && separator !== undefined
201
- ? value.join(separator)
202
- : typeof value === 'object'
203
- ? JSON.stringify(value)
204
- : String(value)
205
- }
169
+ const reflectedProp = useReflectedProp()
206
170
  const hydrationInstance = getCurrentInstance()
207
171
 
208
172
  const root = ref<HTMLElement | null>(null)
@@ -211,94 +175,11 @@ const hasImage = ref(false)
211
175
  const hasAuthoredImage = ref(false)
212
176
  const initials = ref('?')
213
177
  const showGlyph = ref(false)
214
- let guardedPrevious: any
215
- const guarded = computed(() => {
216
- if (
217
- !(htmlNextAuthoredCheck2(
218
- hasAuthoredImage.value == null || typeof hasAuthoredImage.value === 'boolean',
219
- '$hasAuthoredImage or not $hasImage:hasAuthoredImage',
220
- './components/ui-avatar/ui-avatar.html: HR007: Reference hasAuthoredImage does not satisfy its declared type.',
221
- )
222
- && htmlNextAuthoredCheck2(
223
- hasImage.value == null || typeof hasImage.value === 'boolean',
224
- '$hasAuthoredImage or not $hasImage:hasImage',
225
- './components/ui-avatar/ui-avatar.html: HR007: Reference hasImage does not satisfy its declared type.',
226
- ))
227
- ) return guardedPrevious
228
- return guardedPrevious = hasAuthoredImage.value || !hasImage.value
229
- })
230
- let guardedBindingPrevious: any
231
- const guardedBinding = computed(() => {
232
- if (
233
- !(htmlNextAuthoredCheck2(
234
- hasImage.value == null || typeof hasImage.value === 'boolean',
235
- '$hasImage:hasImage',
236
- './components/ui-avatar/ui-avatar.html: HR007: Reference hasImage does not satisfy its declared type.',
237
- ))
238
- ) return guardedBindingPrevious
239
- return guardedBindingPrevious = hasImage.value
240
- })
241
- let guardedBinding2Previous: any
242
- const guardedBinding2 = computed(() => {
243
- if (
244
- !(htmlNextAuthoredCheck2(
245
- hasImage.value == null || typeof hasImage.value === 'boolean',
246
- '$hasImage:hasImage',
247
- './components/ui-avatar/ui-avatar.html: HR007: Reference hasImage does not satisfy its declared type.',
248
- ))
249
- ) return guardedBinding2Previous
250
- return guardedBinding2Previous = hasImage.value
251
- })
252
- let guardedBinding3Previous: any
253
- const guardedBinding3 = computed(() => {
254
- if (
255
- !(htmlNextAuthoredCheck2(
256
- showGlyph.value == null || typeof showGlyph.value === 'boolean',
257
- '$showGlyph:showGlyph',
258
- './components/ui-avatar/ui-avatar.html: HR007: Reference showGlyph does not satisfy its declared type.',
259
- ))
260
- ) return guardedBinding3Previous
261
- return guardedBinding3Previous = showGlyph.value
262
- })
263
- let guardedBinding4Previous: any
264
- const guardedBinding4 = computed(() => {
265
- if (
266
- !(htmlNextAuthoredCheck2(
267
- initials.value == null || typeof initials.value === 'string',
268
- '$initials:initials',
269
- './components/ui-avatar/ui-avatar.html: HR007: Reference initials does not satisfy its declared type.',
270
- ))
271
- ) return guardedBinding4Previous
272
- return guardedBinding4Previous = initials.value
273
- })
274
- let guardedBinding5Previous: any
275
- const guardedBinding5 = computed(() => {
276
- if (
277
- !(htmlNextAuthoredCheck2(
278
- showGlyph.value == null || typeof showGlyph.value === 'boolean',
279
- 'not $showGlyph:showGlyph',
280
- './components/ui-avatar/ui-avatar.html: HR007: Reference showGlyph does not satisfy its declared type.',
281
- ))
282
- ) return guardedBinding5Previous
283
- return guardedBinding5Previous = !showGlyph.value
284
- })
285
178
  provide('html-next:ui-avatar:hasImage', hasImage)
286
179
  provide('html-next:ui-avatar:hasAuthoredImage', hasAuthoredImage)
287
180
  provide('html-next:ui-avatar:initials', initials)
288
181
  provide('html-next:ui-avatar:showGlyph', showGlyph)
289
- const hydrationNode = hydrationInstance?.vnode.el
290
- if (
291
- typeof window !== 'undefined' && hydrationNode != null
292
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('span'))
293
- ) {
294
- throw Object.assign(new Error('HR005: Server markup for <ui-avatar> has an incompatible root.'), {
295
- name: 'HtmlDiagnosticError',
296
- diagnostic: Object.freeze({
297
- code: 'HR005',
298
- message: 'Server markup for <ui-avatar> has an incompatible root.',
299
- }),
300
- })
301
- }
182
+ checkHydratedRoot('span', 'ui-avatar')
302
183
 
303
184
  /** The values the styles' :host-state() rules test. */
304
185
  const hostState = computed(() =>
@@ -350,7 +231,7 @@ useComponentHost(() => import('../components/ui-avatar/ui-avatar.js'), {
350
231
 
351
232
  <template>
352
233
  <span
353
- data-component="ui-avatar"
234
+ class="ui-avatar"
354
235
  v-bind="nativeAttrs($attrs)"
355
236
  v-prop-validity="{ contract: propValidityContract, values: { ...props } }"
356
237
  :data-active="reflectedProp('active', 'active', checkedProps.active, undefined, false)"
@@ -369,13 +250,13 @@ useComponentHost(() => import('../components/ui-avatar/ui-avatar.js'), {
369
250
  alt=""
370
251
  aria-hidden="true"
371
252
  :src="checkedProps.src ?? undefined"
372
- :hidden="guarded"
253
+ :hidden="hasAuthoredImage || !hasImage"
373
254
  ref="imageElement"
374
255
  >
375
- <span class="fallback" :aria-hidden="guardedBinding" :hidden="guardedBinding2"><span
376
- :hidden="guardedBinding3"
377
- >{{ guardedBinding4 }}</span>
378
- <span :hidden="guardedBinding5"><UiIcon name="user-round" /></span></span></span>
256
+ <span class="fallback" :aria-hidden="hasImage" :hidden="hasImage"><span :hidden="showGlyph">{{
257
+ initials
258
+ }}</span>
259
+ <span :hidden="!showGlyph"><UiIcon class="ui-icon" name="user-round" /></span></span></span>
379
260
  </template>
380
261
 
381
262
  <style scoped>
@@ -401,100 +282,101 @@ useComponentHost(() => import('../components/ui-avatar/ui-avatar.js'), {
401
282
  inherits: false;
402
283
  }
403
284
 
404
- [data-component~="ui-avatar"] {
405
- --_ui-default-icon-size: 1.25rem;
406
- display: inline-grid;
407
- place-items: center;
408
- overflow: hidden;
409
- inline-size: 2.5rem;
410
- block-size: 2.5rem;
411
- border-radius: var(--ui-avatar-radius, var(--ui-radius-round));
412
- border: var(--ui-border-width) solid
413
- var(
414
- --ui-avatar-border,
415
- color-mix(in srgb, var(--ui-accent-solid) 35%, var(--ui-surface-default))
416
- );
417
- background: var(--ui-avatar-surface, var(--ui-accent-soft));
418
- color: var(--ui-avatar-text, var(--ui-accent-subtle-text, var(--ui-accent-solid)));
419
- font: inherit;
420
- font-size: var(--ui-font-size-sm);
421
- font-weight: 600;
422
- /* The initials centre in the circle wherever it sits, whatever line height surrounds it. */
423
- line-height: 1;
424
- text-transform: uppercase;
425
- }
285
+ /* An outline, not a dot: the avatar clips its content to the circle, and an outline is drawn
286
+ outside the box, so the ring survives the clip and the overlap in an Avatar Group. */
426
287
 
427
- [data-component~="ui-avatar"][data-ui-avatar-state~="size=sm"] {
428
- --_ui-default-icon-size: 1rem;
429
- inline-size: 1.75rem;
430
- block-size: 1.75rem;
431
- font-size: var(--ui-font-size-xs);
432
- }
288
+ /* Centre the glyphs, not the line box: a label without descenders otherwise reads high. */
289
+ /* Centre the glyphs, not the line box: a label without descenders otherwise reads high.
290
+ * Trimming applies to block containers, so the box is a block with centred content. */
433
291
 
434
- [data-component~="ui-avatar"][data-ui-avatar-state~="size=xs"] {
435
- --_ui-default-icon-size: 0.75rem;
436
- inline-size: 1.25rem;
437
- block-size: 1.25rem;
438
- /* Below the type scale on purpose: two initials need room inside a 1.25rem circle. */
439
- font-size: calc(var(--ui-font-size) * 0.5625);
440
- letter-spacing: 0.02em;
441
- }
292
+ /* A component that sets its display still honours the hidden attribute on its root. */
442
293
 
443
- [data-component~="ui-avatar"][data-ui-avatar-state~="hasImage"] {
444
- border-color: var(--ui-avatar-border, var(--ui-border-strong));
445
- }
294
+ @scope (.ui-avatar) to (.ui-icon) {
295
+ :scope:where(:scope) {
296
+ --_ui-default-icon-size: 1.25rem;
297
+ display: inline-grid;
298
+ place-items: center;
299
+ overflow: hidden;
300
+ inline-size: 2.5rem;
301
+ block-size: 2.5rem;
302
+ border-radius: var(--ui-avatar-radius, var(--ui-radius-round));
303
+ border: var(--ui-border-width) solid
304
+ var(
305
+ --ui-avatar-border,
306
+ color-mix(in srgb, var(--ui-accent-solid) 35%, var(--ui-surface-default))
307
+ );
308
+ background: var(--ui-avatar-surface, var(--ui-accent-soft));
309
+ color: var(--ui-avatar-text, var(--ui-accent-subtle-text, var(--ui-accent-solid)));
310
+ font: inherit;
311
+ font-size: var(--ui-font-size-sm);
312
+ font-weight: 600;
313
+ /* The initials centre in the circle wherever it sits, whatever line height surrounds it. */
314
+ line-height: 1;
315
+ text-transform: uppercase;
316
+ }
446
317
 
447
- [data-component~="ui-avatar"][data-ui-avatar-state~="shape=circle"] {
448
- box-shadow: var(--ui-shadow-sm);
449
- }
318
+ :scope:where(:scope):is([data-ui-avatar-state~="size=sm"]) {
319
+ --_ui-default-icon-size: 1rem;
320
+ inline-size: 1.75rem;
321
+ block-size: 1.75rem;
322
+ font-size: var(--ui-font-size-xs);
323
+ }
450
324
 
451
- [data-component~="ui-avatar"][data-ui-avatar-state~="shape=square"] {
452
- border-radius: var(--ui-avatar-radius, var(--ui-radius-md));
453
- }
325
+ :scope:where(:scope):is([data-ui-avatar-state~="size=xs"]) {
326
+ --_ui-default-icon-size: 0.75rem;
327
+ inline-size: 1.25rem;
328
+ block-size: 1.25rem;
329
+ /* Below the type scale on purpose: two initials need room inside a 1.25rem circle. */
330
+ font-size: calc(var(--ui-font-size) * 0.5625);
331
+ letter-spacing: 0.02em;
332
+ }
454
333
 
455
- /* An outline, not a dot: the avatar clips its content to the circle, and an outline is drawn
456
- outside the box, so the ring survives the clip and the overlap in an Avatar Group. */
457
- [data-component~="ui-avatar"][data-ui-avatar-state~="active"] {
458
- outline: var(--ui-border-width) solid var(--ui-avatar-active-ring, var(--ui-accent-solid));
459
- outline-offset: var(--ui-border-width);
460
- }
334
+ :scope:where(:scope):is([data-ui-avatar-state~="hasImage"]) {
335
+ border-color: var(--ui-avatar-border, var(--ui-border-strong));
336
+ }
461
337
 
462
- .image,
463
- :slotted(img) {
464
- grid-area: 1 / 1;
465
- inline-size: 100%;
466
- block-size: 100%;
467
- object-fit: cover;
468
- }
338
+ :scope:where(:scope):is([data-ui-avatar-state~="shape=circle"]) {
339
+ box-shadow: var(--ui-shadow-sm);
340
+ }
469
341
 
470
- .fallback {
471
- grid-area: 1 / 1;
472
- display: inline-flex;
473
- align-items: center;
474
- justify-content: center;
475
- inline-size: 100%;
476
- block-size: 100%;
477
- }
342
+ :scope:where(:scope):is([data-ui-avatar-state~="shape=square"]) {
343
+ border-radius: var(--ui-avatar-radius, var(--ui-radius-md));
344
+ }
345
+ :scope:where(:scope):is([data-ui-avatar-state~="active"]) {
346
+ outline: var(--ui-border-width) solid var(--ui-avatar-active-ring, var(--ui-accent-solid));
347
+ outline-offset: var(--ui-border-width);
348
+ }
478
349
 
479
- /* Centre the glyphs, not the line box: a label without descenders otherwise reads high. */
480
- /* Centre the glyphs, not the line box: a label without descenders otherwise reads high.
481
- * Trimming applies to block containers, so the box is a block with centred content. */
482
- @supports (text-box-trim: trim-both) {
483
- .fallback {
484
- display: block;
485
- text-align: center;
486
- align-content: center;
487
- text-box-trim: trim-both;
488
- text-box-edge: cap alphabetic;
350
+ .image, :slotted(img) {
351
+ grid-area: 1 / 1;
352
+ inline-size: 100%;
353
+ block-size: 100%;
354
+ object-fit: cover;
489
355
  }
490
- }
491
356
 
492
- [hidden] {
493
- display: none;
494
- }
357
+ .fallback {
358
+ grid-area: 1 / 1;
359
+ display: inline-flex;
360
+ align-items: center;
361
+ justify-content: center;
362
+ inline-size: 100%;
363
+ block-size: 100%;
364
+ }
365
+ @supports (text-box-trim: trim-both) {
366
+ .fallback {
367
+ display: block;
368
+ text-align: center;
369
+ align-content: center;
370
+ text-box-trim: trim-both;
371
+ text-box-edge: cap alphabetic;
372
+ }
373
+ }
495
374
 
496
- /* A component that sets its display still honours the hidden attribute on its root. */
497
- [data-component~="ui-avatar"][hidden] {
498
- display: none;
375
+ [hidden] {
376
+ display: none;
377
+ }
378
+ :scope:where(:scope):is([hidden]) {
379
+ display: none;
380
+ }
499
381
  }
500
382
  </style>
@@ -1,7 +1,9 @@
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: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_1) => any;
5
+ };
6
+ declare const __VLS_base: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
7
  label: {
6
8
  type: PropType<string | null>;
7
9
  default: string;
@@ -47,11 +49,12 @@ declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<import
47
49
  label: string | null;
48
50
  size: "xs" | "sm" | "md" | null;
49
51
  max: number | null;
50
- overflowLabel: string | null;
51
52
  total: number | null;
52
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
53
- default?: (props: {}) => any;
54
- }>;
53
+ overflowLabel: string | null;
54
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
55
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
56
+ declare const _default: typeof __VLS_export;
57
+ export default _default;
55
58
  type __VLS_WithSlots<T, S> = T & {
56
59
  new (): {
57
60
  $slots: S;