@threadlabs/looma 0.28.5 → 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 (429) hide show
  1. package/components/ui-editor-mention-menu-item/ui-editor-mention-menu-item.html +3 -2
  2. package/dist/index.js +1 -1
  3. package/package.json +3 -2
  4. package/styles/ui-action-bar.css +13 -6
  5. package/styles/ui-affordance-scope.css +12 -5
  6. package/styles/ui-avatar-group.css +17 -10
  7. package/styles/ui-avatar.css +23 -16
  8. package/styles/ui-badge.css +78 -71
  9. package/styles/ui-breadcrumb-item.css +12 -5
  10. package/styles/ui-breadcrumbs.css +10 -3
  11. package/styles/ui-button.css +79 -72
  12. package/styles/ui-callout.css +29 -22
  13. package/styles/ui-card.css +25 -18
  14. package/styles/ui-checkbox.css +45 -37
  15. package/styles/ui-cluster.css +34 -27
  16. package/styles/ui-combobox.css +46 -39
  17. package/styles/ui-container.css +20 -13
  18. package/styles/ui-context-menu.css +17 -10
  19. package/styles/ui-cover.css +12 -5
  20. package/styles/ui-description-item.css +10 -3
  21. package/styles/ui-description-list.css +20 -13
  22. package/styles/ui-dialog.css +44 -35
  23. package/styles/ui-disclosure.css +32 -25
  24. package/styles/ui-editable.css +15 -8
  25. package/styles/ui-editor-image-toolbar.css +1 -1
  26. package/styles/ui-editor-insert-table-grid.css +11 -4
  27. package/styles/ui-editor-mention-menu-item.css +17 -8
  28. package/styles/ui-editor-mention-menu.css +14 -7
  29. package/styles/ui-editor-slash-menu-group.css +10 -3
  30. package/styles/ui-editor-slash-menu-item.css +15 -8
  31. package/styles/ui-editor-slash-menu.css +15 -8
  32. package/styles/ui-editor-surface.css +10 -3
  33. package/styles/ui-editor-table-context-menu.css +17 -10
  34. package/styles/ui-editor-table-overlay.css +17 -10
  35. package/styles/ui-editor-table-toolbar.css +22 -15
  36. package/styles/ui-editor-toolbar.css +18 -11
  37. package/styles/ui-floating-action-button.css +21 -14
  38. package/styles/ui-form-field.css +20 -13
  39. package/styles/ui-grid.css +21 -14
  40. package/styles/ui-icon-button.css +80 -73
  41. package/styles/ui-icon.css +14 -7
  42. package/styles/ui-image.css +25 -18
  43. package/styles/ui-input-group.css +34 -27
  44. package/styles/ui-input.css +42 -35
  45. package/styles/ui-list-item.css +33 -26
  46. package/styles/ui-list.css +22 -15
  47. package/styles/ui-listbox.css +22 -14
  48. package/styles/ui-menu-group.css +10 -3
  49. package/styles/ui-menu-item.css +29 -22
  50. package/styles/ui-menu.css +25 -18
  51. package/styles/ui-meter.css +36 -29
  52. package/styles/ui-nav-item.css +26 -19
  53. package/styles/ui-page-header.css +12 -5
  54. package/styles/ui-popover.css +27 -20
  55. package/styles/ui-radio-group.css +14 -6
  56. package/styles/ui-radio.css +24 -17
  57. package/styles/ui-reel.css +28 -21
  58. package/styles/ui-scroll-area.css +22 -15
  59. package/styles/ui-search-result-row.css +28 -21
  60. package/styles/ui-search-shell.css +24 -17
  61. package/styles/ui-section.css +14 -7
  62. package/styles/ui-select.css +33 -26
  63. package/styles/ui-separator.css +17 -10
  64. package/styles/ui-sidebar.css +35 -28
  65. package/styles/ui-spinner.css +32 -23
  66. package/styles/ui-stack.css +29 -21
  67. package/styles/ui-status-message.css +14 -7
  68. package/styles/ui-switch.css +29 -22
  69. package/styles/ui-switcher.css +27 -20
  70. package/styles/ui-table.css +14 -7
  71. package/styles/ui-tabs.css +24 -17
  72. package/styles/ui-text.css +35 -28
  73. package/styles/ui-textarea.css +37 -30
  74. package/styles/ui-toast-region.css +74 -63
  75. package/styles/ui-toast.css +21 -14
  76. package/styles/ui-tooltip.css +38 -31
  77. package/styles/ui-top-bar.css +19 -12
  78. package/styles/ui-tree-item.css +79 -71
  79. package/styles/ui-tree.css +18 -11
  80. package/vanilla/UiActionBar.d.ts +1 -1
  81. package/vanilla/UiActionBar.js +1 -1
  82. package/vanilla/UiAffordanceScope.d.ts +1 -1
  83. package/vanilla/UiAffordanceScope.js +1 -1
  84. package/vanilla/UiAvatar.d.ts +1 -1
  85. package/vanilla/UiAvatar.js +1 -1
  86. package/vanilla/UiAvatarGroup.d.ts +1 -1
  87. package/vanilla/UiAvatarGroup.js +1 -1
  88. package/vanilla/UiBadge.d.ts +1 -1
  89. package/vanilla/UiBadge.js +1 -1
  90. package/vanilla/UiBreadcrumbItem.d.ts +1 -1
  91. package/vanilla/UiBreadcrumbItem.js +1 -1
  92. package/vanilla/UiBreadcrumbs.d.ts +1 -1
  93. package/vanilla/UiBreadcrumbs.js +1 -1
  94. package/vanilla/UiButton.d.ts +1 -1
  95. package/vanilla/UiButton.js +19 -57
  96. package/vanilla/UiCallout.d.ts +1 -1
  97. package/vanilla/UiCallout.js +25 -73
  98. package/vanilla/UiCard.d.ts +1 -1
  99. package/vanilla/UiCard.js +1 -1
  100. package/vanilla/UiCheckbox.d.ts +1 -1
  101. package/vanilla/UiCheckbox.js +1 -1
  102. package/vanilla/UiCluster.d.ts +1 -1
  103. package/vanilla/UiCluster.js +1 -1
  104. package/vanilla/UiCombobox.d.ts +1 -1
  105. package/vanilla/UiCombobox.js +60 -166
  106. package/vanilla/UiContainer.d.ts +1 -1
  107. package/vanilla/UiContainer.js +1 -1
  108. package/vanilla/UiContextMenu.d.ts +1 -1
  109. package/vanilla/UiContextMenu.js +1 -1
  110. package/vanilla/UiCover.d.ts +1 -1
  111. package/vanilla/UiCover.js +1 -1
  112. package/vanilla/UiDescriptionItem.d.ts +1 -1
  113. package/vanilla/UiDescriptionItem.js +1 -1
  114. package/vanilla/UiDescriptionList.d.ts +1 -1
  115. package/vanilla/UiDescriptionList.js +1 -1
  116. package/vanilla/UiDialog.d.ts +1 -1
  117. package/vanilla/UiDialog.js +4 -10
  118. package/vanilla/UiDisclosure.d.ts +1 -1
  119. package/vanilla/UiDisclosure.js +1 -1
  120. package/vanilla/UiEditable.d.ts +1 -1
  121. package/vanilla/UiEditable.js +7 -19
  122. package/vanilla/UiEditorImageToolbar.d.ts +1 -1
  123. package/vanilla/UiEditorImageToolbar.js +1 -1
  124. package/vanilla/UiEditorInsertTableGrid.d.ts +1 -1
  125. package/vanilla/UiEditorInsertTableGrid.js +1 -1
  126. package/vanilla/UiEditorMentionMenu.d.ts +1 -1
  127. package/vanilla/UiEditorMentionMenu.js +17 -37
  128. package/vanilla/UiEditorMentionMenuItem.d.ts +1 -1
  129. package/vanilla/UiEditorMentionMenuItem.js +4 -10
  130. package/vanilla/UiEditorSlashMenu.d.ts +1 -1
  131. package/vanilla/UiEditorSlashMenu.js +5 -4
  132. package/vanilla/UiEditorSlashMenuGroup.d.ts +1 -1
  133. package/vanilla/UiEditorSlashMenuGroup.js +1 -1
  134. package/vanilla/UiEditorSlashMenuItem.d.ts +1 -1
  135. package/vanilla/UiEditorSlashMenuItem.js +7 -19
  136. package/vanilla/UiEditorSurface.d.ts +1 -1
  137. package/vanilla/UiEditorSurface.js +1 -1
  138. package/vanilla/UiEditorTableContextMenu.d.ts +1 -1
  139. package/vanilla/UiEditorTableContextMenu.js +6 -14
  140. package/vanilla/UiEditorTableOverlay.d.ts +1 -1
  141. package/vanilla/UiEditorTableOverlay.js +9 -25
  142. package/vanilla/UiEditorTableToolbar.d.ts +1 -1
  143. package/vanilla/UiEditorTableToolbar.js +25 -77
  144. package/vanilla/UiEditorToolbar.d.ts +1 -1
  145. package/vanilla/UiEditorToolbar.js +1 -1
  146. package/vanilla/UiFloatingActionButton.d.ts +1 -1
  147. package/vanilla/UiFloatingActionButton.js +1 -1
  148. package/vanilla/UiFormField.d.ts +1 -1
  149. package/vanilla/UiFormField.js +1 -1
  150. package/vanilla/UiGrid.d.ts +1 -1
  151. package/vanilla/UiGrid.js +1 -1
  152. package/vanilla/UiIcon.d.ts +1 -1
  153. package/vanilla/UiIcon.js +15 -47
  154. package/vanilla/UiIconButton.d.ts +1 -1
  155. package/vanilla/UiIconButton.js +4 -10
  156. package/vanilla/UiImage.d.ts +1 -1
  157. package/vanilla/UiImage.js +1 -1
  158. package/vanilla/UiInput.d.ts +1 -1
  159. package/vanilla/UiInput.js +1 -1
  160. package/vanilla/UiInputGroup.d.ts +1 -1
  161. package/vanilla/UiInputGroup.js +1 -1
  162. package/vanilla/UiList.d.ts +1 -1
  163. package/vanilla/UiList.js +1 -1
  164. package/vanilla/UiListItem.d.ts +1 -1
  165. package/vanilla/UiListItem.js +1 -1
  166. package/vanilla/UiListbox.d.ts +1 -1
  167. package/vanilla/UiListbox.js +4 -10
  168. package/vanilla/UiMenu.d.ts +1 -1
  169. package/vanilla/UiMenu.js +1 -1
  170. package/vanilla/UiMenuGroup.d.ts +1 -1
  171. package/vanilla/UiMenuGroup.js +4 -10
  172. package/vanilla/UiMenuItem.d.ts +1 -1
  173. package/vanilla/UiMenuItem.js +4 -10
  174. package/vanilla/UiMeter.d.ts +1 -1
  175. package/vanilla/UiMeter.js +13 -33
  176. package/vanilla/UiNavItem.d.ts +1 -1
  177. package/vanilla/UiNavItem.js +1 -1
  178. package/vanilla/UiPageHeader.d.ts +1 -1
  179. package/vanilla/UiPageHeader.js +1 -1
  180. package/vanilla/UiPopover.d.ts +1 -1
  181. package/vanilla/UiPopover.js +1 -1
  182. package/vanilla/UiRadio.d.ts +1 -1
  183. package/vanilla/UiRadio.js +1 -1
  184. package/vanilla/UiRadioGroup.d.ts +1 -1
  185. package/vanilla/UiRadioGroup.js +1 -1
  186. package/vanilla/UiReel.d.ts +1 -1
  187. package/vanilla/UiReel.js +1 -1
  188. package/vanilla/UiScrollArea.d.ts +1 -1
  189. package/vanilla/UiScrollArea.js +1 -1
  190. package/vanilla/UiSearchResultRow.d.ts +1 -1
  191. package/vanilla/UiSearchResultRow.js +1 -1
  192. package/vanilla/UiSearchShell.d.ts +1 -1
  193. package/vanilla/UiSearchShell.js +1 -1
  194. package/vanilla/UiSection.d.ts +1 -1
  195. package/vanilla/UiSection.js +1 -1
  196. package/vanilla/UiSelect.d.ts +1 -1
  197. package/vanilla/UiSelect.js +1 -1
  198. package/vanilla/UiSeparator.d.ts +1 -1
  199. package/vanilla/UiSeparator.js +1 -1
  200. package/vanilla/UiSidebar.d.ts +1 -1
  201. package/vanilla/UiSidebar.js +1 -1
  202. package/vanilla/UiSpinner.d.ts +1 -1
  203. package/vanilla/UiSpinner.js +1 -1
  204. package/vanilla/UiStack.d.ts +1 -1
  205. package/vanilla/UiStack.js +1 -1
  206. package/vanilla/UiStatusMessage.d.ts +1 -1
  207. package/vanilla/UiStatusMessage.js +1 -1
  208. package/vanilla/UiSwitch.d.ts +1 -1
  209. package/vanilla/UiSwitch.js +1 -1
  210. package/vanilla/UiSwitcher.d.ts +1 -1
  211. package/vanilla/UiSwitcher.js +1 -1
  212. package/vanilla/UiTable.d.ts +1 -1
  213. package/vanilla/UiTable.js +1 -1
  214. package/vanilla/UiTabs.d.ts +1 -1
  215. package/vanilla/UiTabs.js +1 -1
  216. package/vanilla/UiText.d.ts +1 -1
  217. package/vanilla/UiText.js +1 -1
  218. package/vanilla/UiTextarea.d.ts +1 -1
  219. package/vanilla/UiTextarea.js +1 -1
  220. package/vanilla/UiToast.d.ts +1 -1
  221. package/vanilla/UiToast.js +1 -1
  222. package/vanilla/UiToastRegion.d.ts +1 -1
  223. package/vanilla/UiToastRegion.js +1 -1
  224. package/vanilla/UiTooltip.d.ts +1 -1
  225. package/vanilla/UiTooltip.js +1 -1
  226. package/vanilla/UiTopBar.d.ts +1 -1
  227. package/vanilla/UiTopBar.js +1 -1
  228. package/vanilla/UiTree.d.ts +1 -1
  229. package/vanilla/UiTree.js +1 -1
  230. package/vanilla/UiTreeItem.d.ts +1 -1
  231. package/vanilla/UiTreeItem.js +7 -19
  232. package/vue/UiActionBar.vue +46 -78
  233. package/vue/UiAffordanceScope.vue +27 -66
  234. package/vue/UiAvatar.d.ts +10 -7
  235. package/vue/UiAvatar.vue +100 -218
  236. package/vue/UiAvatarGroup.d.ts +10 -7
  237. package/vue/UiAvatarGroup.vue +78 -160
  238. package/vue/UiBadge.d.ts +1 -1
  239. package/vue/UiBadge.vue +483 -520
  240. package/vue/UiBreadcrumbItem.vue +52 -123
  241. package/vue/UiBreadcrumbs.vue +27 -70
  242. package/vue/UiButton.d.ts +2 -2
  243. package/vue/UiButton.vue +420 -471
  244. package/vue/UiCallout.vue +131 -175
  245. package/vue/UiCard.d.ts +1 -1
  246. package/vue/UiCard.vue +112 -151
  247. package/vue/UiCheckbox.d.ts +13 -10
  248. package/vue/UiCheckbox.vue +160 -221
  249. package/vue/UiCluster.d.ts +1 -1
  250. package/vue/UiCluster.vue +84 -128
  251. package/vue/UiCombobox.d.ts +71 -68
  252. package/vue/UiCombobox.vue +417 -743
  253. package/vue/UiContainer.vue +43 -87
  254. package/vue/UiContextMenu.d.ts +6 -6
  255. package/vue/UiContextMenu.vue +78 -117
  256. package/vue/UiCover.vue +29 -69
  257. package/vue/UiDescriptionItem.vue +39 -82
  258. package/vue/UiDescriptionList.vue +64 -107
  259. package/vue/UiDialog.d.ts +22 -19
  260. package/vue/UiDialog.vue +193 -246
  261. package/vue/UiDisclosure.d.ts +22 -19
  262. package/vue/UiDisclosure.vue +192 -283
  263. package/vue/UiEditable.d.ts +5 -5
  264. package/vue/UiEditable.vue +124 -207
  265. package/vue/UiEditorImageToolbar.d.ts +2 -2
  266. package/vue/UiEditorImageToolbar.vue +41 -251
  267. package/vue/UiEditorInsertTableGrid.d.ts +2 -2
  268. package/vue/UiEditorInsertTableGrid.vue +98 -266
  269. package/vue/UiEditorMentionMenu.d.ts +15 -12
  270. package/vue/UiEditorMentionMenu.vue +150 -239
  271. package/vue/UiEditorMentionMenuItem.vue +66 -110
  272. package/vue/UiEditorSlashMenu.d.ts +16 -13
  273. package/vue/UiEditorSlashMenu.vue +172 -253
  274. package/vue/UiEditorSlashMenuGroup.vue +25 -69
  275. package/vue/UiEditorSlashMenuItem.vue +67 -115
  276. package/vue/UiEditorSurface.vue +19 -63
  277. package/vue/UiEditorTableContextMenu.vue +135 -269
  278. package/vue/UiEditorTableOverlay.d.ts +2 -2
  279. package/vue/UiEditorTableOverlay.vue +310 -479
  280. package/vue/UiEditorTableToolbar.d.ts +2 -2
  281. package/vue/UiEditorTableToolbar.vue +182 -357
  282. package/vue/UiEditorToolbar.vue +143 -183
  283. package/vue/UiFloatingActionButton.vue +70 -114
  284. package/vue/UiFormField.d.ts +1 -1
  285. package/vue/UiFormField.vue +76 -117
  286. package/vue/UiGrid.d.ts +1 -1
  287. package/vue/UiGrid.vue +65 -103
  288. package/vue/UiIcon.vue +32 -106
  289. package/vue/UiIconButton.d.ts +2 -2
  290. package/vue/UiIconButton.vue +359 -411
  291. package/vue/UiImage.vue +145 -180
  292. package/vue/UiInput.vue +158 -190
  293. package/vue/UiInputGroup.vue +199 -239
  294. package/vue/UiList.vue +67 -109
  295. package/vue/UiListItem.vue +154 -201
  296. package/vue/UiListbox.d.ts +10 -7
  297. package/vue/UiListbox.vue +86 -260
  298. package/vue/UiMenu.d.ts +11 -11
  299. package/vue/UiMenu.vue +118 -152
  300. package/vue/UiMenuGroup.vue +21 -67
  301. package/vue/UiMenuItem.d.ts +19 -16
  302. package/vue/UiMenuItem.vue +169 -262
  303. package/vue/UiMeter.d.ts +4 -4
  304. package/vue/UiMeter.vue +166 -680
  305. package/vue/UiNavItem.vue +140 -213
  306. package/vue/UiPageHeader.vue +81 -127
  307. package/vue/UiPopover.d.ts +7 -7
  308. package/vue/UiPopover.vue +90 -129
  309. package/vue/UiRadio.d.ts +12 -9
  310. package/vue/UiRadio.vue +91 -149
  311. package/vue/UiRadioGroup.d.ts +2 -2
  312. package/vue/UiRadioGroup.vue +47 -85
  313. package/vue/UiReel.vue +89 -130
  314. package/vue/UiScrollArea.d.ts +1 -1
  315. package/vue/UiScrollArea.vue +78 -119
  316. package/vue/UiSearchResultRow.vue +96 -149
  317. package/vue/UiSearchShell.d.ts +2 -2
  318. package/vue/UiSearchShell.vue +159 -196
  319. package/vue/UiSection.vue +105 -149
  320. package/vue/UiSelect.d.ts +1 -1
  321. package/vue/UiSelect.vue +114 -146
  322. package/vue/UiSeparator.vue +42 -85
  323. package/vue/UiSidebar.d.ts +10 -7
  324. package/vue/UiSidebar.vue +193 -260
  325. package/vue/UiSpinner.vue +54 -130
  326. package/vue/UiStack.vue +66 -107
  327. package/vue/UiStatusMessage.d.ts +1 -1
  328. package/vue/UiStatusMessage.vue +61 -135
  329. package/vue/UiSwitch.d.ts +12 -9
  330. package/vue/UiSwitch.vue +136 -194
  331. package/vue/UiSwitcher.vue +69 -107
  332. package/vue/UiTable.vue +121 -156
  333. package/vue/UiTabs.d.ts +1 -1
  334. package/vue/UiTabs.vue +139 -267
  335. package/vue/UiText.d.ts +4 -4
  336. package/vue/UiText.vue +145 -184
  337. package/vue/UiTextarea.d.ts +2 -2
  338. package/vue/UiTextarea.vue +162 -194
  339. package/vue/UiToast.vue +70 -118
  340. package/vue/UiToastRegion.vue +157 -276
  341. package/vue/UiTooltip.d.ts +21 -18
  342. package/vue/UiTooltip.vue +174 -234
  343. package/vue/UiTopBar.vue +48 -76
  344. package/vue/UiTree.vue +46 -79
  345. package/vue/UiTreeItem.d.ts +18 -15
  346. package/vue/UiTreeItem.vue +526 -668
  347. package/vue/chunks/UiActionBar.js +5 -17
  348. package/vue/chunks/UiAffordanceScope.js +7 -26
  349. package/vue/chunks/UiAvatar.js +20 -74
  350. package/vue/chunks/UiAvatarGroup.js +14 -56
  351. package/vue/chunks/UiBadge.js +10 -28
  352. package/vue/chunks/UiBreadcrumbItem.js +11 -41
  353. package/vue/chunks/UiBreadcrumbs.js +7 -25
  354. package/vue/chunks/UiButton.js +80 -103
  355. package/vue/chunks/UiCallout.js +9 -27
  356. package/vue/chunks/UiCard.js +33 -53
  357. package/vue/chunks/UiCheckbox.js +14 -46
  358. package/vue/chunks/UiCluster.js +13 -31
  359. package/vue/chunks/UiCombobox.js +99 -237
  360. package/vue/chunks/UiContainer.js +9 -27
  361. package/vue/chunks/UiContextMenu.js +7 -26
  362. package/vue/chunks/UiCover.js +7 -25
  363. package/vue/chunks/UiDescriptionItem.js +6 -24
  364. package/vue/chunks/UiDescriptionList.js +9 -27
  365. package/vue/chunks/UiDialog.js +18 -47
  366. package/vue/chunks/UiDisclosure.js +19 -66
  367. package/vue/chunks/UiEditable.js +18 -60
  368. package/vue/chunks/UiEditorImageToolbar.js +34 -103
  369. package/vue/chunks/UiEditorInsertTableGrid.js +14 -112
  370. package/vue/chunks/UiEditorMentionMenu.js +16 -54
  371. package/vue/chunks/UiEditorMentionMenuItem.js +10 -28
  372. package/vue/chunks/UiEditorSlashMenu.js +17 -46
  373. package/vue/chunks/UiEditorSlashMenuGroup.js +7 -25
  374. package/vue/chunks/UiEditorSlashMenuItem.js +16 -31
  375. package/vue/chunks/UiEditorSurface.js +7 -25
  376. package/vue/chunks/UiEditorTableContextMenu.js +25 -102
  377. package/vue/chunks/UiEditorTableOverlay.js +41 -104
  378. package/vue/chunks/UiEditorTableToolbar.js +44 -122
  379. package/vue/chunks/UiEditorToolbar.js +7 -26
  380. package/vue/chunks/UiFloatingActionButton.js +10 -28
  381. package/vue/chunks/UiFormField.js +8 -27
  382. package/vue/chunks/UiGrid.js +10 -28
  383. package/vue/chunks/UiIcon.js +21 -74
  384. package/vue/chunks/UiIconButton.js +18 -50
  385. package/vue/chunks/UiImage.js +14 -33
  386. package/vue/chunks/UiInput.js +12 -31
  387. package/vue/chunks/UiInputGroup.js +10 -29
  388. package/vue/chunks/UiList.js +17 -37
  389. package/vue/chunks/UiListItem.js +12 -30
  390. package/vue/chunks/UiListbox.js +22 -124
  391. package/vue/chunks/UiMenu.js +13 -32
  392. package/vue/chunks/UiMenuGroup.js +8 -26
  393. package/vue/chunks/UiMenuItem.js +35 -80
  394. package/vue/chunks/UiMeter.js +17 -351
  395. package/vue/chunks/UiNavItem.js +23 -57
  396. package/vue/chunks/UiPageHeader.js +7 -25
  397. package/vue/chunks/UiPopover.js +9 -28
  398. package/vue/chunks/UiRadio.js +11 -43
  399. package/vue/chunks/UiRadioGroup.js +13 -32
  400. package/vue/chunks/UiReel.js +10 -28
  401. package/vue/chunks/UiScrollArea.js +10 -29
  402. package/vue/chunks/UiSearchResultRow.js +10 -28
  403. package/vue/chunks/UiSearchShell.js +9 -28
  404. package/vue/chunks/UiSection.js +9 -27
  405. package/vue/chunks/UiSelect.js +10 -29
  406. package/vue/chunks/UiSeparator.js +10 -28
  407. package/vue/chunks/UiSidebar.js +15 -47
  408. package/vue/chunks/UiSpinner.js +8 -44
  409. package/vue/chunks/UiStack.js +12 -30
  410. package/vue/chunks/UiStatusMessage.js +10 -42
  411. package/vue/chunks/UiSwitch.js +11 -43
  412. package/vue/chunks/UiSwitcher.js +9 -28
  413. package/vue/chunks/UiTable.js +7 -26
  414. package/vue/chunks/UiTabs.js +15 -91
  415. package/vue/chunks/UiText.js +148 -168
  416. package/vue/chunks/UiTextarea.js +16 -35
  417. package/vue/chunks/UiToast.js +13 -37
  418. package/vue/chunks/UiToastRegion.js +16 -88
  419. package/vue/chunks/UiTooltip.js +14 -46
  420. package/vue/chunks/UiTopBar.js +5 -17
  421. package/vue/chunks/UiTree.js +13 -32
  422. package/vue/chunks/UiTreeItem.js +34 -90
  423. package/vue/chunks/_plugin-vue_export-helper.js +904 -1
  424. package/vue/chunks/control.js +3 -0
  425. package/vue/chunks/props.js +1 -1
  426. package/vue/components.css +7606 -7534
  427. package/vue/editor/index.js +1 -1
  428. package/vue/host.ts +999 -14
  429. package/vue/chunks/host.js +0 -443
