@threadlabs/looma 0.28.4 → 0.28.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.html +96 -0
  2. package/components/ui-editor-image-toolbar/ui-editor-image-toolbar.js +56 -0
  3. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  4. package/dist/index.js +34 -33
  5. package/package.json +3 -2
  6. package/styles/ui-action-bar.css +13 -6
  7. package/styles/ui-affordance-scope.css +12 -5
  8. package/styles/ui-avatar-group.css +17 -10
  9. package/styles/ui-avatar.css +23 -16
  10. package/styles/ui-badge.css +78 -71
  11. package/styles/ui-breadcrumb-item.css +12 -5
  12. package/styles/ui-breadcrumbs.css +10 -3
  13. package/styles/ui-button.css +79 -72
  14. package/styles/ui-callout.css +29 -22
  15. package/styles/ui-card.css +25 -18
  16. package/styles/ui-checkbox.css +45 -37
  17. package/styles/ui-cluster.css +34 -27
  18. package/styles/ui-combobox.css +46 -39
  19. package/styles/ui-container.css +20 -13
  20. package/styles/ui-context-menu.css +17 -10
  21. package/styles/ui-cover.css +12 -5
  22. package/styles/ui-description-item.css +10 -3
  23. package/styles/ui-description-list.css +20 -13
  24. package/styles/ui-dialog.css +44 -35
  25. package/styles/ui-disclosure.css +32 -25
  26. package/styles/ui-editable.css +15 -8
  27. package/styles/ui-editor-image-toolbar.css +1 -0
  28. package/styles/ui-editor-insert-table-grid.css +11 -4
  29. package/styles/ui-editor-mention-menu-item.css +17 -8
  30. package/styles/ui-editor-mention-menu.css +14 -7
  31. package/styles/ui-editor-slash-menu-group.css +10 -3
  32. package/styles/ui-editor-slash-menu-item.css +15 -8
  33. package/styles/ui-editor-slash-menu.css +15 -8
  34. package/styles/ui-editor-surface.css +10 -3
  35. package/styles/ui-editor-table-context-menu.css +17 -10
  36. package/styles/ui-editor-table-overlay.css +17 -10
  37. package/styles/ui-editor-table-toolbar.css +22 -15
  38. package/styles/ui-editor-toolbar.css +18 -11
  39. package/styles/ui-floating-action-button.css +21 -14
  40. package/styles/ui-form-field.css +20 -13
  41. package/styles/ui-grid.css +21 -14
  42. package/styles/ui-icon-button.css +80 -73
  43. package/styles/ui-icon.css +14 -7
  44. package/styles/ui-image.css +25 -18
  45. package/styles/ui-input-group.css +34 -27
  46. package/styles/ui-input.css +42 -35
  47. package/styles/ui-list-item.css +33 -26
  48. package/styles/ui-list.css +22 -15
  49. package/styles/ui-listbox.css +22 -14
  50. package/styles/ui-menu-group.css +10 -3
  51. package/styles/ui-menu-item.css +29 -22
  52. package/styles/ui-menu.css +25 -18
  53. package/styles/ui-meter.css +36 -29
  54. package/styles/ui-nav-item.css +26 -19
  55. package/styles/ui-page-header.css +12 -5
  56. package/styles/ui-popover.css +27 -20
  57. package/styles/ui-radio-group.css +14 -6
  58. package/styles/ui-radio.css +24 -17
  59. package/styles/ui-reel.css +28 -21
  60. package/styles/ui-scroll-area.css +22 -15
  61. package/styles/ui-search-result-row.css +28 -21
  62. package/styles/ui-search-shell.css +24 -17
  63. package/styles/ui-section.css +14 -7
  64. package/styles/ui-select.css +33 -26
  65. package/styles/ui-separator.css +17 -10
  66. package/styles/ui-sidebar.css +35 -28
  67. package/styles/ui-spinner.css +32 -23
  68. package/styles/ui-stack.css +29 -21
  69. package/styles/ui-status-message.css +14 -7
  70. package/styles/ui-switch.css +29 -22
  71. package/styles/ui-switcher.css +27 -20
  72. package/styles/ui-table.css +14 -7
  73. package/styles/ui-tabs.css +24 -17
  74. package/styles/ui-text.css +35 -28
  75. package/styles/ui-textarea.css +37 -30
  76. package/styles/ui-toast-region.css +74 -63
  77. package/styles/ui-toast.css +21 -14
  78. package/styles/ui-tooltip.css +38 -31
  79. package/styles/ui-top-bar.css +19 -12
  80. package/styles/ui-tree-item.css +79 -71
  81. package/styles/ui-tree.css +18 -11
  82. package/vanilla/UiActionBar.d.ts +1 -1
  83. package/vanilla/UiActionBar.js +1 -1
  84. package/vanilla/UiAffordanceScope.d.ts +1 -1
  85. package/vanilla/UiAffordanceScope.js +1 -1
  86. package/vanilla/UiAvatar.d.ts +1 -1
  87. package/vanilla/UiAvatar.js +1 -1
  88. package/vanilla/UiAvatarGroup.d.ts +1 -1
  89. package/vanilla/UiAvatarGroup.js +1 -1
  90. package/vanilla/UiBadge.d.ts +1 -1
  91. package/vanilla/UiBadge.js +1 -1
  92. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbItem.js +1 -1
  94. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  95. package/vanilla/UiBreadcrumbs.js +1 -1
  96. package/vanilla/UiButton.d.ts +1 -1
  97. package/vanilla/UiButton.js +19 -57
  98. package/vanilla/UiCallout.d.ts +1 -1
  99. package/vanilla/UiCallout.js +25 -73
  100. package/vanilla/UiCard.d.ts +1 -1
  101. package/vanilla/UiCard.js +1 -1
  102. package/vanilla/UiCheckbox.d.ts +1 -1
  103. package/vanilla/UiCheckbox.js +1 -1
  104. package/vanilla/UiCluster.d.ts +1 -1
  105. package/vanilla/UiCluster.js +1 -1
  106. package/vanilla/UiCombobox.d.ts +1 -1
  107. package/vanilla/UiCombobox.js +60 -166
  108. package/vanilla/UiContainer.d.ts +1 -1
  109. package/vanilla/UiContainer.js +1 -1
  110. package/vanilla/UiContextMenu.d.ts +1 -1
  111. package/vanilla/UiContextMenu.js +1 -1
  112. package/vanilla/UiCover.d.ts +1 -1
  113. package/vanilla/UiCover.js +1 -1
  114. package/vanilla/UiDescriptionItem.d.ts +1 -1
  115. package/vanilla/UiDescriptionItem.js +1 -1
  116. package/vanilla/UiDescriptionList.d.ts +1 -1
  117. package/vanilla/UiDescriptionList.js +1 -1
  118. package/vanilla/UiDialog.d.ts +1 -1
  119. package/vanilla/UiDialog.js +4 -10
  120. package/vanilla/UiDisclosure.d.ts +1 -1
  121. package/vanilla/UiDisclosure.js +1 -1
  122. package/vanilla/UiEditable.d.ts +1 -1
  123. package/vanilla/UiEditable.js +7 -19
  124. package/vanilla/UiEditorImageToolbar.d.ts +19 -0
  125. package/vanilla/UiEditorImageToolbar.js +171 -0
  126. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  127. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  128. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenu.js +17 -37
  130. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  131. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  132. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenu.js +5 -4
  134. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  136. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  137. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  138. package/vanilla/UiEditorSurface.d.ts +1 -1
  139. package/vanilla/UiEditorSurface.js +1 -1
  140. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  141. package/vanilla/UiEditorTableContextMenu.js +6 -14
  142. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  143. package/vanilla/UiEditorTableOverlay.js +9 -25
  144. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorTableToolbar.js +25 -77
  146. package/vanilla/UiEditorToolbar.d.ts +1 -1
  147. package/vanilla/UiEditorToolbar.js +1 -1
  148. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  149. package/vanilla/UiFloatingActionButton.js +1 -1
  150. package/vanilla/UiFormField.d.ts +1 -1
  151. package/vanilla/UiFormField.js +1 -1
  152. package/vanilla/UiGrid.d.ts +1 -1
  153. package/vanilla/UiGrid.js +1 -1
  154. package/vanilla/UiIcon.d.ts +1 -1
  155. package/vanilla/UiIcon.js +15 -47
  156. package/vanilla/UiIconButton.d.ts +1 -1
  157. package/vanilla/UiIconButton.js +4 -10
  158. package/vanilla/UiImage.d.ts +1 -1
  159. package/vanilla/UiImage.js +1 -1
  160. package/vanilla/UiInput.d.ts +1 -1
  161. package/vanilla/UiInput.js +1 -1
  162. package/vanilla/UiInputGroup.d.ts +1 -1
  163. package/vanilla/UiInputGroup.js +1 -1
  164. package/vanilla/UiList.d.ts +1 -1
  165. package/vanilla/UiList.js +1 -1
  166. package/vanilla/UiListItem.d.ts +1 -1
  167. package/vanilla/UiListItem.js +1 -1
  168. package/vanilla/UiListbox.d.ts +1 -1
  169. package/vanilla/UiListbox.js +4 -10
  170. package/vanilla/UiMenu.d.ts +1 -1
  171. package/vanilla/UiMenu.js +1 -1
  172. package/vanilla/UiMenuGroup.d.ts +1 -1
  173. package/vanilla/UiMenuGroup.js +4 -10
  174. package/vanilla/UiMenuItem.d.ts +1 -1
  175. package/vanilla/UiMenuItem.js +4 -10
  176. package/vanilla/UiMeter.d.ts +1 -1
  177. package/vanilla/UiMeter.js +13 -33
  178. package/vanilla/UiNavItem.d.ts +1 -1
  179. package/vanilla/UiNavItem.js +1 -1
  180. package/vanilla/UiPageHeader.d.ts +1 -1
  181. package/vanilla/UiPageHeader.js +1 -1
  182. package/vanilla/UiPopover.d.ts +1 -1
  183. package/vanilla/UiPopover.js +1 -1
  184. package/vanilla/UiRadio.d.ts +1 -1
  185. package/vanilla/UiRadio.js +1 -1
  186. package/vanilla/UiRadioGroup.d.ts +1 -1
  187. package/vanilla/UiRadioGroup.js +1 -1
  188. package/vanilla/UiReel.d.ts +1 -1
  189. package/vanilla/UiReel.js +1 -1
  190. package/vanilla/UiScrollArea.d.ts +1 -1
  191. package/vanilla/UiScrollArea.js +1 -1
  192. package/vanilla/UiSearchResultRow.d.ts +1 -1
  193. package/vanilla/UiSearchResultRow.js +1 -1
  194. package/vanilla/UiSearchShell.d.ts +1 -1
  195. package/vanilla/UiSearchShell.js +1 -1
  196. package/vanilla/UiSection.d.ts +1 -1
  197. package/vanilla/UiSection.js +1 -1
  198. package/vanilla/UiSelect.d.ts +1 -1
  199. package/vanilla/UiSelect.js +1 -1
  200. package/vanilla/UiSeparator.d.ts +1 -1
  201. package/vanilla/UiSeparator.js +1 -1
  202. package/vanilla/UiSidebar.d.ts +1 -1
  203. package/vanilla/UiSidebar.js +1 -1
  204. package/vanilla/UiSpinner.d.ts +1 -1
  205. package/vanilla/UiSpinner.js +1 -1
  206. package/vanilla/UiStack.d.ts +1 -1
  207. package/vanilla/UiStack.js +1 -1
  208. package/vanilla/UiStatusMessage.d.ts +1 -1
  209. package/vanilla/UiStatusMessage.js +1 -1
  210. package/vanilla/UiSwitch.d.ts +1 -1
  211. package/vanilla/UiSwitch.js +1 -1
  212. package/vanilla/UiSwitcher.d.ts +1 -1
  213. package/vanilla/UiSwitcher.js +1 -1
  214. package/vanilla/UiTable.d.ts +1 -1
  215. package/vanilla/UiTable.js +1 -1
  216. package/vanilla/UiTabs.d.ts +1 -1
  217. package/vanilla/UiTabs.js +1 -1
  218. package/vanilla/UiText.d.ts +1 -1
  219. package/vanilla/UiText.js +1 -1
  220. package/vanilla/UiTextarea.d.ts +1 -1
  221. package/vanilla/UiTextarea.js +1 -1
  222. package/vanilla/UiToast.d.ts +1 -1
  223. package/vanilla/UiToast.js +1 -1
  224. package/vanilla/UiToastRegion.d.ts +1 -1
  225. package/vanilla/UiToastRegion.js +1 -1
  226. package/vanilla/UiTooltip.d.ts +1 -1
  227. package/vanilla/UiTooltip.js +1 -1
  228. package/vanilla/UiTopBar.d.ts +1 -1
  229. package/vanilla/UiTopBar.js +1 -1
  230. package/vanilla/UiTree.d.ts +1 -1
  231. package/vanilla/UiTree.js +1 -1
  232. package/vanilla/UiTreeItem.d.ts +1 -1
  233. package/vanilla/UiTreeItem.js +7 -19
  234. package/vanilla/index.js +1 -0
  235. package/vue/UiActionBar.vue +46 -78
  236. package/vue/UiAffordanceScope.vue +27 -66
  237. package/vue/UiAvatar.d.ts +10 -7
  238. package/vue/UiAvatar.vue +100 -218
  239. package/vue/UiAvatarGroup.d.ts +10 -7
  240. package/vue/UiAvatarGroup.vue +78 -160
  241. package/vue/UiBadge.d.ts +1 -1
  242. package/vue/UiBadge.vue +483 -520
  243. package/vue/UiBreadcrumbItem.vue +52 -123
  244. package/vue/UiBreadcrumbs.vue +27 -70
  245. package/vue/UiButton.d.ts +2 -2
  246. package/vue/UiButton.vue +420 -471
  247. package/vue/UiCallout.vue +131 -175
  248. package/vue/UiCard.d.ts +1 -1
  249. package/vue/UiCard.vue +112 -151
  250. package/vue/UiCheckbox.d.ts +13 -10
  251. package/vue/UiCheckbox.vue +160 -221
  252. package/vue/UiCluster.d.ts +1 -1
  253. package/vue/UiCluster.vue +84 -128
  254. package/vue/UiCombobox.d.ts +71 -68
  255. package/vue/UiCombobox.vue +417 -743
  256. package/vue/UiContainer.vue +43 -87
  257. package/vue/UiContextMenu.d.ts +6 -6
  258. package/vue/UiContextMenu.vue +78 -117
  259. package/vue/UiCover.vue +29 -69
  260. package/vue/UiDescriptionItem.vue +39 -82
  261. package/vue/UiDescriptionList.vue +64 -107
  262. package/vue/UiDialog.d.ts +22 -19
  263. package/vue/UiDialog.vue +193 -246
  264. package/vue/UiDisclosure.d.ts +22 -19
  265. package/vue/UiDisclosure.vue +192 -283
  266. package/vue/UiEditable.d.ts +5 -5
  267. package/vue/UiEditable.vue +124 -207
  268. package/vue/UiEditorImageToolbar.d.ts +54 -0
  269. package/vue/UiEditorImageToolbar.js +2 -0
  270. package/vue/UiEditorImageToolbar.vue +415 -0
  271. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  272. package/vue/UiEditorInsertTableGrid.vue +98 -266
  273. package/vue/UiEditorMentionMenu.d.ts +15 -12
  274. package/vue/UiEditorMentionMenu.vue +150 -239
  275. package/vue/UiEditorMentionMenuItem.vue +66 -110
  276. package/vue/UiEditorSlashMenu.d.ts +16 -13
  277. package/vue/UiEditorSlashMenu.vue +172 -253
  278. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  279. package/vue/UiEditorSlashMenuItem.vue +67 -115
  280. package/vue/UiEditorSurface.vue +19 -63
  281. package/vue/UiEditorTableContextMenu.vue +135 -269
  282. package/vue/UiEditorTableOverlay.d.ts +2 -2
  283. package/vue/UiEditorTableOverlay.vue +310 -479
  284. package/vue/UiEditorTableToolbar.d.ts +2 -2
  285. package/vue/UiEditorTableToolbar.vue +182 -357
  286. package/vue/UiEditorToolbar.vue +143 -183
  287. package/vue/UiFloatingActionButton.vue +70 -114
  288. package/vue/UiFormField.d.ts +1 -1
  289. package/vue/UiFormField.vue +76 -117
  290. package/vue/UiGrid.d.ts +1 -1
  291. package/vue/UiGrid.vue +65 -103
  292. package/vue/UiIcon.vue +32 -106
  293. package/vue/UiIconButton.d.ts +2 -2
  294. package/vue/UiIconButton.vue +359 -411
  295. package/vue/UiImage.vue +145 -180
  296. package/vue/UiInput.vue +158 -190
  297. package/vue/UiInputGroup.vue +199 -239
  298. package/vue/UiList.vue +67 -109
  299. package/vue/UiListItem.vue +154 -201
  300. package/vue/UiListbox.d.ts +10 -7
  301. package/vue/UiListbox.vue +86 -260
  302. package/vue/UiMenu.d.ts +11 -11
  303. package/vue/UiMenu.vue +118 -152
  304. package/vue/UiMenuGroup.vue +21 -67
  305. package/vue/UiMenuItem.d.ts +19 -16
  306. package/vue/UiMenuItem.vue +169 -262
  307. package/vue/UiMeter.d.ts +4 -4
  308. package/vue/UiMeter.vue +166 -680
  309. package/vue/UiNavItem.vue +140 -213
  310. package/vue/UiPageHeader.vue +81 -127
  311. package/vue/UiPopover.d.ts +7 -7
  312. package/vue/UiPopover.vue +90 -129
  313. package/vue/UiRadio.d.ts +12 -9
  314. package/vue/UiRadio.vue +91 -149
  315. package/vue/UiRadioGroup.d.ts +2 -2
  316. package/vue/UiRadioGroup.vue +47 -85
  317. package/vue/UiReel.vue +89 -130
  318. package/vue/UiScrollArea.d.ts +1 -1
  319. package/vue/UiScrollArea.vue +78 -119
  320. package/vue/UiSearchResultRow.vue +96 -149
  321. package/vue/UiSearchShell.d.ts +2 -2
  322. package/vue/UiSearchShell.vue +159 -196
  323. package/vue/UiSection.vue +105 -149
  324. package/vue/UiSelect.d.ts +1 -1
  325. package/vue/UiSelect.vue +114 -146
  326. package/vue/UiSeparator.vue +42 -85
  327. package/vue/UiSidebar.d.ts +10 -7
  328. package/vue/UiSidebar.vue +193 -260
  329. package/vue/UiSpinner.vue +54 -130
  330. package/vue/UiStack.vue +66 -107
  331. package/vue/UiStatusMessage.d.ts +1 -1
  332. package/vue/UiStatusMessage.vue +61 -135
  333. package/vue/UiSwitch.d.ts +12 -9
  334. package/vue/UiSwitch.vue +136 -194
  335. package/vue/UiSwitcher.vue +69 -107
  336. package/vue/UiTable.vue +121 -156
  337. package/vue/UiTabs.d.ts +1 -1
  338. package/vue/UiTabs.vue +139 -267
  339. package/vue/UiText.d.ts +4 -4
  340. package/vue/UiText.vue +145 -184
  341. package/vue/UiTextarea.d.ts +2 -2
  342. package/vue/UiTextarea.vue +162 -194
  343. package/vue/UiToast.vue +70 -118
  344. package/vue/UiToastRegion.vue +157 -276
  345. package/vue/UiTooltip.d.ts +21 -18
  346. package/vue/UiTooltip.vue +174 -234
  347. package/vue/UiTopBar.vue +48 -76
  348. package/vue/UiTree.vue +46 -79
  349. package/vue/UiTreeItem.d.ts +18 -15
  350. package/vue/UiTreeItem.vue +526 -668
  351. package/vue/chunks/UiActionBar.js +5 -17
  352. package/vue/chunks/UiAffordanceScope.js +7 -26
  353. package/vue/chunks/UiAvatar.js +20 -74
  354. package/vue/chunks/UiAvatarGroup.js +14 -56
  355. package/vue/chunks/UiBadge.js +10 -28
  356. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  357. package/vue/chunks/UiBreadcrumbs.js +7 -25
  358. package/vue/chunks/UiButton.js +80 -103
  359. package/vue/chunks/UiCallout.js +9 -27
  360. package/vue/chunks/UiCard.js +33 -53
  361. package/vue/chunks/UiCheckbox.js +14 -46
  362. package/vue/chunks/UiCluster.js +13 -31
  363. package/vue/chunks/UiCombobox.js +99 -237
  364. package/vue/chunks/UiContainer.js +9 -27
  365. package/vue/chunks/UiContextMenu.js +7 -26
  366. package/vue/chunks/UiCover.js +7 -25
  367. package/vue/chunks/UiDescriptionItem.js +6 -24
  368. package/vue/chunks/UiDescriptionList.js +9 -27
  369. package/vue/chunks/UiDialog.js +18 -47
  370. package/vue/chunks/UiDisclosure.js +19 -66
  371. package/vue/chunks/UiEditable.js +18 -60
  372. package/vue/chunks/UiEditorImageToolbar.js +515 -0
  373. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  374. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  375. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  376. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  377. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  378. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  379. package/vue/chunks/UiEditorSurface.js +7 -25
  380. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  381. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  382. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  383. package/vue/chunks/UiEditorToolbar.js +7 -26
  384. package/vue/chunks/UiFloatingActionButton.js +10 -28
  385. package/vue/chunks/UiFormField.js +8 -27
  386. package/vue/chunks/UiGrid.js +10 -28
  387. package/vue/chunks/UiIcon.js +21 -74
  388. package/vue/chunks/UiIconButton.js +18 -50
  389. package/vue/chunks/UiImage.js +14 -33
  390. package/vue/chunks/UiInput.js +12 -31
  391. package/vue/chunks/UiInputGroup.js +10 -29
  392. package/vue/chunks/UiList.js +17 -37
  393. package/vue/chunks/UiListItem.js +12 -30
  394. package/vue/chunks/UiListbox.js +22 -124
  395. package/vue/chunks/UiMenu.js +13 -32
  396. package/vue/chunks/UiMenuGroup.js +8 -26
  397. package/vue/chunks/UiMenuItem.js +35 -80
  398. package/vue/chunks/UiMeter.js +17 -351
  399. package/vue/chunks/UiNavItem.js +23 -57
  400. package/vue/chunks/UiPageHeader.js +7 -25
  401. package/vue/chunks/UiPopover.js +9 -28
  402. package/vue/chunks/UiRadio.js +11 -43
  403. package/vue/chunks/UiRadioGroup.js +13 -32
  404. package/vue/chunks/UiReel.js +10 -28
  405. package/vue/chunks/UiScrollArea.js +10 -29
  406. package/vue/chunks/UiSearchResultRow.js +10 -28
  407. package/vue/chunks/UiSearchShell.js +9 -28
  408. package/vue/chunks/UiSection.js +9 -27
  409. package/vue/chunks/UiSelect.js +10 -29
  410. package/vue/chunks/UiSeparator.js +10 -28
  411. package/vue/chunks/UiSidebar.js +15 -47
  412. package/vue/chunks/UiSpinner.js +8 -44
  413. package/vue/chunks/UiStack.js +12 -30
  414. package/vue/chunks/UiStatusMessage.js +10 -42
  415. package/vue/chunks/UiSwitch.js +11 -43
  416. package/vue/chunks/UiSwitcher.js +9 -28
  417. package/vue/chunks/UiTable.js +7 -26
  418. package/vue/chunks/UiTabs.js +15 -91
  419. package/vue/chunks/UiText.js +148 -168
  420. package/vue/chunks/UiTextarea.js +16 -35
  421. package/vue/chunks/UiToast.js +13 -37
  422. package/vue/chunks/UiToastRegion.js +16 -88
  423. package/vue/chunks/UiTooltip.js +14 -46
  424. package/vue/chunks/UiTopBar.js +5 -17
  425. package/vue/chunks/UiTree.js +13 -32
  426. package/vue/chunks/UiTreeItem.js +34 -90
  427. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  428. package/vue/chunks/control.js +3 -0
  429. package/vue/chunks/props.js +1 -1
  430. package/vue/components.css +7902 -7830
  431. package/vue/editor/index.js +42 -171
  432. package/vue/editor/primitives.d.ts +9 -1
  433. package/vue/host.ts +999 -14
  434. package/vue/index.d.ts +1 -0
  435. package/vue/index.js +9 -8
  436. package/vue/chunks/host.js +0 -443
  437. package/vue/editor/image-controls.d.ts +0 -19
@@ -1,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;