@threadlabs/looma 0.4.0 → 0.5.0

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 (490) hide show
  1. package/README.md +43 -12
  2. package/components/shared/editor.js +69 -0
  3. package/components/shared/input-modality.js +20 -0
  4. package/components/shared/overlay.js +281 -0
  5. package/components/shared/trigger.js +17 -0
  6. package/components/ui-affordance-scope/ui-affordance-scope.html +22 -0
  7. package/components/ui-affordance-scope/ui-affordance-scope.js +76 -0
  8. package/components/ui-avatar/ui-avatar.html +59 -0
  9. package/components/ui-avatar/ui-avatar.js +47 -0
  10. package/components/ui-avatar-group/ui-avatar-group.html +62 -0
  11. package/components/ui-avatar-group/ui-avatar-group.js +27 -0
  12. package/components/ui-badge/ui-badge.html +94 -0
  13. package/components/ui-button/ui-button.html +198 -0
  14. package/components/ui-callout/ui-callout.html +104 -0
  15. package/components/ui-checkbox/ui-checkbox.html +107 -0
  16. package/components/ui-checkbox/ui-checkbox.js +24 -0
  17. package/components/ui-cluster/ui-cluster.html +49 -0
  18. package/components/ui-combobox/ui-combobox.html +377 -0
  19. package/components/ui-combobox/ui-combobox.js +432 -0
  20. package/components/ui-container/ui-container.html +39 -0
  21. package/components/ui-context-menu/ui-context-menu.html +75 -0
  22. package/components/ui-context-menu/ui-context-menu.js +143 -0
  23. package/components/ui-dialog/ui-dialog.html +178 -0
  24. package/components/ui-dialog/ui-dialog.js +105 -0
  25. package/components/ui-disclosure/ui-disclosure.html +109 -0
  26. package/components/ui-disclosure/ui-disclosure.js +28 -0
  27. package/components/ui-editable/ui-editable.html +163 -0
  28. package/components/ui-editable/ui-editable.js +113 -0
  29. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.html +97 -0
  30. package/components/ui-editor-insert-table-grid/ui-editor-insert-table-grid.js +71 -0
  31. package/components/ui-editor-mention-menu/ui-editor-mention-menu.html +157 -0
  32. package/components/ui-editor-mention-menu/ui-editor-mention-menu.js +50 -0
  33. package/components/ui-editor-slash-menu/ui-editor-slash-menu.html +197 -0
  34. package/components/ui-editor-slash-menu/ui-editor-slash-menu.js +44 -0
  35. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.html +164 -0
  36. package/components/ui-editor-table-context-menu/ui-editor-table-context-menu.js +75 -0
  37. package/components/ui-editor-table-overlay/ui-editor-table-overlay.html +422 -0
  38. package/components/ui-editor-table-overlay/ui-editor-table-overlay.js +119 -0
  39. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.html +271 -0
  40. package/components/ui-editor-table-toolbar/ui-editor-table-toolbar.js +54 -0
  41. package/components/ui-editor-toolbar/ui-editor-toolbar.html +110 -0
  42. package/components/ui-floating-action-button/ui-floating-action-button.html +83 -0
  43. package/components/ui-form-field/ui-form-field.html +45 -0
  44. package/components/ui-form-field/ui-form-field.js +71 -0
  45. package/components/ui-grid/ui-grid.html +46 -0
  46. package/components/ui-icon/ui-icon.html +34 -0
  47. package/components/ui-icon/ui-icon.js +8 -0
  48. package/components/ui-icon-button/ui-icon-button.html +167 -0
  49. package/components/ui-icon-button/ui-icon-button.js +7 -0
  50. package/components/ui-input/ui-input.html +81 -0
  51. package/components/ui-input/ui-input.js +7 -0
  52. package/components/ui-menu/ui-menu.html +87 -0
  53. package/components/ui-menu/ui-menu.js +114 -0
  54. package/components/ui-menu-item/ui-menu-item.html +37 -0
  55. package/components/ui-popover/ui-popover.html +85 -0
  56. package/components/ui-popover/ui-popover.js +70 -0
  57. package/components/ui-radio/ui-radio.html +57 -0
  58. package/components/ui-radio/ui-radio.js +25 -0
  59. package/components/ui-radio-group/ui-radio-group.html +51 -0
  60. package/components/ui-radio-group/ui-radio-group.js +42 -0
  61. package/components/ui-reel/ui-reel.html +67 -0
  62. package/components/ui-search-result-row/ui-search-result-row.html +101 -0
  63. package/components/ui-search-shell/ui-search-shell.html +142 -0
  64. package/components/ui-search-shell/ui-search-shell.js +60 -0
  65. package/components/ui-select/ui-select.html +87 -0
  66. package/components/ui-select/ui-select.js +16 -0
  67. package/components/ui-separator/ui-separator.html +22 -0
  68. package/components/ui-sidebar/ui-sidebar.html +183 -0
  69. package/components/ui-sidebar/ui-sidebar.js +178 -0
  70. package/components/ui-stack/ui-stack.html +59 -0
  71. package/components/ui-switch/ui-switch.html +95 -0
  72. package/components/ui-switch/ui-switch.js +24 -0
  73. package/components/ui-switcher/ui-switcher.html +65 -0
  74. package/components/ui-tabs/ui-tabs.html +134 -0
  75. package/components/ui-tabs/ui-tabs.js +81 -0
  76. package/components/ui-textarea/ui-textarea.html +80 -0
  77. package/components/ui-textarea/ui-textarea.js +7 -0
  78. package/components/ui-toast-region/ui-toast-region.html +127 -0
  79. package/components/ui-toast-region/ui-toast-region.js +119 -0
  80. package/components/ui-tooltip/ui-tooltip.html +122 -0
  81. package/components/ui-tooltip/ui-tooltip.js +134 -0
  82. package/components/ui-top-bar/ui-top-bar.html +53 -0
  83. package/components/ui-tree/ui-tree.html +29 -0
  84. package/components/ui-tree/ui-tree.js +250 -0
  85. package/components/ui-tree-item/ui-tree-item.html +326 -0
  86. package/components/ui-tree-item/ui-tree-item.js +94 -0
  87. package/dist/index.d.ts +4 -414
  88. package/dist/index.js +55 -657
  89. package/editor/chunks/extensions.js +7267 -0
  90. package/editor/chunks/table-backgrounds.js +51 -0
  91. package/editor/chunks/ui.js +92 -0
  92. package/editor/extensions/callout.d.ts +20 -0
  93. package/editor/extensions/index.d.ts +12 -441
  94. package/editor/extensions/index.js +3 -64
  95. package/editor/extensions/list-behavior.d.ts +7 -0
  96. package/editor/extensions/mention.d.ts +35 -0
  97. package/editor/extensions/preset.d.ts +42 -0
  98. package/editor/extensions/slash-command.d.ts +80 -0
  99. package/editor/extensions/smart-paste.d.ts +13 -0
  100. package/editor/extensions/table-commands.d.ts +114 -0
  101. package/editor/extensions/table-formatting.d.ts +60 -0
  102. package/editor/icons.d.ts +55 -0
  103. package/editor/index.d.ts +8 -6
  104. package/editor/index.js +96 -71
  105. package/editor/insert-table-grid.d.ts +7 -0
  106. package/editor/mention-contract.d.ts +78 -0
  107. package/editor/mention-menu.d.ts +9 -0
  108. package/editor/slash-menu.d.ts +29 -0
  109. package/editor/table-backgrounds.d.ts +43 -0
  110. package/editor/table-context-menu.d.ts +12 -0
  111. package/editor/table-overlay.d.ts +79 -0
  112. package/editor/ui.d.ts +10 -50
  113. package/editor/ui.js +3 -14
  114. package/editor/viewport.d.ts +15 -0
  115. package/package.json +84 -60
  116. package/styles/ui-affordance-scope.css +19 -0
  117. package/styles/ui-avatar-group.css +56 -0
  118. package/styles/ui-avatar.css +47 -0
  119. package/styles/ui-badge.css +91 -0
  120. package/styles/ui-button.css +206 -0
  121. package/styles/ui-callout.css +76 -0
  122. package/styles/ui-checkbox.css +98 -0
  123. package/styles/ui-cluster.css +46 -0
  124. package/styles/ui-combobox.css +213 -0
  125. package/styles/ui-container.css +36 -0
  126. package/styles/ui-context-menu.css +68 -0
  127. package/styles/ui-dialog.css +160 -0
  128. package/styles/ui-disclosure.css +95 -0
  129. package/styles/ui-editable.css +139 -0
  130. package/styles/ui-editor-insert-table-grid.css +65 -0
  131. package/styles/ui-editor-mention-menu.css +121 -0
  132. package/styles/ui-editor-slash-menu.css +179 -0
  133. package/styles/ui-editor-table-context-menu.css +118 -0
  134. package/styles/ui-editor-table-overlay.css +318 -0
  135. package/styles/ui-editor-table-toolbar.css +191 -0
  136. package/styles/ui-editor-toolbar.css +115 -0
  137. package/styles/ui-floating-action-button.css +82 -0
  138. package/styles/ui-form-field.css +36 -0
  139. package/styles/ui-grid.css +43 -0
  140. package/styles/ui-icon-button.css +169 -0
  141. package/styles/ui-icon.css +23 -0
  142. package/styles/ui-input.css +82 -0
  143. package/styles/ui-menu-item.css +34 -0
  144. package/styles/ui-menu.css +80 -0
  145. package/styles/ui-popover.css +76 -0
  146. package/styles/ui-radio-group.css +38 -0
  147. package/styles/ui-radio.css +46 -0
  148. package/styles/ui-reel.css +63 -0
  149. package/styles/ui-search-result-row.css +92 -0
  150. package/styles/ui-search-shell.css +128 -0
  151. package/styles/ui-select.css +86 -0
  152. package/styles/ui-separator.css +16 -0
  153. package/styles/ui-sidebar.css +166 -0
  154. package/styles/ui-stack.css +55 -0
  155. package/styles/ui-switch.css +88 -0
  156. package/styles/ui-switcher.css +61 -0
  157. package/styles/ui-tabs.css +114 -0
  158. package/styles/ui-textarea.css +77 -0
  159. package/styles/ui-toast-region.css +103 -0
  160. package/styles/ui-tooltip.css +113 -0
  161. package/styles/ui-top-bar.css +51 -0
  162. package/styles/ui-tree-item.css +267 -0
  163. package/styles/ui-tree.css +16 -0
  164. package/vanilla/UiAffordanceScope.d.ts +14 -0
  165. package/vanilla/UiAffordanceScope.js +30 -0
  166. package/vanilla/UiAvatar.d.ts +17 -0
  167. package/vanilla/UiAvatar.js +41 -0
  168. package/vanilla/UiAvatarGroup.d.ts +15 -0
  169. package/vanilla/UiAvatarGroup.js +40 -0
  170. package/vanilla/UiBadge.d.ts +15 -0
  171. package/vanilla/UiBadge.js +30 -0
  172. package/vanilla/UiButton.d.ts +16 -0
  173. package/vanilla/UiButton.js +32 -0
  174. package/vanilla/UiCallout.d.ts +14 -0
  175. package/vanilla/UiCallout.js +124 -0
  176. package/vanilla/UiCheckbox.d.ts +19 -0
  177. package/vanilla/UiCheckbox.js +47 -0
  178. package/vanilla/UiCluster.d.ts +15 -0
  179. package/vanilla/UiCluster.js +30 -0
  180. package/vanilla/UiCombobox.d.ts +42 -0
  181. package/vanilla/UiCombobox.js +194 -0
  182. package/vanilla/UiContainer.d.ts +15 -0
  183. package/vanilla/UiContainer.js +30 -0
  184. package/vanilla/UiContextMenu.d.ts +18 -0
  185. package/vanilla/UiContextMenu.js +35 -0
  186. package/vanilla/UiDialog.d.ts +19 -0
  187. package/vanilla/UiDialog.js +53 -0
  188. package/vanilla/UiDisclosure.d.ts +18 -0
  189. package/vanilla/UiDisclosure.js +49 -0
  190. package/vanilla/UiEditable.d.ts +22 -0
  191. package/vanilla/UiEditable.js +59 -0
  192. package/vanilla/UiEditorInsertTableGrid.d.ts +18 -0
  193. package/vanilla/UiEditorInsertTableGrid.js +46 -0
  194. package/vanilla/UiEditorMentionMenu.d.ts +21 -0
  195. package/vanilla/UiEditorMentionMenu.js +63 -0
  196. package/vanilla/UiEditorSlashMenu.d.ts +20 -0
  197. package/vanilla/UiEditorSlashMenu.js +74 -0
  198. package/vanilla/UiEditorTableContextMenu.d.ts +17 -0
  199. package/vanilla/UiEditorTableContextMenu.js +69 -0
  200. package/vanilla/UiEditorTableOverlay.d.ts +16 -0
  201. package/vanilla/UiEditorTableOverlay.js +113 -0
  202. package/vanilla/UiEditorTableToolbar.d.ts +18 -0
  203. package/vanilla/UiEditorTableToolbar.js +121 -0
  204. package/vanilla/UiEditorToolbar.d.ts +14 -0
  205. package/vanilla/UiEditorToolbar.js +30 -0
  206. package/vanilla/UiFloatingActionButton.d.ts +16 -0
  207. package/vanilla/UiFloatingActionButton.js +35 -0
  208. package/vanilla/UiFormField.d.ts +16 -0
  209. package/vanilla/UiFormField.js +54 -0
  210. package/vanilla/UiGrid.d.ts +15 -0
  211. package/vanilla/UiGrid.js +30 -0
  212. package/vanilla/UiIcon.d.ts +14 -0
  213. package/vanilla/UiIcon.js +40 -0
  214. package/vanilla/UiIconButton.d.ts +19 -0
  215. package/vanilla/UiIconButton.js +37 -0
  216. package/vanilla/UiInput.d.ts +18 -0
  217. package/vanilla/UiInput.js +37 -0
  218. package/vanilla/UiMenu.d.ts +19 -0
  219. package/vanilla/UiMenu.js +35 -0
  220. package/vanilla/UiMenuItem.d.ts +15 -0
  221. package/vanilla/UiMenuItem.js +43 -0
  222. package/vanilla/UiPopover.d.ts +18 -0
  223. package/vanilla/UiPopover.js +33 -0
  224. package/vanilla/UiRadio.d.ts +19 -0
  225. package/vanilla/UiRadio.js +48 -0
  226. package/vanilla/UiRadioGroup.d.ts +21 -0
  227. package/vanilla/UiRadioGroup.js +35 -0
  228. package/vanilla/UiReel.d.ts +16 -0
  229. package/vanilla/UiReel.js +34 -0
  230. package/vanilla/UiSearchResultRow.d.ts +15 -0
  231. package/vanilla/UiSearchResultRow.js +82 -0
  232. package/vanilla/UiSearchShell.d.ts +18 -0
  233. package/vanilla/UiSearchShell.js +74 -0
  234. package/vanilla/UiSelect.d.ts +18 -0
  235. package/vanilla/UiSelect.js +42 -0
  236. package/vanilla/UiSeparator.d.ts +14 -0
  237. package/vanilla/UiSeparator.js +28 -0
  238. package/vanilla/UiSidebar.d.ts +24 -0
  239. package/vanilla/UiSidebar.js +47 -0
  240. package/vanilla/UiStack.d.ts +16 -0
  241. package/vanilla/UiStack.js +32 -0
  242. package/vanilla/UiSwitch.d.ts +18 -0
  243. package/vanilla/UiSwitch.js +46 -0
  244. package/vanilla/UiSwitcher.d.ts +16 -0
  245. package/vanilla/UiSwitcher.js +32 -0
  246. package/vanilla/UiTabs.d.ts +18 -0
  247. package/vanilla/UiTabs.js +47 -0
  248. package/vanilla/UiTextarea.d.ts +19 -0
  249. package/vanilla/UiTextarea.js +40 -0
  250. package/vanilla/UiToastRegion.d.ts +20 -0
  251. package/vanilla/UiToastRegion.js +58 -0
  252. package/vanilla/UiTooltip.d.ts +21 -0
  253. package/vanilla/UiTooltip.js +34 -0
  254. package/vanilla/UiTopBar.d.ts +13 -0
  255. package/vanilla/UiTopBar.js +59 -0
  256. package/vanilla/UiTree.d.ts +18 -0
  257. package/vanilla/UiTree.js +31 -0
  258. package/vanilla/UiTreeItem.d.ts +26 -0
  259. package/vanilla/UiTreeItem.js +164 -0
  260. package/vanilla/index.js +48 -0
  261. package/vue/UiAffordanceScope.d.ts +18 -0
  262. package/vue/UiAffordanceScope.js +2 -0
  263. package/vue/UiAffordanceScope.vue +118 -0
  264. package/vue/UiAvatar.d.ts +23 -0
  265. package/vue/UiAvatar.js +2 -0
  266. package/vue/UiAvatar.vue +152 -0
  267. package/vue/UiAvatarGroup.d.ts +20 -0
  268. package/vue/UiAvatarGroup.js +2 -0
  269. package/vue/UiAvatarGroup.vue +167 -0
  270. package/vue/UiBadge.d.ts +20 -0
  271. package/vue/UiBadge.js +2 -0
  272. package/vue/UiBadge.vue +123 -0
  273. package/vue/UiButton.d.ts +22 -0
  274. package/vue/UiButton.js +2 -0
  275. package/vue/UiButton.vue +229 -0
  276. package/vue/UiCallout.d.ts +18 -0
  277. package/vue/UiCallout.js +2 -0
  278. package/vue/UiCallout.vue +104 -0
  279. package/vue/UiCheckbox.d.ts +38 -0
  280. package/vue/UiCheckbox.js +2 -0
  281. package/vue/UiCheckbox.vue +216 -0
  282. package/vue/UiCluster.d.ts +17 -0
  283. package/vue/UiCluster.js +2 -0
  284. package/vue/UiCluster.vue +75 -0
  285. package/vue/UiCombobox.d.ts +255 -0
  286. package/vue/UiCombobox.js +2 -0
  287. package/vue/UiCombobox.vue +466 -0
  288. package/vue/UiContainer.d.ts +17 -0
  289. package/vue/UiContainer.js +2 -0
  290. package/vue/UiContainer.vue +65 -0
  291. package/vue/UiContextMenu.d.ts +50 -0
  292. package/vue/UiContextMenu.js +2 -0
  293. package/vue/UiContextMenu.vue +166 -0
  294. package/vue/UiDialog.d.ts +39 -0
  295. package/vue/UiDialog.js +2 -0
  296. package/vue/UiDialog.vue +273 -0
  297. package/vue/UiDisclosure.d.ts +44 -0
  298. package/vue/UiDisclosure.js +2 -0
  299. package/vue/UiDisclosure.vue +211 -0
  300. package/vue/UiEditable.d.ts +48 -0
  301. package/vue/UiEditable.js +2 -0
  302. package/vue/UiEditable.vue +267 -0
  303. package/vue/UiEditorInsertTableGrid.d.ts +26 -0
  304. package/vue/UiEditorInsertTableGrid.js +2 -0
  305. package/vue/UiEditorInsertTableGrid.vue +210 -0
  306. package/vue/UiEditorMentionMenu.d.ts +44 -0
  307. package/vue/UiEditorMentionMenu.js +2 -0
  308. package/vue/UiEditorMentionMenu.vue +284 -0
  309. package/vue/UiEditorSlashMenu.d.ts +41 -0
  310. package/vue/UiEditorSlashMenu.js +2 -0
  311. package/vue/UiEditorSlashMenu.vue +306 -0
  312. package/vue/UiEditorTableContextMenu.d.ts +19 -0
  313. package/vue/UiEditorTableContextMenu.js +2 -0
  314. package/vue/UiEditorTableContextMenu.vue +252 -0
  315. package/vue/UiEditorTableOverlay.d.ts +66 -0
  316. package/vue/UiEditorTableOverlay.js +2 -0
  317. package/vue/UiEditorTableOverlay.vue +455 -0
  318. package/vue/UiEditorTableToolbar.d.ts +21 -0
  319. package/vue/UiEditorTableToolbar.js +2 -0
  320. package/vue/UiEditorTableToolbar.vue +339 -0
  321. package/vue/UiEditorToolbar.d.ts +18 -0
  322. package/vue/UiEditorToolbar.js +2 -0
  323. package/vue/UiEditorToolbar.vue +138 -0
  324. package/vue/UiFloatingActionButton.d.ts +22 -0
  325. package/vue/UiFloatingActionButton.js +2 -0
  326. package/vue/UiFloatingActionButton.vue +116 -0
  327. package/vue/UiFormField.d.ts +28 -0
  328. package/vue/UiFormField.js +2 -0
  329. package/vue/UiFormField.vue +124 -0
  330. package/vue/UiGrid.d.ts +17 -0
  331. package/vue/UiGrid.js +2 -0
  332. package/vue/UiGrid.vue +72 -0
  333. package/vue/UiIcon.d.ts +8 -0
  334. package/vue/UiIcon.js +2 -0
  335. package/vue/UiIcon.vue +135 -0
  336. package/vue/UiIconButton.d.ts +27 -0
  337. package/vue/UiIconButton.js +2 -0
  338. package/vue/UiIconButton.vue +268 -0
  339. package/vue/UiInput.d.ts +20 -0
  340. package/vue/UiInput.js +2 -0
  341. package/vue/UiInput.vue +177 -0
  342. package/vue/UiMenu.d.ts +52 -0
  343. package/vue/UiMenu.js +2 -0
  344. package/vue/UiMenu.vue +194 -0
  345. package/vue/UiMenuItem.d.ts +20 -0
  346. package/vue/UiMenuItem.js +2 -0
  347. package/vue/UiMenuItem.vue +55 -0
  348. package/vue/UiPopover.d.ts +44 -0
  349. package/vue/UiPopover.js +2 -0
  350. package/vue/UiPopover.vue +188 -0
  351. package/vue/UiRadio.d.ts +38 -0
  352. package/vue/UiRadio.js +2 -0
  353. package/vue/UiRadio.vue +166 -0
  354. package/vue/UiRadioGroup.d.ts +50 -0
  355. package/vue/UiRadioGroup.js +2 -0
  356. package/vue/UiRadioGroup.vue +161 -0
  357. package/vue/UiReel.d.ts +18 -0
  358. package/vue/UiReel.js +2 -0
  359. package/vue/UiReel.vue +93 -0
  360. package/vue/UiSearchResultRow.d.ts +28 -0
  361. package/vue/UiSearchResultRow.js +2 -0
  362. package/vue/UiSearchResultRow.vue +124 -0
  363. package/vue/UiSearchShell.d.ts +42 -0
  364. package/vue/UiSearchShell.js +2 -0
  365. package/vue/UiSearchShell.vue +233 -0
  366. package/vue/UiSelect.d.ts +30 -0
  367. package/vue/UiSelect.js +2 -0
  368. package/vue/UiSelect.vue +183 -0
  369. package/vue/UiSeparator.d.ts +8 -0
  370. package/vue/UiSeparator.js +2 -0
  371. package/vue/UiSeparator.vue +38 -0
  372. package/vue/UiSidebar.d.ts +54 -0
  373. package/vue/UiSidebar.js +2 -0
  374. package/vue/UiSidebar.vue +288 -0
  375. package/vue/UiStack.d.ts +18 -0
  376. package/vue/UiStack.js +2 -0
  377. package/vue/UiStack.vue +85 -0
  378. package/vue/UiSwitch.d.ts +36 -0
  379. package/vue/UiSwitch.js +2 -0
  380. package/vue/UiSwitch.vue +203 -0
  381. package/vue/UiSwitcher.d.ts +18 -0
  382. package/vue/UiSwitcher.js +2 -0
  383. package/vue/UiSwitcher.vue +91 -0
  384. package/vue/UiTabs.d.ts +36 -0
  385. package/vue/UiTabs.js +2 -0
  386. package/vue/UiTabs.vue +269 -0
  387. package/vue/UiTextarea.d.ts +22 -0
  388. package/vue/UiTextarea.js +2 -0
  389. package/vue/UiTextarea.vue +177 -0
  390. package/vue/UiToastRegion.d.ts +48 -0
  391. package/vue/UiToastRegion.js +2 -0
  392. package/vue/UiToastRegion.vue +256 -0
  393. package/vue/UiTooltip.d.ts +50 -0
  394. package/vue/UiTooltip.js +2 -0
  395. package/vue/UiTooltip.vue +230 -0
  396. package/vue/UiTopBar.d.ts +19 -0
  397. package/vue/UiTopBar.js +2 -0
  398. package/vue/UiTopBar.vue +56 -0
  399. package/vue/UiTree.d.ts +62 -0
  400. package/vue/UiTree.js +2 -0
  401. package/vue/UiTree.vue +117 -0
  402. package/vue/UiTreeItem.d.ts +56 -0
  403. package/vue/UiTreeItem.js +2 -0
  404. package/vue/UiTreeItem.vue +418 -0
  405. package/vue/chunks/UiAffordanceScope.js +112 -0
  406. package/vue/chunks/UiAvatar.js +144 -0
  407. package/vue/chunks/UiAvatarGroup.js +142 -0
  408. package/vue/chunks/UiBadge.js +33 -0
  409. package/vue/chunks/UiButton.js +47 -0
  410. package/vue/chunks/UiCallout.js +117 -0
  411. package/vue/chunks/UiCheckbox.js +167 -0
  412. package/vue/chunks/UiCluster.js +33 -0
  413. package/vue/chunks/UiCombobox.js +684 -0
  414. package/vue/chunks/UiContainer.js +33 -0
  415. package/vue/chunks/UiContextMenu.js +153 -0
  416. package/vue/chunks/UiDialog.js +162 -0
  417. package/vue/chunks/UiDisclosure.js +185 -0
  418. package/vue/chunks/UiEditable.js +223 -0
  419. package/vue/chunks/UiEditorInsertTableGrid.js +221 -0
  420. package/vue/chunks/UiEditorMentionMenu.js +245 -0
  421. package/vue/chunks/UiEditorSlashMenu.js +210 -0
  422. package/vue/chunks/UiEditorTableContextMenu.js +201 -0
  423. package/vue/chunks/UiEditorTableOverlay.js +301 -0
  424. package/vue/chunks/UiEditorTableToolbar.js +299 -0
  425. package/vue/chunks/UiEditorToolbar.js +37 -0
  426. package/vue/chunks/UiFloatingActionButton.js +56 -0
  427. package/vue/chunks/UiFormField.js +113 -0
  428. package/vue/chunks/UiGrid.js +33 -0
  429. package/vue/chunks/UiIcon.js +170 -0
  430. package/vue/chunks/UiIconButton.js +141 -0
  431. package/vue/chunks/UiInput.js +136 -0
  432. package/vue/chunks/UiMenu.js +163 -0
  433. package/vue/chunks/UiMenuItem.js +37 -0
  434. package/vue/chunks/UiPopover.js +149 -0
  435. package/vue/chunks/UiRadio.js +164 -0
  436. package/vue/chunks/UiRadioGroup.js +160 -0
  437. package/vue/chunks/UiReel.js +42 -0
  438. package/vue/chunks/UiSearchResultRow.js +63 -0
  439. package/vue/chunks/UiSearchShell.js +152 -0
  440. package/vue/chunks/UiSelect.js +134 -0
  441. package/vue/chunks/UiSeparator.js +24 -0
  442. package/vue/chunks/UiSidebar.js +180 -0
  443. package/vue/chunks/UiStack.js +38 -0
  444. package/vue/chunks/UiSwitch.js +162 -0
  445. package/vue/chunks/UiSwitcher.js +38 -0
  446. package/vue/chunks/UiTabs.js +210 -0
  447. package/vue/chunks/UiTextarea.js +139 -0
  448. package/vue/chunks/UiToastRegion.js +227 -0
  449. package/vue/chunks/UiTooltip.js +163 -0
  450. package/vue/chunks/UiTopBar.js +25 -0
  451. package/vue/chunks/UiTree.js +140 -0
  452. package/vue/chunks/UiTreeItem.js +315 -0
  453. package/vue/chunks/_plugin-vue_export-helper.js +8 -0
  454. package/vue/components.css +4405 -0
  455. package/vue/editor/LoomaEditor.d.ts +171 -0
  456. package/vue/editor/image-delivery.d.ts +61 -0
  457. package/vue/editor/index.d.ts +4 -386
  458. package/vue/editor/index.js +995 -1134
  459. package/vue/editor/primitives.d.ts +23 -0
  460. package/vue/index.d.ts +48 -604
  461. package/vue/index.js +49 -86
  462. package/dist/chunk-MLKGABMK.js +0 -9
  463. package/dist/chunk-RWLYVQY6.js +0 -5719
  464. package/dist/chunk-XDNZIKNI.js +0 -2721
  465. package/dist/declarative-generated.cjs +0 -149
  466. package/dist/declarative-generated.d.cts +0 -16
  467. package/dist/declarative-generated.d.ts +0 -16
  468. package/dist/declarative-generated.js +0 -124
  469. package/dist/declarative.cjs +0 -2750
  470. package/dist/declarative.d.cts +0 -101
  471. package/dist/declarative.d.ts +0 -101
  472. package/dist/declarative.js +0 -15
  473. package/dist/index.cjs +0 -9077
  474. package/dist/index.d.cts +0 -414
  475. package/dist/loader.cjs +0 -8442
  476. package/dist/loader.d.cts +0 -4
  477. package/dist/loader.d.ts +0 -4
  478. package/dist/loader.js +0 -16
  479. package/editor/chunk-EUIH3TBV.js +0 -6826
  480. package/editor/chunk-JK53ENSG.js +0 -29
  481. package/editor/chunk-U36XNFJN.js +0 -2592
  482. package/editor/table-overlay-DZFGHQDt.d.ts +0 -138
  483. package/editor.css +0 -1592
  484. package/layout/index.cjs +0 -356
  485. package/layout/index.d.cts +0 -18
  486. package/layout/index.d.ts +0 -18
  487. package/layout/index.js +0 -341
  488. package/layout.css +0 -191
  489. package/styles.css +0 -940
  490. package/vue/chunk-OX3EACZ7.js +0 -4369