@@ -1,6 +1,4 @@
1
1
  import type { PropType } from 'vue';
2
- declare const _default: typeof __VLS_export;
3
- export default _default;
4
2
  declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
5
3
  actions: {
6
4
  type: PropType<readonly ("align-left" | "align-center" | "align-right" | "background-none" | "background-gray" | "background-yellow" | "background-blue" | "background-green" | "background-red" | "add-row-before" | "add-row-after" | "add-column-before" | "add-column-after" | "toggle-header-row" | "toggle-header-column" | "move-row-up" | "move-row-down" | "move-column-left" | "move-column-right" | "clear-cells" | "merge-cells" | "split-cell" | "delete-row" | "delete-column" | "delete-table")[] | null>;
@@ -67,3 +65,5 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
67
65
  headerColumn: boolean | null;
68
66
  cellAlignment: "left" | "right" | "center" | null;
69
67
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
68
+ declare const _default: typeof __VLS_export;
69
+ export default _default;
@@ -1,27 +1,18 @@
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">
3
+ import { computed, getCurrentInstance, provide, ref, watchSyncEffect } from 'vue'
4
+ import type { PropType } from 'vue'
14
5
  import {
15
- computed,
16
- defineComponent,
17
- getCurrentInstance,
18
- h,
19
- provide,
20
- ref,
21
- watchSyncEffect,
22
- } from 'vue'
23
- import type { PropType, VNode } from 'vue'
24
- import { createDispatch, useComponentHost } from './host'
6
+ attribute,
7
+ checkHydratedRoot,
8
+ concat,
9
+ createDispatch,
10
+ KeyedBoundary,
11
+ nativeAttrs,
12
+ uniqueKeys,
13
+ useComponentHost,
14
+ useReflectedProp,
15
+ } from './host'
25
16
  import { acceptsControllerWrite } from './props'
26
17
  import { checkedProp, propValidityState, vPropValidity } from './props'
27
18
  import UiIcon from './UiIcon.vue'
@@ -266,64 +257,7 @@ void checkedProps.value
266
257
  watchSyncEffect(() => {
267
258
  void checkedProps.value
268
259
  })
269
- function nativeAttrs(attrs: Record<string, unknown>): Record<string, unknown> {
270
- const names = Object.keys(attrs)
271
- if (!names.some((name) => Object.hasOwn(Object.prototype, name))) return attrs
272
- return Object.fromEntries(names.map((name) => [
273
- Object.hasOwn(Object.prototype, name)
274
- ? name === '__proto__' ? '__Proto__' : name[0]!.toUpperCase() + name.slice(1)
275
- : name,
276
- attrs[name],
277
- ]))
278
- }
279
- const KeyedFailure = defineComponent({
280
- props: { error: { type: null, required: true } },
281
- setup(props) {
282
- return () => {
283
- throw props.error
284
- }
285
- },
286
- })
287
- const KeyedBoundary = defineComponent({
288
- setup(_props, { slots }) {
289
- let last: VNode[] = []
290
- return () => {
291
- try {
292
- last = slots.default?.() ?? []
293
- return last
294
- } catch (error) {
295
- if (
296
- !(error instanceof Error)
297
- || (error as Error & { diagnostic?: { code?: string } }).diagnostic?.code !== 'HR004'
298
- ) throw error
299
- if (typeof window === 'undefined') throw error
300
- return [...last, h(KeyedFailure, { error })]
301
- }
302
- }
303
- },
304
- })
305
- const componentInstance = getCurrentInstance()
306
- function reflectedProp(
307
- name: string,
308
- kebab: string,
309
- value: unknown,
310
- fallback: string | undefined,
311
- bound: boolean,
312
- separator?: string,
313
- ): string | undefined {
314
- const incoming = componentInstance?.vnode.props
315
- if (
316
- !bound
317
- && (incoming === null || incoming === undefined
318
- || (!Object.hasOwn(incoming, name) && !Object.hasOwn(incoming, kebab)))
319
- ) return fallback
320
- if (value === null || value === undefined) return undefined
321
- return Array.isArray(value) && separator !== undefined
322
- ? value.join(separator)
323
- : typeof value === 'object'
324
- ? JSON.stringify(value)
325
- : String(value)
326
- }
260
+ const reflectedProp = useReflectedProp()
327
261
  const hydrationInstance = getCurrentInstance()