@@ -0,0 +1,4405 @@
1
+
2
+ [data-component~="ui-affordance-scope"][data-v-650ceaf5] {
3
+ display: contents;
4
+ --ui-affordance-scope-engaged: 0;
5
+ }
6
+ [data-component~="ui-affordance-scope"][data-ui-affordance-scope-state~="engaged"][data-v-650ceaf5] {
7
+ --ui-affordance-scope-engaged: 1;
8
+ }
9
+
10
+ /* A component that sets its display still honours the hidden attribute on its root. */
11
+ [data-component~="ui-affordance-scope"][hidden][data-v-650ceaf5] {
12
+ display: none;
13
+ }
14
+
15
+ [data-component~="ui-avatar"][data-v-110795c3] {
16
+ display: inline-grid;
17
+ place-items: center;
18
+ overflow: hidden;
19
+ inline-size: 2.5rem;
20
+ block-size: 2.5rem;
21
+ border-radius: 999px;
22
+ border: 1px solid var(--ui-avatar-border, var(--ui-border-strong));
23
+ background: var(--ui-avatar-surface, var(--ui-accent-soft));
24
+ color: var(--ui-avatar-text, var(--ui-accent-solid));
25
+ font: inherit;
26
+ font-size: 0.875rem;
27
+ font-weight: 600;
28
+ text-transform: uppercase;
29
+ }
30
+ .image[data-v-110795c3],img[data-v-110795c3-s] {
31
+ grid-area: 1 / 1;
32
+ inline-size: 100%;
33
+ block-size: 100%;
34
+ object-fit: cover;
35
+ }
36
+ .fallback[data-v-110795c3] {
37
+ grid-area: 1 / 1;
38
+ display: inline-flex;
39
+ align-items: center;
40
+ justify-content: center;
41
+ inline-size: 100%;
42
+ block-size: 100%;
43
+ }
44
+ [hidden][data-v-110795c3] {
45
+ display: none;
46
+ }
47
+
48
+ /* A component that sets its display still honours the hidden attribute on its root. */
49
+ [data-component~="ui-avatar"][hidden][data-v-110795c3] {
50
+ display: none;
51
+ }
52
+
53
+ [data-component~="ui-avatar-group"][data-v-e211803c] {
54
+ display: flex;
55
+ align-items: center;
56
+ flex-direction: row;
57
+ gap: 0;
58
+ }
59
+
60
+ /* Overlap and the separating shadow are applied by the controller: slotted avatars are nested
61
+ * component roots outside this style scope. */
62
+ [data-v-e211803c-s] {
63
+ margin-inline-start: -0.625rem;
64
+ flex-shrink: 0;
65
+ border-radius: 999px;
66
+ }
67
+ [data-v-e211803c-s]:first-child {
68
+ margin-inline-start: 0;
69
+ }
70
+ .overflow[data-v-e211803c] {
71
+ margin-inline-start: -0.625rem;
72
+ display: inline-flex;
73
+ align-items: center;
74
+ justify-content: center;
75
+ inline-size: 2.5rem;
76
+ block-size: 2.5rem;
77
+ border-radius: 999px;
78
+ border: 1px solid var(--ui-border-strong);
79
+ background: var(--ui-surface-elevated);
80
+ color: var(--ui-text-primary);
81
+ box-shadow:
82
+ var(--ui-avatar-group-overlap-shadow, -2px 0 5px -1px rgb(0 0 0 / 0.28)),
83
+ 0 0 0 1px rgb(0 0 0 / 0.06);
84
+ font: inherit;
85
+ font-size: 0.75rem;
86
+ font-weight: 600;
87
+ flex-shrink: 0;
88
+ }
89
+ .overflow[hidden][data-v-e211803c] {
90
+ display: none;
91
+ }
92
+
93
+ /* A component that sets its display still honours the hidden attribute on its root. */
94
+ [data-component~="ui-avatar-group"][hidden][data-v-e211803c] {
95
+ display: none;
96
+ }
97
+
98
+ [data-component~="ui-badge"][data-v-35c8472c] {
99
+ --_badge-surface: var(--ui-surface-subtle);
100
+ --_badge-text: var(--ui-text-secondary);
101
+ --_badge-border: color-mix(in srgb, var(--ui-text-secondary) 30%, transparent);
102
+
103
+ display: inline-flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ max-width: 100%;
107
+ padding: var(--ui-badge-padding-block, var(--ui-space-0-5)) var(--ui-badge-padding-inline, var(--ui-space-2));
108
+ border: 1px solid var(--ui-badge-border, var(--_badge-border));
109
+ border-radius: var(--ui-radius-round);
110
+ background: var(--ui-badge-surface, var(--_badge-surface));
111
+ color: var(--ui-badge-text, var(--_badge-text));
112
+ font-family: var(--ui-font-family-sans);
113
+ font-size: var(--ui-badge-font-size, var(--ui-font-size-sm));
114
+ font-weight: var(--ui-badge-font-weight, var(--ui-font-medium));
115
+ line-height: var(--ui-badge-line-height, var(--ui-line-height-tight));
116
+ white-space: nowrap;
117
+ }
118
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=accent"][data-v-35c8472c] {
119
+ --_badge-surface: var(--ui-accent-strong-surface, var(--ui-accent-solid));
120
+ --_badge-border: var(--ui-accent-strong-surface, var(--ui-accent-solid));
121
+ --_badge-text: var(--ui-accent-on-strong, var(--ui-text-on-accent));
122
+ }
123
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=danger"][data-v-35c8472c] {
124
+ --_badge-surface: var(--ui-danger-strong-surface, var(--ui-danger-solid));
125
+ --_badge-border: var(--ui-danger-strong-surface, var(--ui-danger-solid));
126
+ --_badge-text: var(--ui-danger-on-strong, var(--ui-text-on-accent));
127
+ }
128
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=success"][data-v-35c8472c] {
129
+ --_badge-surface: var(--ui-success-strong-surface, var(--ui-success-solid));
130
+ --_badge-border: var(--ui-success-strong-surface, var(--ui-success-solid));
131
+ --_badge-text: var(--ui-success-on-strong, var(--ui-text-on-accent));
132
+ }
133
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=warning"][data-v-35c8472c] {
134
+ --_badge-surface: var(--ui-warning-strong-surface, var(--ui-warning-solid));
135
+ --_badge-border: var(--ui-warning-strong-surface, var(--ui-warning-solid));
136
+ --_badge-text: var(--ui-warning-on-strong, var(--ui-text-on-accent));
137
+ }
138
+ [data-component~="ui-badge"][data-ui-badge-state~="tone=info"][data-v-35c8472c] {
139
+ --_badge-surface: var(--ui-info-strong-surface, var(--ui-info-solid));
140
+ --_badge-border: var(--ui-info-strong-surface, var(--ui-info-solid));
141
+ --_badge-text: var(--ui-info-on-strong, var(--ui-text-on-accent));
142
+ }
143
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=accent"][data-v-35c8472c] {
144
+ --_badge-surface: var(--ui-accent-soft);
145
+ --_badge-border: var(--ui-accent-soft);
146
+ --_badge-text: var(--ui-accent-subtle-text, var(--ui-accent-solid));
147
+ }
148
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=danger"][data-v-35c8472c] {
149
+ --_badge-surface: var(--ui-danger-soft);
150
+ --_badge-border: var(--ui-danger-soft);
151
+ --_badge-text: var(--ui-danger-subtle-text, var(--ui-danger-solid));
152
+ }
153
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=success"][data-v-35c8472c] {
154
+ --_badge-surface: var(--ui-success-soft);
155
+ --_badge-border: var(--ui-success-soft);
156
+ --_badge-text: var(--ui-success-subtle-text, var(--ui-success-solid));
157
+ }
158
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=warning"][data-v-35c8472c] {
159
+ --_badge-surface: var(--ui-warning-soft);
160
+ --_badge-border: var(--ui-warning-soft);
161
+ --_badge-text: var(--ui-warning-subtle-text, var(--ui-warning-solid));
162
+ }
163
+ [data-component~="ui-badge"][data-ui-badge-state~="variant=subtle"][data-ui-badge-state~="tone=info"][data-v-35c8472c] {
164
+ --_badge-surface: var(--ui-info-soft);
165
+ --_badge-border: var(--ui-info-soft);
166
+ --_badge-text: var(--ui-info-subtle-text, var(--ui-info-solid));
167
+ }
168
+
169
+ /* A component that sets its display still honours the hidden attribute on its root. */
170
+ [data-component~="ui-badge"][hidden][data-v-35c8472c] {
171
+ display: none;
172
+ }
173
+
174
+ [data-component~="ui-button"][data-v-c8f3a3fb] {
175
+ display: inline-flex;
176
+ align-items: center;
177
+ justify-content: center;
178
+ vertical-align: middle;
179
+ color: var(--ui-action-secondary-text, var(--ui-text-primary));
180
+ }
181
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-c8f3a3fb] {
182
+ color: var(--ui-action-primary-text, var(--ui-text-on-accent));
183
+ }
184
+ [data-component~="ui-button"][data-v-c8f3a3fb] {
185
+ appearance: none;
186
+ min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md, 2.5rem));
187
+ border: 1px solid var(--ui-button-border, var(--ui-border-strong));
188
+ border-radius: var(--ui-button-radius, var(--ui-radius-2));
189
+ background: var(--ui-button-surface, var(--ui-surface-elevated));
190
+ color: var(--ui-button-text, var(--ui-action-secondary-text, var(--ui-text-primary)));
191
+ font: inherit;
192
+ font-weight: var(--ui-font-medium, 500);
193
+ line-height: var(--ui-line-height-tight);
194
+ padding: var(--ui-space-2) var(--ui-space-3);
195
+ background-image: var(--ui-raised-highlight, none);
196
+ box-shadow: var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs)));
197
+ cursor: pointer;
198
+ transition:
199
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
200
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
201
+ color var(--ui-motion-fast) var(--ui-motion-ease),
202
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
203
+ transform var(--ui-motion-fast) var(--ui-motion-ease);
204
+ margin: 0;
205
+ }
206
+ @supports (text-box-trim: trim-both) {
207
+ [data-component~="ui-button"][data-v-c8f3a3fb] {
208
+ text-box-trim: trim-both;
209
+ text-box-edge: cap alphabetic;
210
+ }
211
+ }
212
+ [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-c8f3a3fb] {
213
+ min-block-size: var(--ui-control-size-sm, 2rem);
214
+ padding: var(--ui-space-1) var(--ui-space-2);
215
+ font-size: 0.875rem;
216
+ }
217
+ [data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-c8f3a3fb] {
218
+ min-block-size: var(--ui-control-size-lg, 3rem);
219
+ padding: var(--ui-space-3) var(--ui-space-4);
220
+ font-size: 1rem;
221
+ }
222
+ [data-component~="ui-button"][data-v-c8f3a3fb]:hover:enabled {
223
+ background: var(--ui-action-secondary-surface-hover, var(--ui-surface-muted));
224
+ border-color: var(--ui-control-border-hover, var(--ui-border-strong));
225
+ }
226
+ [data-component~="ui-button"][data-v-c8f3a3fb]:active:enabled {
227
+ background: var(--ui-surface-subtle);
228
+ }
229
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-c8f3a3fb] {
230
+ border-color: var(--ui-action-primary-surface, var(--ui-accent-solid));
231
+ background: var(--ui-action-primary-surface, var(--ui-accent-solid));
232
+ color: var(--ui-action-primary-text, var(--ui-text-on-accent));
233
+ box-shadow: var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs));
234
+ }
235
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-c8f3a3fb]:hover:enabled {
236
+ background: var(--ui-action-primary-surface-hover, var(--ui-accent-hover));
237
+ border-color: var(--ui-action-primary-surface-hover, var(--ui-accent-hover));
238
+ box-shadow: var(--ui-shadow-sm);
239
+ transform: translateY(-1px);
240
+ }
241
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-c8f3a3fb]:active:enabled {
242
+ background: var(--ui-action-primary-surface-active, var(--ui-accent-active));
243
+ border-color: var(--ui-action-primary-surface-active, var(--ui-accent-active));
244
+ box-shadow: none;
245
+ transform: translateY(0);
246
+ }
247
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-c8f3a3fb] {
248
+ border-color: var(--ui-danger-solid);
249
+ background: var(--ui-danger-solid);
250
+ color: var(--ui-text-on-accent);
251
+ box-shadow: var(--ui-button-danger-shadow, inset 0 1px rgb(255 255 255 / 0.14), var(--ui-shadow-xs));
252
+ }
253
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-c8f3a3fb]:hover:enabled {
254
+ background: var(--ui-danger-hover);
255
+ border-color: var(--ui-danger-hover);
256
+ box-shadow: var(--ui-shadow-sm);
257
+ transform: translateY(-1px);
258
+ }
259
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-c8f3a3fb]:active:enabled {
260
+ box-shadow: none;
261
+ transform: translateY(0);
262
+ }
263
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-c8f3a3fb] {
264
+ border-color: transparent;
265
+ background: transparent;
266
+ box-shadow: none;
267
+ }
268
+
269
+ /* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
270
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-c8f3a3fb]:hover:enabled {
271
+ background: var(--ui-button-ghost-hover, color-mix(in srgb, currentColor 8%, transparent));
272
+ border-color: transparent;
273
+ }
274
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-c8f3a3fb]:active:enabled {
275
+ background: var(--ui-button-ghost-active, color-mix(in srgb, currentColor 14%, transparent));
276
+ border-color: transparent;
277
+ }
278
+
279
+ /* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
280
+ [data-component~="ui-button"][data-v-c8f3a3fb]:focus-visible {
281
+ outline: none;
282
+ box-shadow:
283
+ var(--ui-button-shadow, var(--ui-raised, var(--ui-shadow-xs))),
284
+ var(--ui-focus-halo);
285
+ }
286
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-c8f3a3fb]:focus-visible {
287
+ box-shadow:
288
+ var(--ui-button-solid-shadow, inset 0 1px rgb(255 255 255 / 0.16), var(--ui-shadow-xs)),
289
+ var(--ui-focus-halo);
290
+ }
291
+ [data-component~="ui-button"][data-v-c8f3a3fb]:disabled {
292
+ opacity: 0.6;
293
+ cursor: not-allowed;
294
+ }
295
+ @media (pointer: coarse) {
296
+ [data-component~="ui-button"][data-v-c8f3a3fb] {
297
+ min-block-size: var(--ui-control-min-block-size, 2.75rem);
298
+ }
299
+ }
300
+
301
+ /* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
302
+ WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
303
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-c8f3a3fb] {
304
+ display: inline;
305
+ min-block-size: 0;
306
+ padding: 0;
307
+ border: 0;
308
+ border-radius: var(--ui-radius-sm, 4px);
309
+ background: none;
310
+ box-shadow: none;
311
+ font: inherit;
312
+ color: var(--ui-button-link-color, var(--ui-text-secondary));
313
+ text-decoration-line: underline;
314
+ text-decoration-thickness: 1px;
315
+ text-decoration-color: color-mix(in srgb, currentColor 40%, transparent);
316
+ text-underline-offset: 0.2em;
317
+ transition: color var(--ui-motion-fast) var(--ui-motion-ease), text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
318
+ }
319
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-c8f3a3fb]:hover:enabled {
320
+ color: var(--ui-button-link-hover-color, var(--ui-text-primary));
321
+ text-decoration-color: currentColor;
322
+ background: none;
323
+ transform: none;
324
+ }
325
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-c8f3a3fb]:active:enabled {
326
+ background: none;
327
+ transform: none;
328
+ }
329
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-c8f3a3fb]:focus-visible {
330
+ box-shadow: none;
331
+ /* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
332
+ outline: 2px solid var(--ui-focus-ring, currentColor);
333
+ outline-offset: 2px;
334
+ }
335
+
336
+ /* A component that sets its display still honours the hidden attribute on its root. */
337
+ [data-component~="ui-button"][hidden][data-v-c8f3a3fb] {
338
+ display: none;
339
+ }
340
+
341
+ [data-component~="ui-callout"][data-v-347d550e] {
342
+ --_callout-surface: var(--ui-info-soft);
343
+ --_callout-border: var(--ui-info-solid);
344
+ --_callout-icon: var(--ui-info-solid);
345
+
346
+ display: grid;
347
+ grid-template-columns: var(--ui-callout-icon-column, 1.125rem) minmax(0, 1fr);
348
+ gap: var(--ui-callout-gap, calc(var(--ui-space-2) * 0.75));
349
+ align-items: start;
350
+ max-width: 100%;
351
+ padding: var(--ui-callout-padding-block, var(--ui-space-2)) var(--ui-callout-padding-inline, var(--ui-space-3));
352
+ border: var(--ui-callout-border-width, 1px) solid color-mix(in srgb, var(--ui-callout-border, var(--_callout-border)) 35%, transparent);
353
+ border-inline-start: var(--ui-callout-leading-border-width, 4px) solid var(--ui-callout-border, var(--_callout-border));
354
+ border-radius: var(--ui-radius-2);
355
+ background: var(--ui-callout-surface, var(--_callout-surface));
356
+ color: var(--ui-callout-text, var(--ui-text-primary));
357
+ font-family: var(--ui-font-family-sans);
358
+ font-size: var(--ui-font-size-sm);
359
+ font-weight: var(--ui-font-normal);
360
+ line-height: var(--ui-line-height-md);
361
+ }
362
+
363
+ /* One line box tall, so the icon centres on the first line of text. */
364
+ .icon[data-v-347d550e] {
365
+ display: grid;
366
+ place-items: center;
367
+ inline-size: var(--ui-callout-icon-column, 1.125rem);
368
+ block-size: 1lh;
369
+ color: var(--ui-callout-icon, var(--_callout-icon));
370
+ }
371
+ .icon svg[data-v-347d550e] {
372
+ inline-size: var(--ui-callout-icon-size, 1.125rem);
373
+ block-size: var(--ui-callout-icon-size, 1.125rem);
374
+ }
375
+ .content[data-v-347d550e] {
376
+ min-inline-size: 0;
377
+ }
378
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=note"][data-v-347d550e] {
379
+ --_callout-surface: var(--ui-surface-muted);
380
+ --_callout-border: var(--ui-border-strong);
381
+ --_callout-icon: var(--ui-text-secondary);
382
+ }
383
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=warning"][data-v-347d550e] {
384
+ --_callout-surface: var(--ui-warning-soft);
385
+ --_callout-border: var(--ui-warning-solid);
386
+ --_callout-icon: var(--ui-warning-solid);
387
+ }
388
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=success"][data-v-347d550e] {
389
+ --_callout-surface: var(--ui-success-soft);
390
+ --_callout-border: var(--ui-success-solid);
391
+ --_callout-icon: var(--ui-success-solid);
392
+ }
393
+ [data-component~="ui-callout"][data-ui-callout-state~="tone=danger"][data-v-347d550e] {
394
+ --_callout-surface: var(--ui-danger-soft);
395
+ --_callout-border: var(--ui-danger-solid);
396
+ --_callout-icon: var(--ui-danger-solid);
397
+ }
398
+
399
+ /* A component that sets its display still honours the hidden attribute on its root. */
400
+ [data-component~="ui-callout"][hidden][data-v-347d550e] {
401
+ display: none;
402
+ }
403
+
404
+ [data-component~="ui-checkbox"][data-v-d4d97fc0] {
405
+ display: inline-flex;
406
+ align-items: flex-start;
407
+ gap: var(--ui-checkbox-gap, var(--ui-space-2));
408
+ max-inline-size: 100%;
409
+ color: var(--ui-text-primary);
410
+ cursor: pointer;
411
+ }
412
+ .label[data-v-d4d97fc0] {
413
+ min-inline-size: 0;
414
+ line-height: var(--ui-line-height-md);
415
+ }
416
+ input[data-v-d4d97fc0] {
417
+ appearance: none;
418
+ -webkit-appearance: none;
419
+ position: relative;
420
+ flex: 0 0 auto;
421
+ inline-size: var(--ui-checkbox-size, 1.125rem);
422
+ block-size: var(--ui-checkbox-size, 1.125rem);
423
+ margin: 0.125em 0 0;
424
+ border: 1px solid var(--ui-control-border-hover, var(--ui-border-strong));
425
+ border-radius: var(--ui-radius-1);
426
+ background: var(--ui-control-surface, var(--ui-surface-default));
427
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--ui-text-primary) 8%, transparent);
428
+ cursor: pointer;
429
+ transition:
430
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
431
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
432
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
433
+ }
434
+ input[data-v-d4d97fc0]::after {
435
+ content: "";
436
+ position: absolute;
437
+ opacity: 0;
438
+ }
439
+ input[data-v-d4d97fc0]:checked,
440
+ input[data-v-d4d97fc0]:indeterminate {
441
+ border-color: var(--ui-accent-solid);
442
+ background: var(--ui-accent-solid);
443
+ box-shadow: inset 0 1px 2px color-mix(in srgb, #000 16%, transparent);
444
+ }
445
+
446
+ /* Centre the tick's box, then lift it: a rotated L's ink sits ~0.11rem below its box centre. */
447
+ input[data-v-d4d97fc0]:checked::after {
448
+ inset: 0;
449
+ margin: auto;
450
+ inline-size: 0.32rem;
451
+ block-size: 0.58rem;
452
+ border: solid var(--ui-text-on-accent);
453
+ border-width: 0 0.125rem 0.125rem 0;
454
+ opacity: 1;
455
+ transform: translateY(-0.11rem) rotate(45deg);
456
+ }
457
+ input[data-v-d4d97fc0]:indeterminate::after {
458
+ inset: 50% 0.23rem auto;
459
+ block-size: 0.125rem;
460
+ border-radius: var(--ui-radius-round);
461
+ background: var(--ui-text-on-accent);
462
+ opacity: 1;
463
+ transform: translateY(-50%);
464
+ }
465
+ input[data-v-d4d97fc0]:hover:enabled {
466
+ border-color: var(--ui-accent-solid);
467
+ }
468
+ input[data-v-d4d97fc0]:focus-visible {
469
+ outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
470
+ outline-offset: 2px;
471
+ }
472
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"][data-v-d4d97fc0] {
473
+ color: var(--ui-text-muted);
474
+ cursor: not-allowed;
475
+ }
476
+ [data-component~="ui-checkbox"][data-ui-checkbox-state~="disabled"] input[data-v-d4d97fc0] {
477
+ border-color: var(--ui-border-default);
478
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
479
+ cursor: not-allowed;
480
+ }
481
+
482
+ /* A component that sets its display still honours the hidden attribute on its root. */
483
+ [data-component~="ui-checkbox"][hidden][data-v-d4d97fc0] {
484
+ display: none;
485
+ }
486
+
487
+ [data-component~="ui-cluster"][data-v-f41ac461] {
488
+ --_layout-gap: var(--ui-space-3, 0.75rem);
489
+ display: flex;
490
+ flex-wrap: wrap;
491
+ align-items: center;
492
+ gap: var(--ui-layout-gap, var(--_layout-gap));
493
+ min-inline-size: 0;
494
+ max-inline-size: 100%;
495
+ margin: 0;
496
+ }
497
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xs"][data-v-f41ac461] {
498
+ --_layout-gap: var(--ui-space-2, 0.5rem);
499
+ }
500
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=s"][data-v-f41ac461] {
501
+ --_layout-gap: var(--ui-space-3, 0.75rem);
502
+ }
503
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=m"][data-v-f41ac461] {
504
+ --_layout-gap: var(--ui-space-4, 1rem);
505
+ }
506
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=l"][data-v-f41ac461] {
507
+ --_layout-gap: var(--ui-space-5, 1.5rem);
508
+ }
509
+ [data-component~="ui-cluster"][data-ui-cluster-state~="gap=xl"][data-v-f41ac461] {
510
+ --_layout-gap: var(--ui-space-6, 2rem);
511
+ }
512
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=start"][data-v-f41ac461] {
513
+ align-items: flex-start;
514
+ }
515
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=end"][data-v-f41ac461] {
516
+ align-items: flex-end;
517
+ }
518
+ [data-component~="ui-cluster"][data-ui-cluster-state~="align=stretch"][data-v-f41ac461] {
519
+ align-items: stretch;
520
+ }
521
+
522
+ /* A component that sets its display still honours the hidden attribute on its root. */
523
+ [data-component~="ui-cluster"][hidden][data-v-f41ac461] {
524
+ display: none;
525
+ }
526
+
527
+ [data-component~="ui-tooltip"][data-v-df5715b2] {
528
+ position: fixed;
529
+ inset: auto;
530
+ margin: 0;
531
+ display: inline-block;
532
+ box-sizing: border-box;
533
+ padding: 0;
534
+ border: 0;
535
+ outline: 0;
536
+ border-radius: 0;
537
+ background: transparent;
538
+ /* The UA popover default (overflow: auto) would clip the arrow. */
539
+ overflow: visible;
540
+ opacity: 0;
541
+ transform: translateY(4px);
542
+ transition:
543
+ opacity var(--ui-motion-fast) var(--ui-motion-ease),
544
+ transform var(--ui-motion-fast) var(--ui-motion-ease),
545
+ display var(--ui-motion-fast) allow-discrete,
546
+ overlay var(--ui-motion-fast) allow-discrete;
547
+ }
548
+ .surface[data-v-df5715b2] {
549
+ --_tooltip-line: var(--ui-tooltip-border, var(--ui-border-default));
550
+ position: relative;
551
+ box-sizing: border-box;
552
+ max-inline-size: var(--ui-tooltip-max-inline-size, 18rem);
553
+ border: 1px solid var(--_tooltip-line);
554
+ border-radius: var(--ui-tooltip-radius, var(--ui-radius-1));
555
+ background: var(--ui-tooltip-surface, var(--ui-surface-elevated));
556
+ color: var(--ui-tooltip-text, var(--ui-text-primary));
557
+ padding: var(--ui-space-1) var(--ui-space-2);
558
+ font-family: var(--ui-font-family-sans);
559
+ font-size: var(--ui-font-size-sm);
560
+ line-height: var(--ui-line-height-tight);
561
+ box-shadow: var(--ui-tooltip-shadow, var(--ui-elevation-tooltip, var(--ui-shadow-md)));
562
+ }
563
+ [data-component~="ui-tooltip"][data-ui-tooltip-state~="inverse"] .surface[data-v-df5715b2] {
564
+ --_tooltip-line: var(--ui-tooltip-inverse-surface, var(--ui-text-primary));
565
+ background: var(--ui-tooltip-inverse-surface, var(--ui-text-primary));
566
+ color: var(--ui-tooltip-inverse-text, var(--ui-surface-default));
567
+ }
568
+
569
+ /* A rotated square shares the surface fill and draws the two outward border edges. Its centre sits on
570
+ * the surface border line, so the fill covers that stretch of border and the outline runs unbroken. */
571
+ .surface[data-v-df5715b2]::after {
572
+ content: "";
573
+ position: absolute;
574
+ z-index: 1;
575
+ inset-inline-start: var(--ui-space-3);
576
+ inset-block-end: calc(var(--ui-tooltip-arrow-size, 0.5rem) / -2 - 0.5px);
577
+ inline-size: var(--ui-tooltip-arrow-size, 0.5rem);
578
+ block-size: var(--ui-tooltip-arrow-size, 0.5rem);
579
+ box-sizing: border-box;
580
+ background: inherit;
581
+ border: 0 solid var(--_tooltip-line);
582
+ border-inline-end-width: 1px;
583
+ border-block-end-width: 1px;
584
+ border-end-end-radius: 1px;
585
+ transform: rotate(45deg);
586
+ }
587
+ :is([data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-start"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-end"]) .surface[data-v-df5715b2]::after {
588
+ inset-block-start: calc(var(--ui-tooltip-arrow-size, 0.5rem) / -2 - 0.5px);
589
+ inset-block-end: auto;
590
+ border-inline-end-width: 0;
591
+ border-block-end-width: 0;
592
+ border-inline-start-width: 1px;
593
+ border-block-start-width: 1px;
594
+ border-end-end-radius: 0;
595
+ border-start-start-radius: 1px;
596
+ }
597
+ :is([data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=top-end"], [data-component~="ui-tooltip"][data-ui-tooltip-state~="placement=bottom-end"]) .surface[data-v-df5715b2]::after {
598
+ inset-inline-start: auto;
599
+ inset-inline-end: var(--ui-space-3);
600
+ }
601
+ [data-component~="ui-tooltip"][data-v-df5715b2]:popover-open {
602
+ opacity: 1;
603
+ transform: translateY(0);
604
+ }
605
+ @starting-style {
606
+ [data-component~="ui-tooltip"][data-v-df5715b2]:popover-open {
607
+ opacity: 0;
608
+ transform: translateY(4px);
609
+ }
610
+ }
611
+ [data-component~="ui-tooltip"][hidden][data-v-df5715b2] {
612
+ display: none;
613
+ }
614
+ @media (prefers-reduced-motion: reduce) {
615
+ [data-component~="ui-tooltip"][data-v-df5715b2] {
616
+ transition: none;
617
+ }
618
+ }
619
+
620
+ [data-component~="ui-combobox"][data-v-540c961c] {
621
+ display: grid;
622
+ gap: var(--ui-space-1);
623
+ min-inline-size: 0;
624
+ color: var(--ui-text-primary);
625
+ font: inherit;
626
+ }
627
+ label[data-v-540c961c] {
628
+ color: var(--ui-field-label-color, var(--ui-text-primary));
629
+ font-size: var(--ui-field-label-size, 0.875rem);
630
+ font-weight: var(--ui-field-label-weight, 500);
631
+ }
632
+ .field[data-v-540c961c] {
633
+ display: flex;
634
+ min-inline-size: 0;
635
+ border: 1px solid var(--ui-control-border, var(--ui-border-default));
636
+ border-radius: var(--ui-radius-2);
637
+ background: var(--ui-control-surface, var(--ui-surface-default));
638
+ box-shadow: var(--ui-control-inset);
639
+ transition: border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
640
+ }
641
+ .field[data-v-540c961c]:focus-within {
642
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
643
+ box-shadow:
644
+ var(--ui-control-inset),
645
+ var(--ui-control-focus-halo-shadow);
646
+ }
647
+ input[data-v-540c961c]::selection {
648
+ background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
649
+ color: inherit;
650
+ }
651
+ input[data-v-540c961c] {
652
+ appearance: none;
653
+ width: 100%;
654
+ min-inline-size: 0;
655
+ min-block-size: calc(var(--ui-control-size-md, 2.5rem) - 2px);
656
+ box-sizing: border-box;
657
+ border: 0;
658
+ border-radius: inherit;
659
+ background: transparent;
660
+ color: inherit;
661
+ font: inherit;
662
+ line-height: var(--ui-line-height-md);
663
+ padding: var(--ui-space-2) var(--ui-space-3);
664
+ margin: 0;
665
+ outline: none;
666
+ }
667
+ [data-component~="ui-combobox"][data-ui-combobox-state~="size=sm"] input[data-v-540c961c] {
668
+ min-block-size: calc(var(--ui-field-compact-size, var(--ui-control-size-sm, 2rem)) - 2px);
669
+ padding: var(--ui-space-1) var(--ui-space-2);
670
+ }
671
+ button[data-v-540c961c] {
672
+ appearance: none;
673
+ display: inline-grid;
674
+ place-items: center;
675
+ align-self: stretch;
676
+ border: 0;
677
+ border-radius: var(--ui-radius-2);
678
+ background: transparent;
679
+ color: var(--ui-field-affordance-color, var(--ui-text-secondary));
680
+ font: inherit;
681
+ font-weight: var(--ui-field-affordance-weight, 400);
682
+ min-inline-size: 2rem;
683
+ padding: 0 var(--ui-space-1);
684
+ cursor: pointer;
685
+ }
686
+ .affordance-icon[data-v-540c961c] {
687
+ display: block;
688
+ inline-size: var(--ui-icon-size-sm, 1rem);
689
+ block-size: var(--ui-icon-size-sm, 1rem);
690
+ }
691
+ button[data-v-540c961c]:hover:enabled {
692
+ background: var(--ui-surface-muted);
693
+ color: var(--ui-text-primary);
694
+ }
695
+ button[data-v-540c961c]:focus-visible {
696
+ outline: none;
697
+ background: var(--ui-surface-muted);
698
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
699
+ }
700
+ input[data-v-540c961c]:disabled, button[data-v-540c961c]:disabled {
701
+ color: var(--ui-text-muted);
702
+ cursor: not-allowed;
703
+ }
704
+ .field[data-v-540c961c]:has(input:disabled) {
705
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
706
+ }
707
+ [data-component~="ui-combobox"][data-ui-combobox-state~="validationStatus=error"] .field[data-v-540c961c] {
708
+ border-color: var(--ui-danger-solid, var(--ui-accent-active));
709
+ }
710
+ .popup[data-v-540c961c] {
711
+ box-sizing: border-box;
712
+ min-inline-size: 12rem;
713
+ max-inline-size: calc(100vw - 1rem);
714
+ max-block-size: var(--ui-combobox-max-block-size, 18rem);
715
+ overflow: auto;
716
+ margin: 0;
717
+ padding: var(--ui-space-1);
718
+ border: 1px solid var(--ui-border-default);
719
+ border-radius: var(--ui-radius-2);
720
+ background: var(--ui-surface-elevated);
721
+ color: var(--ui-text-primary);
722
+ box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
723
+ }
724
+ [hidden][data-v-540c961c] {
725
+ display: none;
726
+ }
727
+ .option[data-v-540c961c] {
728
+ padding: var(--ui-space-2) var(--ui-space-3);
729
+ border-radius: var(--ui-radius-1);
730
+ cursor: pointer;
731
+ overflow-wrap: anywhere;
732
+ }
733
+ .option[data-v-540c961c]:hover, .option.active[data-v-540c961c] {
734
+ background: var(--ui-surface-muted);
735
+ outline: 1px solid var(--ui-focus-ring, currentColor);
736
+ outline-offset: -1px;
737
+ }
738
+ .option[aria-disabled="true"][data-v-540c961c] {
739
+ color: var(--ui-text-muted);
740
+ cursor: not-allowed;
741
+ }
742
+ .primary[data-v-540c961c] {
743
+ display: block;
744
+ color: var(--ui-option-primary-color, var(--ui-text-primary));
745
+ font-weight: var(--ui-option-primary-weight, 500);
746
+ }
747
+ .message[data-v-540c961c], .group[data-v-540c961c] {
748
+ color: var(--ui-field-message-color, var(--ui-text-secondary));
749
+ font-weight: var(--ui-field-message-weight, 400);
750
+ font-size: var(--ui-font-size-sm);
751
+ line-height: var(--ui-line-height-md);
752
+ overflow-wrap: anywhere;
753
+ }
754
+ .group[data-v-540c961c], .popup .message[data-v-540c961c] {
755
+ padding: var(--ui-space-2) var(--ui-space-3);
756
+ }
757
+ .sr-only[data-v-540c961c] {
758
+ position: absolute;
759
+ inline-size: 1px;
760
+ block-size: 1px;
761
+ overflow: hidden;
762
+ clip-path: inset(50%);
763
+ white-space: nowrap;
764
+ }
765
+ @media (pointer: coarse) {
766
+ button[data-v-540c961c] {
767
+ min-inline-size: 2.75rem;
768
+ min-block-size: 2.75rem;
769
+ }
770
+ }
771
+ @media (forced-colors: active) {
772
+ .field[data-v-540c961c], .popup[data-v-540c961c] {
773
+ border-color: CanvasText;
774
+ }
775
+ .option.active[data-v-540c961c] {
776
+ outline-color: Highlight;
777
+ }
778
+ }
779
+
780
+ /* Multiple mode: chips wrap before the cursor on one flexible field line. */
781
+ [data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] .field[data-v-540c961c] {
782
+ flex-wrap: wrap;
783
+ align-items: center;
784
+ gap: var(--ui-space-1);
785
+ min-block-size: var(--ui-multi-combobox-min-block-size, 2.5rem);
786
+ padding: var(--ui-space-1);
787
+ }
788
+ [data-component~="ui-combobox"][data-ui-combobox-state~="multiple"] input[data-v-540c961c] {
789
+ flex: 1 0 var(--ui-multi-combobox-input-min-inline-size, 5rem);
790
+ width: auto;
791
+ min-block-size: 1.75rem;
792
+ padding: var(--ui-space-0-5) var(--ui-space-1);
793
+ }
794
+ .item[data-v-540c961c] {
795
+ appearance: none;
796
+ display: inline-flex;
797
+ min-inline-size: 0;
798
+ max-inline-size: min(100%, var(--ui-multi-combobox-item-max-inline-size, 12rem));
799
+ overflow: hidden;
800
+ padding: 0;
801
+ border: 0;
802
+ border-radius: var(--ui-radius-1);
803
+ background: transparent;
804
+ color: inherit;
805
+ font: inherit;
806
+ cursor: default;
807
+ }
808
+ .item[data-v-540c961c]:focus-visible {
809
+ outline: 2px solid var(--ui-focus-ring, currentColor);
810
+ outline-offset: 1px;
811
+ }
812
+ .item[data-v-540c961c]:disabled {
813
+ opacity: 0.6;
814
+ }
815
+
816
+ /* A component that sets its display still honours the hidden attribute on its root. */
817
+ [data-component~="ui-combobox"][hidden][data-v-540c961c] {
818
+ display: none;
819
+ }
820
+
821
+ [data-component~="ui-container"][data-v-4a497418] {
822
+ --_container-measure: 65ch;
823
+ --_container-gutters: var(--ui-space-4, 1rem);
824
+ display: block;
825
+ inline-size: 100%;
826
+ max-inline-size: var(--ui-container-measure, var(--_container-measure));
827
+ margin-inline: auto;
828
+ padding-inline: var(--ui-container-gutters, var(--_container-gutters));
829
+ }
830
+ [data-component~="ui-container"][data-ui-container-state~="measure=narrow"][data-v-4a497418] {
831
+ --_container-measure: 45ch;
832
+ }
833
+ [data-component~="ui-container"][data-ui-container-state~="measure=wide"][data-v-4a497418] {
834
+ --_container-measure: 80ch;
835
+ }
836
+ [data-component~="ui-container"][data-ui-container-state~="gutters=s"][data-v-4a497418] {
837
+ --_container-gutters: var(--ui-space-3, 0.75rem);
838
+ }
839
+ [data-component~="ui-container"][data-ui-container-state~="gutters=m"][data-v-4a497418] {
840
+ --_container-gutters: var(--ui-space-4, 1rem);
841
+ }
842
+ [data-component~="ui-container"][data-ui-container-state~="gutters=l"][data-v-4a497418] {
843
+ --_container-gutters: var(--ui-space-5, 1.5rem);
844
+ }
845
+
846
+ /* A component that sets its display still honours the hidden attribute on its root. */
847
+ [data-component~="ui-container"][hidden][data-v-4a497418] {
848
+ display: none;
849
+ }
850
+
851
+ [data-component~="ui-context-menu"][data-v-ef76cc50] {
852
+ display: contents;
853
+ }
854
+ .menu[data-v-ef76cc50] {
855
+ position: fixed;
856
+ inset: auto;
857
+ margin: 0;
858
+ display: flex;
859
+ flex-direction: column;
860
+ box-sizing: border-box;
861
+ padding: var(--ui-space-1);
862
+ background: var(--ui-surface-elevated);
863
+ border: 1px solid var(--ui-border-default);
864
+ border-radius: var(--ui-radius-3);
865
+ box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
866
+ outline: 0;
867
+ overflow: auto;
868
+ z-index: var(--ui-z-overlay, 1000);
869
+ min-width: 12rem;
870
+ opacity: 0;
871
+ transform: translateY(-4px) scale(0.99);
872
+ transition:
873
+ opacity var(--ui-motion-fast) var(--ui-motion-ease),
874
+ transform var(--ui-motion-fast) var(--ui-motion-ease),
875
+ display var(--ui-motion-fast) allow-discrete,
876
+ overlay var(--ui-motion-fast) allow-discrete;
877
+ }
878
+ .menu[data-v-ef76cc50]:popover-open {
879
+ opacity: 1;
880
+ transform: translateY(0) scale(1);
881
+ }
882
+ @starting-style {
883
+ .menu[data-v-ef76cc50]:popover-open {
884
+ opacity: 0;
885
+ transform: translateY(-4px) scale(0.99);
886
+ }
887
+ }
888
+ .menu[hidden][data-v-ef76cc50],
889
+ .menu[popover][data-v-ef76cc50]:not(:popover-open) {
890
+ display: none;
891
+ }
892
+ @media (prefers-reduced-motion: reduce) {
893
+ .menu[data-v-ef76cc50] {
894
+ transition: none;
895
+ }
896
+ }
897
+
898
+ /* A component that sets its display still honours the hidden attribute on its root. */
899
+ [data-component~="ui-context-menu"][hidden][data-v-ef76cc50] {
900
+ display: none;
901
+ }
902
+
903
+ [data-component~="ui-dialog"][data-v-901875ac] {
904
+ position: fixed;
905
+ inset: 0;
906
+ box-sizing: border-box;
907
+ inline-size: min(
908
+ calc(100% - var(--ui-dialog-viewport-gap, var(--ui-space-4, 1rem)) * 2),
909
+ var(--ui-dialog-max-width, 440px)
910
+ );
911
+ max-inline-size: none;
912
+ max-block-size: calc(100dvh - var(--ui-dialog-viewport-gap, var(--ui-space-4, 1rem)) * 2);
913
+ margin: auto;
914
+ padding: 0;
915
+ overflow: hidden;
916
+ flex-direction: column;
917
+ background: var(--ui-surface-elevated);
918
+ border: 1px solid var(--ui-border-default);
919
+ border-radius: var(--ui-radius-dialog);
920
+ box-shadow: var(--ui-elevation-dialog, var(--ui-shadow-xl));
921
+ visibility: hidden;
922
+ pointer-events: none;
923
+ opacity: 0;
924
+ transform: scale(0.96);
925
+ transition:
926
+ opacity var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease),
927
+ transform var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease),
928
+ visibility var(--ui-dialog-duration, var(--ui-motion-base)),
929
+ display var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
930
+ overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
931
+ }
932
+ [data-component~="ui-dialog"][open][data-v-901875ac] {
933
+ display: flex;
934
+ visibility: visible;
935
+ pointer-events: auto;
936
+ opacity: 1;
937
+ transform: scale(1);
938
+ animation: ui-dialog-enter-901875ac var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
939
+ }
940
+
941
+ /* Header and actions stay pinned; only the body scrolls when content is long. */
942
+ header[data-v-901875ac] {
943
+ display: flex;
944
+ align-items: center;
945
+ gap: var(--ui-space-3);
946
+ flex: none;
947
+ padding: var(--ui-space-3) var(--ui-space-3) var(--ui-space-3) var(--ui-space-5);
948
+ border-block-end: 1px solid var(--ui-border-default);
949
+ }
950
+
951
+ /* :host-qualified so page heading rules that reach in cannot outrank the dialog chrome. */
952
+ [data-component~="ui-dialog"] .title[data-v-901875ac] {
953
+ flex: 1;
954
+ min-inline-size: 0;
955
+ margin: 0;
956
+ padding: 0;
957
+ border: 0;
958
+ color: var(--ui-text-primary);
959
+ letter-spacing: normal;
960
+ font-size: var(--ui-font-size-lg, 1.125rem);
961
+ font-weight: var(--ui-font-semibold, 600);
962
+ line-height: var(--ui-line-height-tight);
963
+ }
964
+ .close[data-v-901875ac] {
965
+ display: inline-grid;
966
+ place-items: center;
967
+ flex: none;
968
+ margin-inline-start: auto;
969
+ inline-size: var(--ui-control-size-sm, 2rem);
970
+ block-size: var(--ui-control-size-sm, 2rem);
971
+ padding: 0;
972
+ border: 0;
973
+ border-radius: var(--ui-radius-round, 999px);
974
+ background: transparent;
975
+ color: var(--ui-text-secondary);
976
+ cursor: pointer;
977
+ transition: background-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease);
978
+ }
979
+
980
+ /* A CSS-drawn X. */
981
+ .close[data-v-901875ac]::before,
982
+ .close[data-v-901875ac]::after {
983
+ content: "";
984
+ grid-area: 1 / 1;
985
+ inline-size: 0.875rem;
986
+ block-size: 1.5px;
987
+ border-radius: 1px;
988
+ background: currentColor;
989
+ transform: rotate(45deg);
990
+ }
991
+ .close[data-v-901875ac]::after {
992
+ transform: rotate(-45deg);
993
+ }
994
+ .close[data-v-901875ac]:hover {
995
+ background: var(--ui-surface-muted);
996
+ color: var(--ui-text-primary);
997
+ }
998
+ .close[data-v-901875ac]:focus-visible {
999
+ outline: 2px solid var(--ui-focus-ring, currentColor);
1000
+ outline-offset: 2px;
1001
+ }
1002
+ .body[data-v-901875ac] {
1003
+ flex: 1 1 auto;
1004
+ min-block-size: 0;
1005
+ overflow: auto;
1006
+ overscroll-behavior: contain;
1007
+ padding: var(--ui-space-5);
1008
+ }
1009
+ footer[data-v-901875ac] {
1010
+ display: flex;
1011
+ flex: none;
1012
+ flex-wrap: wrap;
1013
+ justify-content: flex-end;
1014
+ gap: var(--ui-space-2);
1015
+ padding: var(--ui-space-3) var(--ui-space-5);
1016
+ border-block-start: 1px solid var(--ui-border-default);
1017
+ }
1018
+ footer[data-v-901875ac]:empty {
1019
+ display: none;
1020
+ }
1021
+ @keyframes ui-dialog-enter-901875ac {
1022
+ from {
1023
+ opacity: 0;
1024
+ transform: scale(0.96);
1025
+ }
1026
+ }
1027
+ [data-component~="ui-dialog"][data-v-901875ac]::backdrop {
1028
+ background-color: transparent;
1029
+ transition:
1030
+ background-color var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease),
1031
+ display var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete,
1032
+ overlay var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease) allow-discrete;
1033
+ }
1034
+ [data-component~="ui-dialog"][open][data-v-901875ac]::backdrop {
1035
+ background-color: var(--ui-overlay-backdrop);
1036
+ animation: ui-dialog-backdrop-enter-901875ac var(--ui-dialog-duration, var(--ui-motion-base)) var(--ui-motion-ease);
1037
+ }
1038
+ @keyframes ui-dialog-backdrop-enter-901875ac {
1039
+ from {
1040
+ background-color: transparent;
1041
+ }
1042
+ }
1043
+
1044
+ /* An accordion row, not a field: no enclosing box, just a divider, so it never reads as a
1045
+ * select or combobox. Stacked disclosures share their dividers. */
1046
+ [data-component~="ui-disclosure"][data-v-ab5e82b4] {
1047
+ display: block;
1048
+ inline-size: 100%;
1049
+ overflow: clip;
1050
+ border-block-end: 1px solid var(--ui-border-default);
1051
+ color: var(--ui-text-primary);
1052
+ }
1053
+ .trigger[data-v-ab5e82b4] {
1054
+ display: grid;
1055
+ grid-template-columns: minmax(0, 1fr) auto;
1056
+ gap: var(--ui-space-3);
1057
+ align-items: center;
1058
+ inline-size: 100%;
1059
+ min-block-size: 2.5rem;
1060
+ padding: var(--ui-space-2) var(--ui-space-3);
1061
+ border: 0;
1062
+ background: transparent;
1063
+ color: inherit;
1064
+ font: inherit;
1065
+ font-weight: var(--ui-font-semibold, 600);
1066
+ text-align: start;
1067
+ cursor: pointer;
1068
+ border-radius: var(--ui-radius-1);
1069
+ transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
1070
+ }
1071
+ .trigger[data-v-ab5e82b4]:hover:not(:disabled) {
1072
+ background: var(--ui-surface-muted);
1073
+ }
1074
+ .trigger[data-v-ab5e82b4]:focus-visible {
1075
+ outline: none;
1076
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
1077
+ }
1078
+ .trigger[data-v-ab5e82b4]:disabled {
1079
+ color: var(--ui-text-muted);
1080
+ cursor: not-allowed;
1081
+ }
1082
+ .chevron[data-v-ab5e82b4] {
1083
+ inline-size: 0.5rem;
1084
+ block-size: 0.5rem;
1085
+ border-inline-end: 2px solid currentColor;
1086
+ border-block-end: 2px solid currentColor;
1087
+ transform: rotate(45deg) translate(-1px, -1px);
1088
+ transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
1089
+ }
1090
+ .panel[data-v-ab5e82b4] {
1091
+ display: grid;
1092
+ grid-template-rows: 0fr;
1093
+ transition: grid-template-rows var(--ui-motion-fast) var(--ui-motion-ease-out, var(--ui-motion-ease));
1094
+ }
1095
+ .panel-inner[data-v-ab5e82b4] {
1096
+ min-block-size: 0;
1097
+ overflow: hidden;
1098
+ padding-inline: var(--ui-space-3);
1099
+ }
1100
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="internalOpen"] .panel[data-v-ab5e82b4] {
1101
+ grid-template-rows: 1fr;
1102
+ }
1103
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="internalOpen"] .panel-inner[data-v-ab5e82b4] {
1104
+ padding-block: 0 var(--ui-space-3);
1105
+ }
1106
+ [data-component~="ui-disclosure"][data-ui-disclosure-state~="internalOpen"] .chevron[data-v-ab5e82b4] {
1107
+ transform: rotate(225deg) translate(-1px, -1px);
1108
+ }
1109
+ @media (prefers-reduced-motion: reduce) {
1110
+ .panel[data-v-ab5e82b4],
1111
+ .chevron[data-v-ab5e82b4] {
1112
+ transition: none;
1113
+ }
1114
+ }
1115
+
1116
+ /* A component that sets its display still honours the hidden attribute on its root. */
1117
+ [data-component~="ui-disclosure"][hidden][data-v-ab5e82b4] {
1118
+ display: none;
1119
+ }
1120
+
1121
+ [data-component~="ui-editable"][data-v-d8c654a7] {
1122
+ display: flex;
1123
+ flex-wrap: wrap;
1124
+ align-items: center;
1125
+ gap: var(--ui-space-2);
1126
+ min-inline-size: 0;
1127
+ color: var(--ui-text-primary);
1128
+ }
1129
+
1130
+ /* The value and the input share one grid cell with identical box metrics, so switching between
1131
+ * display and edit never changes the control's size or moves the text. */
1132
+ .field[data-v-d8c654a7] {
1133
+ display: inline-grid;
1134
+ min-inline-size: 8rem;
1135
+ max-inline-size: 100%;
1136
+ }
1137
+ .preview[data-v-d8c654a7],
1138
+ .input[data-v-d8c654a7] {
1139
+ grid-area: 1 / 1;
1140
+ box-sizing: border-box;
1141
+ min-block-size: var(--ui-control-size-sm, 2rem);
1142
+ margin: 0;
1143
+ padding: var(--ui-space-1) var(--ui-space-2);
1144
+ border: 1px solid transparent;
1145
+ border-radius: var(--ui-radius-2);
1146
+ font: inherit;
1147
+ line-height: var(--ui-line-height-md);
1148
+ color: inherit;
1149
+ transition:
1150
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
1151
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
1152
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
1153
+ }
1154
+ .preview[data-v-d8c654a7] {
1155
+ display: inline-flex;
1156
+ gap: var(--ui-space-2);
1157
+ align-items: center;
1158
+ background: transparent;
1159
+ text-align: start;
1160
+ cursor: pointer;
1161
+ }
1162
+ .preview[data-v-d8c654a7]:hover:not(:disabled) {
1163
+ background: var(--ui-surface-muted);
1164
+ }
1165
+ .preview[data-v-d8c654a7]:focus-visible {
1166
+ outline: none;
1167
+ box-shadow: var(--ui-focus-halo);
1168
+ }
1169
+ .hint[data-v-d8c654a7] {
1170
+ color: var(--ui-text-secondary);
1171
+ font-size: var(--ui-font-size-sm);
1172
+ }
1173
+
1174
+ /* Contained so it takes the value's width instead of its own default input width. */
1175
+ .input[data-v-d8c654a7] {
1176
+ contain: inline-size;
1177
+ inline-size: 100%;
1178
+ min-inline-size: 0;
1179
+ visibility: hidden;
1180
+ background: var(--ui-control-surface, var(--ui-surface-elevated));
1181
+ }
1182
+ .input[data-v-d8c654a7]:focus {
1183
+ outline: none;
1184
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
1185
+ box-shadow:
1186
+ var(--ui-control-inset),
1187
+ var(--ui-control-focus-halo-shadow);
1188
+ }
1189
+ .input[data-v-d8c654a7]::selection {
1190
+ background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
1191
+ }
1192
+ [data-component~="ui-editable"][data-ui-editable-state~="internalEdit"] .preview[data-v-d8c654a7] {
1193
+ visibility: hidden;
1194
+ }
1195
+ [data-component~="ui-editable"][data-ui-editable-state~="internalEdit"] .input[data-v-d8c654a7] {
1196
+ visibility: visible;
1197
+ }
1198
+ .actions[data-v-d8c654a7] {
1199
+ display: none;
1200
+ gap: var(--ui-space-1);
1201
+ }
1202
+ [data-component~="ui-editable"][data-ui-editable-state~="internalEdit"] .actions[data-v-d8c654a7] {
1203
+ display: inline-flex;
1204
+ }
1205
+ .actions button[data-v-d8c654a7] {
1206
+ min-block-size: var(--ui-control-size-sm, 2rem);
1207
+ padding: 0 var(--ui-space-3);
1208
+ border: 1px solid var(--ui-border-strong);
1209
+ border-radius: var(--ui-radius-2);
1210
+ background: var(--ui-surface-elevated);
1211
+ background-image: var(--ui-raised-highlight, none);
1212
+ box-shadow: var(--ui-raised, none);
1213
+ color: inherit;
1214
+ font: inherit;
1215
+ font-size: var(--ui-font-size-sm);
1216
+ cursor: pointer;
1217
+ }
1218
+ .actions .save[data-v-d8c654a7] {
1219
+ border-color: var(--ui-accent-solid);
1220
+ background: var(--ui-accent-solid);
1221
+ color: var(--ui-text-on-accent);
1222
+ }
1223
+ .actions button[data-v-d8c654a7]:focus-visible {
1224
+ outline: none;
1225
+ box-shadow: var(--ui-focus-halo);
1226
+ }
1227
+ [data-component~="ui-editable"][data-ui-editable-state~="disabled"] .preview[data-v-d8c654a7] {
1228
+ color: var(--ui-text-muted);
1229
+ cursor: not-allowed;
1230
+ }
1231
+
1232
+ /* A component that sets its display still honours the hidden attribute on its root. */
1233
+ [data-component~="ui-editable"][hidden][data-v-d8c654a7] {
1234
+ display: none;
1235
+ }
1236
+
1237
+ [data-component~="ui-editor-insert-table-grid"][data-v-0d980738] {
1238
+ padding: var(--ui-space-3, 12px);
1239
+ background: var(--ui-surface, #fff);
1240
+ border: 1px solid var(--ui-border, #e5e7eb);
1241
+ border-radius: var(--ui-radius-md, 6px);
1242
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
1243
+ }
1244
+ .hint[data-v-0d980738] {
1245
+ margin: 0 0 var(--ui-space-2, 8px);
1246
+ font-size: var(--ui-text-sm, 0.875rem);
1247
+ color: var(--ui-text-muted, #6b7280);
1248
+ }
1249
+ .grid[data-v-0d980738] {
1250
+ display: grid;
1251
+ grid-template-columns: repeat(var(--ui-editor-table-grid-cols, 8), 1.25rem);
1252
+ grid-template-rows: repeat(var(--ui-editor-table-grid-rows, 8), 1.25rem);
1253
+ gap: 2px;
1254
+ margin-bottom: var(--ui-space-2, 8px);
1255
+ }
1256
+ .cell[data-v-0d980738] {
1257
+ width: 1.25rem;
1258
+ height: 1.25rem;
1259
+ padding: 0;
1260
+ border: 1px solid var(--ui-border, #e5e7eb);
1261
+ border-radius: 2px;
1262
+ background: var(--ui-surface, #fff);
1263
+ cursor: pointer;
1264
+ }
1265
+ .cell.selected[data-v-0d980738] {
1266
+ background: var(--ui-accent-solid, var(--ui-accent, #0066cc));
1267
+ border-color: var(--ui-accent-solid, var(--ui-accent, #0066cc));
1268
+ }
1269
+ .header[data-v-0d980738] {
1270
+ display: block;
1271
+ margin-bottom: var(--ui-space-2, 8px);
1272
+ font-size: var(--ui-text-sm, 0.875rem);
1273
+ cursor: pointer;
1274
+ }
1275
+ [data-component~="ui-editor-insert-table-grid"] .insert[data-v-0d980738] {
1276
+ width: 100%;
1277
+ padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
1278
+ border: 1px solid var(--ui-border, #e5e7eb);
1279
+ border-radius: var(--ui-radius-sm, 4px);
1280
+ background: var(--ui-accent-solid, var(--ui-accent, #0066cc));
1281
+ color: var(--ui-accent-contrast, #fff);
1282
+ font-size: var(--ui-text-sm, 0.875rem);
1283
+ cursor: pointer;
1284
+ }
1285
+ [data-component~="ui-editor-insert-table-grid"] .insert[data-v-0d980738]:hover {
1286
+ filter: brightness(1.05);
1287
+ }
1288
+ [data-component~="ui-editor-insert-table-grid"][hidden][data-v-0d980738] {
1289
+ display: none;
1290
+ }
1291
+
1292
+ [data-component~="ui-editor-mention-menu"][data-v-a727834e] {
1293
+ user-select: none;
1294
+ }
1295
+ [data-component~="ui-editor-mention-menu"][data-v-a727834e] {
1296
+ display: flex;
1297
+ overflow: hidden;
1298
+ flex-direction: column;
1299
+ background: var(--ui-surface, #fff);
1300
+ border: 1px solid var(--ui-border, #e5e7eb);
1301
+ border-radius: var(--ui-radius-xl, 1rem);
1302
+ box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
1303
+ }
1304
+ .header[data-v-a727834e] {
1305
+ display: flex;
1306
+ align-items: center;
1307
+ justify-content: space-between;
1308
+ gap: var(--ui-space-3, 12px);
1309
+ padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
1310
+ color: var(--ui-text-secondary, #4b5563);
1311
+ border-bottom: 1px solid var(--ui-border, #e5e7eb);
1312
+ font-size: var(--ui-font-size-xs, 0.75rem);
1313
+ font-weight: var(--ui-font-semibold, 600);
1314
+ }
1315
+ .hint[data-v-a727834e] {
1316
+ overflow: hidden;
1317
+ color: var(--ui-text-muted, #6b7280);
1318
+ font-weight: var(--ui-font-normal, 400);
1319
+ text-overflow: ellipsis;
1320
+ white-space: nowrap;
1321
+ }
1322
+ .list[data-v-a727834e] {
1323
+ max-height: 280px;
1324
+ padding: var(--ui-space-1, 4px) 0;
1325
+ margin: 0;
1326
+ overflow-y: auto;
1327
+ overscroll-behavior: contain;
1328
+ list-style: none;
1329
+ }
1330
+ .item[data-v-a727834e] {
1331
+ display: flex;
1332
+ align-items: center;
1333
+ min-height: 44px;
1334
+ padding: var(--ui-space-1-5, 6px) var(--ui-space-3, 12px);
1335
+ gap: var(--ui-space-3, 12px);
1336
+ cursor: pointer;
1337
+ }
1338
+ .item.active[data-v-a727834e] {
1339
+ background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
1340
+ }
1341
+ .avatar[data-v-a727834e] {
1342
+ display: inline-flex;
1343
+ align-items: center;
1344
+ justify-content: center;
1345
+ width: 32px;
1346
+ height: 32px;
1347
+ flex: 0 0 auto;
1348
+ color: var(--ui-accent-active, var(--ui-accent-solid, #2563eb));
1349
+ background: var(--ui-accent-soft, var(--ui-accent-subtle, #eff6ff));
1350
+ border-radius: 999px;
1351
+ font-size: var(--ui-font-size-xs, 0.75rem);
1352
+ font-weight: var(--ui-font-semibold, 600);
1353
+ }
1354
+ .body[data-v-a727834e] {
1355
+ display: flex;
1356
+ min-width: 0;
1357
+ flex-direction: column;
1358
+ }
1359
+ .label[data-v-a727834e],
1360
+ .detail[data-v-a727834e] {
1361
+ overflow: hidden;
1362
+ text-overflow: ellipsis;
1363
+ white-space: nowrap;
1364
+ }
1365
+ .label[data-v-a727834e] {
1366
+ color: var(--ui-text-primary, #111827);
1367
+ font-size: var(--ui-font-size-sm, 0.875rem);
1368
+ font-weight: var(--ui-font-medium, 500);
1369
+ }
1370
+ .detail[data-v-a727834e],
1371
+ .loading[data-v-a727834e] {
1372
+ color: var(--ui-text-muted, #6b7280);
1373
+ font-size: var(--ui-font-size-xs, 0.75rem);
1374
+ }
1375
+ .loading[data-v-a727834e] {
1376
+ min-height: 44px;
1377
+ padding: var(--ui-space-3, 12px);
1378
+ }
1379
+ @media (max-width: 767px) {
1380
+ [data-component~="ui-editor-mention-menu"][data-v-a727834e] {
1381
+ border-bottom: 0;
1382
+ border-radius: var(--ui-radius-xl, 1rem) var(--ui-radius-xl, 1rem) 0 0;
1383
+ }
1384
+ .list[data-v-a727834e] {
1385
+ max-height: calc(60dvh - 48px);
1386
+ }
1387
+ }
1388
+ [data-component~="ui-editor-mention-menu"][hidden][data-v-a727834e] {
1389
+ display: none;
1390
+ }
1391
+
1392
+ [data-component~="ui-icon"][data-v-519add28] {
1393
+ display: inline-flex;
1394
+ flex: none;
1395
+ inline-size: var(--ui-icon-size, 1em);
1396
+ block-size: var(--ui-icon-size, 1em);
1397
+ }
1398
+ svg[data-v-519add28] {
1399
+ inline-size: 100%;
1400
+ block-size: 100%;
1401
+ stroke-width: var(--ui-icon-stroke-width, 2);
1402
+ }
1403
+
1404
+ /* A component that sets its display still honours the hidden attribute on its root. */
1405
+ [data-component~="ui-icon"][hidden][data-v-519add28] {
1406
+ display: none;
1407
+ }
1408
+
1409
+ [data-component~="ui-editor-slash-menu"][data-v-93dbbf52] {
1410
+ user-select: none;
1411
+ }
1412
+ [data-component~="ui-editor-slash-menu"][data-v-93dbbf52] {
1413
+ background: var(--ui-surface, #fff);
1414
+ border: 1px solid var(--ui-border, #e5e7eb);
1415
+ border-radius: var(--ui-radius-xl, 1rem);
1416
+ box-shadow: var(--ui-shadow-lg, 0 8px 24px rgb(0 0 0 / 0.12));
1417
+ overflow: hidden;
1418
+ display: flex;
1419
+ flex-direction: column;
1420
+ }
1421
+ @media (max-width: 767px) {
1422
+ [data-component~="ui-editor-slash-menu"][data-v-93dbbf52] {
1423
+ border-radius: var(--ui-radius-xl, 1rem) var(--ui-radius-xl, 1rem) 0 0;
1424
+ border-bottom: none;
1425
+ }
1426
+ }
1427
+ .header[data-v-93dbbf52] {
1428
+ display: none;
1429
+ align-items: center;
1430
+ gap: var(--ui-space-2, 8px);
1431
+ padding: var(--ui-space-3, 12px) var(--ui-space-4, 16px);
1432
+ border-bottom: 1px solid var(--ui-border, #e5e7eb);
1433
+ font-size: var(--ui-font-size-xs, 0.75rem);
1434
+ color: var(--ui-text-muted, #6b7280);
1435
+ font-weight: var(--ui-font-semibold, 600);
1436
+ text-transform: uppercase;
1437
+ letter-spacing: 0.05em;
1438
+ }
1439
+ @media (max-width: 767px) {
1440
+ .header[data-v-93dbbf52] {
1441
+ display: flex;
1442
+ }
1443
+ }
1444
+ .header-query[data-v-93dbbf52] {
1445
+ background: var(--ui-surface-hover, #f3f4f6);
1446
+ border-radius: var(--ui-radius-sm, 4px);
1447
+ padding: 0.1em 0.4em;
1448
+ font-family: var(--ui-font-family-mono, ui-monospace, monospace);
1449
+ font-size: var(--ui-font-size-xs, 0.75rem);
1450
+ color: var(--ui-accent, #3b82f6);
1451
+ text-transform: none;
1452
+ letter-spacing: 0;
1453
+ }
1454
+ .list[data-v-93dbbf52] {
1455
+ list-style: none;
1456
+ margin: 0;
1457
+ padding: var(--ui-space-1, 4px) 0;
1458
+ overflow-y: auto;
1459
+ max-height: 280px;
1460
+ overscroll-behavior: contain;
1461
+ }
1462
+ @media (max-width: 767px) {
1463
+ .list[data-v-93dbbf52] {
1464
+ max-height: calc(60dvh - 80px);
1465
+ padding: var(--ui-space-1, 4px) 0 var(--ui-space-2, 8px);
1466
+ }
1467
+ }
1468
+ .item[data-v-93dbbf52] {
1469
+ display: flex;
1470
+ align-items: center;
1471
+ gap: var(--ui-space-3, 12px);
1472
+ padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
1473
+ min-height: 44px;
1474
+ cursor: pointer;
1475
+ transition: background-color 120ms ease;
1476
+ }
1477
+ .item.active[data-v-93dbbf52] {
1478
+ background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
1479
+ }
1480
+ .icon[data-v-93dbbf52] {
1481
+ display: flex;
1482
+ align-items: center;
1483
+ justify-content: center;
1484
+ width: 32px;
1485
+ height: 32px;
1486
+ background: var(--ui-surface-hover, #f3f4f6);
1487
+ border: 1px solid var(--ui-border, #e5e7eb);
1488
+ border-radius: var(--ui-radius-md, 6px);
1489
+ font-size: var(--ui-font-size-sm, 0.875rem);
1490
+ font-weight: var(--ui-font-bold, 700);
1491
+ color: var(--ui-text-secondary, #4b5563);
1492
+ font-family: var(--ui-font-family-mono, ui-monospace, monospace);
1493
+ flex-shrink: 0;
1494
+ line-height: 1;
1495
+ }
1496
+ .item.active .icon[data-v-93dbbf52] {
1497
+ background: var(--ui-accent, #3b82f6);
1498
+ border-color: var(--ui-accent, #3b82f6);
1499
+ color: var(--ui-accent-contrast, #fff);
1500
+ }
1501
+ .icon[data-v-93dbbf52] {
1502
+ --ui-icon-size: 1rem;
1503
+ --ui-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
1504
+ }
1505
+ .body[data-v-93dbbf52] {
1506
+ display: flex;
1507
+ min-width: 0;
1508
+ flex-direction: column;
1509
+ gap: 1px;
1510
+ }
1511
+ .title[data-v-93dbbf52] {
1512
+ font-size: var(--ui-font-size-sm, 0.875rem);
1513
+ font-weight: var(--ui-font-medium, 500);
1514
+ color: var(--ui-text, #111827);
1515
+ white-space: nowrap;
1516
+ overflow: hidden;
1517
+ text-overflow: ellipsis;
1518
+ }
1519
+ .description[data-v-93dbbf52] {
1520
+ font-size: var(--ui-font-size-xs, 0.75rem);
1521
+ color: var(--ui-text-muted, #6b7280);
1522
+ white-space: nowrap;
1523
+ overflow: hidden;
1524
+ text-overflow: ellipsis;
1525
+ }
1526
+ .footer[data-v-93dbbf52] {
1527
+ display: none;
1528
+ padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
1529
+ border-top: 1px solid var(--ui-border, #e5e7eb);
1530
+ font-size: var(--ui-font-size-xs, 0.75rem);
1531
+ color: var(--ui-text-muted, #6b7280);
1532
+ }
1533
+ @media (min-width: 768px) {
1534
+ .footer[data-v-93dbbf52] {
1535
+ display: block;
1536
+ }
1537
+ }
1538
+ [data-component~="ui-editor-slash-menu"] kbd[data-v-93dbbf52] {
1539
+ display: inline-flex;
1540
+ align-items: center;
1541
+ justify-content: center;
1542
+ font-family: var(--ui-font-family-mono, ui-monospace, monospace);
1543
+ font-size: 10px;
1544
+ background: var(--ui-surface-hover, #f3f4f6);
1545
+ border: 1px solid var(--ui-border, #e5e7eb);
1546
+ border-radius: 3px;
1547
+ padding: 0 3px;
1548
+ color: var(--ui-text-secondary, #4b5563);
1549
+ }
1550
+ [data-component~="ui-editor-slash-menu"][hidden][data-v-93dbbf52] {
1551
+ display: none;
1552
+ }
1553
+
1554
+ [data-component~="ui-editor-table-context-menu"][data-v-2714613a] {
1555
+ min-width: 14rem;
1556
+ max-width: min(17rem, calc(100vw - 24px));
1557
+ max-height: min(28rem, calc(100vh - 24px));
1558
+ padding: var(--ui-space-1-5, 6px);
1559
+ background: var(--ui-surface, #fff);
1560
+ border: 1px solid var(--ui-border, #e5e7eb);
1561
+ border-radius: var(--ui-radius-lg, 10px);
1562
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
1563
+ display: flex;
1564
+ flex-direction: column;
1565
+ gap: 2px;
1566
+ overflow-y: auto;
1567
+ overscroll-behavior: contain;
1568
+ scrollbar-width: thin;
1569
+ }
1570
+ .section[data-v-2714613a] {
1571
+ display: flex;
1572
+ flex-direction: column;
1573
+ gap: 3px;
1574
+ }
1575
+ [data-component~="ui-editor-table-context-menu"] button[data-v-2714613a] {
1576
+ display: flex;
1577
+ align-items: center;
1578
+ gap: var(--ui-space-2, 8px);
1579
+ width: 100%;
1580
+ text-align: left;
1581
+ min-height: 32px;
1582
+ padding: var(--ui-space-1-5, 6px) var(--ui-space-2, 8px);
1583
+ border: none;
1584
+ border-radius: var(--ui-radius-sm, 4px);
1585
+ background: none;
1586
+ font-size: var(--ui-font-size-sm, 0.875rem);
1587
+ cursor: pointer;
1588
+ color: var(--ui-text, #111);
1589
+ }
1590
+ [data-component~="ui-editor-table-context-menu"] button[data-v-2714613a] {
1591
+ --ui-icon-size: 1rem;
1592
+ --ui-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
1593
+ }
1594
+ [data-component~="ui-editor-table-context-menu"] button[data-v-2714613a]:hover:not(:disabled) {
1595
+ background: var(--ui-surface-hover, #f3f4f6);
1596
+ }
1597
+ [data-component~="ui-editor-table-context-menu"] button.selected[data-v-2714613a] {
1598
+ background: var(--ui-accent-subtle, rgb(59 130 246 / 0.1));
1599
+ }
1600
+ [data-component~="ui-editor-table-context-menu"] button.danger[data-v-2714613a] {
1601
+ color: var(--ui-danger, #dc2626);
1602
+ }
1603
+ .swatches[data-v-2714613a] {
1604
+ display: grid;
1605
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1606
+ gap: 3px;
1607
+ }
1608
+ .swatch-button[data-v-2714613a] {
1609
+ display: inline-flex;
1610
+ align-items: center;
1611
+ gap: var(--ui-space-2, 8px);
1612
+ }
1613
+ .swatch[data-v-2714613a] {
1614
+ display: inline-flex;
1615
+ width: 1rem;
1616
+ height: 1rem;
1617
+ border-radius: 999px;
1618
+ border: 1px solid var(--ui-border, #d1d5db);
1619
+ background: var(--ui-editor-table-context-swatch, #fff);
1620
+ box-shadow: inset 0 0 0 1px rgb(255 255 255 / 0.35);
1621
+ flex-shrink: 0;
1622
+ }
1623
+ .swatch.default[data-v-2714613a] {
1624
+ position: relative;
1625
+ background:
1626
+ linear-gradient(
1627
+ 135deg,
1628
+ transparent calc(50% - 1px),
1629
+ var(--ui-text-muted, #6b7280) calc(50% - 1px),
1630
+ var(--ui-text-muted, #6b7280) calc(50% + 1px),
1631
+ transparent calc(50% + 1px)
1632
+ ),
1633
+ var(--ui-surface, #fff);
1634
+ }
1635
+ .swatch-label[data-v-2714613a] {
1636
+ min-width: 0;
1637
+ white-space: nowrap;
1638
+ }
1639
+ .heading[data-v-2714613a] {
1640
+ padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
1641
+ font-size: 0.6875rem;
1642
+ font-weight: 700;
1643
+ letter-spacing: 0.05em;
1644
+ text-transform: uppercase;
1645
+ color: var(--ui-text-muted, #6b7280);
1646
+ }
1647
+ .sep[data-v-2714613a] {
1648
+ height: 1px;
1649
+ background: var(--ui-border, #e5e7eb);
1650
+ margin: var(--ui-space-1, 4px) 0;
1651
+ }
1652
+ [data-component~="ui-editor-table-context-menu"][hidden][data-v-2714613a] {
1653
+ display: none;
1654
+ }
1655
+
1656
+ [data-component~="ui-editor-table-overlay"][data-v-7b392ded] {
1657
+ display: block;
1658
+ width: 100%;
1659
+ height: 100%;
1660
+ overflow: visible;
1661
+ pointer-events: none;
1662
+ }
1663
+ [data-component~="ui-editor-table-overlay"][data-v-7b392ded] {
1664
+ position: relative;
1665
+ width: 100%;
1666
+ height: 100%;
1667
+ overflow: visible;
1668
+ pointer-events: none;
1669
+ }
1670
+ .rows[data-v-7b392ded],
1671
+ .cols[data-v-7b392ded] {
1672
+ pointer-events: none;
1673
+ position: absolute;
1674
+ }
1675
+ .rows[data-v-7b392ded] {
1676
+ inset: 0;
1677
+ width: 100%;
1678
+ }
1679
+ .cols[data-v-7b392ded] {
1680
+ inset: 0;
1681
+ height: 100%;
1682
+ }
1683
+ .control[data-v-7b392ded] {
1684
+ position: absolute;
1685
+ z-index: 1;
1686
+ pointer-events: none;
1687
+ }
1688
+ .handle[data-v-7b392ded] {
1689
+ position: absolute;
1690
+ display: inline-flex;
1691
+ align-items: center;
1692
+ justify-content: center;
1693
+ width: 24px;
1694
+ height: 24px;
1695
+ padding: 0;
1696
+ border: 1px solid var(--ui-affordance-near-color, var(--ui-border-strong, #c8c8c4));
1697
+ border-radius: var(--ui-radius-round, 999px);
1698
+ background: color-mix(in srgb, var(--ui-surface-elevated, #fff) 96%, transparent);
1699
+ color: var(--ui-affordance-near-color, var(--ui-text-secondary, #5c5c5c));
1700
+ font: inherit;
1701
+ font-size: 16px;
1702
+ line-height: 1;
1703
+ box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
1704
+ opacity: 0;
1705
+ scale: 0.72;
1706
+ transition:
1707
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1708
+ scale var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1709
+ color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1710
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1711
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1712
+ pointer-events: auto;
1713
+ cursor: pointer;
1714
+ }
1715
+ .handle[data-v-7b392ded] {
1716
+ --ui-icon-size: 14px;
1717
+ --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
1718
+ }
1719
+ .handle[data-ui-proximity="near"][data-v-7b392ded],
1720
+ .control.active .handle[data-v-7b392ded],
1721
+ .handle[data-v-7b392ded]:focus-visible {
1722
+ opacity: 1;
1723
+ scale: 1;
1724
+ }
1725
+ .control.active .handle[data-v-7b392ded],
1726
+ .handle[data-v-7b392ded]:focus-visible {
1727
+ border-color: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
1728
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
1729
+ color: var(--ui-text-on-accent, #fff);
1730
+ box-shadow: var(--ui-shadow-sm, 0 1px 3px rgb(0 0 0 / 0.1));
1731
+ }
1732
+ .handle[data-v-7b392ded]:focus-visible,
1733
+ .selector[data-v-7b392ded]:focus-visible,
1734
+ .cell-menu[data-v-7b392ded]:focus-visible {
1735
+ outline: 2px solid var(--ui-focus-ring, #5b55d6);
1736
+ outline-offset: 2px;
1737
+ }
1738
+ .control.row[data-v-7b392ded] {
1739
+ left: 0;
1740
+ width: 100%;
1741
+ height: 0;
1742
+ }
1743
+ .control.row .handle[data-v-7b392ded] {
1744
+ top: -12px;
1745
+ left: -30px;
1746
+ }
1747
+ .control.col[data-v-7b392ded] {
1748
+ top: 0;
1749
+ width: 0;
1750
+ height: 100%;
1751
+ }
1752
+ .control.col .handle[data-v-7b392ded] {
1753
+ top: -30px;
1754
+ left: -12px;
1755
+ }
1756
+ .line[data-v-7b392ded] {
1757
+ position: absolute;
1758
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
1759
+ opacity: 0;
1760
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1761
+ }
1762
+ .control.row .line[data-v-7b392ded] {
1763
+ inset: -1px 0 auto;
1764
+ height: 2px;
1765
+ }
1766
+ .control.col .line[data-v-7b392ded] {
1767
+ inset: 0 auto 0 -1px;
1768
+ width: 2px;
1769
+ }
1770
+ .control.active .line[data-v-7b392ded] {
1771
+ opacity: 0.8;
1772
+ }
1773
+ .guide[data-v-7b392ded] {
1774
+ position: absolute;
1775
+ width: var(--ui-affordance-guide-size, 4px);
1776
+ height: var(--ui-affordance-guide-size, 4px);
1777
+ border-radius: var(--ui-radius-round, 999px);
1778
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
1779
+ opacity: var(--ui-affordance-guide-opacity, 0.42);
1780
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1781
+ }
1782
+ .control.row .guide[data-v-7b392ded] {
1783
+ left: -10px;
1784
+ top: -2px;
1785
+ }
1786
+ .control.col .guide[data-v-7b392ded] {
1787
+ left: -2px;
1788
+ top: -10px;
1789
+ }
1790
+ .control:has(.handle[data-ui-proximity="near"]) .guide[data-v-7b392ded],
1791
+ .control.active .guide[data-v-7b392ded] {
1792
+ opacity: 0;
1793
+ }
1794
+ .tooltip[data-v-7b392ded] {
1795
+ position: absolute;
1796
+ z-index: 2;
1797
+ top: calc(100% + 6px);
1798
+ left: 50%;
1799
+ width: max-content;
1800
+ max-width: 14rem;
1801
+ padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
1802
+ border-radius: var(--ui-radius-1, 4px);
1803
+ background: var(--ui-text-primary, #1a1a1a);
1804
+ color: var(--ui-surface-elevated, #fff);
1805
+ font-size: var(--ui-font-size-xs, 0.75rem);
1806
+ font-weight: var(--ui-font-medium, 500);
1807
+ line-height: var(--ui-line-height-md, 1.4);
1808
+ opacity: 0;
1809
+ transform: translateX(-50%);
1810
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1811
+ pointer-events: none;
1812
+ }
1813
+ .control.row .tooltip[data-v-7b392ded] {
1814
+ top: 50%;
1815
+ left: auto;
1816
+ right: calc(100% + 8px);
1817
+ transform: translateY(-50%);
1818
+ }
1819
+ .control.active .tooltip[data-v-7b392ded],
1820
+ .handle:focus-visible .tooltip[data-v-7b392ded] {
1821
+ opacity: 1;
1822
+ }
1823
+ .selector[data-v-7b392ded],
1824
+ .cell-menu[data-v-7b392ded] {
1825
+ position: absolute;
1826
+ z-index: 2;
1827
+ display: inline-flex;
1828
+ align-items: center;
1829
+ justify-content: center;
1830
+ padding: 0;
1831
+ border: 1px solid transparent;
1832
+ background: transparent;
1833
+ color: var(--ui-text-secondary, #5c5c5c);
1834
+ box-shadow: none;
1835
+ pointer-events: auto;
1836
+ cursor: pointer;
1837
+ transition:
1838
+ color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1839
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1840
+ border-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1841
+ box-shadow var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1842
+ }
1843
+ .selector[data-v-7b392ded]:hover,
1844
+ .cell-menu[data-v-7b392ded]:hover {
1845
+ background: var(--ui-icon-button-hover-bg, var(--ui-surface-muted, #f3f4f6));
1846
+ color: var(--ui-icon-button-hover-color, var(--ui-text-primary, #1a1a1a));
1847
+ box-shadow: var(--ui-shadow-xs, 0 1px 2px rgb(0 0 0 / 0.05));
1848
+ }
1849
+ .selector[data-v-7b392ded] {
1850
+ border-radius: var(--ui-radius-round, 999px);
1851
+ }
1852
+ .selector[data-v-7b392ded]::before {
1853
+ content: "";
1854
+ position: absolute;
1855
+ inset: 50% auto auto 50%;
1856
+ border-radius: var(--ui-radius-round, 999px);
1857
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong, #c8c8c4));
1858
+ opacity: var(--ui-affordance-guide-opacity, 0.42);
1859
+ transform: translate(-50%, -50%);
1860
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1861
+ pointer-events: none;
1862
+ }
1863
+ .selector .glyph[data-v-7b392ded] {
1864
+ display: block;
1865
+ width: 14px;
1866
+ height: 14px;
1867
+ --ui-icon-size: 14px;
1868
+ --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
1869
+ opacity: 0;
1870
+ transform: scale(0.72);
1871
+ transition:
1872
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
1873
+ transform var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
1874
+ }
1875
+ .selector[data-v-7b392ded]:hover::before,
1876
+ .selector[data-v-7b392ded]:focus-visible::before {
1877
+ opacity: 0;
1878
+ }
1879
+ .selector:hover .glyph[data-v-7b392ded],
1880
+ .selector:focus-visible .glyph[data-v-7b392ded] {
1881
+ opacity: 1;
1882
+ transform: scale(1);
1883
+ }
1884
+ .selector.row[data-v-7b392ded] {
1885
+ left: -9px;
1886
+ width: 18px;
1887
+ height: 32px;
1888
+ transform: translateY(-50%);
1889
+ }
1890
+ .selector.row[data-v-7b392ded]::before {
1891
+ width: 2px;
1892
+ height: 16px;
1893
+ }
1894
+ .selector.column[data-v-7b392ded] {
1895
+ top: -9px;
1896
+ width: 32px;
1897
+ height: 18px;
1898
+ transform: translateX(-50%);
1899
+ }
1900
+ .selector.column[data-v-7b392ded]::before {
1901
+ width: 16px;
1902
+ height: 2px;
1903
+ }
1904
+ @media (hover: none), (pointer: coarse) {
1905
+ .selector[data-v-7b392ded]::before {
1906
+ opacity: 0;
1907
+ }
1908
+ .selector .glyph[data-v-7b392ded] {
1909
+ opacity: 1;
1910
+ transform: none;
1911
+ }
1912
+ }
1913
+ .cell-menu[data-v-7b392ded] {
1914
+ width: 24px;
1915
+ height: 24px;
1916
+ border-radius: var(--ui-radius-1, 4px);
1917
+ background: color-mix(in srgb, var(--ui-surface-muted, #f3f4f6) 78%, transparent);
1918
+ }
1919
+ .cell-menu[data-v-7b392ded] {
1920
+ --ui-icon-size: 15px;
1921
+ --ui-icon-stroke-width: var(--ui-editor-table-affordance-icon-stroke-width, 2);
1922
+ }
1923
+ [data-component~="ui-editor-table-overlay"][hidden][data-v-7b392ded] {
1924
+ display: none;
1925
+ }
1926
+
1927
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"][data-v-6f66c7f4] {
1928
+ min-width: max-content;
1929
+ min-height: 100%;
1930
+ padding: 0;
1931
+ background: transparent;
1932
+ border: 0;
1933
+ border-radius: 0;
1934
+ box-shadow: none;
1935
+ backdrop-filter: none;
1936
+ }
1937
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button[data-v-6f66c7f4] {
1938
+ min-height: 44px;
1939
+ background: transparent;
1940
+ }
1941
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.active[data-v-6f66c7f4],
1942
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] button.selected[data-v-6f66c7f4] {
1943
+ background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
1944
+ }
1945
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-table-toolbar"] .menu[data-v-6f66c7f4] {
1946
+ top: auto;
1947
+ right: 0;
1948
+ bottom: calc(100% + var(--ui-space-2, 8px));
1949
+ max-height: min(50dvh, 22rem);
1950
+ overflow-y: auto;
1951
+ overscroll-behavior: contain;
1952
+ }
1953
+ [data-component~="ui-editor-table-toolbar"][data-v-6f66c7f4] {
1954
+ display: inline-flex;
1955
+ align-items: center;
1956
+ gap: var(--ui-space-1, 4px);
1957
+ padding: var(--ui-space-1, 4px);
1958
+ background: color-mix(in srgb, var(--ui-surface, #fff) 94%, transparent);
1959
+ border: 1px solid var(--ui-border, #e5e7eb);
1960
+ border-radius: calc(var(--ui-radius-md, 6px) + 2px);
1961
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
1962
+ backdrop-filter: blur(10px);
1963
+ }
1964
+ .group[data-v-6f66c7f4] {
1965
+ display: inline-flex;
1966
+ align-items: center;
1967
+ gap: 2px;
1968
+ overflow: hidden;
1969
+ }
1970
+ .sep[data-v-6f66c7f4] {
1971
+ width: 1px;
1972
+ align-self: stretch;
1973
+ background: var(--ui-border, #e5e7eb);
1974
+ }
1975
+ .overflow[data-v-6f66c7f4] {
1976
+ position: relative;
1977
+ }
1978
+ [data-component~="ui-editor-table-toolbar"] button[data-v-6f66c7f4] {
1979
+ display: inline-flex;
1980
+ align-items: center;
1981
+ justify-content: center;
1982
+ gap: var(--ui-space-1-5, 6px);
1983
+ min-height: 32px;
1984
+ border: 0;
1985
+ border-radius: var(--ui-radius-sm, 4px);
1986
+ background: transparent;
1987
+ color: var(--ui-text-primary, #111827);
1988
+ cursor: pointer;
1989
+ font-size: var(--ui-text-sm, 0.875rem);
1990
+ font-weight: 500;
1991
+ line-height: 1;
1992
+ padding: var(--ui-space-1-5, 6px) var(--ui-space-2, 8px);
1993
+ white-space: nowrap;
1994
+ }
1995
+ [data-component~="ui-editor-table-toolbar"] button[data-v-6f66c7f4]:hover {
1996
+ background: var(--ui-surface-hover, #f3f4f6);
1997
+ }
1998
+ [data-component~="ui-editor-table-toolbar"] button.active[data-v-6f66c7f4] {
1999
+ background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
2000
+ color: var(--ui-accent-active, #003d7a);
2001
+ }
2002
+ .group button[data-v-6f66c7f4] {
2003
+ border-radius: var(--ui-radius-sm, 4px);
2004
+ }
2005
+ .group button + button[data-v-6f66c7f4] {
2006
+ border-left: 0;
2007
+ }
2008
+ [data-component~="ui-editor-table-toolbar"] .more[data-v-6f66c7f4] {
2009
+ border: 0;
2010
+ border-radius: var(--ui-radius-sm, 4px);
2011
+ }
2012
+ [data-component~="ui-editor-table-toolbar"] button.danger[data-v-6f66c7f4] {
2013
+ color: var(--ui-danger, #dc2626);
2014
+ }
2015
+ [data-component~="ui-editor-table-toolbar"][data-v-6f66c7f4] {
2016
+ --ui-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
2017
+ --ui-icon-stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
2018
+ }
2019
+ .chevron[data-v-6f66c7f4] {
2020
+ display: inline-flex;
2021
+ --ui-icon-size: 0.875rem;
2022
+ }
2023
+ [data-component~="ui-editor-table-toolbar"] .icon-button[data-v-6f66c7f4] {
2024
+ width: 32px;
2025
+ padding-inline: 0;
2026
+ }
2027
+ .menu[data-v-6f66c7f4] {
2028
+ position: absolute;
2029
+ top: calc(100% + var(--ui-space-2, 8px));
2030
+ right: 0;
2031
+ min-width: 12rem;
2032
+ padding: var(--ui-space-1, 4px);
2033
+ background: var(--ui-surface, #fff);
2034
+ border: 1px solid var(--ui-border, #e5e7eb);
2035
+ border-radius: var(--ui-radius-md, 6px);
2036
+ box-shadow: var(--ui-shadow-lg, 0 10px 15px -3px rgb(0 0 0 / 0.1));
2037
+ display: flex;
2038
+ flex-direction: column;
2039
+ gap: 2px;
2040
+ z-index: 2;
2041
+ }
2042
+ .menu-section + .menu-section[data-v-6f66c7f4] {
2043
+ margin-top: var(--ui-space-1, 4px);
2044
+ padding-top: var(--ui-space-1, 4px);
2045
+ border-top: 1px solid color-mix(in srgb, var(--ui-border, #e5e7eb) 80%, transparent);
2046
+ }
2047
+ .menu-heading[data-v-6f66c7f4] {
2048
+ padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
2049
+ font-size: 0.6875rem;
2050
+ font-weight: 700;
2051
+ letter-spacing: 0.05em;
2052
+ text-transform: uppercase;
2053
+ color: var(--ui-text-muted, #6b7280);
2054
+ }
2055
+ .menu button[data-v-6f66c7f4] {
2056
+ display: flex;
2057
+ justify-content: flex-start;
2058
+ width: 100%;
2059
+ text-align: left;
2060
+ }
2061
+ .swatches[data-v-6f66c7f4] {
2062
+ display: grid;
2063
+ grid-template-columns: repeat(3, minmax(0, 1fr));
2064
+ gap: 2px;
2065
+ }
2066
+ [data-component~="ui-editor-table-toolbar"] .swatch-button[data-v-6f66c7f4] {
2067
+ gap: var(--ui-space-1, 4px);
2068
+ justify-content: flex-start;
2069
+ }
2070
+ .swatch[data-v-6f66c7f4] {
2071
+ width: 14px;
2072
+ height: 14px;
2073
+ flex: 0 0 14px;
2074
+ border: 1px solid color-mix(in srgb, var(--ui-border, #e5e7eb) 80%, #000);
2075
+ border-radius: 3px;
2076
+ background: var(--ui-editor-table-toolbar-swatch);
2077
+ }
2078
+ .swatch.default[data-v-6f66c7f4] {
2079
+ background:
2080
+ linear-gradient(135deg, transparent 44%, var(--ui-danger, #dc2626) 46% 54%, transparent 56%),
2081
+ var(--ui-surface, #fff);
2082
+ }
2083
+ .swatch-button.selected[data-v-6f66c7f4] {
2084
+ background: var(--ui-accent-soft, var(--ui-accent-subtle, #e8f0fb));
2085
+ }
2086
+ [data-component~="ui-editor-table-toolbar"][hidden][data-v-6f66c7f4] {
2087
+ display: none;
2088
+ }
2089
+
2090
+ [data-component~="ui-editor-toolbar"][data-v-2c94f261] {
2091
+ position: sticky;
2092
+ top: 0;
2093
+ z-index: var(--ui-editor-toolbar-z-index, 10);
2094
+ display: flex;
2095
+ align-items: center;
2096
+ justify-content: flex-start;
2097
+ gap: var(--ui-editor-toolbar-gap, 2px);
2098
+ padding: var(--ui-editor-toolbar-padding-block, 6px) var(--ui-editor-toolbar-padding-inline, 12px);
2099
+ min-height: var(--ui-editor-toolbar-min-height, 48px);
2100
+ overflow-x: auto;
2101
+ scrollbar-width: none;
2102
+ white-space: nowrap;
2103
+ background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
2104
+ border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
2105
+ }
2106
+ [data-component~="ui-editor-toolbar"][data-v-2c94f261]::-webkit-scrollbar {
2107
+ display: none;
2108
+ }
2109
+ [data-component~="ui-editor-toolbar"] > [data-v-2c94f261-s] {
2110
+ flex: 0 0 auto;
2111
+ }
2112
+ .divider[data-v-2c94f261-s] {
2113
+ width: 1px;
2114
+ height: 20px;
2115
+ background: var(--ui-editor-toolbar-divider, var(--ui-border, #e5e7eb));
2116
+ flex-shrink: 0;
2117
+ margin: 0 var(--ui-editor-toolbar-divider-margin, 4px);
2118
+ }
2119
+ [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-2c94f261] {
2120
+ position: static;
2121
+ top: auto;
2122
+ width: max-content;
2123
+ max-width: min(calc(100vw - 24px), 100%);
2124
+ min-height: auto;
2125
+ padding: var(--ui-editor-toolbar-floating-padding, 4px);
2126
+ overflow-x: visible;
2127
+ background: color-mix(in srgb, var(--ui-editor-toolbar-bg, var(--ui-surface, #fff)) 96%, transparent);
2128
+ border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
2129
+ border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
2130
+ box-shadow: var(--ui-editor-toolbar-floating-shadow, var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12)));
2131
+ backdrop-filter: blur(10px);
2132
+ }
2133
+ @media (max-width: 767px) {
2134
+ [data-component~="ui-editor-toolbar"][data-v-2c94f261] {
2135
+ position: fixed;
2136
+ top: auto;
2137
+ bottom: env(safe-area-inset-bottom);
2138
+ left: 0;
2139
+ right: 0;
2140
+ min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
2141
+ border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
2142
+ border-bottom: none;
2143
+ box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
2144
+ }
2145
+ [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-2c94f261] {
2146
+ position: static;
2147
+ inset: auto;
2148
+ min-height: auto;
2149
+ border: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
2150
+ border-radius: var(--ui-editor-toolbar-floating-radius, var(--ui-radius-lg, 10px));
2151
+ box-shadow: var(--ui-editor-toolbar-floating-shadow, var(--ui-shadow-lg, 0 10px 24px rgb(0 0 0 / 0.12)));
2152
+ }
2153
+ }
2154
+
2155
+ /* Inside LoomaEditor's sticky shell, the shell is the sticky surface. */
2156
+ .looma-editor__sticky-toolbar-shell [data-component~="ui-editor-toolbar"][data-v-2c94f261] {
2157
+ position: static;
2158
+ min-height: var(--ui-editor-toolbar-min-height, 48px);
2159
+ overscroll-behavior-inline: contain;
2160
+ background: transparent;
2161
+ border: 0;
2162
+ box-shadow: none;
2163
+ }
2164
+
2165
+ /* Inside LoomaEditor's mobile shell, the toolbar is a scroll-snapping strip. */
2166
+ .looma-editor__mobile-toolbar-shell [data-component~="ui-editor-toolbar"][data-ui-editor-toolbar-state~="floating"][data-v-2c94f261] {
2167
+ width: 100%;
2168
+ max-width: none;
2169
+ min-height: 100%;
2170
+ padding: 0;
2171
+ overflow-x: auto;
2172
+ overflow-y: hidden;
2173
+ overscroll-behavior-inline: contain;
2174
+ scroll-snap-type: x mandatory;
2175
+ background: transparent;
2176
+ border: 0;
2177
+ border-radius: 0;
2178
+ box-shadow: none;
2179
+ backdrop-filter: none;
2180
+ }
2181
+
2182
+ /* A component that sets its display still honours the hidden attribute on its root. */
2183
+ [data-component~="ui-editor-toolbar"][hidden][data-v-2c94f261] {
2184
+ display: none;
2185
+ }
2186
+
2187
+ [data-component~="ui-floating-action-button"][data-v-b94e6e26] {
2188
+ position: fixed;
2189
+ inset-block-end: calc(var(--ui-floating-action-button-bottom, var(--ui-space-6, 1.5rem)) + env(safe-area-inset-bottom));
2190
+ inset-inline-end: max(
2191
+ var(--ui-floating-action-button-inline-end, var(--ui-space-5, 1.25rem)),
2192
+ env(safe-area-inset-right)
2193
+ );
2194
+ inline-size: var(--ui-floating-action-button-size, 56px);
2195
+ block-size: var(--ui-floating-action-button-size, 56px);
2196
+ display: inline-flex;
2197
+ z-index: var(--ui-floating-action-button-z-index, 100);
2198
+ }
2199
+ [data-component~="ui-floating-action-button"][data-v-b94e6e26] {
2200
+ appearance: none;
2201
+ border: none;
2202
+ border-radius: 999px;
2203
+ margin: 0;
2204
+ padding: 0;
2205
+ display: inline-flex;
2206
+ align-items: center;
2207
+ justify-content: center;
2208
+ background: var(--ui-floating-action-button-bg, var(--ui-accent-solid));
2209
+ color: var(--ui-floating-action-button-color, var(--ui-text-on-accent));
2210
+ box-shadow: var(
2211
+ --ui-floating-action-button-shadow,
2212
+ 0 4px 12px color-mix(in srgb, var(--ui-accent-solid) 40%, transparent)
2213
+ );
2214
+ cursor: pointer;
2215
+ transition:
2216
+ background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
2217
+ transform var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease),
2218
+ box-shadow var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease);
2219
+ }
2220
+ [data-component~="ui-floating-action-button"][data-v-b94e6e26]:hover:enabled {
2221
+ background: var(--ui-floating-action-button-hover-bg, var(--ui-accent-hover));
2222
+ box-shadow: var(
2223
+ --ui-floating-action-button-hover-shadow,
2224
+ 0 6px 16px color-mix(in srgb, var(--ui-accent-solid) 50%, transparent)
2225
+ );
2226
+ }
2227
+ [data-component~="ui-floating-action-button"][data-v-b94e6e26]:active:enabled {
2228
+ transform: scale(var(--ui-floating-action-button-active-scale, 0.94));
2229
+ }
2230
+ [data-component~="ui-floating-action-button"][data-v-b94e6e26]:focus-visible {
2231
+ outline: 2px solid var(--ui-focus-ring, currentColor);
2232
+ outline-offset: 2px;
2233
+ }
2234
+ [data-component~="ui-floating-action-button"][data-v-b94e6e26]:disabled {
2235
+ opacity: 0.6;
2236
+ cursor: not-allowed;
2237
+ }
2238
+ svg[data-v-b94e6e26-s] {
2239
+ inline-size: var(--ui-floating-action-button-icon-size, 24px);
2240
+ block-size: var(--ui-floating-action-button-icon-size, 24px);
2241
+ flex-shrink: 0;
2242
+ }
2243
+ @media (min-width: 768px) {
2244
+ [data-component~="ui-floating-action-button"][data-ui-floating-action-button-state~="mobileOnly"][data-v-b94e6e26] {
2245
+ display: none;
2246
+ }
2247
+ }
2248
+
2249
+ /* A component that sets its display still honours the hidden attribute on its root. */
2250
+ [data-component~="ui-floating-action-button"][hidden][data-v-b94e6e26] {
2251
+ display: none;
2252
+ }
2253
+
2254
+ [data-component~="ui-form-field"][data-v-31c8915e] {
2255
+ display: grid;
2256
+ gap: var(--ui-space-2);
2257
+ min-inline-size: 0;
2258
+ align-content: start;
2259
+ color: var(--ui-text-primary);
2260
+ }
2261
+ [slot="label"][data-v-31c8915e-s] {
2262
+ color: var(--ui-text-secondary);
2263
+ font-size: 0.95rem;
2264
+ }
2265
+ [slot="help"][data-v-31c8915e-s] {
2266
+ min-block-size: var(--ui-form-field-help-min-block-size, 0);
2267
+ color: var(--ui-text-muted);
2268
+ font-size: 0.875rem;
2269
+ line-height: var(--ui-line-height-md);
2270
+ }
2271
+ [slot="error"][data-v-31c8915e-s],[role="alert"][data-v-31c8915e-s] {
2272
+ color: var(--ui-accent-active);
2273
+ font-size: 0.875rem;
2274
+ }
2275
+
2276
+ /* A component that sets its display still honours the hidden attribute on its root. */
2277
+ [data-component~="ui-form-field"][hidden][data-v-31c8915e] {
2278
+ display: none;
2279
+ }
2280
+
2281
+ [data-component~="ui-grid"][data-v-60709c03] {
2282
+ --_grid-gap: var(--ui-space-4, 1rem);
2283
+ --_grid-min: 12rem;
2284
+ display: grid;
2285
+ gap: var(--ui-grid-gap, var(--_grid-gap));
2286
+ grid-template-columns: repeat(auto-fit, minmax(min(var(--ui-grid-min, var(--_grid-min)), 100%), 1fr));
2287
+ min-inline-size: 0;
2288
+ max-inline-size: 100%;
2289
+ margin: 0;
2290
+ }
2291
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=xs"][data-v-60709c03] {
2292
+ --_grid-gap: var(--ui-space-2, 0.5rem);
2293
+ }
2294
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=s"][data-v-60709c03] {
2295
+ --_grid-gap: var(--ui-space-3, 0.75rem);
2296
+ }
2297
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=m"][data-v-60709c03] {
2298
+ --_grid-gap: var(--ui-space-4, 1rem);
2299
+ }
2300
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=l"][data-v-60709c03] {
2301
+ --_grid-gap: var(--ui-space-5, 1.5rem);
2302
+ }
2303
+ [data-component~="ui-grid"][data-ui-grid-state~="gap=xl"][data-v-60709c03] {
2304
+ --_grid-gap: var(--ui-space-6, 2rem);
2305
+ }
2306
+ [data-component~="ui-grid"][data-ui-grid-state~="min=md"][data-v-60709c03] {
2307
+ --_grid-min: 16rem;
2308
+ }
2309
+ [data-component~="ui-grid"][data-ui-grid-state~="min=lg"][data-v-60709c03] {
2310
+ --_grid-min: 20rem;
2311
+ }
2312
+
2313
+ /* A component that sets its display still honours the hidden attribute on its root. */
2314
+ [data-component~="ui-grid"][hidden][data-v-60709c03] {
2315
+ display: none;
2316
+ }
2317
+
2318
+ [data-component~="ui-icon-button"][data-v-370603ec] {
2319
+ display: inline-flex;
2320
+ color: var(--ui-text-secondary);
2321
+ }
2322
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-370603ec] {
2323
+ position: relative;
2324
+ }
2325
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-370603ec]::before {
2326
+ content: "";
2327
+ position: absolute;
2328
+ inset: 50% auto auto 50%;
2329
+ z-index: 1;
2330
+ inline-size: var(--ui-affordance-guide-size, 0.25rem);
2331
+ block-size: var(--ui-affordance-guide-size, 0.25rem);
2332
+ border-radius: var(--ui-radius-round, 999px);
2333
+ background: var(--ui-affordance-guide-color, var(--ui-border-strong));
2334
+ opacity: var(--ui-affordance-guide-opacity, 0.42);
2335
+ transform: translate(-50%, -50%);
2336
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast)) var(--ui-motion-ease);
2337
+ pointer-events: none;
2338
+ }
2339
+
2340
+ /* At rest an anticipatory button shows only its guide dot; proximity, hover, or focus reveals the
2341
+ * surface and icon. The root is the native button, so hiding it outright would hide the dot
2342
+ * too, and slotted icons sit outside this scope; `color: transparent` hides currentColor icons. */
2343
+ @media (hover: hover) and (pointer: fine) {
2344
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-370603ec]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-ui-proximity="near"], :hover, :focus-visible) {
2345
+ border-color: transparent;
2346
+ background: transparent;
2347
+ box-shadow: none;
2348
+ color: transparent;
2349
+ }
2350
+ }
2351
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-370603ec]:is([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-ui-proximity="near"], :hover, :focus-visible)::before {
2352
+ opacity: 0;
2353
+ }
2354
+ [data-component~="ui-icon-button"][data-v-370603ec] {
2355
+ appearance: none;
2356
+ inline-size: var(--ui-icon-button-size, 2rem);
2357
+ block-size: var(--ui-icon-button-size, 2rem);
2358
+ min-inline-size: var(--ui-icon-button-size, 2rem);
2359
+ min-block-size: var(--ui-icon-button-size, 2rem);
2360
+ padding: 0;
2361
+ margin: 0;
2362
+ border: 1px solid transparent;
2363
+ border-radius: var(--ui-icon-button-radius, var(--ui-radius-2));
2364
+ background: var(--ui-icon-button-bg, transparent);
2365
+ color: inherit;
2366
+ display: inline-flex;
2367
+ align-items: center;
2368
+ justify-content: center;
2369
+ cursor: pointer;
2370
+ transition:
2371
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
2372
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
2373
+ color var(--ui-motion-fast) var(--ui-motion-ease),
2374
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
2375
+ transform var(--ui-motion-fast) var(--ui-motion-ease);
2376
+ }
2377
+ @media (hover: none), (pointer: coarse) {
2378
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"][data-v-370603ec]::before {
2379
+ opacity: 0;
2380
+ }
2381
+ }
2382
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-370603ec] {
2383
+ inline-size: var(--ui-icon-button-size-sm, 1.75rem);
2384
+ block-size: var(--ui-icon-button-size-sm, 1.75rem);
2385
+ min-inline-size: var(--ui-icon-button-size-sm, 1.75rem);
2386
+ min-block-size: var(--ui-icon-button-size-sm, 1.75rem);
2387
+ }
2388
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-370603ec] {
2389
+ inline-size: var(--ui-icon-button-size-lg, 2.5rem);
2390
+ block-size: var(--ui-icon-button-size-lg, 2.5rem);
2391
+ min-inline-size: var(--ui-icon-button-size-lg, 2.5rem);
2392
+ min-block-size: var(--ui-icon-button-size-lg, 2.5rem);
2393
+ }
2394
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="round"][data-v-370603ec] {
2395
+ border-radius: var(--ui-radius-round, 999px);
2396
+ }
2397
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-370603ec] {
2398
+ border-color: var(--ui-icon-button-border, var(--ui-border-default));
2399
+ background: var(--ui-icon-button-outline-bg, var(--ui-surface-default));
2400
+ color: var(--ui-icon-button-outline-color, var(--ui-text-primary));
2401
+ }
2402
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-370603ec] {
2403
+ background: var(--ui-icon-button-solid-bg, var(--ui-accent-solid));
2404
+ color: var(--ui-icon-button-solid-color, var(--ui-text-on-accent));
2405
+ box-shadow: var(
2406
+ --ui-icon-button-solid-shadow,
2407
+ 0 1px 2px color-mix(in srgb, var(--ui-accent-solid) 18%, transparent)
2408
+ );
2409
+ }
2410
+ [data-component~="ui-icon-button"][data-v-370603ec]:hover:enabled {
2411
+ /* Derived from the text colour so the ghost hover shows on any background. */
2412
+ background: var(--ui-icon-button-hover-bg, color-mix(in srgb, currentColor 8%, transparent));
2413
+ color: var(--ui-icon-button-hover-color, var(--ui-text-primary));
2414
+ }
2415
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"][data-v-370603ec]:hover:enabled {
2416
+ border-color: var(--ui-icon-button-hover-border, var(--ui-border-strong));
2417
+ }
2418
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"][data-v-370603ec]:hover:enabled {
2419
+ background: var(--ui-icon-button-solid-hover-bg, var(--ui-accent-hover));
2420
+ }
2421
+ [data-component~="ui-icon-button"][data-v-370603ec]:active:enabled {
2422
+ transform: scale(var(--ui-icon-button-active-scale, 0.96));
2423
+ }
2424
+ [data-component~="ui-icon-button"][data-v-370603ec]:focus-visible {
2425
+ outline: none;
2426
+ box-shadow: var(--ui-focus-halo);
2427
+ }
2428
+ [data-component~="ui-icon-button"][data-v-370603ec]:disabled {
2429
+ opacity: 0.6;
2430
+ cursor: not-allowed;
2431
+ }
2432
+ [data-component~="ui-icon-button"][data-v-370603ec] {
2433
+ --_icon-button-icon-default: var(--ui-icon-size-md, 1.25rem);
2434
+ }
2435
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=sm"][data-v-370603ec] {
2436
+ --_icon-button-icon-default: var(--ui-icon-size-sm, 1rem);
2437
+ }
2438
+ [data-component~="ui-icon-button"][data-ui-icon-button-state~="size=lg"][data-v-370603ec] {
2439
+ --_icon-button-icon-default: var(--ui-icon-size-lg, 1.5rem);
2440
+ }
2441
+ svg[data-v-370603ec-s] {
2442
+ inline-size: var(--ui-icon-button-icon-size, var(--_icon-button-icon-default));
2443
+ block-size: var(--ui-icon-button-icon-size, var(--_icon-button-icon-default));
2444
+ flex-shrink: 0;
2445
+ stroke-width: var(--ui-icon-button-icon-stroke-width, 1.75);
2446
+ }
2447
+
2448
+ /* A component that sets its display still honours the hidden attribute on its root. */
2449
+ [data-component~="ui-icon-button"][hidden][data-v-370603ec] {
2450
+ display: none;
2451
+ }
2452
+
2453
+ [data-component~="ui-input"][data-v-cf6676f9] {
2454
+ box-sizing: border-box;
2455
+ display: inline-block;
2456
+ inline-size: 100%;
2457
+ min-inline-size: 0;
2458
+ min-block-size: var(--ui-control-size-md, 2.5rem);
2459
+ margin: 0;
2460
+ padding: var(--ui-space-2) var(--ui-space-3);
2461
+ appearance: none;
2462
+ border: 1px solid var(--ui-control-border, var(--ui-border-strong));
2463
+ border-radius: var(--ui-input-radius, var(--ui-radius-2));
2464
+ background: var(--ui-control-surface, var(--ui-surface-elevated));
2465
+ color: var(--ui-text-primary);
2466
+ font: inherit;
2467
+ line-height: var(--ui-line-height-md);
2468
+ box-shadow: var(--ui-input-shadow, var(--ui-control-inset));
2469
+ transition:
2470
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
2471
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
2472
+ background-color var(--ui-motion-fast) var(--ui-motion-ease);
2473
+ }
2474
+
2475
+ /* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
2476
+ [data-component~="ui-input"][data-v-cf6676f9]::selection {
2477
+ background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
2478
+ color: inherit;
2479
+ }
2480
+ [data-component~="ui-input"][data-v-cf6676f9]::placeholder {
2481
+ color: var(--ui-control-placeholder, var(--ui-text-secondary));
2482
+ opacity: 1;
2483
+ }
2484
+ [data-component~="ui-input"][data-v-cf6676f9]:hover:not(:focus):not(:disabled) {
2485
+ border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
2486
+ }
2487
+ [data-component~="ui-input"][data-v-cf6676f9]:focus-visible {
2488
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
2489
+ outline: none;
2490
+ box-shadow: var(--ui-input-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow));
2491
+ }
2492
+
2493
+ /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
2494
+ [data-component~="ui-input"][aria-invalid="true"][data-v-cf6676f9],
2495
+ [data-component~="ui-input"][data-v-cf6676f9]:is(:user-invalid, [data-user-invalid]) {
2496
+ border-color: var(--ui-danger-solid);
2497
+ }
2498
+ [data-component~="ui-input"][data-v-cf6676f9]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
2499
+ box-shadow:
2500
+ var(--ui-control-inset),
2501
+ 0 0 0 3px color-mix(in srgb, var(--ui-danger-solid) 22%, transparent);
2502
+ }
2503
+ [data-component~="ui-input"][data-v-cf6676f9]:disabled {
2504
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
2505
+ color: var(--ui-text-muted);
2506
+ box-shadow: none;
2507
+ cursor: not-allowed;
2508
+ }
2509
+
2510
+ /* No text-box-trim here: trimming a native input's line box below its line height lets the text
2511
+ * scroll vertically inside the field. Native inputs already center their single line. */
2512
+
2513
+ /* A component that sets its display still honours the hidden attribute on its root. */
2514
+ [data-component~="ui-input"][hidden][data-v-cf6676f9] {
2515
+ display: none;
2516
+ }
2517
+
2518
+ [data-component~="ui-menu"][data-v-75d428d7] {
2519
+ display: flex;
2520
+ flex-direction: column;
2521
+ box-sizing: border-box;
2522
+ inline-size: max-content;
2523
+ min-inline-size: min(12rem, calc(100vw - var(--ui-menu-viewport-gap, var(--ui-space-2, 0.5rem)) * 2));
2524
+ max-inline-size: calc(100vw - var(--ui-menu-viewport-gap, var(--ui-space-2, 0.5rem)) * 2);
2525
+ padding: 0;
2526
+ border: 0;
2527
+ outline: 0;
2528
+ border-radius: 0;
2529
+ background: transparent;
2530
+ box-shadow: none;
2531
+ overflow: visible;
2532
+ }
2533
+ .surface[data-v-75d428d7] {
2534
+ display: flex;
2535
+ flex-direction: column;
2536
+ box-sizing: border-box;
2537
+ max-inline-size: inherit;
2538
+ padding: var(--ui-space-1);
2539
+ background: var(--ui-surface-elevated);
2540
+ border: 1px solid var(--ui-border-default);
2541
+ border-radius: var(--ui-radius-3);
2542
+ box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
2543
+ max-block-size: inherit;
2544
+ overflow: auto;
2545
+ }
2546
+ [data-component~="ui-menu"][data-v-75d428d7]:not([data-component~="ui-menu"][data-ui-menu-state~="internalOpen"]) {
2547
+ display: none;
2548
+ }
2549
+ [data-component~="ui-menu"][popover][data-v-75d428d7] {
2550
+ position: fixed;
2551
+ inset: auto;
2552
+ margin: 0;
2553
+ overflow: visible;
2554
+ max-block-size: calc(100dvh - var(--ui-menu-viewport-gap, var(--ui-space-2, 0.5rem)) * 2);
2555
+ opacity: 0;
2556
+ transform: translateY(-4px) scale(0.99);
2557
+ transition:
2558
+ opacity var(--ui-motion-fast) var(--ui-motion-ease),
2559
+ transform var(--ui-motion-fast) var(--ui-motion-ease),
2560
+ display var(--ui-motion-fast) allow-discrete,
2561
+ overlay var(--ui-motion-fast) allow-discrete;
2562
+ }
2563
+ [data-component~="ui-menu"][popover][data-v-75d428d7]:popover-open {
2564
+ opacity: 1;
2565
+ transform: translateY(0) scale(1);
2566
+ }
2567
+ @starting-style {
2568
+ [data-component~="ui-menu"][popover][data-v-75d428d7]:popover-open {
2569
+ opacity: 0;
2570
+ transform: translateY(-4px) scale(0.99);
2571
+ }
2572
+ }
2573
+ [data-component~="ui-menu"][hidden][data-v-75d428d7] {
2574
+ display: none;
2575
+ }
2576
+ @media (prefers-reduced-motion: reduce) {
2577
+ [data-component~="ui-menu"][popover][data-v-75d428d7] {
2578
+ transition: none;
2579
+ }
2580
+ }
2581
+
2582
+ [data-component~="ui-menu-item"][data-v-05a8f163] {
2583
+ display: block;
2584
+ box-sizing: border-box;
2585
+ width: 100%;
2586
+ padding: var(--ui-space-2) var(--ui-space-3);
2587
+ text-align: left;
2588
+ border-radius: var(--ui-radius-2);
2589
+ color: var(--ui-text-primary);
2590
+ font-size: var(--ui-font-size-md);
2591
+ font-weight: var(--ui-font-medium, 500);
2592
+ cursor: pointer;
2593
+ outline: none;
2594
+ transition: background-color var(--ui-motion-fast) var(--ui-motion-ease), color var(--ui-motion-fast) var(--ui-motion-ease);
2595
+ }
2596
+ [data-component~="ui-menu-item"][data-v-05a8f163]:is(:hover, :focus-visible):not([aria-disabled="true"]) {
2597
+ background: var(--ui-surface-subtle);
2598
+ }
2599
+ [data-component~="ui-menu-item"][aria-disabled="true"][data-v-05a8f163] {
2600
+ opacity: 0.6;
2601
+ cursor: not-allowed;
2602
+ }
2603
+
2604
+ /* A component that sets its display still honours the hidden attribute on its root. */
2605
+ [data-component~="ui-menu-item"][hidden][data-v-05a8f163] {
2606
+ display: none;
2607
+ }
2608
+
2609
+ [data-component~="ui-popover"][data-v-3d1188bf] {
2610
+ box-sizing: border-box;
2611
+ max-inline-size: min(
2612
+ 20rem,
2613
+ calc(100vw - var(--ui-popover-viewport-gap, var(--ui-space-2, 0.5rem)) * 2)
2614
+ );
2615
+ max-block-size: calc(100dvh - var(--ui-popover-viewport-gap, var(--ui-space-2, 0.5rem)) * 2);
2616
+ overflow: visible;
2617
+ padding: 0;
2618
+ border: 0;
2619
+ outline: 0;
2620
+ border-radius: 0;
2621
+ background: transparent;
2622
+ box-shadow: none;
2623
+ }
2624
+ .surface[data-v-3d1188bf] {
2625
+ box-sizing: border-box;
2626
+ max-inline-size: inherit;
2627
+ max-block-size: inherit;
2628
+ overflow: auto;
2629
+ padding: var(--ui-space-3);
2630
+ background: var(--ui-surface-elevated);
2631
+ border: 1px solid var(--ui-border-default);
2632
+ border-radius: var(--ui-radius-3);
2633
+ box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
2634
+ }
2635
+ [data-component~="ui-popover"][data-v-3d1188bf]:not([data-component~="ui-popover"][data-ui-popover-state~="internalOpen"]) {
2636
+ display: none;
2637
+ }
2638
+ [data-component~="ui-popover"][popover][data-v-3d1188bf] {
2639
+ position: fixed;
2640
+ inset: auto;
2641
+ margin: 0;
2642
+ opacity: 0;
2643
+ transform: translateY(-4px) scale(0.99);
2644
+ transition:
2645
+ opacity var(--ui-motion-fast) var(--ui-motion-ease),
2646
+ transform var(--ui-motion-fast) var(--ui-motion-ease),
2647
+ display var(--ui-motion-fast) allow-discrete,
2648
+ overlay var(--ui-motion-fast) allow-discrete;
2649
+ }
2650
+ [data-component~="ui-popover"][popover][data-v-3d1188bf]:popover-open {
2651
+ opacity: 1;
2652
+ transform: translateY(0) scale(1);
2653
+ }
2654
+ @starting-style {
2655
+ [data-component~="ui-popover"][popover][data-v-3d1188bf]:popover-open {
2656
+ opacity: 0;
2657
+ transform: translateY(-4px) scale(0.99);
2658
+ }
2659
+ }
2660
+ [data-component~="ui-popover"][hidden][data-v-3d1188bf] {
2661
+ display: none;
2662
+ }
2663
+ @media (prefers-reduced-motion: reduce) {
2664
+ [data-component~="ui-popover"][popover][data-v-3d1188bf] {
2665
+ transition: none;
2666
+ }
2667
+ }
2668
+
2669
+ [data-component~="ui-radio"][data-v-e5d6bc8d] {
2670
+ display: inline-flex;
2671
+ align-items: flex-start;
2672
+ gap: var(--ui-radio-gap, var(--ui-space-2));
2673
+ max-inline-size: 100%;
2674
+ color: var(--ui-text-primary);
2675
+ cursor: pointer;
2676
+ }
2677
+ .label[data-v-e5d6bc8d] {
2678
+ min-inline-size: 0;
2679
+ line-height: var(--ui-line-height-md);
2680
+ }
2681
+ input[data-v-e5d6bc8d] {
2682
+ flex: 0 0 auto;
2683
+ inline-size: var(--ui-radio-size, 1.125rem);
2684
+ block-size: var(--ui-radio-size, 1.125rem);
2685
+ margin: 0.125em 0 0;
2686
+ accent-color: var(--ui-accent-solid);
2687
+ cursor: pointer;
2688
+ }
2689
+ input[data-v-e5d6bc8d]:focus-visible {
2690
+ outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
2691
+ outline-offset: 2px;
2692
+ }
2693
+ [data-component~="ui-radio"][data-ui-radio-state~="disabled"][data-v-e5d6bc8d] {
2694
+ color: var(--ui-text-muted);
2695
+ cursor: not-allowed;
2696
+ }
2697
+ [data-component~="ui-radio"][data-ui-radio-state~="disabled"] input[data-v-e5d6bc8d] {
2698
+ cursor: not-allowed;
2699
+ }
2700
+
2701
+ /* A component that sets its display still honours the hidden attribute on its root. */
2702
+ [data-component~="ui-radio"][hidden][data-v-e5d6bc8d] {
2703
+ display: none;
2704
+ }
2705
+
2706
+ [data-component~="ui-radio-group"][data-v-9cda8db8] {
2707
+ display: inline-flex;
2708
+ align-items: center;
2709
+ gap: var(--ui-space-2);
2710
+ min-inline-size: 0;
2711
+ margin: 0;
2712
+ padding: 0;
2713
+ border: 0;
2714
+ }
2715
+ legend[data-v-9cda8db8] {
2716
+ float: inline-start;
2717
+ inline-size: 100%;
2718
+ margin: 0 0 var(--ui-space-2);
2719
+ padding: 0;
2720
+ color: var(--ui-text-primary);
2721
+ font-weight: var(--ui-font-medium);
2722
+ }
2723
+ legend[data-v-9cda8db8] + * {
2724
+ clear: both;
2725
+ }
2726
+ [data-component~="ui-radio-group"][data-ui-radio-group-state~="orientation=vertical"][data-v-9cda8db8] {
2727
+ display: inline-grid;
2728
+ justify-items: start;
2729
+ }
2730
+
2731
+ /* A component that sets its display still honours the hidden attribute on its root. */
2732
+ [data-component~="ui-radio-group"][hidden][data-v-9cda8db8] {
2733
+ display: none;
2734
+ }
2735
+
2736
+ [data-component~="ui-reel"][data-v-6d8ec8a0] {
2737
+ --_reel-gap: var(--ui-space-4, 1rem);
2738
+ --_reel-item-width: auto;
2739
+ display: flex;
2740
+ inline-size: 100%;
2741
+ gap: var(--ui-reel-gap, var(--_reel-gap));
2742
+ min-inline-size: 0;
2743
+ max-inline-size: 100%;
2744
+ margin: 0;
2745
+ overflow-x: auto;
2746
+ overflow-y: hidden;
2747
+ overscroll-behavior-inline: contain;
2748
+ }
2749
+ [data-component~="ui-reel"] > [data-v-6d8ec8a0-s] {
2750
+ min-inline-size: 0;
2751
+ flex: 0 0 var(--ui-reel-item-width, var(--_reel-item-width));
2752
+ }
2753
+ [data-component~="ui-reel"][data-ui-reel-state~="gap=xs"][data-v-6d8ec8a0] {
2754
+ --_reel-gap: var(--ui-space-2, 0.5rem);
2755
+ }
2756
+ [data-component~="ui-reel"][data-ui-reel-state~="gap=s"][data-v-6d8ec8a0] {
2757
+ --_reel-gap: var(--ui-space-3, 0.75rem);
2758
+ }
2759
+ [data-component~="ui-reel"][data-ui-reel-state~="gap=m"][data-v-6d8ec8a0] {
2760
+ --_reel-gap: var(--ui-space-4, 1rem);
2761
+ }
2762
+ [data-component~="ui-reel"][data-ui-reel-state~="gap=l"][data-v-6d8ec8a0] {
2763
+ --_reel-gap: var(--ui-space-5, 1.5rem);
2764
+ }
2765
+ [data-component~="ui-reel"][data-ui-reel-state~="gap=xl"][data-v-6d8ec8a0] {
2766
+ --_reel-gap: var(--ui-space-6, 2rem);
2767
+ }
2768
+ [data-component~="ui-reel"][data-ui-reel-state~="itemWidth=sm"][data-v-6d8ec8a0] {
2769
+ --_reel-item-width: 12rem;
2770
+ }
2771
+ [data-component~="ui-reel"][data-ui-reel-state~="itemWidth=md"][data-v-6d8ec8a0] {
2772
+ --_reel-item-width: 16rem;
2773
+ }
2774
+ [data-component~="ui-reel"][data-ui-reel-state~="itemWidth=lg"][data-v-6d8ec8a0] {
2775
+ --_reel-item-width: 20rem;
2776
+ }
2777
+ [data-component~="ui-reel"][data-ui-reel-state~="snap"][data-v-6d8ec8a0] {
2778
+ scroll-snap-type: inline mandatory;
2779
+ }
2780
+ [data-component~="ui-reel"][data-ui-reel-state~="snap=start"] > [data-v-6d8ec8a0-s] {
2781
+ scroll-snap-align: start;
2782
+ }
2783
+ [data-component~="ui-reel"][data-ui-reel-state~="snap=center"] > [data-v-6d8ec8a0-s] {
2784
+ scroll-snap-align: center;
2785
+ }
2786
+
2787
+ /* A component that sets its display still honours the hidden attribute on its root. */
2788
+ [data-component~="ui-reel"][hidden][data-v-6d8ec8a0] {
2789
+ display: none;
2790
+ }
2791
+
2792
+ [data-component~="ui-search-result-row"][data-v-a8b3c5dd] {
2793
+ appearance: none;
2794
+ inline-size: 100%;
2795
+ min-block-size: var(--ui-search-result-row-min-height, 56px);
2796
+ margin: 0;
2797
+ padding-block: var(--ui-search-result-row-padding-block, var(--ui-space-3, 0.75rem));
2798
+ padding-inline: var(--ui-search-result-row-padding-inline, var(--ui-space-4, 1rem));
2799
+ display: flex;
2800
+ align-items: flex-start;
2801
+ gap: var(--ui-search-result-row-gap, var(--ui-space-3, 0.75rem));
2802
+ background: var(--ui-search-result-row-bg, transparent);
2803
+ border: none;
2804
+ border-block-end: 1px solid var(--ui-search-result-row-border, var(--ui-border, #e5e7eb));
2805
+ color: inherit;
2806
+ cursor: pointer;
2807
+ text-align: left;
2808
+ transition: background-color var(--ui-motion-fast, 160ms) var(--ui-motion-ease, ease);
2809
+ }
2810
+ [data-component~="ui-search-result-row"][data-v-a8b3c5dd]:last-child {
2811
+ border-block-end: none;
2812
+ }
2813
+ [data-component~="ui-search-result-row"][data-v-a8b3c5dd]:hover:enabled {
2814
+ background: var(--ui-search-result-row-hover-bg, color-mix(in srgb, var(--ui-surface, #ffffff) 85%, black 3%));
2815
+ }
2816
+ [data-component~="ui-search-result-row"][data-ui-search-result-row-state~="selected"][data-v-a8b3c5dd] {
2817
+ background: var(
2818
+ --ui-search-result-row-selected-bg,
2819
+ var(--ui-search-result-row-hover-bg, color-mix(in srgb, var(--ui-surface, #ffffff) 85%, black 3%))
2820
+ );
2821
+ }
2822
+ [data-component~="ui-search-result-row"][data-v-a8b3c5dd]:focus-visible {
2823
+ outline: 2px solid var(--ui-focus-ring, #2563eb);
2824
+ outline-offset: -2px;
2825
+ }
2826
+ [data-component~="ui-search-result-row"][data-v-a8b3c5dd]:disabled {
2827
+ opacity: 0.6;
2828
+ cursor: not-allowed;
2829
+ }
2830
+ .leading[data-v-a8b3c5dd],
2831
+ .trailing[data-v-a8b3c5dd] {
2832
+ display: inline-flex;
2833
+ align-items: flex-start;
2834
+ flex-shrink: 0;
2835
+ }
2836
+ .content[data-v-a8b3c5dd] {
2837
+ min-inline-size: 0;
2838
+ flex: 1;
2839
+ display: flex;
2840
+ flex-direction: column;
2841
+ }
2842
+ .title[data-v-a8b3c5dd],
2843
+ .meta[data-v-a8b3c5dd],
2844
+ .excerpt[data-v-a8b3c5dd] {
2845
+ display: block;
2846
+ min-inline-size: 0;
2847
+ }
2848
+
2849
+ /* An unused region takes no space. */
2850
+ .leading[data-v-a8b3c5dd]:empty,
2851
+ .meta[data-v-a8b3c5dd]:empty,
2852
+ .excerpt[data-v-a8b3c5dd]:empty,
2853
+ .trailing[data-v-a8b3c5dd]:empty {
2854
+ display: none;
2855
+ }
2856
+ [slot="title"][data-v-a8b3c5dd-s],[slot="meta"][data-v-a8b3c5dd-s],[slot="excerpt"][data-v-a8b3c5dd-s] {
2857
+ display: block;
2858
+ margin: 0;
2859
+ }
2860
+
2861
+ /* A component that sets its display still honours the hidden attribute on its root. */
2862
+ [data-component~="ui-search-result-row"][hidden][data-v-a8b3c5dd] {
2863
+ display: none;
2864
+ }
2865
+
2866
+ [data-component~="ui-search-shell"][data-v-8d1491f1] {
2867
+ display: contents;
2868
+ }
2869
+ dialog[data-v-8d1491f1] {
2870
+ position: fixed;
2871
+ inset: 0;
2872
+ z-index: var(--ui-search-shell-z-index, 400);
2873
+ box-sizing: border-box;
2874
+ inline-size: 100%;
2875
+ max-inline-size: none;
2876
+ block-size: 100%;
2877
+ max-block-size: none;
2878
+ margin: 0;
2879
+ padding: var(--ui-search-shell-padding-top, 10vh) var(--ui-search-shell-viewport-gap, var(--ui-space-4))
2880
+ var(--ui-search-shell-viewport-gap, var(--ui-space-4));
2881
+ overflow: auto;
2882
+ border: 0;
2883
+ background: var(--ui-overlay-backdrop);
2884
+ color: var(--ui-text-primary);
2885
+ }
2886
+ dialog[data-v-8d1491f1]::backdrop {
2887
+ background: var(--ui-overlay-backdrop);
2888
+ }
2889
+ .panel[data-v-8d1491f1] {
2890
+ position: relative;
2891
+ display: flex;
2892
+ flex-direction: column;
2893
+ inline-size: min(100%, var(--ui-search-shell-max-width, 40rem));
2894
+ max-block-size: var(--ui-search-shell-max-height, 80vh);
2895
+ margin-inline: auto;
2896
+ overflow: hidden;
2897
+ background: var(--ui-search-shell-bg, var(--ui-surface-elevated));
2898
+ border: 1px solid var(--ui-search-shell-border, var(--ui-border-default));
2899
+ border-radius: var(--ui-search-shell-radius, var(--ui-radius-dialog));
2900
+ box-shadow: var(--ui-search-shell-shadow, var(--ui-elevation-dialog, var(--ui-shadow-xl)));
2901
+ }
2902
+ .search[data-v-8d1491f1] {
2903
+ padding: var(--ui-space-3);
2904
+ border-block-end: 1px solid var(--ui-border-default);
2905
+ }
2906
+ input[slot="search"][data-v-8d1491f1-s] {
2907
+ box-sizing: border-box;
2908
+ inline-size: 100%;
2909
+ min-block-size: var(--ui-control-min-block-size);
2910
+ padding: var(--ui-space-2) var(--ui-space-3);
2911
+ border: 1px solid var(--ui-control-border);
2912
+ border-radius: var(--ui-radius-2);
2913
+ background: var(--ui-control-surface);
2914
+ color: var(--ui-text-primary);
2915
+ font: inherit;
2916
+ box-shadow: var(--ui-shadow-xs);
2917
+ }
2918
+ input[slot="search"][data-v-8d1491f1-s]:focus-visible {
2919
+ border-color: var(--ui-control-focus);
2920
+ outline: 2px solid var(--ui-focus-ring, currentColor);
2921
+ outline-offset: 2px;
2922
+ }
2923
+ .status[data-v-8d1491f1],
2924
+ .footer[data-v-8d1491f1] {
2925
+ flex-shrink: 0;
2926
+ padding: var(--ui-space-2) var(--ui-space-4);
2927
+ color: var(--ui-text-secondary);
2928
+ font-size: var(--ui-font-size-sm);
2929
+ }
2930
+ .status[data-v-8d1491f1] {
2931
+ border-block-end: 1px solid var(--ui-border-default);
2932
+ }
2933
+
2934
+ /* Laid out like the dialog's action row: actions right-aligned, spaced as buttons, no fill. */
2935
+ .footer[data-v-8d1491f1] {
2936
+ display: flex;
2937
+ flex-wrap: wrap;
2938
+ align-items: center;
2939
+ justify-content: flex-end;
2940
+ gap: var(--ui-space-2);
2941
+ padding: var(--ui-space-3) var(--ui-space-4);
2942
+ border-block-start: 1px solid var(--ui-border-default);
2943
+ }
2944
+ .status[data-v-8d1491f1]:empty,
2945
+ .footer[data-v-8d1491f1]:empty {
2946
+ display: none;
2947
+ }
2948
+ .body[data-v-8d1491f1] {
2949
+ flex: 1;
2950
+ min-block-size: 0;
2951
+ overflow: auto;
2952
+ padding: var(--ui-space-2);
2953
+ }
2954
+ @media (max-width: 47.9375rem) {
2955
+ dialog[data-v-8d1491f1] {
2956
+ padding: 0;
2957
+ }
2958
+ .panel[data-v-8d1491f1] {
2959
+ inline-size: 100%;
2960
+ min-block-size: 100dvh;
2961
+ max-block-size: none;
2962
+ border: 0;
2963
+ border-radius: 0;
2964
+ }
2965
+ }
2966
+
2967
+ /* A component that sets its display still honours the hidden attribute on its root. */
2968
+ [data-component~="ui-search-shell"][hidden][data-v-8d1491f1] {
2969
+ display: none;
2970
+ }
2971
+
2972
+ [data-component~="ui-select"][data-v-a5498df1] {
2973
+ box-sizing: border-box;
2974
+ display: inline-block;
2975
+ inline-size: 100%;
2976
+ min-inline-size: 0;
2977
+ min-block-size: var(--ui-control-size-md, 2.5rem);
2978
+ margin: 0;
2979
+ padding: var(--ui-space-2) var(--ui-space-3);
2980
+ border: 1px solid var(--ui-control-border, var(--ui-border-strong));
2981
+ border-radius: var(--ui-select-radius, var(--ui-radius-2));
2982
+ background-color: var(--ui-control-surface, var(--ui-surface-elevated));
2983
+ color: var(--ui-text-primary);
2984
+ color-scheme: light dark;
2985
+ font: inherit;
2986
+ line-height: var(--ui-line-height-md);
2987
+ box-shadow: var(--ui-select-shadow, var(--ui-control-inset));
2988
+ transition:
2989
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
2990
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
2991
+ background-color var(--ui-motion-fast) var(--ui-motion-ease);
2992
+ }
2993
+
2994
+ /* Single selects draw their own chevron: the native caret cannot be inset or sized consistently.
2995
+ * The root stays a native <s-lect>, so the icon is a background image rather than an element. */
2996
+ [data-component~="ui-select"][data-v-a5498df1]:not([multiple]) {
2997
+ appearance: none;
2998
+ padding-inline-end: calc(var(--ui-space-3) + 1.5rem);
2999
+ background-image: var(
3000
+ --ui-select-chevron,
3001
+ url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235c5c58' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")
3002
+ );
3003
+ background-repeat: no-repeat;
3004
+ background-position: right var(--ui-space-3) center;
3005
+ background-size: 1.125rem 1.125rem;
3006
+ }
3007
+ [data-component~="ui-select"][data-v-a5498df1]:hover:not(:focus):not(:disabled) {
3008
+ border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
3009
+ }
3010
+ [data-component~="ui-select"][data-v-a5498df1]:focus-visible {
3011
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
3012
+ outline: none;
3013
+ box-shadow: var(--ui-select-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow));
3014
+ }
3015
+
3016
+ /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
3017
+ [data-component~="ui-select"][aria-invalid="true"][data-v-a5498df1],
3018
+ [data-component~="ui-select"][data-v-a5498df1]:is(:user-invalid, [data-user-invalid]) {
3019
+ border-color: var(--ui-danger-solid);
3020
+ }
3021
+ [data-component~="ui-select"][data-v-a5498df1]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
3022
+ box-shadow:
3023
+ var(--ui-control-inset),
3024
+ 0 0 0 3px color-mix(in srgb, var(--ui-danger-solid) 22%, transparent);
3025
+ }
3026
+ [data-component~="ui-select"][data-v-a5498df1]:disabled {
3027
+ background-color: var(--ui-control-surface-disabled, var(--ui-surface-muted));
3028
+ color: var(--ui-text-muted);
3029
+ box-shadow: none;
3030
+ cursor: not-allowed;
3031
+ }
3032
+ [data-component~="ui-select"][multiple][data-v-a5498df1],
3033
+ [data-component~="ui-select"][size][data-v-a5498df1]:not([size="1"]) {
3034
+ min-block-size: 7rem;
3035
+ padding: var(--ui-space-2);
3036
+ }
3037
+
3038
+ /* A component that sets its display still honours the hidden attribute on its root. */
3039
+ [data-component~="ui-select"][hidden][data-v-a5498df1] {
3040
+ display: none;
3041
+ }
3042
+
3043
+ hr[data-v-30b5bbe9] {
3044
+ box-sizing: border-box;
3045
+ align-self: stretch;
3046
+ margin: 0;
3047
+ border: 0;
3048
+ border-block-start: 1px solid var(--ui-separator-color, var(--ui-border-default));
3049
+ }
3050
+ hr[aria-orientation="vertical"][data-v-30b5bbe9] {
3051
+ block-size: auto;
3052
+ border-block-start: 0;
3053
+ border-inline-start: 1px solid var(--ui-separator-color, var(--ui-border-default));
3054
+ }
3055
+
3056
+ [data-component~="ui-sidebar"][data-v-2f64215a] {
3057
+ position: relative;
3058
+ box-sizing: border-box;
3059
+ display: flex;
3060
+ flex-direction: column;
3061
+ flex: none;
3062
+ inline-size: var(--_sidebar-width, var(--ui-sidebar-width, 280px));
3063
+ max-inline-size: 100%;
3064
+ min-block-size: 0;
3065
+ background: var(--ui-sidebar-surface, var(--ui-surface-default));
3066
+ border-inline-end: 1px solid var(--ui-sidebar-border, var(--ui-border-default));
3067
+ }
3068
+ [data-component~="ui-sidebar"][data-ui-sidebar-state~="side=end"][data-v-2f64215a] {
3069
+ border-inline-end: 0;
3070
+ border-inline-start: 1px solid var(--ui-sidebar-border, var(--ui-border-default));
3071
+ }
3072
+ .content[data-v-2f64215a] {
3073
+ flex: 1;
3074
+ min-block-size: 0;
3075
+ overflow: auto;
3076
+ }
3077
+
3078
+ /* Collapsed while docked. */
3079
+ [data-component~="ui-sidebar"][data-ui-sidebar-state~="internalCollapsed"][data-v-2f64215a]:not([popover]) {
3080
+ display: none;
3081
+ }
3082
+ .resizer[data-v-2f64215a] {
3083
+ position: absolute;
3084
+ z-index: 1;
3085
+ inset-block: 0;
3086
+ /* On the panel's inner edge: the end edge of a start sidebar. */
3087
+ inset-inline-end: 0;
3088
+ inline-size: 8px;
3089
+ min-inline-size: 8px;
3090
+ transform: translateX(50%);
3091
+ cursor: col-resize;
3092
+ touch-action: none;
3093
+ outline: none;
3094
+ }
3095
+ .resizer[hidden][data-v-2f64215a] {
3096
+ display: none;
3097
+ }
3098
+ [data-component~="ui-sidebar"][data-ui-sidebar-state~="side=end"] .resizer[data-v-2f64215a] {
3099
+ inset-inline-end: auto;
3100
+ inset-inline-start: 0;
3101
+ transform: translateX(-50%);
3102
+ }
3103
+ .resizer[data-v-2f64215a]::after {
3104
+ content: "";
3105
+ position: absolute;
3106
+ inset-block: 0;
3107
+ inset-inline-start: 3px;
3108
+ inline-size: 2px;
3109
+ background: color-mix(in srgb, var(--ui-affordance-guide-color, var(--ui-border-strong)) 45%, transparent);
3110
+ opacity: var(--ui-affordance-guide-opacity, 0.42);
3111
+ transition:
3112
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
3113
+ opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
3114
+ }
3115
+ .guide[data-v-2f64215a] {
3116
+ position: absolute;
3117
+ inset-block-start: 50%;
3118
+ inset-inline-start: 50%;
3119
+ inline-size: 6px;
3120
+ block-size: 22px;
3121
+ border: 1px solid var(--ui-border-strong, #c8c8c4);
3122
+ border-radius: var(--ui-radius-round, 999px);
3123
+ background: var(--ui-surface-elevated, #fff);
3124
+ opacity: 0;
3125
+ transform: translate(-50%, -50%);
3126
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
3127
+ pointer-events: none;
3128
+ }
3129
+ .resizer[data-v-2f64215a]:is(:hover, :focus-visible)::after {
3130
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid, var(--ui-color-focus, Highlight)));
3131
+ opacity: 1;
3132
+ }
3133
+ .resizer:is(:hover, :focus-visible) > .guide[data-v-2f64215a] {
3134
+ opacity: 1;
3135
+ }
3136
+
3137
+ /* Drawer: a popover in the top layer, sliding in from its edge. Closed popovers are hidden by the UA. */
3138
+ [data-component~="ui-sidebar"][popover][data-v-2f64215a] {
3139
+ position: fixed;
3140
+ inset-block: 0;
3141
+ inset-inline-start: 0;
3142
+ inset-inline-end: auto;
3143
+ margin: 0;
3144
+ padding: 0;
3145
+ inline-size: min(var(--_sidebar-width, var(--ui-sidebar-width, 280px)), 85vw);
3146
+ max-block-size: none;
3147
+ block-size: 100dvh;
3148
+ border-block: 0;
3149
+ box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
3150
+ transform: translateX(0);
3151
+ transition:
3152
+ transform var(--ui-motion-base, 0.2s) var(--ui-motion-ease-out, ease-out),
3153
+ display var(--ui-motion-base, 0.2s) allow-discrete,
3154
+ overlay var(--ui-motion-base, 0.2s) allow-discrete;
3155
+ }
3156
+
3157
+ /* The author display above would otherwise override the UA rule that hides a closed popover. */
3158
+ [data-component~="ui-sidebar"][popover][data-v-2f64215a]:not(:popover-open) {
3159
+ display: none;
3160
+ transform: translateX(-100%);
3161
+ }
3162
+ [data-component~="ui-sidebar"][data-ui-sidebar-state~="side=end"][popover][data-v-2f64215a] {
3163
+ inset-inline-start: auto;
3164
+ inset-inline-end: 0;
3165
+ }
3166
+ [data-component~="ui-sidebar"][data-ui-sidebar-state~="side=end"][popover][data-v-2f64215a]:not(:popover-open) {
3167
+ transform: translateX(100%);
3168
+ }
3169
+ @starting-style {
3170
+ [data-component~="ui-sidebar"][popover][data-v-2f64215a]:popover-open {
3171
+ transform: translateX(-100%);
3172
+ }
3173
+ [data-component~="ui-sidebar"][data-ui-sidebar-state~="side=end"][popover][data-v-2f64215a]:popover-open {
3174
+ transform: translateX(100%);
3175
+ }
3176
+ }
3177
+ [data-component~="ui-sidebar"][popover][data-v-2f64215a]::backdrop {
3178
+ background: var(--ui-sidebar-backdrop, rgb(0 0 0 / 0.32));
3179
+ }
3180
+ @media (prefers-reduced-motion: reduce) {
3181
+ [data-component~="ui-sidebar"][popover][data-v-2f64215a] {
3182
+ transition: none;
3183
+ }
3184
+ }
3185
+
3186
+ /* A component that sets its display still honours the hidden attribute on its root. */
3187
+ [data-component~="ui-sidebar"][hidden][data-v-2f64215a] {
3188
+ display: none;
3189
+ }
3190
+
3191
+ [data-component~="ui-stack"][data-v-48cfa668] {
3192
+ --_layout-gap: var(--ui-space-4, 1rem);
3193
+ display: flex;
3194
+ flex-direction: column;
3195
+ align-items: stretch;
3196
+ gap: var(--ui-layout-gap, var(--_layout-gap));
3197
+ min-inline-size: 0;
3198
+ max-inline-size: 100%;
3199
+ margin: 0;
3200
+ }
3201
+ [data-component~="ui-stack"][data-ui-stack-state~="gap=xs"][data-v-48cfa668] {
3202
+ --_layout-gap: var(--ui-space-2, 0.5rem);
3203
+ }
3204
+ [data-component~="ui-stack"][data-ui-stack-state~="gap=s"][data-v-48cfa668] {
3205
+ --_layout-gap: var(--ui-space-3, 0.75rem);
3206
+ }
3207
+ [data-component~="ui-stack"][data-ui-stack-state~="gap=m"][data-v-48cfa668] {
3208
+ --_layout-gap: var(--ui-space-4, 1rem);
3209
+ }
3210
+ [data-component~="ui-stack"][data-ui-stack-state~="gap=l"][data-v-48cfa668] {
3211
+ --_layout-gap: var(--ui-space-5, 1.5rem);
3212
+ }
3213
+ [data-component~="ui-stack"][data-ui-stack-state~="gap=xl"][data-v-48cfa668] {
3214
+ --_layout-gap: var(--ui-space-6, 2rem);
3215
+ }
3216
+ [data-component~="ui-stack"][data-ui-stack-state~="align=start"][data-v-48cfa668] {
3217
+ align-items: flex-start;
3218
+ }
3219
+ [data-component~="ui-stack"][data-ui-stack-state~="align=center"][data-v-48cfa668] {
3220
+ align-items: center;
3221
+ }
3222
+ [data-component~="ui-stack"][data-ui-stack-state~="align=end"][data-v-48cfa668] {
3223
+ align-items: flex-end;
3224
+ }
3225
+ [data-component~="ui-stack"][data-ui-stack-state~="justify=center"][data-v-48cfa668] {
3226
+ justify-content: center;
3227
+ }
3228
+ [data-component~="ui-stack"][data-ui-stack-state~="justify=end"][data-v-48cfa668] {
3229
+ justify-content: flex-end;
3230
+ }
3231
+ [data-component~="ui-stack"][data-ui-stack-state~="justify=between"][data-v-48cfa668] {
3232
+ justify-content: space-between;
3233
+ }
3234
+
3235
+ /* A component that sets its display still honours the hidden attribute on its root. */
3236
+ [data-component~="ui-stack"][hidden][data-v-48cfa668] {
3237
+ display: none;
3238
+ }
3239
+
3240
+ [data-component~="ui-switch"][data-v-fb5ff799] {
3241
+ display: inline-flex;
3242
+ align-items: flex-start;
3243
+ gap: var(--ui-switch-gap, var(--ui-space-2));
3244
+ max-inline-size: 100%;
3245
+ color: var(--ui-text-primary);
3246
+ cursor: pointer;
3247
+ }
3248
+ .label[data-v-fb5ff799] {
3249
+ min-inline-size: 0;
3250
+ line-height: var(--ui-line-height-md);
3251
+ }
3252
+ input[data-v-fb5ff799] {
3253
+ appearance: none;
3254
+ -webkit-appearance: none;
3255
+ position: relative;
3256
+ flex: 0 0 auto;
3257
+ width: var(--ui-switch-track-width, 2.5rem);
3258
+ height: var(--ui-switch-track-height, 1.5rem);
3259
+ padding: 0;
3260
+ border: 1px solid var(--ui-control-border-hover, var(--ui-border-strong));
3261
+ border-radius: 999px;
3262
+ background: var(--ui-control-surface, var(--ui-surface-default));
3263
+ box-shadow: inset 0 1px 2px color-mix(in srgb, var(--ui-text-primary) 10%, transparent);
3264
+ cursor: pointer;
3265
+ transition: background-color var(--ui-motion-fast) var(--ui-motion-ease), border-color var(--ui-motion-fast) var(--ui-motion-ease);
3266
+ margin: 0;
3267
+ }
3268
+ input[data-v-fb5ff799]::after {
3269
+ content: "";
3270
+ position: absolute;
3271
+ top: 3px;
3272
+ left: 3px;
3273
+ width: 1rem;
3274
+ height: 1rem;
3275
+ border-radius: 999px;
3276
+ background: var(--ui-text-secondary);
3277
+ box-shadow: var(--ui-shadow-xs);
3278
+ transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
3279
+ }
3280
+ input[data-v-fb5ff799]:checked {
3281
+ background: var(--ui-accent-solid);
3282
+ border-color: var(--ui-accent-solid);
3283
+ }
3284
+ input[data-v-fb5ff799]:checked::after {
3285
+ transform: translateX(1rem);
3286
+ background: var(--ui-text-on-accent);
3287
+ }
3288
+ input[data-v-fb5ff799]:focus-visible {
3289
+ outline: 2px solid var(--ui-focus-ring, var(--ui-accent-solid));
3290
+ outline-offset: 2px;
3291
+ }
3292
+ [data-component~="ui-switch"][data-ui-switch-state~="disabled"][data-v-fb5ff799] {
3293
+ color: var(--ui-text-muted);
3294
+ cursor: not-allowed;
3295
+ }
3296
+ [data-component~="ui-switch"][data-ui-switch-state~="disabled"] input[data-v-fb5ff799] {
3297
+ border-color: var(--ui-border-default);
3298
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
3299
+ cursor: not-allowed;
3300
+ }
3301
+ @media (prefers-reduced-motion: reduce) {
3302
+ input[data-v-fb5ff799], input[data-v-fb5ff799]::after {
3303
+ transition: none;
3304
+ }
3305
+ }
3306
+
3307
+ /* A component that sets its display still honours the hidden attribute on its root. */
3308
+ [data-component~="ui-switch"][hidden][data-v-fb5ff799] {
3309
+ display: none;
3310
+ }
3311
+
3312
+ [data-component~="ui-switcher"][data-v-e2eb3fd3] {
3313
+ --_switcher-gap: var(--ui-space-4, 1rem);
3314
+ display: flex;
3315
+ flex-wrap: wrap;
3316
+ gap: var(--ui-switcher-gap, var(--_switcher-gap));
3317
+ min-inline-size: 0;
3318
+ max-inline-size: 100%;
3319
+ margin: 0;
3320
+ }
3321
+ [data-component~="ui-switcher"] > [data-v-e2eb3fd3-s] {
3322
+ min-inline-size: 0;
3323
+ flex-grow: 1;
3324
+ /* The large multiplier makes the basis flip as a group at the intrinsic threshold. */
3325
+ flex-basis: calc((var(--ui-switcher-threshold, 30rem) - 100%) * 999);
3326
+ }
3327
+ [data-component~="ui-switcher"][data-ui-switcher-state~="gap=xs"][data-v-e2eb3fd3] {
3328
+ --_switcher-gap: var(--ui-space-2, 0.5rem);
3329
+ }
3330
+ [data-component~="ui-switcher"][data-ui-switcher-state~="gap=s"][data-v-e2eb3fd3] {
3331
+ --_switcher-gap: var(--ui-space-3, 0.75rem);
3332
+ }
3333
+ [data-component~="ui-switcher"][data-ui-switcher-state~="gap=m"][data-v-e2eb3fd3] {
3334
+ --_switcher-gap: var(--ui-space-4, 1rem);
3335
+ }
3336
+ [data-component~="ui-switcher"][data-ui-switcher-state~="gap=l"][data-v-e2eb3fd3] {
3337
+ --_switcher-gap: var(--ui-space-5, 1.5rem);
3338
+ }
3339
+ [data-component~="ui-switcher"][data-ui-switcher-state~="gap=xl"][data-v-e2eb3fd3] {
3340
+ --_switcher-gap: var(--ui-space-6, 2rem);
3341
+ }
3342
+ [data-component~="ui-switcher"][data-ui-switcher-state~="threshold=xs"] > [data-v-e2eb3fd3-s] {
3343
+ flex-basis: calc((var(--ui-switcher-threshold, 20rem) - 100%) * 999);
3344
+ }
3345
+ [data-component~="ui-switcher"][data-ui-switcher-state~="threshold=md"] > [data-v-e2eb3fd3-s] {
3346
+ flex-basis: calc((var(--ui-switcher-threshold, 45rem) - 100%) * 999);
3347
+ }
3348
+ [data-component~="ui-switcher"][data-ui-switcher-state~="threshold=lg"] > [data-v-e2eb3fd3-s] {
3349
+ flex-basis: calc((var(--ui-switcher-threshold, 60rem) - 100%) * 999);
3350
+ }
3351
+ [data-component~="ui-switcher"][data-ui-switcher-state~="align=start"][data-v-e2eb3fd3] {
3352
+ align-items: flex-start;
3353
+ }
3354
+ [data-component~="ui-switcher"][data-ui-switcher-state~="align=center"][data-v-e2eb3fd3] {
3355
+ align-items: center;
3356
+ }
3357
+ [data-component~="ui-switcher"][data-ui-switcher-state~="align=end"][data-v-e2eb3fd3] {
3358
+ align-items: flex-end;
3359
+ }
3360
+
3361
+ /* A component that sets its display still honours the hidden attribute on its root. */
3362
+ [data-component~="ui-switcher"][hidden][data-v-e2eb3fd3] {
3363
+ display: none;
3364
+ }
3365
+
3366
+ [data-component~="ui-tabs"][data-v-33cbeff4] {
3367
+ display: grid;
3368
+ inline-size: 100%;
3369
+ min-inline-size: 0;
3370
+ }
3371
+ .list[data-v-33cbeff4] {
3372
+ display: grid;
3373
+ grid-auto-flow: column;
3374
+ grid-auto-columns: max-content;
3375
+ justify-content: start;
3376
+ inline-size: 100%;
3377
+ max-inline-size: 100%;
3378
+ /* Tabs that do not fit scroll sideways rather than wrapping or squeezing. */
3379
+ overflow-x: auto;
3380
+ /* overflow-x: auto would make the block axis scrollable too; a sideways swipe must not scroll the
3381
+ strip or the page vertically. */
3382
+ overflow-y: hidden;
3383
+ overscroll-behavior: contain;
3384
+ scrollbar-width: thin;
3385
+ border-block-end: 1px solid var(--ui-border-default);
3386
+ }
3387
+ .list button[data-v-33cbeff4] {
3388
+ min-block-size: 2.5rem;
3389
+ margin: 0 0 -1px;
3390
+ padding: var(--ui-space-2) var(--ui-space-3);
3391
+ border: 0;
3392
+ border-block-end: 2px solid transparent;
3393
+ background: transparent;
3394
+ color: var(--ui-text-secondary);
3395
+ font: inherit;
3396
+ font-size: var(--ui-font-size-sm);
3397
+ font-weight: var(--ui-font-medium, 500);
3398
+ cursor: pointer;
3399
+ transition:
3400
+ color var(--ui-motion-fast) var(--ui-motion-ease),
3401
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
3402
+ border-color var(--ui-motion-fast) var(--ui-motion-ease);
3403
+ }
3404
+ [data-component~="ui-tabs"][data-ui-tabs-state~="stretch"] .list[data-v-33cbeff4] {
3405
+ grid-auto-columns: minmax(max-content, 1fr);
3406
+ }
3407
+ .list button[data-v-33cbeff4] {
3408
+ white-space: nowrap;
3409
+ }
3410
+ .list button[data-v-33cbeff4]:hover {
3411
+ color: var(--ui-text-primary);
3412
+ background: var(--ui-surface-muted);
3413
+ }
3414
+ .list button[aria-selected="true"][data-v-33cbeff4] {
3415
+ color: var(--ui-accent-solid);
3416
+ border-block-end-color: var(--ui-accent-solid);
3417
+ }
3418
+ .list button[data-v-33cbeff4]:focus-visible {
3419
+ position: relative;
3420
+ outline: none;
3421
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--ui-focus-ring) 45%, transparent);
3422
+ border-radius: var(--ui-radius-1);
3423
+ }
3424
+ .panels[data-v-33cbeff4] {
3425
+ min-inline-size: 0;
3426
+ }
3427
+ [data-v-33cbeff4-s] {
3428
+ padding: var(--ui-space-4);
3429
+ }
3430
+ [data-component~="ui-tabs"][data-ui-tabs-state~="orientation=vertical"][data-v-33cbeff4] {
3431
+ grid-template-columns: max-content minmax(0, 1fr);
3432
+ align-items: start;
3433
+ }
3434
+ [data-component~="ui-tabs"][data-ui-tabs-state~="orientation=vertical"] .list[data-v-33cbeff4] {
3435
+ grid-auto-flow: row;
3436
+ grid-auto-columns: auto;
3437
+ border-block-end: 0;
3438
+ border-inline-end: 1px solid var(--ui-border-default);
3439
+ }
3440
+ [data-component~="ui-tabs"][data-ui-tabs-state~="orientation=vertical"] .list button[data-v-33cbeff4] {
3441
+ margin: 0 -1px 0 0;
3442
+ border-block-end: 0;
3443
+ border-inline-end: 2px solid transparent;
3444
+ text-align: start;
3445
+ }
3446
+ [data-component~="ui-tabs"][data-ui-tabs-state~="orientation=vertical"] .list button[aria-selected="true"][data-v-33cbeff4] {
3447
+ border-inline-end-color: var(--ui-accent-solid);
3448
+ }
3449
+ @media (prefers-reduced-motion: reduce) {
3450
+ .list button[data-v-33cbeff4] {
3451
+ transition: none;
3452
+ }
3453
+ }
3454
+
3455
+ /* A component that sets its display still honours the hidden attribute on its root. */
3456
+ [data-component~="ui-tabs"][hidden][data-v-33cbeff4] {
3457
+ display: none;
3458
+ }
3459
+
3460
+ [data-component~="ui-textarea"][data-v-f4e08b37] {
3461
+ box-sizing: border-box;
3462
+ display: inline-block;
3463
+ inline-size: 100%;
3464
+ min-inline-size: 0;
3465
+ min-block-size: calc(var(--ui-space-12, 3rem) * 2);
3466
+ margin: 0;
3467
+ padding: var(--ui-space-2) var(--ui-space-3);
3468
+ appearance: none;
3469
+ resize: vertical;
3470
+ border: 1px solid var(--ui-control-border, var(--ui-border-strong));
3471
+ border-radius: var(--ui-textarea-radius, var(--ui-radius-2));
3472
+ background: var(--ui-control-surface, var(--ui-surface-elevated));
3473
+ color: var(--ui-text-primary);
3474
+ font: inherit;
3475
+ line-height: var(--ui-line-height-md);
3476
+ box-shadow: var(--ui-textarea-shadow, var(--ui-control-inset));
3477
+ transition:
3478
+ border-color var(--ui-motion-fast) var(--ui-motion-ease),
3479
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
3480
+ background-color var(--ui-motion-fast) var(--ui-motion-ease);
3481
+ }
3482
+
3483
+ /* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
3484
+ [data-component~="ui-textarea"][data-v-f4e08b37]::selection {
3485
+ background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
3486
+ color: inherit;
3487
+ }
3488
+ [data-component~="ui-textarea"][data-v-f4e08b37]::placeholder {
3489
+ color: var(--ui-control-placeholder, var(--ui-text-secondary));
3490
+ opacity: 1;
3491
+ }
3492
+ [data-component~="ui-textarea"][data-v-f4e08b37]:hover:not(:focus):not(:disabled) {
3493
+ border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
3494
+ }
3495
+ [data-component~="ui-textarea"][data-v-f4e08b37]:focus-visible {
3496
+ border-color: var(--ui-control-focus, var(--ui-accent-solid));
3497
+ outline: none;
3498
+ box-shadow: var(--ui-textarea-focus-shadow, var(--ui-control-inset), var(--ui-control-focus-halo-shadow));
3499
+ }
3500
+
3501
+ /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
3502
+ [data-component~="ui-textarea"][aria-invalid="true"][data-v-f4e08b37],
3503
+ [data-component~="ui-textarea"][data-v-f4e08b37]:is(:user-invalid, [data-user-invalid]) {
3504
+ border-color: var(--ui-danger-solid);
3505
+ }
3506
+ [data-component~="ui-textarea"][data-v-f4e08b37]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
3507
+ box-shadow:
3508
+ var(--ui-control-inset),
3509
+ 0 0 0 3px color-mix(in srgb, var(--ui-danger-solid) 22%, transparent);
3510
+ }
3511
+ [data-component~="ui-textarea"][data-v-f4e08b37]:disabled {
3512
+ background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
3513
+ color: var(--ui-text-muted);
3514
+ box-shadow: none;
3515
+ cursor: not-allowed;
3516
+ }
3517
+
3518
+ /* A component that sets its display still honours the hidden attribute on its root. */
3519
+ [data-component~="ui-textarea"][hidden][data-v-f4e08b37] {
3520
+ display: none;
3521
+ }
3522
+
3523
+ [data-component~="ui-toast-region"][data-v-b607cf88] {
3524
+ position: fixed;
3525
+ top: calc(var(--ui-space-4) + env(safe-area-inset-top));
3526
+ right: auto;
3527
+ bottom: auto;
3528
+ left: 50%;
3529
+ transform: translateX(-50%);
3530
+ z-index: 9999;
3531
+ display: grid;
3532
+ gap: var(--ui-space-2);
3533
+ inline-size: min(24rem, calc(100vw - var(--ui-space-4) * 2));
3534
+ max-inline-size: 100%;
3535
+ box-sizing: border-box;
3536
+ margin: 0;
3537
+ padding: 0;
3538
+ overflow: visible;
3539
+ border: 0;
3540
+ outline: 0;
3541
+ background: transparent;
3542
+ box-shadow: none;
3543
+ pointer-events: none;
3544
+ }
3545
+ [data-component~="ui-toast-region"][data-v-b607cf88]:not(:popover-open) {
3546
+ display: none;
3547
+ }
3548
+ [data-component~="ui-toast-region"] > .toast[data-v-b607cf88],
3549
+ [data-component~="ui-toast-region"] > [data-v-b607cf88-s] {
3550
+ pointer-events: auto;
3551
+ }
3552
+ .toast[data-v-b607cf88] {
3553
+ display: grid;
3554
+ grid-template-columns: 1fr auto;
3555
+ gap: var(--ui-space-2);
3556
+ align-items: start;
3557
+ border: 1px solid var(--ui-border-default);
3558
+ border-radius: var(--ui-radius-3);
3559
+ padding: var(--ui-space-3) var(--ui-space-4);
3560
+ background: var(--ui-surface-elevated);
3561
+ color: var(--ui-text-primary);
3562
+ box-shadow: var(--ui-elevation-overlay, var(--ui-shadow-lg));
3563
+ animation: ui-toast-enter-b607cf88 var(--ui-toast-enter-duration, 0.32s) var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
3564
+ }
3565
+
3566
+ /* Leaving slides on down and fades; the controller removes the toast when this ends. */
3567
+ .toast.closing[data-v-b607cf88] {
3568
+ animation: ui-toast-exit-b607cf88 var(--ui-toast-exit-duration, 0.22s) var(--ui-motion-ease, ease) both;
3569
+ pointer-events: none;
3570
+ }
3571
+ @keyframes ui-toast-enter-b607cf88 {
3572
+ from {
3573
+ opacity: 0;
3574
+ transform: translateY(-1rem);
3575
+ }
3576
+ to {
3577
+ opacity: 1;
3578
+ transform: translateY(0);
3579
+ }
3580
+ }
3581
+ @keyframes ui-toast-exit-b607cf88 {
3582
+ from {
3583
+ opacity: 1;
3584
+ transform: translateY(0);
3585
+ }
3586
+ to {
3587
+ opacity: 0;
3588
+ transform: translateY(0.75rem);
3589
+ }
3590
+ }
3591
+ @media (prefers-reduced-motion: reduce) {
3592
+ .toast[data-v-b607cf88], .toast.closing[data-v-b607cf88] {
3593
+ animation: none;
3594
+ }
3595
+ }
3596
+ .message[data-v-b607cf88] {
3597
+ min-inline-size: 0;
3598
+ align-self: center;
3599
+ }
3600
+ .dismiss[data-v-b607cf88] {
3601
+ align-self: center;
3602
+ margin-inline-end: calc(var(--ui-space-2) * -1);
3603
+ }
3604
+
3605
+ /* A component that sets its display still honours the hidden attribute on its root. */
3606
+ [data-component~="ui-toast-region"][hidden][data-v-b607cf88] {
3607
+ display: none;
3608
+ }
3609
+
3610
+ [data-component~="ui-top-bar"][data-v-ee7c5f3c] {
3611
+ position: sticky;
3612
+ inset-block-start: 0;
3613
+ z-index: var(--ui-top-bar-z-index, 100);
3614
+ min-block-size: calc(var(--ui-top-bar-height, 56px) + env(safe-area-inset-top));
3615
+ display: flex;
3616
+ align-items: center;
3617
+ gap: var(--ui-top-bar-gap, var(--ui-space-3, 0.75rem));
3618
+ padding-block-start: env(safe-area-inset-top);
3619
+ padding-inline-start: max(var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-left));
3620
+ padding-inline-end: max(var(--ui-top-bar-padding-inline, var(--ui-space-4, 1rem)), env(safe-area-inset-right));
3621
+ background: var(--ui-top-bar-bg, var(--ui-surface-elevated));
3622
+ border-block-end: 1px solid var(--ui-top-bar-border, var(--ui-border-default));
3623
+ }
3624
+ .leading[data-v-ee7c5f3c],
3625
+ .search[data-v-ee7c5f3c],
3626
+ .actions[data-v-ee7c5f3c] {
3627
+ display: flex;
3628
+ align-items: center;
3629
+ flex-shrink: 0;
3630
+ }
3631
+ .actions[data-v-ee7c5f3c] {
3632
+ gap: var(--ui-top-bar-actions-gap, var(--ui-space-1, 0.25rem));
3633
+ }
3634
+ .title[data-v-ee7c5f3c] {
3635
+ min-inline-size: 0;
3636
+ flex: 1;
3637
+ }
3638
+
3639
+ /* An unused region takes no space, so it adds no gap. */
3640
+ .leading[data-v-ee7c5f3c]:empty,
3641
+ .search[data-v-ee7c5f3c]:empty,
3642
+ .actions[data-v-ee7c5f3c]:empty {
3643
+ display: none;
3644
+ }
3645
+
3646
+ /* A component that sets its display still honours the hidden attribute on its root. */
3647
+ [data-component~="ui-top-bar"][hidden][data-v-ee7c5f3c] {
3648
+ display: none;
3649
+ }
3650
+
3651
+ [data-component~="ui-tree"][data-v-fbd119c9] {
3652
+ display: block;
3653
+ min-inline-size: 0;
3654
+ padding-inline-start: var(--ui-tree-gutter, 0px);
3655
+ }
3656
+
3657
+ /* A component that sets its display still honours the hidden attribute on its root. */
3658
+ [data-component~="ui-tree"][hidden][data-v-fbd119c9] {
3659
+ display: none;
3660
+ }
3661
+
3662
+ [data-component~="ui-tree-item"][data-v-7617a58a] {
3663
+ --_tree-row-min-height: 32px;
3664
+
3665
+ position: relative;
3666
+ display: block;
3667
+ min-inline-size: 0;
3668
+ margin-inline-start: calc(var(--ui-tree-item-depth, 0) * var(--ui-tree-indent, 16px));
3669
+ }
3670
+ .row[data-v-7617a58a] {
3671
+ position: relative;
3672
+ display: grid;
3673
+ grid-template-columns: 20px auto minmax(0, 1fr) auto;
3674
+ align-items: center;
3675
+ min-block-size: var(--ui-tree-row-min-height, var(--_tree-row-min-height));
3676
+ min-inline-size: 0;
3677
+ font-size: var(--ui-tree-font-size, var(--ui-font-size-ui, 0.9375rem));
3678
+ border-radius: var(--ui-radius-md);
3679
+ color: var(--ui-text-secondary);
3680
+ transition:
3681
+ background-color var(--ui-motion-fast) var(--ui-motion-ease),
3682
+ color var(--ui-motion-fast) var(--ui-motion-ease),
3683
+ opacity var(--ui-motion-fast) var(--ui-motion-ease),
3684
+ box-shadow var(--ui-motion-fast) var(--ui-motion-ease),
3685
+ min-block-size var(--ui-motion-base) var(--ui-motion-ease);
3686
+ }
3687
+ .row[data-v-7617a58a]:hover,
3688
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="selected"] .row[data-v-7617a58a],
3689
+ .row[data-v-7617a58a]:focus-within {
3690
+ color: var(--ui-text-primary);
3691
+ background: var(--ui-surface-muted);
3692
+ }
3693
+ [data-component~="ui-tree-item"][data-ui-tree-item-state~="disabled"] .row[data-v-7617a58a] {
3694
+ opacity: 0.55;
3695
+ }
3696
+ [data-component~="ui-tree-item"][data-dragging] .row[data-v-7617a58a] {
3697
+ opacity: 0.42;
3698
+ }
3699
+ [data-component~="ui-tree-item"][data-v-7617a58a]:focus {
3700
+ outline: none;
3701
+ }
3702
+ [data-component~="ui-tree-item"]:focus-visible .row[data-v-7617a58a] {
3703
+ box-shadow: 0 0 0 2px var(--ui-focus-ring);
3704
+ }
3705
+ [data-component~="ui-tree-item"][data-drop-position="inside"] .row[data-v-7617a58a] {
3706
+ background: var(--ui-accent-subtle);
3707
+ box-shadow: inset 0 0 0 1px var(--ui-tree-drop-color, var(--ui-accent-solid));
3708
+ }
3709
+ .disclosure[data-v-7617a58a],
3710
+ .disclosure-spacer[data-v-7617a58a] {
3711
+ grid-column: 1;
3712
+ grid-row: 1;
3713
+ inline-size: 20px;
3714
+ block-size: 28px;
3715
+ }
3716
+ .disclosure[data-v-7617a58a] {
3717
+ display: grid;
3718
+ place-items: center;
3719
+ padding: 0;
3720
+ color: var(--ui-text-muted);
3721
+ background: transparent;
3722
+ border: 0;
3723
+ border-radius: var(--ui-radius-sm);
3724
+ cursor: pointer;
3725
+ }
3726
+ .disclosure[hidden][data-v-7617a58a] {
3727
+ display: none;
3728
+ }
3729
+ .disclosure[data-v-7617a58a]:hover {
3730
+ color: var(--ui-text-primary);
3731
+ background: var(--ui-surface-elevated);
3732
+ }
3733
+ .disclosure-icon[data-v-7617a58a] {
3734
+ display: grid;
3735
+ place-items: center;
3736
+ inline-size: 14px;
3737
+ block-size: 14px;
3738
+ transform: rotate(-90deg);
3739
+ transition: transform var(--ui-motion-fast) var(--ui-motion-ease);
3740
+ }
3741
+ .disclosure-icon[data-v-7617a58a]::before {
3742
+ display: block;
3743
+ inline-size: 0.45rem;
3744
+ block-size: 0.45rem;
3745
+ border-inline-end: 2px solid currentColor;
3746
+ border-block-end: 2px solid currentColor;
3747
+ content: "";
3748
+ /* A chevron's ink sits below its box centre; lift it so it centres optically (in either rotation). */
3749
+ transform: translateY(-20%) rotate(45deg);
3750
+ }
3751
+ [data-component~="ui-tree-item"][aria-expanded="true"] .disclosure-icon[data-v-7617a58a] {
3752
+ transform: rotate(0deg);
3753
+ }
3754
+
3755
+ /* Lucide grip-vertical, filling the handle as in Looma 0.2. */
3756
+ .drag-handle svg[data-v-7617a58a] {
3757
+ display: block;
3758
+ inline-size: 100%;
3759
+ block-size: 100%;
3760
+ }
3761
+
3762
+ /* Slotted content is outside this scope, so :has() cannot see it; hide only a truly empty slot. */
3763
+ .leading[data-v-7617a58a] {
3764
+ display: inline-grid;
3765
+ place-items: center;
3766
+ grid-column: 2;
3767
+ grid-row: 1;
3768
+ inline-size: 1em;
3769
+ block-size: 1em;
3770
+ margin-inline-start: var(--ui-space-1);
3771
+ color: var(--ui-text-muted);
3772
+ }
3773
+ .leading[data-v-7617a58a]:empty {
3774
+ display: none;
3775
+ }
3776
+
3777
+ /* Icons match the label's size (as in Knit's tree): an unsized SVG would otherwise render 300×150. */
3778
+ svg[data-v-7617a58a-s],img[data-v-7617a58a-s] {
3779
+ display: block;
3780
+ inline-size: 1em;
3781
+ block-size: 1em;
3782
+ flex: none;
3783
+ }
3784
+ .label[data-v-7617a58a] {
3785
+ grid-column: 3;
3786
+ grid-row: 1;
3787
+ min-inline-size: 0;
3788
+ padding: var(--ui-space-1) var(--ui-space-2);
3789
+ }
3790
+ .actions[data-v-7617a58a] {
3791
+ grid-column: 4;
3792
+ grid-row: 1;
3793
+ display: inline-flex;
3794
+ align-items: center;
3795
+ min-inline-size: 0;
3796
+ }
3797
+ .drag-handle[data-v-7617a58a] {
3798
+ position: absolute;
3799
+ z-index: 2;
3800
+ inset-block-start: 50%;
3801
+ inset-inline-start: -22px;
3802
+ inline-size: 20px;
3803
+ block-size: 32px;
3804
+ display: grid;
3805
+ place-items: center;
3806
+ padding: 7px 3px;
3807
+ color: var(--ui-text-muted);
3808
+ background: var(--ui-surface-elevated);
3809
+ border: 1px solid transparent;
3810
+ border-radius: var(--ui-radius-sm);
3811
+ cursor: grab;
3812
+ /* Hidden until the row is hovered, but always hittable: the handle sits outside the row, and moving
3813
+ the pointer onto it must not hide it on the way. */
3814
+ opacity: 0;
3815
+ transform: translateY(-50%);
3816
+ transition: opacity var(--ui-motion-fast) var(--ui-motion-ease);
3817
+ }
3818
+ .row:hover .drag-handle[data-v-7617a58a],
3819
+ .drag-handle[data-v-7617a58a]:hover,
3820
+ .drag-handle[data-v-7617a58a]:focus-visible,
3821
+ [data-component~="ui-tree-item"][data-dragging] .drag-handle[data-v-7617a58a] {
3822
+ opacity: 1;
3823
+ }
3824
+ .drag-handle[data-v-7617a58a]:active {
3825
+ cursor: grabbing;
3826
+ }
3827
+ .drop-indicator[data-v-7617a58a] {
3828
+ position: absolute;
3829
+ z-index: 3;
3830
+ inset-inline: 1px;
3831
+ display: none;
3832
+ block-size: 2px;
3833
+ border-radius: 999px;
3834
+ background: var(--ui-tree-drop-color, var(--ui-accent-solid));
3835
+ pointer-events: none;
3836
+ }
3837
+ .drop-indicator[data-v-7617a58a]::before,
3838
+ .drop-indicator[data-v-7617a58a]::after {
3839
+ content: "";
3840
+ position: absolute;
3841
+ inset-block-start: 50%;
3842
+ inline-size: 7px;
3843
+ block-size: 7px;
3844
+ border: 2px solid var(--ui-tree-drop-color, var(--ui-accent-solid));
3845
+ border-radius: 999px;
3846
+ background: var(--ui-surface-elevated);
3847
+ transform: translateY(-50%);
3848
+ }
3849
+ .drop-indicator[data-v-7617a58a]::before {
3850
+ inset-inline-start: -1px;
3851
+ }
3852
+ .drop-indicator[data-v-7617a58a]::after {
3853
+ inset-inline-end: -1px;
3854
+ }
3855
+ [data-component~="ui-tree-item"][data-drop-position="before"] .row-drop-indicator[data-v-7617a58a] {
3856
+ display: block;
3857
+ inset-block-start: -1px;
3858
+ }
3859
+ [data-component~="ui-tree-item"][data-drop-position="after"] .subtree-drop-indicator[data-v-7617a58a] {
3860
+ display: block;
3861
+ inset-block-end: -1px;
3862
+ }
3863
+ .children[hidden][data-v-7617a58a] {
3864
+ display: none;
3865
+ }
3866
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"][data-v-7617a58a] {
3867
+ --_tree-row-min-height: 44px;
3868
+ }
3869
+ html[data-ui-input-modality="touch"] [data-component~="ui-tree-item"] .drag-handle[data-v-7617a58a] {
3870
+ display: none;
3871
+ }
3872
+ @media (prefers-reduced-motion: reduce) {
3873
+ .row[data-v-7617a58a],
3874
+ .disclosure-icon[data-v-7617a58a],
3875
+ .drag-handle[data-v-7617a58a] {
3876
+ transition: none;
3877
+ }
3878
+ }
3879
+
3880
+ /* A component that sets its display still honours the hidden attribute on its root. */
3881
+ [data-component~="ui-tree-item"][hidden][data-v-7617a58a] {
3882
+ display: none;
3883
+ }
3884
+ /**
3885
+ * Looma editor styles (tokens-based).
3886
+ * Tables, context menu, insert-table grid, slash menu. Use with ProseMirror/Tiptap content.
3887
+ */
3888
+
3889
+ /* Turnkey editor */
3890
+ .looma-editor {
3891
+ position: relative;
3892
+ min-width: 0;
3893
+ color: var(--ui-text-primary);
3894
+ font-family: var(--ui-font-family-sans);
3895
+ }
3896
+
3897
+ .looma-editor .ProseMirror {
3898
+ min-height: var(--ui-editor-content-min-height, 300px);
3899
+ padding:
3900
+ var(--ui-editor-content-padding-block, var(--ui-space-4))
3901
+ var(--ui-editor-content-padding-inline, var(--ui-space-6));
3902
+ outline: none;
3903
+ color: var(--ui-editor-content-color, var(--ui-text-primary));
3904
+ caret-color: var(--ui-editor-caret-color, var(--ui-accent-solid));
3905
+ font-family: var(--ui-editor-font-family, var(--ui-font-family-sans));
3906
+ font-size: var(--ui-editor-font-size, var(--ui-font-size-md));
3907
+ line-height: var(--ui-editor-line-height, var(--ui-line-height-relaxed));
3908
+ }
3909
+
3910
+ @media (max-width: 767px) {
3911
+ .looma-editor .ProseMirror {
3912
+ padding-bottom: var(--ui-editor-mobile-bottom-space, 80px);
3913
+ }
3914
+ }
3915
+
3916
+ .looma-editor .ProseMirror p {
3917
+ margin: 0 0 var(--ui-editor-paragraph-gap, var(--ui-space-3));
3918
+ }
3919
+
3920
+ .looma-editor .ProseMirror h1,
3921
+ .looma-editor .ProseMirror h2,
3922
+ .looma-editor .ProseMirror h3 {
3923
+ color: inherit;
3924
+ line-height: var(--ui-line-height-tight);
3925
+ }
3926
+
3927
+ .looma-editor .ProseMirror h1 {
3928
+ margin: var(--ui-space-6) 0 var(--ui-space-3);
3929
+ font-size: var(--ui-font-size-2xl);
3930
+ font-weight: var(--ui-font-bold);
3931
+ }
3932
+
3933
+ .looma-editor .ProseMirror h2 {
3934
+ margin: var(--ui-space-5) 0 var(--ui-space-2);
3935
+ font-size: var(--ui-font-size-xl);
3936
+ font-weight: var(--ui-font-semibold);
3937
+ }
3938
+
3939
+ .looma-editor .ProseMirror h3 {
3940
+ margin: var(--ui-space-4) 0 var(--ui-space-2);
3941
+ font-size: var(--ui-font-size-lg);
3942
+ font-weight: var(--ui-font-semibold);
3943
+ }
3944
+
3945
+ .looma-editor .ProseMirror ul,
3946
+ .looma-editor .ProseMirror ol {
3947
+ margin: 0 0 var(--ui-space-3);
3948
+ /* Nested lists retain the browser's hierarchy; this is only the root inset. */
3949
+ padding-inline-start: var(--ui-editor-list-inset, var(--ui-space-5));
3950
+ }
3951
+
3952
+ .looma-editor .ProseMirror li {
3953
+ margin-bottom: var(--ui-space-1);
3954
+ }
3955
+
3956
+ .looma-editor .ProseMirror blockquote {
3957
+ margin: var(--ui-space-4) 0;
3958
+ padding-left: var(--ui-space-4);
3959
+ border-left: 3px solid var(--ui-accent-solid);
3960
+ color: var(--ui-text-secondary);
3961
+ font-style: italic;
3962
+ }
3963
+
3964
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone] {
3965
+ --ui-callout-padding-block: var(--ui-space-2);
3966
+ --ui-callout-padding-inline: var(--ui-space-3);
3967
+ --ui-callout-icon-column: 1rem;
3968
+ --ui-callout-gap: var(--ui-space-2);
3969
+ --ui-callout-icon-size: 1rem;
3970
+ --ui-callout-border-width: 1px;
3971
+ --ui-callout-leading-border-width: 4px;
3972
+ --ui-callout-surface: var(--ui-accent-soft);
3973
+ --ui-callout-text: var(--ui-text-primary);
3974
+ --ui-callout-border: var(--ui-accent-solid);
3975
+ --ui-callout-icon: var(--ui-accent-solid);
3976
+ --ui-editor-callout-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4'/%3E%3Cpath d='M2 6h4'/%3E%3Cpath d='M2 10h4'/%3E%3Cpath d='M2 14h4'/%3E%3Cpath d='M2 18h4'/%3E%3Cpath d='M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z'/%3E%3C/svg%3E");
3977
+
3978
+ display: grid;
3979
+ grid-template-columns: var(--ui-callout-icon-column) minmax(0, 1fr);
3980
+ align-items: start;
3981
+ column-gap: var(--ui-callout-gap);
3982
+ margin: var(--ui-space-4) 0;
3983
+ padding: var(--ui-callout-padding-block) var(--ui-callout-padding-inline);
3984
+ border: var(--ui-callout-border-width) solid color-mix(in srgb, var(--ui-callout-border) 35%, transparent);
3985
+ border-inline-start: var(--ui-callout-leading-border-width) solid var(--ui-callout-border);
3986
+ border-radius: var(--ui-radius-2);
3987
+ background: var(--ui-callout-surface);
3988
+ color: var(--ui-callout-text);
3989
+ }
3990
+
3991
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone]::before {
3992
+ width: var(--ui-callout-icon-size);
3993
+ height: var(--ui-callout-icon-size);
3994
+ margin-top: 0.2em;
3995
+ background: var(--ui-callout-icon);
3996
+ content: "";
3997
+ mask: var(--ui-editor-callout-icon) center / contain no-repeat;
3998
+ -webkit-mask: var(--ui-editor-callout-icon) center / contain no-repeat;
3999
+ }
4000
+
4001
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone] > * {
4002
+ grid-column: 2;
4003
+ }
4004
+
4005
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone] > :last-child {
4006
+ margin-bottom: 0;
4007
+ }
4008
+
4009
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone="info"] {
4010
+ --ui-callout-surface: var(--ui-info-soft);
4011
+ --ui-callout-border: var(--ui-info-solid);
4012
+ --ui-callout-icon: var(--ui-info-solid);
4013
+ --ui-editor-callout-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4'/%3E%3Cpath d='M12 8h.01'/%3E%3C/svg%3E");
4014
+ }
4015
+
4016
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone="note"] {
4017
+ --ui-callout-surface: var(--ui-accent-soft);
4018
+ --ui-callout-border: var(--ui-accent-solid);
4019
+ --ui-callout-icon: var(--ui-accent-solid);
4020
+ }
4021
+
4022
+ .looma-editor .ProseMirror aside[data-looma-callout][data-tone="warning"] {
4023
+ --ui-callout-surface: var(--ui-warning-soft);
4024
+ --ui-callout-border: var(--ui-warning-solid);
4025
+ --ui-callout-icon: var(--ui-warning-solid);
4026
+ --ui-editor-callout-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21.73 18-8-14a2 2 0 0 0-3.46 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3'/%3E%3Cpath d='M12 9v4'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E");
4027
+ }
4028
+
4029
+ .looma-editor .ProseMirror pre {
4030
+ margin: var(--ui-space-4) 0;
4031
+ padding: var(--ui-space-4);
4032
+ overflow-x: auto;
4033
+ border: 1px solid var(--ui-border-default);
4034
+ border-radius: var(--ui-radius-2);
4035
+ background: var(--ui-surface-muted);
4036
+ font-family: var(--ui-font-family-mono, ui-monospace, monospace);
4037
+ font-size: var(--ui-font-size-sm);
4038
+ }
4039
+
4040
+ .looma-editor .ProseMirror code {
4041
+ padding: 0.1em 0.3em;
4042
+ border-radius: var(--ui-radius-1);
4043
+ background: var(--ui-surface-subtle);
4044
+ font-family: var(--ui-font-family-mono, ui-monospace, monospace);
4045
+ font-size: 0.9em;
4046
+ }
4047
+
4048
+ .looma-editor .ProseMirror pre code {
4049
+ padding: 0;
4050
+ background: none;
4051
+ }
4052
+
4053
+ .looma-editor .ProseMirror hr {
4054
+ margin: var(--ui-space-6) 0;
4055
+ border: 0;
4056
+ border-top: 1px solid var(--ui-border-default);
4057
+ }
4058
+
4059
+ .looma-editor .ProseMirror mark {
4060
+ border-radius: var(--ui-radius-1);
4061
+ background: var(--ui-editor-highlight-bg, var(--ui-warning-soft));
4062
+ }
4063
+
4064
+ .looma-editor .ProseMirror a {
4065
+ color: var(--ui-editor-link-color, var(--ui-accent-solid));
4066
+ text-decoration: underline;
4067
+ }
4068
+
4069
+ .looma-editor .ProseMirror ul[data-type="taskList"] {
4070
+ padding-left: var(--ui-space-2);
4071
+ list-style: none;
4072
+ }
4073
+
4074
+ .looma-editor .ProseMirror ul[data-type="taskList"] li {
4075
+ display: flex;
4076
+ align-items: flex-start;
4077
+ gap: var(--ui-space-2);
4078
+ }
4079
+
4080
+ .looma-editor .ProseMirror ul[data-type="taskList"] li > label {
4081
+ margin-top: 3px;
4082
+ }
4083
+
4084
+ .looma-editor .ProseMirror ul[data-type="taskList"] input[type="checkbox"] {
4085
+ width: 16px;
4086
+ height: 16px;
4087
+ accent-color: var(--ui-accent-solid);
4088
+ cursor: pointer;
4089
+ }
4090
+
4091
+ .looma-editor .ProseMirror .is-editor-empty:first-child::before {
4092
+ float: left;
4093
+ height: 0;
4094
+ color: var(--ui-text-muted);
4095
+ content: attr(data-placeholder);
4096
+ pointer-events: none;
4097
+ }
4098
+
4099
+ .looma-editor .ProseMirror img {
4100
+ max-width: 100%;
4101
+ height: auto;
4102
+ margin: var(--ui-space-3) 0;
4103
+ border-radius: var(--ui-radius-2);
4104
+ }
4105
+
4106
+ .looma-editor .ProseMirror img[data-looma-image]:focus-visible {
4107
+ outline: 2px solid var(--ui-focus-ring);
4108
+ outline-offset: 3px;
4109
+ }
4110
+
4111
+ .looma-editor__file-input {
4112
+ position: absolute;
4113
+ width: 0;
4114
+ height: 0;
4115
+ opacity: 0;
4116
+ pointer-events: none;
4117
+ }
4118
+
4119
+ .looma-editor__upload-error {
4120
+ display: flex;
4121
+ align-items: center;
4122
+ justify-content: space-between;
4123
+ gap: var(--ui-space-3);
4124
+ margin-top: var(--ui-space-3);
4125
+ padding: var(--ui-space-2) var(--ui-space-3);
4126
+ border: 1px solid var(--ui-danger-solid);
4127
+ border-radius: var(--ui-radius-2);
4128
+ background: var(--ui-danger-soft);
4129
+ color: var(--ui-text);
4130
+ font-size: var(--ui-font-size-sm);
4131
+ }
4132
+
4133
+ .looma-editor__upload-error button {
4134
+ min-height: 2rem;
4135
+ padding: 0 var(--ui-space-3);
4136
+ border: 0;
4137
+ border-radius: var(--ui-radius-1);
4138
+ background: var(--ui-danger-solid);
4139
+ color: var(--ui-text-on-accent);
4140
+ cursor: pointer;
4141
+ font: inherit;
4142
+ font-weight: var(--ui-font-semibold);
4143
+ }
4144
+
4145
+ .looma-editor__upload-error button:focus-visible {
4146
+ outline: 2px solid var(--ui-focus-ring);
4147
+ outline-offset: 2px;
4148
+ }
4149
+
4150
+ .looma-editor__upload-error button:disabled {
4151
+ cursor: wait;
4152
+ opacity: 0.65;
4153
+ }
4154
+
4155
+ .looma-editor__drop-overlay {
4156
+ position: absolute;
4157
+ z-index: var(--ui-editor-drop-overlay-z-index, 10);
4158
+ inset: 0;
4159
+ display: flex;
4160
+ flex-direction: column;
4161
+ align-items: center;
4162
+ justify-content: center;
4163
+ gap: var(--ui-space-3);
4164
+ border: 2px dashed var(--ui-accent-solid);
4165
+ border-radius: var(--ui-radius-2);
4166
+ background: color-mix(in srgb, var(--ui-accent-soft) 92%, transparent);
4167
+ color: var(--ui-accent-active);
4168
+ font-size: var(--ui-font-size-sm);
4169
+ font-weight: var(--ui-font-semibold);
4170
+ pointer-events: none;
4171
+ }
4172
+
4173
+ .looma-editor__drop-overlay > .looma-icon {
4174
+ width: var(--ui-font-size-2xl);
4175
+ height: var(--ui-font-size-2xl);
4176
+ stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
4177
+ }
4178
+
4179
+ .looma-editor__toolbar-button {
4180
+ --ui-icon-button-size-sm: var(--ui-editor-toolbar-button-size, 2rem);
4181
+ --ui-icon-button-radius: var(--ui-editor-toolbar-button-radius, var(--ui-radius-1));
4182
+ --ui-icon-button-icon-size: var(--ui-editor-toolbar-icon-size, 1rem);
4183
+ }
4184
+
4185
+ .looma-editor__toolbar-button > .looma-icon {
4186
+ width: var(--ui-editor-toolbar-icon-size, 1rem);
4187
+ height: var(--ui-editor-toolbar-icon-size, 1rem);
4188
+ stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
4189
+ }
4190
+
4191
+ .looma-editor__sticky-toolbar-shell {
4192
+ position: sticky;
4193
+ top: var(--ui-editor-sticky-toolbar-top, 0);
4194
+ z-index: var(--ui-editor-toolbar-z-index, 10);
4195
+ min-width: 0;
4196
+ background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
4197
+ border-bottom: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
4198
+ }
4199
+
4200
+ .looma-editor__table-picker-popover,
4201
+ .looma-editor__table-toolbar-shell,
4202
+ .looma-editor__table-menu-shell {
4203
+ z-index: var(--ui-editor-popover-z-index, 300);
4204
+ }
4205
+
4206
+ .looma-editor__table-picker-popover {
4207
+ min-width: 220px;
4208
+ padding: 0;
4209
+ border: 0;
4210
+ background: transparent;
4211
+ }
4212
+
4213
+ .looma-editor__table-toolbar-shell,
4214
+ .looma-editor__table-menu-shell,
4215
+ .looma-editor__table-overlay-shell {
4216
+ position: fixed;
4217
+ }
4218
+
4219
+ .looma-editor__mobile-toolbar-shell {
4220
+ position: fixed;
4221
+ z-index: var(--ui-editor-mobile-toolbar-z-index, var(--ui-editor-popover-z-index, 300));
4222
+ display: flex;
4223
+ align-items: stretch;
4224
+ min-height: var(--ui-editor-toolbar-mobile-min-height, 56px);
4225
+ padding:
4226
+ var(--ui-editor-mobile-toolbar-padding-block, 4px)
4227
+ max(var(--ui-editor-mobile-toolbar-padding-inline, 8px), env(safe-area-inset-left));
4228
+ overflow-x: auto;
4229
+ overflow-y: hidden;
4230
+ overscroll-behavior-inline: contain;
4231
+ -webkit-overflow-scrolling: touch;
4232
+ scroll-snap-type: x mandatory;
4233
+ scrollbar-width: none;
4234
+ background: var(--ui-editor-toolbar-bg, var(--ui-surface, #fff));
4235
+ border-top: 1px solid var(--ui-editor-toolbar-border, var(--ui-border, #e5e7eb));
4236
+ box-shadow: var(--ui-editor-toolbar-mobile-shadow, 0 -2px 8px rgb(0 0 0 / 0.06));
4237
+ }
4238
+
4239
+ .looma-editor__mobile-toolbar-shell::-webkit-scrollbar {
4240
+ display: none;
4241
+ }
4242
+
4243
+ .looma-editor__mobile-toolbar-shell > *,
4244
+ .looma-editor__mobile-toolbar-shell button {
4245
+ flex: 0 0 auto;
4246
+ scroll-snap-align: start;
4247
+ }
4248
+
4249
+ .looma-editor__mobile-toolbar-shell .looma-editor__toolbar-button {
4250
+ --ui-icon-button-size-sm: var(--ui-editor-toolbar-mobile-button-size, 44px);
4251
+ }
4252
+
4253
+ .looma-editor__mobile-toolbar-back {
4254
+ display: inline-flex;
4255
+ align-items: center;
4256
+ justify-content: center;
4257
+ gap: var(--ui-space-1-5, 6px);
4258
+ min-width: 44px;
4259
+ min-height: 44px;
4260
+ padding: 0 var(--ui-space-3, 12px);
4261
+ border: 0;
4262
+ border-radius: var(--ui-radius-md, 6px);
4263
+ background: transparent;
4264
+ color: var(--ui-text-secondary, #4b5563);
4265
+ cursor: pointer;
4266
+ font: inherit;
4267
+ white-space: nowrap;
4268
+ }
4269
+
4270
+ .looma-editor__mobile-toolbar-back .looma-icon {
4271
+ width: 1rem;
4272
+ height: 1rem;
4273
+ stroke-width: var(--ui-editor-toolbar-icon-stroke-width, 1.75);
4274
+ }
4275
+
4276
+ .looma-editor__mobile-toolbar-back:is(:hover, :focus-visible) {
4277
+ background: var(--ui-surface-hover, #f3f4f6);
4278
+ color: var(--ui-text-primary, #111827);
4279
+ }
4280
+
4281
+ .looma-editor__table-overlay-shell {
4282
+ z-index: var(--ui-editor-overlay-z-index, 299);
4283
+ overflow: visible;
4284
+ pointer-events: none;
4285
+ }
4286
+
4287
+ .looma-editor .ProseMirror .looma-mention {
4288
+ padding: 0.08em 0.28em;
4289
+ color: var(--ui-editor-mention-color, var(--ui-accent-active, var(--ui-accent-solid)));
4290
+ background: var(--ui-editor-mention-bg, var(--ui-accent-soft, var(--ui-accent-subtle)));
4291
+ border-radius: var(--ui-radius-sm, 4px);
4292
+ font-weight: var(--ui-font-medium, 500);
4293
+ white-space: nowrap;
4294
+ }
4295
+
4296
+ .ProseMirror .tableWrapper {
4297
+ max-width: 100%;
4298
+ overflow-x: auto;
4299
+ overflow-y: visible;
4300
+ overscroll-behavior-inline: contain;
4301
+ -webkit-overflow-scrolling: touch;
4302
+ }
4303
+
4304
+ /* ProseMirror table (for when Looma editor content is rendered) */
4305
+ .ProseMirror:focus-visible {
4306
+ outline: none;
4307
+ box-shadow: none;
4308
+ }
4309
+
4310
+ .ProseMirror table {
4311
+ border-collapse: collapse;
4312
+ margin: 0;
4313
+ width: max-content !important;
4314
+ min-width: 100%;
4315
+ max-width: none !important;
4316
+ table-layout: fixed;
4317
+ }
4318
+
4319
+ .ProseMirror table.ProseMirror-selectednode,
4320
+ .ProseMirror .tableWrapper.ProseMirror-selectednode {
4321
+ outline: none;
4322
+ }
4323
+
4324
+ .ProseMirror th,
4325
+ .ProseMirror td {
4326
+ position: relative;
4327
+ border: 1px solid var(--ui-border, #e5e7eb);
4328
+ padding: var(--ui-space-2, 8px) var(--ui-space-3, 12px);
4329
+ vertical-align: top;
4330
+ min-width: var(--ui-editor-table-cell-min-width, 112px);
4331
+ text-align: left;
4332
+ overflow-wrap: anywhere;
4333
+ }
4334
+
4335
+ .ProseMirror :is(th, td) > p, .looma-editor .ProseMirror :is(th, td) > p {
4336
+ margin: 0;
4337
+ }
4338
+
4339
+ .ProseMirror :is(th, td) > p + p, .looma-editor .ProseMirror :is(th, td) > p + p {
4340
+ margin-top: var(--ui-editor-table-paragraph-gap, var(--ui-space-2, 8px));
4341
+ }
4342
+
4343
+ .ProseMirror th {
4344
+ font-weight: 600;
4345
+ background: var(--ui-surface-hover, #f3f4f6);
4346
+ }
4347
+
4348
+ .ProseMirror .selectedCell {
4349
+ background: var(--ui-accent-subtle, rgba(59, 130, 246, 0.1));
4350
+ }
4351
+
4352
+ .ProseMirror .column-resize-handle {
4353
+ position: absolute;
4354
+ z-index: 3;
4355
+ right: -5px;
4356
+ top: 0;
4357
+ bottom: 0;
4358
+ width: 10px;
4359
+ cursor: col-resize;
4360
+ background: transparent;
4361
+ touch-action: none;
4362
+ }
4363
+
4364
+ .ProseMirror .column-resize-handle::after {
4365
+ content: "";
4366
+ position: absolute;
4367
+ inset-block: 0;
4368
+ inset-inline-start: 4px;
4369
+ width: 2px;
4370
+ border-radius: var(--ui-radius-round, 999px);
4371
+ background: color-mix(in srgb, var(--ui-affordance-near-color, var(--ui-border-strong, #c8c8c4)) 72%, transparent);
4372
+ transition:
4373
+ width var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease),
4374
+ background-color var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
4375
+ }
4376
+
4377
+ .ProseMirror .column-resize-handle:hover::after,
4378
+ .ProseMirror.resize-cursor .column-resize-handle::after {
4379
+ width: 3px;
4380
+ background: var(--ui-affordance-direct-color, var(--ui-accent-solid, #5b55d6));
4381
+ }
4382
+
4383
+ .ProseMirror .column-resize-handle::before {
4384
+ content: "Drag to resize column";
4385
+ position: absolute;
4386
+ z-index: 4;
4387
+ top: 4px;
4388
+ left: calc(100% + 6px);
4389
+ width: max-content;
4390
+ padding: var(--ui-space-1, 4px) var(--ui-space-2, 8px);
4391
+ border-radius: var(--ui-radius-1, 4px);
4392
+ background: var(--ui-text-primary, #1a1a1a);
4393
+ color: var(--ui-surface-elevated, #fff);
4394
+ font-size: var(--ui-font-size-xs, 0.75rem);
4395
+ line-height: var(--ui-line-height-md, 1.4);
4396
+ opacity: 0;
4397
+ transform: none;
4398
+ transition: opacity var(--ui-affordance-motion, var(--ui-motion-fast, 120ms)) var(--ui-motion-ease, ease);
4399
+ pointer-events: none;
4400
+ }
4401
+
4402
+ .ProseMirror .column-resize-handle:hover::before {
4403
+ opacity: 1;
4404
+ }
4405
+ /*$vite$:1*/