328
262
  const emit = defineEmits<{
329
263
  action: [
@@ -383,39 +317,13 @@ const sections = ref<
383
317
  >([])
384
318
  const hasOverflow = ref(false)
385
319
  const overflowOpen = ref(false)
386
- let guardedPrevious: any
387
- const guarded = computed(() => {
388
- if (
389
- !(htmlNextAuthoredCheck2(
390
- overflowOpen.value == null || typeof overflowOpen.value === 'boolean',
391
- '$overflowOpen:overflowOpen',
392
- './components/ui-editor-table-toolbar/ui-editor-table-toolbar.html: HR007: Reference overflowOpen does not satisfy its declared type.',
393
- ))
394
- ) return guardedPrevious
395
- return guardedPrevious = overflowOpen.value
396
- })
397
320
  provide('html-next:ui-editor-table-toolbar:alignments', alignments)
398
321
  provide('html-next:ui-editor-table-toolbar:structure', structure)
399
322
  provide('html-next:ui-editor-table-toolbar:swatches', swatches)
400
323
  provide('html-next:ui-editor-table-toolbar:sections', sections)
401
324
  provide('html-next:ui-editor-table-toolbar:hasOverflow', hasOverflow)
402
325
  provide('html-next:ui-editor-table-toolbar:overflowOpen', overflowOpen)
403
- const hydrationNode = hydrationInstance?.vnode.el
404
- if (
405
- typeof window !== 'undefined' && hydrationNode != null
406
- && (!(hydrationNode instanceof Element) || hydrationNode.localName !== ('div'))
407
- ) {
408
- throw Object.assign(
409
- new Error('HR005: Server markup for <ui-editor-table-toolbar> has an incompatible root.'),
410
- {
411
- name: 'HtmlDiagnosticError',
412
- diagnostic: Object.freeze({
413
- code: 'HR005',
414
- message: 'Server markup for <ui-editor-table-toolbar> has an incompatible root.',
415
- }),
416
- },
417
- )
418
- }
326
+ checkHydratedRoot('div', 'ui-editor-table-toolbar')
419
327
 
420
328
  const isActionDetail = (
421
329
  detail: unknown,
@@ -576,70 +484,11 @@ useComponentHost(() => import('../components/ui-editor-table-toolbar/ui-editor-t
576
484
  propValidityState({ contract: propValidityContract, values: { ...props } }, name),
577
485
  state: { alignments, structure, swatches, sections, hasOverflow, overflowOpen },
578
486
  })
579
-
580
- function text(value: unknown): string {
581
- if (Array.isArray(value)) return value.map(text).join(' ')
582
- return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
583
- }
584
-
585
- function attribute(value: unknown): any {
586
- if (
587
- value === null || value === undefined || value === false
588
- || (typeof value === 'object' && !Array.isArray(value))
589
- ) return undefined
590
- return value === true ? '' : text(value)
591
- }
592
-
593
- // A nonempty scalar call cannot produce the invalid-result sentinel.
594
- type ConcatResult<T extends unknown[]> = T extends
595
- [
596
- string | number | boolean | null | undefined,
597
- ...(string | number | boolean | null | undefined)[],
598
- ] ? string | undefined
599
- : string | symbol | undefined
600
- function concat<T extends unknown[]>(...values: T): ConcatResult<T> {
601
- if (values.some(value => value === Symbol.for('html-next.invalid-result'))) {
602
- return Symbol.for('html-next.invalid-result') as ConcatResult<T>
603
- }
604
- if (values.some(value => value === undefined)) return undefined as ConcatResult<T>
605
- if (values.length === 0 || values.some(value => typeof value === 'object' && value !== null)) {
606
- return Symbol.for('html-next.invalid-result') as ConcatResult<T>
607
- }
608
- return values.map(value => value === null ? '' : String(value)).join('') as ConcatResult<T>
609
- }
610
-
611
- function uniqueKeys<T>(
612
- items: readonly T[],
613
- keyOf: (
614
- item: T,
615
- index: number,
616
- loop: { index: number; first: boolean; last: boolean; count: number },
617
- ) => unknown,
618
- ): readonly T[] {
619
- const seen = new Set<unknown>()
620
- for (let index = 0; index < items.length; index += 1) {
621
- const key = keyOf(items[index]!, index, {
622
- index,
623
- first: index === 0,
624
- last: index === items.length - 1,
625
- count: items.length,
626
- })
627
- if (seen.has(key)) {
628
- const message = `A keyed list produced duplicate key \`${text(key)}\`.`
629
- throw Object.assign(new Error(`HR004: ${message}`), {
630
- name: 'HtmlDiagnosticError',
631
- diagnostic: Object.freeze({ code: 'HR004', message }),
632
- })
633
- }
634
- seen.add(key)
635
- }
636
- return items
637
- }
638
487
  </script>
639
488
 
640
489
  <template>
641
490
  <div
642
- data-component="ui-editor-table-toolbar"
491
+ class="ui-editor-table-toolbar"
643
492
  role="toolbar"
644
493
  aria-label="Table actions"
645
494
  v-bind="nativeAttrs($attrs)"
@@ -665,7 +514,7 @@ function uniqueKeys<T>(
665
514
  :aria-pressed="item.active"
666
515
  :class="{ active: item.active }"
667
516
  >
668
- <UiIcon :name="item.action" />
517
+ <UiIcon class="ui-icon" :name="item.action" />
669
518
  </button></KeyedBoundary>
670
519
  </div>
671
520
  <div v-if="alignments.length && structure.length" class="sep" aria-hidden="true"></div>
@@ -676,7 +525,7 @@ function uniqueKeys<T>(
676
525
  type="button"
677
526
  :data-action="item.action"
678
527
  >
679
- <UiIcon :name="item.icon" />
528
+ <UiIcon class="ui-icon" :name="item.icon" />
680
529
  <span>{{ item.label }}</span>
681
530
  </button></KeyedBoundary>
682
531
  </div>
@@ -692,11 +541,11 @@ function uniqueKeys<T>(
692
541
  class="more"
693
542
  data-action="toggle-overflow"
694
543
  aria-haspopup="menu"
695
- :aria-expanded="guarded"
544
+ :aria-expanded="overflowOpen"
696
545
  >
697
- <UiIcon name="table" />
546
+ <UiIcon class="ui-icon" name="table" />
698
547
  <span>Table options</span>
699
- <span class="chevron"><UiIcon name="chevron-down" /></span>
548
+ <span class="chevron"><UiIcon class="ui-icon" name="chevron-down" /></span>
700
549
  </button>
701
550
  <div v-if="overflowOpen" class="menu" role="menu" aria-label="More table actions">
702
551
  <div v-if="swatches.length" class="menu-section" role="none">
@@ -765,7 +614,7 @@ function uniqueKeys<T>(
765
614
  :data-action="item.action"
766
615
  :class="{ danger: item.danger }"
767
616
  >
768
- <UiIcon :name="item.icon" />
617
+ <UiIcon class="ui-icon" :name="item.icon" />
769
618
  <span>{{ item.label }}</span>
770
619
  </button></KeyedBoundary>
771
620
  </div></KeyedBoundary>
@@ -775,189 +624,165 @@ function uniqueKeys<T>(
775
624
  </template>
776
625
 
777
626
  <style scoped>
778
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] {
779
- min-width: max-content;
780
- min-height: 100%;
781
- padding: 0;
782
- background: transparent;
783
- border: 0;
784
- border-radius: 0;
785
- box-shadow: none;
786
- backdrop-filter: none;
787
- }
788
-
789
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button {
790
- min-height: 44px;
791
- background: transparent;
792
- }
793
-
794
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.active,
795
- .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.selected {
796
- background: var(--ui-accent-soft, var(--ui-accent-subtle));
797
- }
798
-
799
- [data-component~="ui-editor-table-toolbar"] {
800
- display: inline-flex;
801
- align-items: center;
802
- gap: var(--ui-space-1);
803
- padding: var(--ui-space-1);
804
- background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
805
- border: var(--ui-border-width) solid var(--ui-border-strong);
806
- border-radius: calc(var(--ui-radius-md) + 2 * var(--ui-border-width));
807
- box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
808
- backdrop-filter: blur(10px);
809
- }
810
-
811
- .group {
812
- display: inline-flex;
813
- align-items: center;
814
- gap: 2px;
815
- overflow: hidden;
816
- }
817
-
818
- .sep {
819
- width: 1px;
820
- align-self: stretch;
821
- background: var(--ui-border-divider);
822
- }
823
-
824
- .overflow {
825
- position: relative;
826
- }
827
-
828
- [data-component~="ui-editor-table-toolbar"] button {
829
- display: inline-flex;
830
- align-items: center;
831
- justify-content: center;
832
- gap: var(--ui-space-2);
833
- min-height: 32px;
834
- border: 0;
835
- border-radius: var(--ui-radius-sm);
836
- background: transparent;
837
- color: var(--ui-text-primary);
838
- cursor: pointer;
839
- font-size: var(--ui-font-size-sm);
840
- font-weight: 500;
841
- line-height: 1;
842
- padding: var(--ui-space-2) var(--ui-space-2);
843
- white-space: nowrap;
844
- }
845
-
846
- [data-component~="ui-editor-table-toolbar"] button:hover {
847
- background: var(--ui-surface-hover);
848
- }
849
-
850
- [data-component~="ui-editor-table-toolbar"] button.active {
851
- background: var(--ui-accent-soft, var(--ui-accent-subtle));
852
- color: var(--ui-accent-active);
853
- }
854
-
855
- .group button {
856
- border-radius: var(--ui-radius-sm);
857
- }
858
-
859
- .group button + button {
860
- border-left: 0;
861
- }
862
-
863
- [data-component~="ui-editor-table-toolbar"] .more {
864
- border: 0;
865
- border-radius: var(--ui-radius-sm);
866
- }
867
-
868
- [data-component~="ui-editor-table-toolbar"] button.danger {
869
- color: var(--ui-danger);
870
- }
871
-
872
- [data-component~="ui-editor-table-toolbar"] {
873
- --_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
874
- --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
875
- }
876
-
877
- .chevron {
878
- display: inline-flex;
879
- --_ui-default-icon-size: 0.875rem;
880
- }
881
-
882
- [data-component~="ui-editor-table-toolbar"] .icon-button {
883
- width: 32px;
884
- padding-inline: 0;
885
- }
886
-
887
- .menu {
888
- box-sizing: border-box;
889
- position: fixed;
890
- inset: auto;
891
- margin: 0;
892
- min-width: 12rem;
893
- max-width: min(17rem, calc(100vw - 24px));
894
- padding: var(--ui-space-1);
895
- background: var(--ui-surface);
896
- border: var(--ui-border-width) solid var(--ui-border-strong);
897
- border-radius: var(--ui-radius-md);
898
- box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
899
- display: flex;
900
- flex-direction: column;
901
- gap: 2px;
902
- z-index: 2;
903
- overflow-y: auto;
904
- overscroll-behavior: contain;
905
- scrollbar-width: thin;
906
- }
907
-
908
- .menu-section + .menu-section {
909
- margin-top: var(--ui-space-1);
910
- padding-top: var(--ui-space-1);
911
- border-top: var(--ui-border-width) solid var(--ui-border-divider);
912
- }
913
-
914
- .menu-heading {
915
- padding: var(--ui-space-1) var(--ui-space-2);
916
- font-size: var(--ui-font-size-2xs);
917
- font-weight: 700;
918
- letter-spacing: 0.05em;
919
- text-transform: uppercase;
920
- color: var(--ui-text-muted);
921
- }
922
-
923
- .menu button {
924
- display: flex;
925
- justify-content: flex-start;
926
- width: 100%;
927
- text-align: left;
928
- }
929
-
930
- .swatches {
931
- display: grid;
932
- grid-template-columns: repeat(2, minmax(0, 1fr));
933
- gap: 2px;
934
- }
935
-
936
- [data-component~="ui-editor-table-toolbar"] .swatch-button {
937
- gap: var(--ui-space-1);
938
- justify-content: flex-start;
939
- }
940
-
941
- .swatch {
942
- width: 14px;
943
- height: 14px;
944
- flex: 0 0 14px;
945
- border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 80%, #000);
946
- border-radius: var(--ui-radius-round);
947
- background: var(--_swatch);
948
- }
949
-
950
- .swatch.default {
951
- background:
952
- linear-gradient(135deg, transparent 44%, var(--ui-danger) 46% 54%, transparent 56%),
953
- var(--ui-surface);
954
- }
955
-
956
- .swatch-button.selected {
957
- background: var(--ui-accent-soft, var(--ui-accent-subtle));
958
- }
959
-
960
- [data-component~="ui-editor-table-toolbar"][hidden] {
961
- display: none;
627
+ @scope (.ui-editor-table-toolbar) to (.ui-icon) {
628
+ :scope:where(:scope):is(.looma-editor__mobile-toolbar-shell *) {
629
+ min-width: max-content;
630
+ min-height: 100%;
631
+ padding: 0;
632
+ background: transparent;
633
+ border: 0;
634
+ border-radius: 0;
635
+ box-shadow: none;
636
+ backdrop-filter: none;
637
+ }
638
+ .looma-editor__mobile-toolbar-shell :scope button {
639
+ min-height: 44px;
640
+ background: transparent;
641
+ }
642
+ .looma-editor__mobile-toolbar-shell :scope button.active,
643
+ .looma-editor__mobile-toolbar-shell :scope button.selected {
644
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
645
+ }
646
+ :scope:where(:scope) {
647
+ display: inline-flex;
648
+ align-items: center;
649
+ gap: var(--ui-space-1);
650
+ padding: var(--ui-space-1);
651
+ background: color-mix(in srgb, var(--ui-surface) 94%, transparent);
652
+ border: var(--ui-border-width) solid var(--ui-border-strong);
653
+ border-radius: calc(var(--ui-radius-md) + 2 * var(--ui-border-width));
654
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
655
+ backdrop-filter: blur(10px);
656
+ }
657
+ .group {
658
+ display: inline-flex;
659
+ align-items: center;
660
+ gap: 2px;
661
+ overflow: hidden;
662
+ }
663
+ .sep {
664
+ width: 1px;
665
+ align-self: stretch;
666
+ background: var(--ui-border-divider);
667
+ }
668
+ .overflow {
669
+ position: relative;
670
+ }
671
+ :scope button {
672
+ display: inline-flex;
673
+ align-items: center;
674
+ justify-content: center;
675
+ gap: var(--ui-space-2);
676
+ min-height: 32px;
677
+ border: 0;
678
+ border-radius: var(--ui-radius-sm);
679
+ background: transparent;
680
+ color: var(--ui-text-primary);
681
+ cursor: pointer;
682
+ font-size: var(--ui-font-size-sm);
683
+ font-weight: 500;
684
+ line-height: 1;
685
+ padding: var(--ui-space-2) var(--ui-space-2);
686
+ white-space: nowrap;
687
+ }
688
+ :scope button:hover {
689
+ background: var(--ui-surface-hover);
690
+ }
691
+ :scope button.active {
692
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
693
+ color: var(--ui-accent-active);
694
+ }
695
+ .group button {
696
+ border-radius: var(--ui-radius-sm);
697
+ }
698
+ .group button + button {
699
+ border-left: 0;
700
+ }
701
+ :scope .more {
702
+ border: 0;
703
+ border-radius: var(--ui-radius-sm);
704
+ }
705
+ :scope button.danger {
706
+ color: var(--ui-danger);
707
+ }
708
+ :scope:where(:scope) {
709
+ --_ui-default-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
710
+ --_ui-default-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
711
+ }
712
+ .chevron {
713
+ display: inline-flex;
714
+ --_ui-default-icon-size: 0.875rem;
715
+ }
716
+ :scope .icon-button {
717
+ width: 32px;
718
+ padding-inline: 0;
719
+ }
720
+ .menu {
721
+ box-sizing: border-box;
722
+ position: fixed;
723
+ inset: auto;
724
+ margin: 0;
725
+ min-width: 12rem;
726
+ max-width: min(17rem, calc(100vw - 24px));
727
+ padding: var(--ui-space-1);
728
+ background: var(--ui-surface);
729
+ border: var(--ui-border-width) solid var(--ui-border-strong);
730
+ border-radius: var(--ui-radius-md);
731
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
732
+ display: flex;
733
+ flex-direction: column;
734
+ gap: 2px;
735
+ z-index: 2;
736
+ overflow-y: auto;
737
+ overscroll-behavior: contain;
738
+ scrollbar-width: thin;
739
+ }
740
+ .menu-section + .menu-section {
741
+ margin-top: var(--ui-space-1);
742
+ padding-top: var(--ui-space-1);
743
+ border-top: var(--ui-border-width) solid var(--ui-border-divider);
744
+ }
745
+ .menu-heading {
746
+ padding: var(--ui-space-1) var(--ui-space-2);
747
+ font-size: var(--ui-font-size-2xs);
748
+ font-weight: 700;
749
+ letter-spacing: 0.05em;
750
+ text-transform: uppercase;
751
+ color: var(--ui-text-muted);
752
+ }
753
+ .menu button {
754
+ display: flex;
755
+ justify-content: flex-start;
756
+ width: 100%;
757
+ text-align: left;
758
+ }
759
+ .swatches {
760
+ display: grid;
761
+ grid-template-columns: repeat(2, minmax(0, 1fr));
762
+ gap: 2px;
763
+ }
764
+ :scope .swatch-button {
765
+ gap: var(--ui-space-1);
766
+ justify-content: flex-start;
767
+ }
768
+ .swatch {
769
+ width: 14px;
770
+ height: 14px;
771
+ flex: 0 0 14px;
772
+ border: var(--ui-border-width) solid color-mix(in srgb, var(--ui-border) 80%, #000);
773
+ border-radius: var(--ui-radius-round);
774
+ background: var(--_swatch);
775
+ }
776
+ .swatch.default {
777
+ background:
778
+ linear-gradient(135deg, transparent 44%, var(--ui-danger) 46% 54%, transparent 56%),
779
+ var(--ui-surface);
780
+ }
781
+ .swatch-button.selected {
782
+ background: var(--ui-accent-soft, var(--ui-accent-subtle));
783
+ }
784
+ :scope:where(:scope):is([hidden]) {
785
+ display: none;
786
+ }
962
787
  }
963
788
  </style>