themelia-ui 3.0.0 → 3.2.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 (746) hide show
  1. package/.agents/skills/themelia-ui/SKILL.md +60 -33
  2. package/.agents/skills/themelia-ui/manifest.json +23 -0
  3. package/.agents/skills/themelia-ui/references/api-compatibility.md +5 -4
  4. package/.agents/skills/themelia-ui/references/blocks.md +123 -0
  5. package/.agents/skills/themelia-ui/references/composition-ladder.md +8 -8
  6. package/.agents/skills/themelia-ui/references/composition.md +100 -19
  7. package/.agents/skills/themelia-ui/references/forms.md +23 -3
  8. package/.agents/skills/themelia-ui/references/framework-wiring.md +41 -13
  9. package/.agents/skills/themelia-ui/references/i18n.md +4 -2
  10. package/.agents/skills/themelia-ui/references/imports.md +104 -104
  11. package/.agents/skills/themelia-ui/references/installation.md +60 -31
  12. package/.agents/skills/themelia-ui/references/migration.md +156 -5
  13. package/.agents/skills/themelia-ui/references/provider-and-scoping.md +37 -25
  14. package/.agents/skills/themelia-ui/references/reference-workflows.md +43 -0
  15. package/.agents/skills/themelia-ui/references/structure-and-spacing.md +147 -0
  16. package/.agents/skills/themelia-ui/references/theming.md +174 -131
  17. package/.agents/skills/themelia-ui/references/troubleshooting.md +88 -30
  18. package/.agents/skills/themelia-ui/references/verification.md +60 -5
  19. package/CHANGELOG.md +212 -0
  20. package/README.md +48 -60
  21. package/dist/accordion-CHuzMmWL.js +143 -0
  22. package/dist/{action-menu-BNLURfMK.js → action-menu-BwiL_F6I.js} +35 -33
  23. package/dist/{alert-dialog-BMVo6Z-8.js → alert-dialog-Cg2HhuBe.js} +1 -1
  24. package/dist/avatar-Dc_BNYfB.js +93 -0
  25. package/dist/badge-VlJVZjdm.js +45 -0
  26. package/dist/base/accordion.js +1 -1
  27. package/dist/base/action-menu.js +1 -1
  28. package/dist/base/alert-dialog.js +1 -1
  29. package/dist/base/aspect-ratio.js +3 -1
  30. package/dist/base/avatar.js +1 -1
  31. package/dist/base/badge.js +2 -2
  32. package/dist/base/batch-action-bar.js +1 -1
  33. package/dist/base/buttons.js +1 -1
  34. package/dist/base/cards.js +1 -1
  35. package/dist/base/carousel.js +6 -4
  36. package/dist/base/chart.js +1 -1
  37. package/dist/base/choice-inputs.js +1 -1
  38. package/dist/base/combobox.js +1 -1
  39. package/dist/base/command.js +1 -1
  40. package/dist/base/context-menu.js +22 -21
  41. package/dist/base/copyable.js +1 -1
  42. package/dist/base/date-pickers.js +1 -1
  43. package/dist/base/dialog.js +1 -1
  44. package/dist/base/display.js +1 -1
  45. package/dist/base/dropdown-menu.js +1 -1
  46. package/dist/base/feedback.js +1 -1
  47. package/dist/base/forms-numeric.js +1 -1
  48. package/dist/base/forms.js +1 -1
  49. package/dist/base/hover-card.js +26 -23
  50. package/dist/base/input-group.js +1 -1
  51. package/dist/base/item.js +1 -1
  52. package/dist/base/label.js +1 -1
  53. package/dist/base/menubar.js +20 -14
  54. package/dist/base/navigation-menu.js +47 -38
  55. package/dist/base/navigation.js +1 -1
  56. package/dist/base/otp-input.js +36 -30
  57. package/dist/base/overlay.js +1 -1
  58. package/dist/base/popover-menu.js +1 -1
  59. package/dist/base/popover.js +1 -1
  60. package/dist/base/qr-code.js +51 -47
  61. package/dist/base/repeaters.js +1 -1
  62. package/dist/base/resizable.js +2 -0
  63. package/dist/base/sheet.js +1 -1
  64. package/dist/base/sidebar.js +1 -1
  65. package/dist/base/skeleton.js +1 -1
  66. package/dist/base/spinner.js +1 -1
  67. package/dist/base/structure.js +1 -1
  68. package/dist/base/table.js +1 -1
  69. package/dist/base/text-inputs.js +1 -1
  70. package/dist/base/timeline.js +1 -1
  71. package/dist/base/toaster.js +1 -1
  72. package/dist/base/toggle.js +21 -15
  73. package/dist/base/toolbar.js +1 -1
  74. package/dist/base/tooltip.js +1 -1
  75. package/dist/base/typography.js +2 -2
  76. package/dist/base/upload.js +1 -1
  77. package/dist/base/value-inputs.js +1 -1
  78. package/dist/{batch-action-bar-BZYNKXdV.js → batch-action-bar-DZVMVW83.js} +11 -8
  79. package/dist/{admin/patterns → blocks/admin}/access.js +79 -76
  80. package/dist/blocks/admin/commerce.js +2493 -0
  81. package/dist/{patterns → blocks}/analytics.js +312 -303
  82. package/dist/{patterns → blocks}/onboarding.js +27 -23
  83. package/dist/{patterns → blocks}/timelines.js +1 -1
  84. package/dist/buttons-BX2JfL5X.js +173 -0
  85. package/dist/cards-Ddhz43Bz.js +279 -0
  86. package/dist/chart-BkK3Xm10.js +201 -0
  87. package/dist/choice-inputs-NwRxvmZN.js +694 -0
  88. package/dist/combobox-519ubijc.js +292 -0
  89. package/dist/command-JjApYFds.js +156 -0
  90. package/dist/comments-CCQ2QRaU.js +1443 -0
  91. package/dist/components/base/action-menu/action-menu.d.ts +1 -1
  92. package/dist/components/base/action-menu/action-menu.types.d.ts +2 -2
  93. package/dist/components/base/avatar/avatar.d.ts +5 -2
  94. package/dist/components/base/badge/badge.d.ts +10 -10
  95. package/dist/components/base/badge/badge.variants.d.ts +1 -2
  96. package/dist/components/base/badge/index.d.ts +1 -2
  97. package/dist/components/base/buttons/button.d.ts +9 -8
  98. package/dist/components/base/buttons/button.types.d.ts +2 -2
  99. package/dist/components/base/buttons/index.d.ts +1 -1
  100. package/dist/components/base/buttons/text-button.d.ts +1 -1
  101. package/dist/components/base/cards/card-actions.d.ts +1 -1
  102. package/dist/components/base/cards/card.d.ts +3 -1
  103. package/dist/components/base/cards/partials/card-header.d.ts +2 -1
  104. package/dist/components/base/choice-inputs/choice.types.d.ts +2 -2
  105. package/dist/components/base/choice-inputs/partials/choice-parts.d.ts +3 -3
  106. package/dist/components/base/command/command.d.ts +5 -2
  107. package/dist/components/base/display/icon-badge.d.ts +5 -3
  108. package/dist/components/base/display/index.d.ts +1 -1
  109. package/dist/components/base/display/metadata-list.d.ts +6 -6
  110. package/dist/components/base/display/metadata-value.d.ts +1 -1
  111. package/dist/components/base/display/separator.d.ts +2 -2
  112. package/dist/components/base/feedback/alert.d.ts +3 -2
  113. package/dist/components/base/feedback/empty.d.ts +5 -4
  114. package/dist/components/base/feedback/progress-circle.d.ts +2 -2
  115. package/dist/components/base/feedback/progress.d.ts +3 -1
  116. package/dist/components/base/forms/form-field.d.ts +2 -2
  117. package/dist/components/base/input-group/input-group.d.ts +8 -10
  118. package/dist/components/base/item/item.d.ts +2 -2
  119. package/dist/components/base/overlay/index.d.ts +1 -1
  120. package/dist/components/base/overlay/overlay.types.d.ts +7 -5
  121. package/dist/components/base/qr-code/qr-code.d.ts +4 -4
  122. package/dist/components/base/sheet/sheet.d.ts +1 -1
  123. package/dist/components/base/sidebar/sidebar.d.ts +9 -13
  124. package/dist/components/base/spinner/spinner.d.ts +2 -2
  125. package/dist/components/base/structure/adaptive-grid.d.ts +3 -3
  126. package/dist/components/base/structure/bleed.d.ts +4 -2
  127. package/dist/components/base/structure/grid.d.ts +10 -4
  128. package/dist/components/base/structure/index.d.ts +1 -1
  129. package/dist/components/base/structure/split.d.ts +4 -3
  130. package/dist/components/base/structure/stack.d.ts +5 -5
  131. package/dist/components/base/structure/structure.maps.d.ts +2 -1
  132. package/dist/components/base/structure/structure.types.d.ts +10 -4
  133. package/dist/components/base/toggle/toggle.d.ts +2 -2
  134. package/dist/components/base/toolbar/toolbar.d.ts +3 -3
  135. package/dist/components/base/typography/index.d.ts +2 -0
  136. package/dist/components/base/typography/rich-text/rich-text.variants.d.ts +9 -0
  137. package/dist/components/base/typography/text/index.d.ts +1 -0
  138. package/dist/components/base/typography/text/text.d.ts +15 -8
  139. package/dist/components/base/typography/text/text.variants.d.ts +41 -0
  140. package/dist/components/base/value-inputs/color-input.d.ts +1 -7
  141. package/dist/components/base/value-inputs/slider.d.ts +2 -7
  142. package/dist/components/{admin/patterns → blocks/admin}/commerce/vendor-profile.d.ts +2 -1
  143. package/dist/components/{patterns → blocks}/analytics/analytics.strings.d.ts +2 -5
  144. package/dist/components/features/actions/action-adapters.d.ts +3 -3
  145. package/dist/components/features/actions/actions.types.d.ts +3 -5
  146. package/dist/components/features/actions/index.d.ts +1 -1
  147. package/dist/components/features/activities/activities-feed.d.ts +1 -1
  148. package/dist/components/features/activities/activities.types.d.ts +4 -4
  149. package/dist/components/features/activities/activity-parts.d.ts +3 -3
  150. package/dist/components/features/activities/activity-row.d.ts +4 -4
  151. package/dist/components/features/activities/index.d.ts +1 -1
  152. package/dist/components/features/ai-chat/ai-chat.types.d.ts +10 -3
  153. package/dist/components/features/ai-chat/ai-message-surfaces.d.ts +1 -1
  154. package/dist/components/features/ai-chat/ai-work-surfaces.d.ts +1 -1
  155. package/dist/components/features/combobox/combobox.strings.d.ts +2 -2
  156. package/dist/components/features/combobox/fetching-combobox.d.ts +2 -1
  157. package/dist/components/features/combobox/resource-combobox.d.ts +3 -0
  158. package/dist/components/features/combobox/use-suggestions.d.ts +7 -0
  159. package/dist/components/features/event-calendar/event-calendar.types.d.ts +3 -0
  160. package/dist/components/features/media-library/index.d.ts +1 -1
  161. package/dist/components/features/media-library/media-library-parts.d.ts +4 -3
  162. package/dist/components/features/media-library/media-library-views.d.ts +4 -3
  163. package/dist/components/features/media-library/media-library.d.ts +1 -1
  164. package/dist/components/features/media-library/media-library.strings.d.ts +12 -13
  165. package/dist/components/features/media-library/media-library.types.d.ts +11 -9
  166. package/dist/components/features/media-library/media-resource-gallery.d.ts +1 -1
  167. package/dist/components/features/media-library/use-media-library.d.ts +1 -4
  168. package/dist/components/features/overlays/action-overlay-frame.d.ts +1 -1
  169. package/dist/components/features/overlays/index.d.ts +1 -1
  170. package/dist/components/features/overlays/overlay-parts.d.ts +3 -3
  171. package/dist/components/features/overlays/overlays.types.d.ts +8 -7
  172. package/dist/components/features/rich-text-editor/index.d.ts +0 -1
  173. package/dist/components/features/table/data-table-body.d.ts +1 -1
  174. package/dist/components/features/table/data-table-expanded-row.d.ts +27 -0
  175. package/dist/components/features/table/data-table-header.d.ts +1 -1
  176. package/dist/components/features/table/data-table-size.d.ts +1 -1
  177. package/dist/components/features/table/data-table.d.ts +1 -1
  178. package/dist/components/features/table/index.d.ts +1 -1
  179. package/dist/components/features/table/table-helpers.d.ts +9 -3
  180. package/dist/components/features/table/table.strings.d.ts +11 -0
  181. package/dist/components/features/table/table.types.d.ts +60 -2
  182. package/dist/components/features/theme-tweaker/index.d.ts +1 -1
  183. package/dist/components/features/theme-tweaker/theme-tweaker.strings.d.ts +1 -1
  184. package/dist/components/features/theme-tweaker/theme-tweaker.types.d.ts +6 -10
  185. package/dist/components/features/theme-tweaker/theme-tweaker.utils.d.ts +22 -6
  186. package/dist/components/layout/app-shell/topbar-sidebar-layout.d.ts +1 -1
  187. package/dist/components/layout/auth/auth.d.ts +1 -1
  188. package/dist/components/layout/auth/auth.types.d.ts +1 -1
  189. package/dist/components/primitives/value.d.ts +3 -1
  190. package/dist/containers-B8d8U9GS.js +2 -0
  191. package/dist/{copyable-H1TUEY-H.js → copyable-D9Okb1w6.js} +12 -11
  192. package/dist/core.css +2 -2
  193. package/dist/css/access.css +2 -1
  194. package/dist/css/accordion.css +2 -1
  195. package/dist/css/action-menu.css +2 -1
  196. package/dist/css/activities.css +2 -1
  197. package/dist/css/ai-chat.css +2 -1
  198. package/dist/css/analytics.css +2 -1
  199. package/dist/css/app-shell.css +2 -1
  200. package/dist/css/aspect-ratio.css +2 -1
  201. package/dist/css/async-preview.css +2 -1
  202. package/dist/css/auth.css +2 -1
  203. package/dist/css/avatar.css +2 -1
  204. package/dist/css/badge.css +2 -1
  205. package/dist/css/batch-action-bar.css +2 -1
  206. package/dist/css/buttons.css +2 -1
  207. package/dist/css/cards.css +2 -1
  208. package/dist/css/carousel.css +2 -1
  209. package/dist/css/chart.css +2 -1
  210. package/dist/css/choice-inputs.css +2 -1
  211. package/dist/css/combobox.css +2 -1
  212. package/dist/css/combobox2.css +2 -1
  213. package/dist/css/command.css +2 -1
  214. package/dist/css/comments.css +2 -1
  215. package/dist/css/commerce.css +2 -1
  216. package/dist/css/containers.css +2 -1
  217. package/dist/css/copyable.css +2 -1
  218. package/dist/css/data-view.css +2 -1
  219. package/dist/css/date-pickers.css +2 -1
  220. package/dist/css/display.css +2 -1
  221. package/dist/css/dropdown-menu.css +2 -1
  222. package/dist/css/event-calendar.css +2 -1
  223. package/dist/css/feedback.css +2 -1
  224. package/dist/css/filters.css +2 -1
  225. package/dist/css/forms-numeric.css +2 -1
  226. package/dist/css/forms.css +2 -1
  227. package/dist/css/global-search.css +2 -1
  228. package/dist/css/header.css +2 -1
  229. package/dist/css/hover-card.css +2 -1
  230. package/dist/css/input-group.css +2 -1
  231. package/dist/css/item.css +2 -1
  232. package/dist/css/kanban.css +2 -1
  233. package/dist/css/label.css +2 -1
  234. package/dist/css/map.css +2 -1
  235. package/dist/css/media-library.css +2 -1
  236. package/dist/css/mentions.css +2 -1
  237. package/dist/css/menubar.css +2 -1
  238. package/dist/css/navigation-menu.css +2 -1
  239. package/dist/css/navigation.css +2 -1
  240. package/dist/css/navigation2.css +2 -1
  241. package/dist/css/onboarding.css +2 -1
  242. package/dist/css/otp-input.css +2 -1
  243. package/dist/css/overlay.css +2 -1
  244. package/dist/css/overlays.css +2 -1
  245. package/dist/css/page.css +2 -1
  246. package/dist/css/popover-menu.css +2 -1
  247. package/dist/css/popover.css +2 -1
  248. package/dist/css/primitives.css +2 -1
  249. package/dist/css/products.css +2 -1
  250. package/dist/css/qr-code.css +2 -1
  251. package/dist/css/repeaters.css +2 -1
  252. package/dist/css/resizable.css +2 -1
  253. package/dist/css/resource-assignment.css +2 -1
  254. package/dist/css/resource.css +2 -1
  255. package/dist/css/rich-text-editor.css +2 -1
  256. package/dist/css/schema-form.css +2 -1
  257. package/dist/css/sidebar.css +2 -1
  258. package/dist/css/sidebar2.css +2 -1
  259. package/dist/css/skeleton.css +2 -1
  260. package/dist/css/spinner.css +2 -1
  261. package/dist/css/structure.css +2 -1
  262. package/dist/css/sync.css +2 -1
  263. package/dist/css/table.css +2 -1
  264. package/dist/css/table2.css +2 -1
  265. package/dist/css/text-inputs.css +2 -1
  266. package/dist/css/theme-tweaker.css +2 -1
  267. package/dist/css/timeline.css +2 -1
  268. package/dist/css/timelines.css +2 -1
  269. package/dist/css/toaster.css +2 -1
  270. package/dist/css/toggle.css +2 -1
  271. package/dist/css/toolbar.css +2 -1
  272. package/dist/css/tooltip.css +2 -1
  273. package/dist/css/typography.css +2 -1
  274. package/dist/css/upload.css +2 -1
  275. package/dist/css/value-inputs.css +2 -1
  276. package/dist/css/workspace.css +2 -1
  277. package/dist/css-graph.json +1027 -0
  278. package/dist/date-pickers-BwCwKIVM.js +685 -0
  279. package/dist/{dialog-CtFCuTUF.js → dialog-CAnwRNrm.js} +1 -1
  280. package/dist/display-a7AoX_u7.js +664 -0
  281. package/dist/dropdown-menu-Br8kvjrF.js +235 -0
  282. package/dist/empty.js +0 -0
  283. package/dist/features/actions.js +6 -6
  284. package/dist/features/activities.js +219 -216
  285. package/dist/features/ai-chat.js +593 -565
  286. package/dist/features/async-preview.js +105 -286
  287. package/dist/features/combobox.js +328 -314
  288. package/dist/features/comments.js +1 -1
  289. package/dist/features/data-view.js +56 -55
  290. package/dist/features/event-calendar.js +189 -185
  291. package/dist/features/filters.js +1 -1
  292. package/dist/features/global-search.js +259 -260
  293. package/dist/features/kanban.js +39 -37
  294. package/dist/features/map.js +357 -354
  295. package/dist/features/media-library.js +931 -931
  296. package/dist/features/mentions.js +1 -1
  297. package/dist/features/overlays.js +1 -1
  298. package/dist/features/products.js +950 -942
  299. package/dist/features/resource-assignment.js +39 -37
  300. package/dist/features/resource.js +70 -71
  301. package/dist/features/rich-text-editor.js +2 -2
  302. package/dist/features/schema-form.js +342 -338
  303. package/dist/features/sync.js +14 -12
  304. package/dist/features/table.js +1 -1
  305. package/dist/features/theme-tweaker.js +1002 -962
  306. package/dist/feedback-D4qVsKlD.js +430 -0
  307. package/dist/{filters-DOLKRSmb.js → filters-BhsTkWpZ.js} +386 -383
  308. package/dist/forms-C0WeNPFF.js +250 -0
  309. package/dist/forms-numeric-IwQ1ltNf.js +582 -0
  310. package/dist/hooks/use-native-dialog.d.ts +1 -1
  311. package/dist/index.js +2 -2
  312. package/dist/input-group-HS_Z0Ei_.js +119 -0
  313. package/dist/item-M2pmpWXh.js +150 -0
  314. package/dist/{label-DumoMDm6.js → label-HOBXAscw.js} +7 -5
  315. package/dist/layout/app-shell.js +4 -2
  316. package/dist/layout/auth.js +102 -100
  317. package/dist/layout/header.js +190 -180
  318. package/dist/layout/navigation.js +1 -1
  319. package/dist/layout/page.js +18 -16
  320. package/dist/layout/settings.js +2 -2
  321. package/dist/layout/sidebar.js +50 -46
  322. package/dist/layout/workspace.js +71 -69
  323. package/dist/lib/action-presentation.d.ts +3 -3
  324. package/dist/lib/component-vocabulary.d.ts +2 -2
  325. package/dist/lib/css-length.d.ts +2 -0
  326. package/dist/lib/responsive.d.ts +1 -1
  327. package/dist/lib/theming/index.d.ts +1 -0
  328. package/dist/lib/theming/recipes.d.ts +2 -2
  329. package/dist/lib/theming/themes/dense.d.ts +3 -0
  330. package/dist/lib/theming/themes/editorial.d.ts +3 -0
  331. package/dist/lib/theming/themes/index.d.ts +8 -0
  332. package/dist/lib/theming/themes/pair.d.ts +7 -0
  333. package/dist/lib/theming/themes/sharp.d.ts +3 -0
  334. package/dist/lib/theming/themes/soft.d.ts +3 -0
  335. package/dist/lib/theming/themes/types.d.ts +12 -0
  336. package/dist/lib/ui-provider/index.d.ts +1 -1
  337. package/dist/lib/ui-provider/scope.d.ts +5 -8
  338. package/dist/lib/ui-provider/tokens.d.ts +11 -3
  339. package/dist/lib/ui-provider/tokens.generated.d.ts +6 -4
  340. package/dist/lib/ui-provider/types.d.ts +17 -19
  341. package/dist/lib/ui-provider/ui-scope.d.ts +1 -1
  342. package/dist/{mentions-BbsEHlcH.js → mentions-BOxbigwp.js} +113 -111
  343. package/dist/navigation-Bgu7Vc0M.js +622 -0
  344. package/dist/navigation-DiYACqpE.js +216 -0
  345. package/dist/overlay-BuQOl8aP.js +356 -0
  346. package/dist/{overlays-DvVoS3td.js → overlays-1sULyytH.js} +77 -75
  347. package/dist/popover-CA7SP_iz.js +127 -0
  348. package/dist/popover-menu-QXgQeWeG.js +192 -0
  349. package/dist/{primitives-D0bdDozz.js → primitives-BskKlf35.js} +181 -178
  350. package/dist/primitives.js +1 -1
  351. package/dist/profiles/admin.json +6 -36
  352. package/dist/profiles/general.json +6 -96
  353. package/dist/repeaters-CeH20dvr.js +445 -0
  354. package/dist/rich-text-editor-D_Ppm8yh.js +491 -0
  355. package/dist/{sheet-CKcmRbJ9.js → sheet-CJ1-OAla.js} +3 -3
  356. package/dist/sidebar-D8uGqxio.js +421 -0
  357. package/dist/skeleton-BTKNKTdj.js +173 -0
  358. package/dist/spinner-Tc1QCnxM.js +30 -0
  359. package/dist/{structure-D0WGQAP3.js → structure-CynEZ-OY.js} +15 -23
  360. package/dist/style.css +1 -1
  361. package/dist/styles/TOKENS.md +116 -275
  362. package/dist/styles/animation.css +114 -0
  363. package/dist/styles/base.css +7 -6
  364. package/dist/styles/fields.css +45 -63
  365. package/dist/styles/focus.css +12 -0
  366. package/dist/styles/forced-colors.css +11 -10
  367. package/dist/styles/index.css +23 -30
  368. package/dist/styles/map.css +45 -34
  369. package/dist/styles/mentions.css +14 -52
  370. package/dist/styles/overlays.css +7 -7
  371. package/dist/styles/tailwind.css +76 -127
  372. package/dist/styles/targets.css +3 -3
  373. package/dist/styles/theme/colour.css +86 -0
  374. package/dist/styles/theme/density.css +31 -0
  375. package/dist/styles/theme/elevation.css +9 -0
  376. package/dist/styles/theme/layout.css +18 -0
  377. package/dist/styles/theme/motion.css +18 -0
  378. package/dist/styles/theme/shape.css +12 -0
  379. package/dist/styles/theme/size.css +10 -0
  380. package/dist/styles/theme/spacing.css +11 -0
  381. package/dist/styles/theme/typography.css +20 -0
  382. package/dist/styles/tone.css +61 -0
  383. package/dist/table-B7dtIFUx.js +1262 -0
  384. package/dist/table-Ds_eO9av.js +191 -0
  385. package/dist/tailwind.css +76 -127
  386. package/dist/text-inputs-BboE77nZ.js +395 -0
  387. package/dist/theming-C5ygF5uf.js +292 -0
  388. package/dist/theming.js +2 -2
  389. package/dist/{timeline-BdaGRyj-.js → timeline-BR_jNgvz.js} +57 -49
  390. package/dist/{timelines-BB7550mz.js → timelines-DXG1BfIN.js} +69 -67
  391. package/dist/{toaster-bBMgXm8z.js → toaster-CXL8L7Mm.js} +106 -99
  392. package/dist/tokens.json +1027 -636
  393. package/dist/toolbar-DBK-c4yy.js +74 -0
  394. package/dist/tooltip-BPYP-jUm.js +76 -0
  395. package/dist/{typography-BkxEiwQ1.js → typography-DmeR05Er.js} +87 -53
  396. package/dist/{ui-provider-Cmoq6i_D.js → ui-provider-DpzLUD12.js} +117 -69
  397. package/dist/ui-provider.js +1 -1
  398. package/dist/upload-CYuoJykZ.js +968 -0
  399. package/dist/use-async-preview-BFwf9ElY.js +188 -0
  400. package/dist/value-inputs-ng8aVJJZ.js +728 -0
  401. package/docs/README.md +13 -3
  402. package/docs/build/browser-composition-fixture.ts +28 -0
  403. package/docs/build/recipes.md +11484 -10723
  404. package/docs/generated/component-index.json +9809 -9169
  405. package/docs/generated/components/INDEX.md +5 -5
  406. package/docs/generated/components/base--accordion.md +51 -2
  407. package/docs/generated/components/base--action-menu.md +14 -15
  408. package/docs/generated/components/base--alert-dialog.md +3 -4
  409. package/docs/generated/components/base--aspect-ratio.md +3 -4
  410. package/docs/generated/components/base--avatar.md +7 -7
  411. package/docs/generated/components/base--badge.md +159 -27
  412. package/docs/generated/components/base--batch-action-bar.md +6 -7
  413. package/docs/generated/components/base--buttons.md +151 -47
  414. package/docs/generated/components/base--cards.md +107 -14
  415. package/docs/generated/components/base--carousel.md +1 -2
  416. package/docs/generated/components/base--chart.md +44 -8
  417. package/docs/generated/components/base--choice-inputs.md +10 -11
  418. package/docs/generated/components/base--combobox.md +3 -4
  419. package/docs/generated/components/base--command.md +6 -6
  420. package/docs/generated/components/base--context-menu.md +1 -2
  421. package/docs/generated/components/base--copyable.md +6 -7
  422. package/docs/generated/components/base--date-pickers.md +6 -7
  423. package/docs/generated/components/base--dialog.md +6 -7
  424. package/docs/generated/components/base--direction.md +1 -1
  425. package/docs/generated/components/base--display.md +234 -54
  426. package/docs/generated/components/base--dropdown-menu.md +6 -7
  427. package/docs/generated/components/base--feedback.md +71 -18
  428. package/docs/generated/components/base--forms-numeric.md +6 -7
  429. package/docs/generated/components/base--forms.md +84 -14
  430. package/docs/generated/components/base--hover-card.md +3 -4
  431. package/docs/generated/components/base--input-group.md +27 -30
  432. package/docs/generated/components/base--item.md +8 -9
  433. package/docs/generated/components/base--label.md +2 -3
  434. package/docs/generated/components/base--menubar.md +2 -4
  435. package/docs/generated/components/base--navigation-menu.md +2 -3
  436. package/docs/generated/components/base--navigation.md +2 -3
  437. package/docs/generated/components/base--otp-input.md +3 -4
  438. package/docs/generated/components/base--overlay.md +56 -47
  439. package/docs/generated/components/base--popover-menu.md +7 -8
  440. package/docs/generated/components/base--popover.md +9 -10
  441. package/docs/generated/components/base--qr-code.md +7 -8
  442. package/docs/generated/components/base--repeaters.md +6 -7
  443. package/docs/generated/components/base--resizable.md +2 -3
  444. package/docs/generated/components/base--sheet.md +12 -13
  445. package/docs/generated/components/base--sidebar.md +9 -11
  446. package/docs/generated/components/base--skeleton.md +6 -7
  447. package/docs/generated/components/base--slot.md +1 -1
  448. package/docs/generated/components/base--spinner.md +5 -7
  449. package/docs/generated/components/base--structure.md +320 -70
  450. package/docs/generated/components/base--table.md +61 -3
  451. package/docs/generated/components/base--text-inputs.md +17 -18
  452. package/docs/generated/components/base--timeline.md +45 -4
  453. package/docs/generated/components/base--toaster.md +43 -12
  454. package/docs/generated/components/base--toggle.md +11 -12
  455. package/docs/generated/components/base--toolbar.md +7 -8
  456. package/docs/generated/components/base--tooltip.md +5 -6
  457. package/docs/generated/components/base--typography.md +317 -32
  458. package/docs/generated/components/base--upload.md +8 -9
  459. package/docs/generated/components/base--value-inputs.md +9 -38
  460. package/docs/generated/components/{admin--patterns--access.md → blocks--admin--access.md} +15 -6
  461. package/docs/generated/components/{admin--patterns--commerce.md → blocks--admin--commerce.md} +40 -41
  462. package/docs/generated/components/{patterns--analytics.md → blocks--analytics.md} +57 -14
  463. package/docs/generated/components/{patterns--onboarding.md → blocks--onboarding.md} +6 -7
  464. package/docs/generated/components/{patterns--timelines.md → blocks--timelines.md} +6 -7
  465. package/docs/generated/components/features--actions.md +8 -18
  466. package/docs/generated/components/features--activities.md +31 -32
  467. package/docs/generated/components/features--ai-chat.md +15 -15
  468. package/docs/generated/components/features--async-preview.md +5 -6
  469. package/docs/generated/components/features--combobox.md +71 -5
  470. package/docs/generated/components/features--comments.md +0 -1
  471. package/docs/generated/components/features--data-view.md +63 -8
  472. package/docs/generated/components/features--event-calendar.md +1 -2
  473. package/docs/generated/components/features--filters.md +11 -2
  474. package/docs/generated/components/features--global-search.md +1 -2
  475. package/docs/generated/components/features--kanban.md +1 -2
  476. package/docs/generated/components/features--map.md +1 -2
  477. package/docs/generated/components/features--media-library.md +105 -38
  478. package/docs/generated/components/features--mentions.md +7 -7
  479. package/docs/generated/components/features--overlays.md +75 -22
  480. package/docs/generated/components/features--products.md +10 -11
  481. package/docs/generated/components/features--resource-assignment.md +2 -3
  482. package/docs/generated/components/features--resource.md +3 -4
  483. package/docs/generated/components/features--rich-text-editor.md +42 -13
  484. package/docs/generated/components/features--schema-form.md +1 -2
  485. package/docs/generated/components/features--sync.md +2 -3
  486. package/docs/generated/components/features--table.md +162 -12
  487. package/docs/generated/components/features--theme-tweaker.md +30 -15
  488. package/docs/generated/components/forms.md +2 -2
  489. package/docs/generated/components/layout--app-shell.md +41 -11
  490. package/docs/generated/components/layout--auth.md +8 -9
  491. package/docs/generated/components/layout--containers.md +40 -1
  492. package/docs/generated/components/layout--header.md +2 -3
  493. package/docs/generated/components/layout--navigation.md +0 -1
  494. package/docs/generated/components/layout--page.md +33 -5
  495. package/docs/generated/components/layout--settings.md +0 -1
  496. package/docs/generated/components/layout--sidebar.md +47 -7
  497. package/docs/generated/components/layout--workspace.md +3 -4
  498. package/docs/generated/components/primitives.md +128 -17
  499. package/docs/generated/components/theming.md +147 -4
  500. package/docs/generated/components/ui-provider.md +96 -78
  501. package/docs/generated/composition-ladder.md +8 -8
  502. package/docs/generated/consumer-contract.json +5736 -0
  503. package/docs/generated/imports.md +104 -104
  504. package/docs/generated/migration-broad-imports.json +267 -90
  505. package/docs/generated/migration-broad-imports.md +266 -101
  506. package/docs/generated/migration-codemod.json +365 -70
  507. package/docs/generated/migration.md +665 -95
  508. package/docs/generated/profiles.md +27 -27
  509. package/docs/generated/public-api.md +104 -102
  510. package/docs/generated/recipes.json +755 -810
  511. package/docs/generated/workflows/communications-overview/analytics/communications-reference.tsx +19 -0
  512. package/docs/generated/workflows/index.json +691 -0
  513. package/docs/generated/workflows/media-picking/media-library/media-picking-reference.tsx +63 -0
  514. package/docs/generated/workflows/media-picking/media-library/reference-data.ts +3 -0
  515. package/docs/generated/workflows/multi-section-form/form-workflow/multi-section-reference.tsx +46 -0
  516. package/docs/generated/workflows/nested-action-flow/action-overlays/nested-action-reference.tsx +39 -0
  517. package/docs/generated/workflows/record-detail/page-layout/record-detail-reference.tsx +24 -0
  518. package/docs/generated/workflows/resource-index/data-view/resource-index-reference.tsx +51 -0
  519. package/docs/generated/workflows/scoped-resource-selection/combobox/scoped-resource-reference.tsx +50 -0
  520. package/docs/generated/workflows/website-content-editor/media-library/reference-data.ts +3 -0
  521. package/docs/generated/workflows/website-content-editor/rich-text-editor/website-content-reference.tsx +33 -0
  522. package/docs/generated/workflows/workspace-navigation/app-shell/workspace-navigation-reference.tsx +26 -0
  523. package/docs/learn/api-compatibility.md +5 -4
  524. package/docs/learn/blocks.md +123 -0
  525. package/docs/learn/composition.md +100 -19
  526. package/docs/learn/forms.md +23 -3
  527. package/docs/learn/framework-wiring.md +41 -13
  528. package/docs/learn/i18n.md +4 -2
  529. package/docs/learn/installation.md +60 -31
  530. package/docs/learn/migration.md +156 -5
  531. package/docs/learn/provider-and-scoping.md +37 -25
  532. package/docs/learn/reference-workflows.md +43 -0
  533. package/docs/learn/structure-and-spacing.md +147 -0
  534. package/docs/learn/theming.md +174 -131
  535. package/docs/learn/troubleshooting.md +88 -30
  536. package/docs/learn/verification.md +60 -5
  537. package/package.json +42 -473
  538. package/scripts/consumer/codemod.mjs +50 -32
  539. package/scripts/consumer/contract-reader.mjs +42 -0
  540. package/scripts/consumer/css-scan.mjs +51 -0
  541. package/scripts/consumer/diagnose.mjs +136 -0
  542. package/scripts/consumer/find-component.mjs +30 -17
  543. package/scripts/consumer/install-skill.mjs +93 -11
  544. package/src/styles/TOKENS.md +116 -275
  545. package/dist/accordion-6YPJ9XRO.js +0 -135
  546. package/dist/admin/patterns/access.css +0 -15
  547. package/dist/admin/patterns/commerce.css +0 -29
  548. package/dist/admin/patterns/commerce.js +0 -2493
  549. package/dist/avatar-CS7zow2q.js +0 -85
  550. package/dist/badge-CxOuTfVr.js +0 -63
  551. package/dist/base/accordion.css +0 -3
  552. package/dist/base/action-menu.css +0 -6
  553. package/dist/base/alert-dialog.css +0 -4
  554. package/dist/base/aspect-ratio.css +0 -2
  555. package/dist/base/avatar.css +0 -4
  556. package/dist/base/badge.css +0 -2
  557. package/dist/base/batch-action-bar.css +0 -5
  558. package/dist/base/buttons.css +0 -4
  559. package/dist/base/cards.css +0 -13
  560. package/dist/base/carousel.css +0 -5
  561. package/dist/base/chart.css +0 -2
  562. package/dist/base/choice-inputs.css +0 -10
  563. package/dist/base/combobox.css +0 -3
  564. package/dist/base/command.css +0 -9
  565. package/dist/base/context-menu.css +0 -2
  566. package/dist/base/copyable.css +0 -6
  567. package/dist/base/date-pickers.css +0 -11
  568. package/dist/base/dialog.css +0 -4
  569. package/dist/base/display.css +0 -8
  570. package/dist/base/dropdown-menu.css +0 -2
  571. package/dist/base/feedback.css +0 -5
  572. package/dist/base/forms-numeric.css +0 -12
  573. package/dist/base/forms.css +0 -14
  574. package/dist/base/hover-card.css +0 -2
  575. package/dist/base/input-group.css +0 -6
  576. package/dist/base/item.css +0 -9
  577. package/dist/base/label.css +0 -3
  578. package/dist/base/menubar.css +0 -2
  579. package/dist/base/navigation-menu.css +0 -2
  580. package/dist/base/navigation.css +0 -12
  581. package/dist/base/otp-input.css +0 -9
  582. package/dist/base/overlay.css +0 -4
  583. package/dist/base/popover-menu.css +0 -11
  584. package/dist/base/popover.css +0 -3
  585. package/dist/base/qr-code.css +0 -2
  586. package/dist/base/repeaters.css +0 -18
  587. package/dist/base/resizable.css +0 -2
  588. package/dist/base/sheet.css +0 -4
  589. package/dist/base/sidebar.css +0 -12
  590. package/dist/base/skeleton.css +0 -9
  591. package/dist/base/spinner.css +0 -2
  592. package/dist/base/structure.css +0 -2
  593. package/dist/base/table.css +0 -3
  594. package/dist/base/text-inputs.css +0 -2
  595. package/dist/base/timeline.css +0 -9
  596. package/dist/base/toaster.css +0 -2
  597. package/dist/base/toggle.css +0 -2
  598. package/dist/base/toolbar.css +0 -5
  599. package/dist/base/tooltip.css +0 -2
  600. package/dist/base/typography.css +0 -2
  601. package/dist/base/upload.css +0 -10
  602. package/dist/base/value-inputs.css +0 -14
  603. package/dist/buttons-CqXKWty3.js +0 -179
  604. package/dist/cards-C6Ulbkw7.js +0 -271
  605. package/dist/chart-nomhJ87z.js +0 -193
  606. package/dist/choice-inputs-OUDn0kQw.js +0 -680
  607. package/dist/combobox-C8oP92bT.js +0 -266
  608. package/dist/command-Bp3B6pUu.js +0 -143
  609. package/dist/comments-CAnDlyXO.js +0 -1438
  610. package/dist/components/admin/patterns/index.d.ts +0 -2
  611. package/dist/components/features/rich-text-editor/exec-command-engine.d.ts +0 -2
  612. package/dist/components/patterns/index.d.ts +0 -3
  613. package/dist/css/styles.css +0 -1
  614. package/dist/date-pickers-DOwIT-Nk.js +0 -661
  615. package/dist/display-B3Q17h5z.js +0 -645
  616. package/dist/dropdown-menu-TyNLCLML.js +0 -223
  617. package/dist/features/actions.css +0 -11
  618. package/dist/features/activities.css +0 -25
  619. package/dist/features/ai-chat.css +0 -14
  620. package/dist/features/async-preview.css +0 -10
  621. package/dist/features/combobox.css +0 -12
  622. package/dist/features/comments.css +0 -24
  623. package/dist/features/data-view.css +0 -31
  624. package/dist/features/event-calendar.css +0 -17
  625. package/dist/features/filters.css +0 -24
  626. package/dist/features/global-search.css +0 -19
  627. package/dist/features/kanban.css +0 -7
  628. package/dist/features/map.css +0 -15
  629. package/dist/features/media-library.css +0 -27
  630. package/dist/features/mentions.css +0 -17
  631. package/dist/features/overlays.css +0 -11
  632. package/dist/features/products.css +0 -29
  633. package/dist/features/resource-assignment.css +0 -14
  634. package/dist/features/resource.css +0 -15
  635. package/dist/features/rich-text-editor.css +0 -8
  636. package/dist/features/schema-form.css +0 -22
  637. package/dist/features/sync.css +0 -11
  638. package/dist/features/table.css +0 -20
  639. package/dist/features/theme-tweaker.css +0 -27
  640. package/dist/feedback-DRerHGuV.js +0 -469
  641. package/dist/forms-CPrGGif_.js +0 -242
  642. package/dist/forms-numeric-CPVsL7Vf.js +0 -569
  643. package/dist/index.css +0 -3
  644. package/dist/input-group-BYe0rhoB.js +0 -126
  645. package/dist/item-B3yQ26as.js +0 -146
  646. package/dist/layout/app-shell.css +0 -13
  647. package/dist/layout/auth.css +0 -14
  648. package/dist/layout/containers.css +0 -2
  649. package/dist/layout/header.css +0 -20
  650. package/dist/layout/navigation.css +0 -11
  651. package/dist/layout/page.css +0 -15
  652. package/dist/layout/settings.css +0 -16
  653. package/dist/layout/sidebar.css +0 -16
  654. package/dist/layout/workspace.css +0 -15
  655. package/dist/navigation-CsqTA16F.js +0 -614
  656. package/dist/navigation-DzxzPuwg.js +0 -202
  657. package/dist/overlay-WQOsLd69.js +0 -345
  658. package/dist/patterns/analytics.css +0 -15
  659. package/dist/patterns/onboarding.css +0 -11
  660. package/dist/patterns/timelines.css +0 -11
  661. package/dist/popover-DriLnIFc.js +0 -123
  662. package/dist/popover-menu-C2UCMAe7.js +0 -189
  663. package/dist/primitives.css +0 -3
  664. package/dist/repeaters-DuP1N0nw.js +0 -438
  665. package/dist/rich-text-editor-BQXFe9oN.js +0 -595
  666. package/dist/sidebar-D0N6ckJL.js +0 -412
  667. package/dist/skeleton-DGR9df28.js +0 -172
  668. package/dist/spinner-CUAVFecI.js +0 -52
  669. package/dist/styles/FACTORS.md +0 -36
  670. package/dist/styles/SCOPES.md +0 -86
  671. package/dist/styles/themes/default.css +0 -164
  672. package/dist/styles/theming/animation.css +0 -143
  673. package/dist/styles/theming/colors.css +0 -97
  674. package/dist/styles/theming/feedback.css +0 -17
  675. package/dist/styles/theming/field.css +0 -21
  676. package/dist/styles/theming/focus.css +0 -88
  677. package/dist/styles/theming/layers.css +0 -13
  678. package/dist/styles/theming/layout.css +0 -21
  679. package/dist/styles/theming/motion.css +0 -42
  680. package/dist/styles/theming/overlay.css +0 -52
  681. package/dist/styles/theming/sizing.css +0 -118
  682. package/dist/styles/theming/text.css +0 -30
  683. package/dist/styles/theming/typography.css +0 -26
  684. package/dist/styles/tokens/components.css +0 -22
  685. package/dist/styles/tokens/foundation.css +0 -80
  686. package/dist/styles/tokens/layout.css +0 -19
  687. package/dist/styles/tokens/palette.css +0 -88
  688. package/dist/styles/tokens/primitives.css +0 -18
  689. package/dist/styles/tokens/states.css +0 -77
  690. package/dist/table-BC4qqsUb.js +0 -180
  691. package/dist/table-BHDpjajL.js +0 -982
  692. package/dist/text-inputs-DF_lD7pA.js +0 -385
  693. package/dist/theming-D6KRU7hO.js +0 -104
  694. package/dist/toolbar-DWRywF0R.js +0 -68
  695. package/dist/tooltip-t1VQQ2tZ.js +0 -73
  696. package/dist/upload-B38YZeFJ.js +0 -938
  697. package/dist/value-inputs-Q4ymjXlV.js +0 -716
  698. package/src/styles/FACTORS.md +0 -36
  699. package/src/styles/SCOPES.md +0 -86
  700. /package/dist/components/{admin/patterns → blocks/admin}/access/admin.strings.d.ts +0 -0
  701. /package/dist/components/{admin/patterns → blocks/admin}/access/credential-list.d.ts +0 -0
  702. /package/dist/components/{admin/patterns → blocks/admin}/access/index.d.ts +0 -0
  703. /package/dist/components/{admin/patterns → blocks/admin}/access/role-permissions.d.ts +0 -0
  704. /package/dist/components/{admin/patterns → blocks/admin}/access/sensitive-action.d.ts +0 -0
  705. /package/dist/components/{admin/patterns → blocks/admin}/commerce/account.d.ts +0 -0
  706. /package/dist/components/{admin/patterns → blocks/admin}/commerce/address-lines.d.ts +0 -0
  707. /package/dist/components/{admin/patterns → blocks/admin}/commerce/booking.d.ts +0 -0
  708. /package/dist/components/{admin/patterns → blocks/admin}/commerce/cart.d.ts +0 -0
  709. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.strings.d.ts +0 -0
  710. /package/dist/components/{admin/patterns → blocks/admin}/commerce/commerce.types.d.ts +0 -0
  711. /package/dist/components/{admin/patterns → blocks/admin}/commerce/format-amount.d.ts +0 -0
  712. /package/dist/components/{admin/patterns → blocks/admin}/commerce/index.d.ts +0 -0
  713. /package/dist/components/{admin/patterns → blocks/admin}/commerce/inventory-section.d.ts +0 -0
  714. /package/dist/components/{admin/patterns → blocks/admin}/commerce/invoice.d.ts +0 -0
  715. /package/dist/components/{admin/patterns → blocks/admin}/commerce/loyalty.d.ts +0 -0
  716. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-customer.d.ts +0 -0
  717. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-detail.d.ts +0 -0
  718. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-line-item.d.ts +0 -0
  719. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order-transactions.d.ts +0 -0
  720. /package/dist/components/{admin/patterns → blocks/admin}/commerce/order.d.ts +0 -0
  721. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-listing.d.ts +0 -0
  722. /package/dist/components/{admin/patterns → blocks/admin}/commerce/seo-score.d.ts +0 -0
  723. /package/dist/components/{admin/patterns → blocks/admin}/commerce/summary-panel.d.ts +0 -0
  724. /package/dist/components/{patterns → blocks}/analytics/activity-heatmap.d.ts +0 -0
  725. /package/dist/components/{patterns → blocks}/analytics/analytics.types.d.ts +0 -0
  726. /package/dist/components/{patterns → blocks}/analytics/chart-card.d.ts +0 -0
  727. /package/dist/components/{patterns → blocks}/analytics/format-metric-value.d.ts +0 -0
  728. /package/dist/components/{patterns → blocks}/analytics/index.d.ts +0 -0
  729. /package/dist/components/{patterns → blocks}/analytics/metric-bar.d.ts +0 -0
  730. /package/dist/components/{patterns → blocks}/analytics/metric-comparison.d.ts +0 -0
  731. /package/dist/components/{patterns → blocks}/analytics/metric-gradient.d.ts +0 -0
  732. /package/dist/components/{patterns → blocks}/analytics/metric-grid.d.ts +0 -0
  733. /package/dist/components/{patterns → blocks}/analytics/metric-micro-grid.d.ts +0 -0
  734. /package/dist/components/{patterns → blocks}/analytics/metric-skeleton.d.ts +0 -0
  735. /package/dist/components/{patterns → blocks}/analytics/metric-trend-chip.d.ts +0 -0
  736. /package/dist/components/{patterns → blocks}/analytics/metric.d.ts +0 -0
  737. /package/dist/components/{patterns → blocks}/analytics/time-ruler.d.ts +0 -0
  738. /package/dist/components/{patterns → blocks}/onboarding/checklist.d.ts +0 -0
  739. /package/dist/components/{patterns → blocks}/onboarding/index.d.ts +0 -0
  740. /package/dist/components/{patterns → blocks}/onboarding/onboarding.strings.d.ts +0 -0
  741. /package/dist/components/{patterns → blocks}/timelines/changelog-timeline.d.ts +0 -0
  742. /package/dist/components/{patterns → blocks}/timelines/index.d.ts +0 -0
  743. /package/dist/components/{patterns → blocks}/timelines/milestones-timeline.d.ts +0 -0
  744. /package/dist/components/{patterns → blocks}/timelines/steps.d.ts +0 -0
  745. /package/dist/components/{patterns → blocks}/timelines/timelines.strings.d.ts +0 -0
  746. /package/dist/styles/{theming/breakpoints.css → breakpoints.css} +0 -0
@@ -31,6 +31,48 @@ export interface ColumnGroup {
31
31
  /** Column ids; must be contiguous. */
32
32
  columns: string[];
33
33
  }
34
+ /** What an open row's `render` is handed beside the row's data. */
35
+ export interface DataTableExpandedRowContext<TDetail> {
36
+ /** What `onLoad` resolved to. `undefined` when there is no `onLoad`. */
37
+ detail: TDetail;
38
+ /** Loads again, skipping the cache. Does nothing without `onLoad`. */
39
+ refresh: () => void;
40
+ /** Closes this row's panel — after a save inside it, say. */
41
+ collapse: () => void;
42
+ }
43
+ /**
44
+ * Expandable rows: a panel under an open row, opened by a toggle at the row's start. Passing
45
+ * `expandedRow` at all turns it on; `render` is the one required field.
46
+ */
47
+ export interface DataTableExpandedRow<TData extends RowData, TDetail = unknown> {
48
+ /** The panel under an open row. */
49
+ render: (row: TData, context: DataTableExpandedRowContext<TDetail>) => ReactNode;
50
+ /**
51
+ * Fetches what the panel shows when its row opens. The table shows a skeleton meanwhile,
52
+ * aborts the request (`signal`) when the row closes, offers Retry on failure and keeps the
53
+ * result for five minutes per row. `null` or `undefined` means the row has no details.
54
+ * Write it before `render`: TypeScript types `detail` from it, left to right.
55
+ */
56
+ onLoad?: (row: TData, args: {
57
+ signal: AbortSignal;
58
+ }) => Promise<TDetail | null | undefined>;
59
+ /** Rows it refuses get no toggle and never open. */
60
+ canExpand?: (row: TData) => boolean;
61
+ /**
62
+ * Several rows open at once. `false` closes the open row when another opens.
63
+ * @default true
64
+ */
65
+ multiple?: boolean;
66
+ /**
67
+ * The open rows, keyed by row id. Controlled: rendered as given, even several under
68
+ * `multiple: false`. Supply `getRowId` when `data` can reorder or page, or an open panel
69
+ * follows a position rather than a record.
70
+ */
71
+ expanded?: Record<string, boolean>;
72
+ /** The rows open at first, keyed by row id. */
73
+ defaultExpanded?: Record<string, boolean>;
74
+ onExpandedChange?: (expanded: Record<string, boolean>) => void;
75
+ }
34
76
  export interface DataTableSelectionToolbarContext<TData extends RowData> {
35
77
  table: Table<TData>;
36
78
  selectedRows: TData[];
@@ -39,7 +81,10 @@ export interface DataTableSelectionToolbarContext<TData extends RowData> {
39
81
  rowSelection: RowSelectionState;
40
82
  clearSelection: () => void;
41
83
  }
42
- /** Density of the whole table: row spacing only, not type size. */
84
+ /**
85
+ * Row spacing for the whole table, not type size. Unset, a compact provider density picks
86
+ * `sm`.
87
+ */
43
88
  export type DataTableSize = ComponentScale;
44
89
  /**
45
90
  * The wrapper's chrome. `card` is the default admin surface; `glass` is a hairline outline
@@ -49,7 +94,7 @@ export type DataTableSurface = "card" | "glass" | "flat";
49
94
  /** How row actions render. `auto` picks by the container's width. */
50
95
  export type RowActionsDisplayMode = "menu" | "inline" | "auto";
51
96
  export type ClassNameFor<TData extends RowData> = string | ((column: string, row: Row<TData> | null) => string);
52
- export interface DataTableProps<TData extends RowData, TValue = unknown> {
97
+ export interface DataTableProps<TData extends RowData, TValue = unknown, TDetail = unknown> {
53
98
  size?: DataTableSize;
54
99
  /**
55
100
  * The wrapper's chrome. `card` is the ordinary treatment; `glass` is a hairline outline for a
@@ -163,6 +208,11 @@ export interface DataTableProps<TData extends RowData, TValue = unknown> {
163
208
  totalRowCount?: number;
164
209
  pageSize?: number;
165
210
  onRowClick?: RowClickHandler<TData>;
211
+ /**
212
+ * Turns on expandable rows: a toggle column at the row's start AND the panel it opens,
213
+ * with the state behind them. Without it the table has neither.
214
+ */
215
+ expandedRow?: DataTableExpandedRow<TData, TDetail>;
166
216
  onRowSelectionChange?: RowSelectionHandler;
167
217
  onSortingChange?: SortingHandler;
168
218
  onColumnVisibilityChange?: ColumnVisibilityHandler;
@@ -199,6 +249,8 @@ export interface DataTableHeaderProps<TData extends RowData> {
199
249
  stickyFirstColumn?: boolean;
200
250
  /** Whether column 0 is the selection checkbox, so the pinned pair covers the identity column too. */
201
251
  hasSelectionColumn?: boolean;
252
+ /** Whether the expand toggle column leads the row (after any checkbox), for the pinned group. */
253
+ hasExpandColumn?: boolean;
202
254
  columnGroups?: ColumnGroup[];
203
255
  headerTransparent?: boolean;
204
256
  }
@@ -212,6 +264,12 @@ export interface DataTableBodyProps<TData extends RowData> {
212
264
  stickyFirstColumn?: boolean;
213
265
  /** Whether column 0 is the selection checkbox, so the pinned pair covers the identity column too. */
214
266
  hasSelectionColumn?: boolean;
267
+ /** Whether the expand toggle column leads the row (after any checkbox), for the pinned group. */
268
+ hasExpandColumn?: boolean;
269
+ /** The expanded-row config. Open rows render its panel under them. */
270
+ expandedRow?: DataTableExpandedRow<TData, unknown>;
271
+ /** Prefixes each panel's id and cache key, so two tables never share either. */
272
+ expansionId?: string;
215
273
  striped?: boolean;
216
274
  strings?: DataTableStrings;
217
275
  }
@@ -4,6 +4,6 @@ export { UIConfigSettings, type UIConfigSettingsProps } from './ui-config-settin
4
4
  export { useAppliedTheme } from './use-applied-theme.js';
5
5
  export { defaultThemeTweakerFields } from './theme-tweaker.fields.js';
6
6
  export { defaultThemeTweakerStrings, defaultUIConfigSettingsStrings, type ThemeTweakerStrings, type UIConfigSettingsStrings, } from './theme-tweaker.strings.js';
7
- export { countThemeOverrides, createScopedThemeSelectors, createSerializableUIConfig, createTheme, createThemeExportArtifact, defaultThemeSelectors, downloadTextFile, downloadTheme, getActiveThemeOverrides, isThemeVariableName, serializeTheme, serializeUIConfig, themeToStyle, } from './theme-tweaker.utils.js';
7
+ export { countThemeOverrides, createScopedThemeSelectors, createSerializableUIConfig, createTheme, createThemeExportArtifact, defaultThemeSelectors, downloadTextFile, downloadTheme, getActiveThemeOverrides, isThemeVariableName, serializeTheme, serializeUIConfig, themeFromConfig, themeToStyle, } from './theme-tweaker.utils.js';
8
8
  export { deriveThemeElevation, deriveThemePalette, deriveThemeTypeScale, type ThemeElevationRecipe, type ThemePaletteRecipe, type ThemeTypeScaleRecipe, } from '../../../lib/theming/index.js';
9
9
  export type { CreateThemeExportArtifactOptions, SerializeThemeOptions, ThemeDefinition, ThemeExportArtifact, ThemeMode, ThemeOverrides, ThemeScopeProps, ThemeSelectors, ThemeStyle, ThemeTweakerField, ThemeTweakerFieldKind, ThemeTweakerFieldScope, ThemeTweakerGroup, ThemeTweakerProps, ThemeTweakerRangeControl, ThemeTweakerSection, ThemeTweakerTarget, ThemeVariableName, } from './theme-tweaker.types.js';
@@ -61,7 +61,7 @@ export interface ThemeTweakerStrings {
61
61
  providerSettings: UIConfigSettingsStrings;
62
62
  groups: Record<"colors" | "states" | "typography" | "shape" | "structure" | "defaults", string>;
63
63
  groupDescriptions: Record<"colors" | "states" | "typography" | "shape" | "structure" | "defaults", string>;
64
- sections: Record<"surfaces-content" | "brand-actions" | "charts" | "sidebar" | "semantic-feedback" | "inverse-surfaces" | "font-families" | "type-scale" | "radius" | "elevation" | "global-scales" | "actions-controls" | "rows-surfaces" | "media" | "application-shell" | "content-widths" | "adaptive-layout", string>;
64
+ sections: Record<"surfaces-content" | "brand-actions" | "charts" | "sidebar" | "semantic-feedback" | "tints" | "font-families" | "type-scale" | "radius" | "elevation" | "spacing" | "controls" | "motion" | "application-shell", string>;
65
65
  }
66
66
  export declare const defaultThemeTweakerStrings: ThemeTweakerStrings;
67
67
  export { defaultUIConfigSettingsStrings, type UIConfigSettingsStrings };
@@ -13,7 +13,7 @@ export interface ThemeDefinition {
13
13
  dark: ThemeOverrides;
14
14
  }
15
15
  export type ThemeTweakerGroup = "colors" | "states" | "typography" | "shape" | "structure" | "defaults";
16
- export type ThemeTweakerSection = "surfaces-content" | "brand-actions" | "charts" | "sidebar" | "semantic-feedback" | "inverse-surfaces" | "font-families" | "type-scale" | "radius" | "elevation" | "global-scales" | "actions-controls" | "rows-surfaces" | "media" | "application-shell" | "content-widths" | "adaptive-layout";
16
+ export type ThemeTweakerSection = "surfaces-content" | "brand-actions" | "charts" | "sidebar" | "semantic-feedback" | "tints" | "font-families" | "type-scale" | "radius" | "elevation" | "spacing" | "controls" | "motion" | "application-shell";
17
17
  export type ThemeTweakerFieldScope = "shared" | "mode";
18
18
  export type ThemeTweakerFieldKind = "color" | "font" | "length" | "number" | "shadow";
19
19
  /** A slider and a numeric box, for a variable with real bounds. */
@@ -41,17 +41,13 @@ export interface ThemeTweakerField {
41
41
  /** Without one the field is a raw CSS text box, which every variable falls back to. */
42
42
  control?: ThemeTweakerRangeControl;
43
43
  }
44
+ /**
45
+ * Where a serialised theme is declared. One selector: a colour carries both modes in its
46
+ * `light-dark()` value, and the element's `color-scheme` picks the half.
47
+ */
44
48
  export interface ThemeSelectors {
45
- /** Receives the mode-independent variables. */
49
+ /** `:root` for the whole application, or a scope's own selector. */
46
50
  shared: string;
47
- /** Explicit light: a `.light` or `data-theme="light"` element and the boundaries inside it. */
48
- light: string;
49
- /** Explicit dark: a `.dark` or `data-theme="dark"` element and the boundaries inside it. */
50
- dark: string;
51
- /** Light by OS preference (no explicit theme), emitted under `prefers-color-scheme: light`. */
52
- systemLight?: string;
53
- /** Dark by OS preference (no explicit theme), emitted under `prefers-color-scheme: dark`. */
54
- systemDark?: string;
55
51
  }
56
52
  export interface SerializeThemeOptions {
57
53
  selectors?: ThemeSelectors;
@@ -1,8 +1,19 @@
1
- import { UIConfig } from '../../../lib/ui-provider/index.js';
1
+ import { ThemeConfig, UIConfig } from '../../../lib/ui-provider/index.js';
2
2
  import { CreateThemeExportArtifactOptions, SerializeThemeOptions, ThemeDefinition, ThemeExportArtifact, ThemeMode, ThemeOverrides, ThemeSelectors, ThemeStyle, ThemeVariableName } from './theme-tweaker.types.js';
3
3
  export declare const defaultThemeSelectors: ThemeSelectors;
4
4
  export declare function createTheme(value?: Partial<ThemeDefinition>): ThemeDefinition;
5
+ /**
6
+ * A provider theme, such as one of `themes` from `themelia-ui/theming`, as a definition the
7
+ * tweaker can edit and export: each `light-dark()` colour split into its two halves, a single
8
+ * colour kept for both modes, the radii and extra variables shared.
9
+ */
10
+ export declare function themeFromConfig(config: ThemeConfig, mode?: ThemeMode): ThemeDefinition;
5
11
  export declare function isThemeVariableName(value: string): value is ThemeVariableName;
12
+ /**
13
+ * The two halves of a `light-dark(light, dark)` value, split at its top-level comma so a
14
+ * `color-mix(…)` half stays whole; `null` for any other value.
15
+ */
16
+ export declare function splitLightDark(value: string): [string, string] | null;
6
17
  export declare function serializeTheme(theme: ThemeDefinition, options?: SerializeThemeOptions): string;
7
18
  /**
8
19
  * The provider config minus what cannot survive `JSON.stringify`: `dates.locale` (a
@@ -10,14 +21,19 @@ export declare function serializeTheme(theme: ThemeDefinition, options?: Seriali
10
21
  */
11
22
  export declare function createSerializableUIConfig(config?: UIConfig): UIConfig;
12
23
  export declare function serializeUIConfig(config?: UIConfig): string;
13
- /** Shared first, then the mode's, so a mode-scoped edit wins. */
24
+ /**
25
+ * The values the theme gives in one mode: shared first, then that mode's colour halves. For
26
+ * showing a value; the element's `color-scheme` is what picks the half on the page.
27
+ */
14
28
  export declare function getActiveThemeOverrides(theme: ThemeDefinition, mode?: ThemeMode): ThemeOverrides;
15
- export declare function themeToStyle(theme: ThemeDefinition, mode?: ThemeMode): ThemeStyle;
16
- export declare function countThemeOverrides(theme: ThemeDefinition): number;
17
29
  /**
18
- * Selectors that scope a theme to one subtree. Each mode gets two forms (the scope carrying
19
- * the class, and the scope inside an element that carries it).
30
+ * The theme as an inline style: shared values and each colour's `light-dark()` pair. The
31
+ * element's `color-scheme` (set by `.light`, `.dark` or `data-theme`) picks the half.
20
32
  */
33
+ export declare function themeToStyle(theme: ThemeDefinition): ThemeStyle;
34
+ /** How many variables the theme changes; a colour edited in both modes counts once. */
35
+ export declare function countThemeOverrides(theme: ThemeDefinition): number;
36
+ /** The selector that scopes a theme to one subtree instead of the document. */
21
37
  export declare function createScopedThemeSelectors(scopeSelector: string): ThemeSelectors;
22
38
  export declare function createThemeExportArtifact(theme: ThemeDefinition, fileName?: string, options?: SerializeThemeOptions, artifactOptions?: CreateThemeExportArtifactOptions): ThemeExportArtifact;
23
39
  export declare function downloadTextFile({ fileName, text, mimeType, }: {
@@ -32,7 +32,7 @@ export interface TopbarSidebarLayoutProps extends Omit<ComponentProps<"div">, "c
32
32
  * `collapsible="none"` and `sidebarTrigger={false}`.
33
33
  */
34
34
  mobileSidebarMode?: TopbarSidebarMobileMode;
35
- /** Any CSS length. Falls back to the shell's own token. */
35
+ /** Any CSS length. Falls back to the theme's `--header-height`. */
36
36
  headerHeight?: string;
37
37
  sidebarWidth?: string;
38
38
  /** Shorthands for the matching `slots` entry, for a shell with only a few regions. */
@@ -46,7 +46,7 @@ export interface AuthShellProps extends LayoutNavigationAdapter, Omit<ComponentP
46
46
  languageLinks?: AuthLink[];
47
47
  /** A rendered control, when a link row is not the right shape for it. */
48
48
  languageSwitcher?: ReactNode;
49
- /** The surface width. */
49
+ /** The surface width: `default`, or `sm` for a single short form such as a code entry. */
50
50
  size?: AuthShellSize;
51
51
  /**
52
52
  * `card` (default) puts the content on a raised surface; `bare` does not; `split` puts
@@ -31,7 +31,7 @@ export interface AuthFooterLinksProps extends LayoutNavigationAdapter {
31
31
  className?: string;
32
32
  }
33
33
  export type AuthShellVariant = "card" | "bare" | "split";
34
- export type AuthShellSize = "sm" | "md" | "lg";
34
+ export type AuthShellSize = "default" | "sm";
35
35
  export type AuthSplitSide = "start" | "end";
36
36
  /** What the panel does below 56rem of available width: disappear, or fall under the form. */
37
37
  export type AuthSplitMobile = "hidden" | "stacked";
@@ -21,9 +21,11 @@ export interface ValueProps extends SpanProps {
21
21
  ref?: Ref<HTMLSpanElement>;
22
22
  }
23
23
  /** Shared shell so the empty state and the BEM hook are defined once. */
24
- export declare function ValueRoot({ children, emptyLabel, size, align, weight, type, truncate, className, hook, numeric, ref, ...props }: ValueProps & {
24
+ export declare function ValueRoot({ children, emptyLabel, size, align, weight, type, truncate, className, hook, numeric, mono, lineHeight, ref, ...props }: ValueProps & {
25
25
  hook: string;
26
26
  numeric?: boolean;
27
+ mono?: boolean;
28
+ lineHeight?: TextProps["lineHeight"];
27
29
  }): import("react").JSX.Element;
28
30
  export declare function Value(props: ValueProps): import("react").JSX.Element;
29
31
  /**
@@ -1,6 +1,8 @@
1
+ import "#core.css";
1
2
  import { t as e } from "./cx--CBrhWH0.js";
2
3
  import * as t from "react";
3
4
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
+ import "#css/containers.css";
4
6
  var i = {
5
7
  pageViewport: "containers__pageViewport___9E3rd",
6
8
  container: "containers__container___2mj_6",
@@ -1,11 +1,13 @@
1
- import { t as e } from "./cx--CBrhWH0.js";
2
- import { o as t } from "./typography-BkxEiwQ1.js";
3
- import { c as n } from "./buttons-CqXKWty3.js";
4
- import { a as r } from "./toaster-bBMgXm8z.js";
1
+ import "#core.css";
2
+ import { s as e } from "./typography-DmeR05Er.js";
3
+ import { t } from "./cx--CBrhWH0.js";
4
+ import { c as n } from "./buttons-BX2JfL5X.js";
5
+ import { a as r } from "./toaster-CXL8L7Mm.js";
5
6
  import { t as i } from "./use-latest-CF0678ae.js";
6
7
  import { CheckIcon as a, CopyIcon as o } from "lucide-react";
7
8
  import { forwardRef as s, useCallback as c, useEffect as l, useState as u } from "react";
8
9
  import { jsx as d, jsxs as f } from "react/jsx-runtime";
10
+ import "#css/copyable.css";
9
11
  //#region src/components/base/copyable/copyable.strings.ts
10
12
  var p = {
11
13
  copy: "Copy value",
@@ -42,7 +44,6 @@ var g = {
42
44
  root: "copyable__root___KYCEA",
43
45
  truncateRoot: "copyable__truncateRoot___oYQ2P",
44
46
  content: "copyable__content___nB8cb",
45
- mono: "copyable__mono___lbfnI",
46
47
  trigger: "copyable__trigger___DNuXu",
47
48
  triggerCompact: "copyable__triggerCompact___V83o4",
48
49
  confirmIcon: "copyable__confirmIcon___fVHYS"
@@ -60,15 +61,15 @@ var g = {
60
61
  }), D = s !== void 0 && typeof s != "string" && typeof s != "number" && typeof s != "bigint", { className: O, "aria-label": k, ...A } = y ?? {};
61
62
  return /* @__PURE__ */ f("span", {
62
63
  ref: C,
63
- className: e("copyable--component", g.root, l && g.truncateRoot, v),
64
+ className: t("copyable--component", g.root, l && g.truncateRoot, v),
64
65
  ...S,
65
66
  children: [/* @__PURE__ */ d("span", {
66
- className: e("copyable--content", g.content),
67
- children: D ? s : /* @__PURE__ */ d(t, {
67
+ className: t("copyable--content", g.content),
68
+ children: D ? s : /* @__PURE__ */ d(e, {
68
69
  tag: "span",
69
70
  size: "inherit",
70
71
  truncate: l,
71
- className: e(c && g.mono),
72
+ mono: c,
72
73
  children: s ?? i
73
74
  })
74
75
  }), /* @__PURE__ */ d(n, {
@@ -76,11 +77,11 @@ var g = {
76
77
  type: "button",
77
78
  iconOnly: !0,
78
79
  tone: "neutral",
79
- buttonStyle: "ghost",
80
+ appearance: "ghost",
80
81
  "aria-label": k ?? (T ? w.copied : w.copy),
81
82
  "data-hit-area": u ? "" : void 0,
82
83
  onClick: () => void E(i),
83
- className: e("copyable--trigger", g.trigger, u && g.triggerCompact, O),
84
+ className: t("copyable--trigger", g.trigger, u && g.triggerCompact, O),
84
85
  children: T ? /* @__PURE__ */ d(a, {
85
86
  "aria-hidden": !0,
86
87
  className: g.confirmIcon
package/dist/core.css CHANGED
@@ -1,2 +1,2 @@
1
- @layer tokens, theming, base, components, utilities;
2
- @layer tokens{:root{--neutral-0:oklch(100% 0 0);--neutral-25:oklch(99% 0 0);--neutral-50:oklch(98.5% 0 0);--neutral-75:oklch(98% 0 0);--neutral-100:oklch(97% 0 0);--neutral-150:oklch(96% 0 0);--neutral-200:oklch(92.2% 0 0);--neutral-400:oklch(70.8% 0 0);--neutral-500:oklch(55.6% 0 0);--neutral-550:oklch(50% 0 0);--neutral-700:oklch(36% 0 0);--neutral-750:oklch(33% 0 0);--neutral-800:oklch(28% 0 0);--neutral-850:oklch(25% 0 0);--neutral-875:oklch(23% 0 0);--neutral-900:oklch(20.5% 0 0);--neutral-950:oklch(16% 0 0);--brand-300:oklch(72% .124 167.35);--brand-350:oklch(70% .13 167.35);--brand-600:oklch(45% .124 167.35);--brand-950:oklch(18% .03 167.35);--danger-400:oklch(70.4% .191 22.216);--danger-600:oklch(50% .245 27.325);--danger-950:oklch(18% .05 22);--success-400:oklch(76% .16 145);--success-600:oklch(40% .16 145);--success-950:oklch(18% .05 145);--info-400:oklch(72% .14 250);--info-600:oklch(45% .214 276.966);--info-950:oklch(18% .05 250);--warning-300:oklch(82% .16 90);--warning-500:oklch(72% .16 90);--warning-700:oklch(45% .12 80);--warning-900:oklch(20% .05 80);--warning-950:oklch(18% .05 80);--link-400:oklch(72% .12 259.13);--link-600:oklch(46.2% .1776 259.13);--violet-500:oklch(48.8% .243 264.376);--series-1:oklch(56% .11 167);--series-1-dark:oklch(74% .13 167);--series-2:oklch(56% .11 230);--series-2-dark:oklch(72% .14 230);--series-3:oklch(56% .17 285);--series-3-dark:oklch(72% .15 285);--series-4:oklch(58% .16 330);--series-4-dark:oklch(74% .15 330);--series-5:oklch(60% .14 60);--series-5-dark:oklch(78% .14 60);--white-a10:oklch(100% 0 0/.1);--white-a15:oklch(100% 0 0/.15);--pure-black:oklch(0% 0 0);--radius:1rem;--radius-sm:.5rem;--border-width:1px;--border-width-strong:2px;--radius-pill:999px}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--background:var(--neutral-0);--foreground:var(--neutral-800);--card:var(--neutral-0);--card-foreground:var(--neutral-800);--popover:var(--background);--popover-foreground:var(--foreground);--primary:var(--brand-600);--primary-foreground:var(--neutral-50);--secondary:var(--neutral-100);--secondary-foreground:var(--neutral-900);--muted:var(--neutral-100);--muted-foreground:var(--neutral-550);--accent:var(--neutral-100);--accent-foreground:var(--neutral-900);--destructive:var(--danger-600);--destructive-foreground:var(--neutral-25);--border:var(--neutral-200);--input:var(--neutral-200);--ring:var(--neutral-400);--chart-1:var(--series-1);--chart-2:var(--series-2);--chart-3:var(--series-3);--chart-4:var(--series-4);--chart-5:var(--series-5);--sidebar:var(--neutral-150);--sidebar-foreground:var(--neutral-800);--sidebar-primary:var(--neutral-900);--sidebar-primary-foreground:var(--neutral-50);--sidebar-accent:var(--neutral-75);--sidebar-accent-foreground:var(--neutral-900);--sidebar-border:var(--neutral-200);--sidebar-ring:var(--neutral-400);--shadow-ink:var(--pure-black);--shadow-2xs:0 1px 2px 0px color-mix(in oklab, var(--shadow-ink) 4%, transparent);--shadow-xs:0 1px 2px 0px color-mix(in oklab, var(--shadow-ink) 6%, transparent), 0 1px 1px -1px color-mix(in oklab, var(--shadow-ink) 6%, transparent);--shadow-sm:0 1px 2px 0px color-mix(in oklab, var(--shadow-ink) 6%, transparent), 0 2px 4px -2px color-mix(in oklab, var(--shadow-ink) 10%, transparent);--shadow:0 1px 3px 0px color-mix(in oklab, var(--shadow-ink) 8%, transparent), 0 4px 8px -4px color-mix(in oklab, var(--shadow-ink) 12%, transparent);--shadow-md:0 2px 4px -1px color-mix(in oklab, var(--shadow-ink) 8%, transparent), 0 8px 16px -8px color-mix(in oklab, var(--shadow-ink) 16%, transparent);--shadow-lg:0 4px 8px -2px color-mix(in oklab, var(--shadow-ink) 10%, transparent), 0 12px 24px -12px color-mix(in oklab, var(--shadow-ink) 18%, transparent);--shadow-xl:0 8px 16px -4px color-mix(in oklab, var(--shadow-ink) 12%, transparent), 0 20px 40px -20px color-mix(in oklab, var(--shadow-ink) 22%, transparent);--shadow-2xl:0 16px 32px -8px color-mix(in oklab, var(--shadow-ink) 18%, transparent), 0 32px 64px -28px color-mix(in oklab, var(--shadow-ink) 28%, transparent)}.dark,[data-theme=dark],:is(.dark,[data-theme=dark]) :is([data-ui-scope],[data-density]):not(.light,[data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:var(--neutral-900);--foreground:var(--neutral-50);--card:var(--neutral-850);--card-foreground:var(--neutral-50);--popover:var(--neutral-800);--popover-foreground:var(--foreground);--primary:var(--brand-350);--primary-foreground:var(--brand-950);--secondary:var(--neutral-850);--secondary-foreground:var(--neutral-50);--muted:var(--neutral-875);--muted-foreground:var(--neutral-400);--accent:var(--neutral-750);--accent-foreground:var(--neutral-50);--destructive:var(--danger-400);--destructive-foreground:var(--danger-950);--border:var(--white-a10);--input:var(--white-a15);--ring:var(--neutral-500);--chart-1:var(--series-1-dark);--chart-2:var(--series-2-dark);--chart-3:var(--series-3-dark);--chart-4:var(--series-4-dark);--chart-5:var(--series-5-dark);--sidebar:var(--neutral-950);--sidebar-foreground:var(--neutral-50);--sidebar-primary:var(--neutral-50);--sidebar-primary-foreground:var(--neutral-900);--sidebar-accent:var(--neutral-800);--sidebar-accent-foreground:var(--neutral-50);--sidebar-border:var(--white-a10);--sidebar-ring:var(--neutral-500)}@media (prefers-color-scheme:dark){:root:not(.light,[data-theme=light]),[data-ui-scope]:not(.light,[data-theme=light],:where(.light,[data-theme=light]) *),[data-density]:not(.light,[data-theme=light],:where(.light,[data-theme=light]) *){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--background:var(--neutral-900);--foreground:var(--neutral-50);--card:var(--neutral-850);--card-foreground:var(--neutral-50);--popover:var(--neutral-800);--popover-foreground:var(--foreground);--primary:var(--brand-350);--primary-foreground:var(--brand-950);--secondary:var(--neutral-850);--secondary-foreground:var(--neutral-50);--muted:var(--neutral-875);--muted-foreground:var(--neutral-400);--accent:var(--neutral-750);--accent-foreground:var(--neutral-50);--destructive:var(--danger-400);--destructive-foreground:var(--danger-950);--border:var(--white-a10);--input:var(--white-a15);--ring:var(--neutral-500);--chart-1:var(--series-1-dark);--chart-2:var(--series-2-dark);--chart-3:var(--series-3-dark);--chart-4:var(--series-4-dark);--chart-5:var(--series-5-dark);--sidebar:var(--neutral-950);--sidebar-foreground:var(--neutral-50);--sidebar-primary:var(--neutral-50);--sidebar-primary-foreground:var(--neutral-900);--sidebar-accent:var(--neutral-800);--sidebar-accent-foreground:var(--neutral-50);--sidebar-border:var(--white-a10);--sidebar-ring:var(--neutral-500)}}:root{--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-serif:Merriweather, ui-serif, serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--scale:1;--density-scale:initial;--text-scale:initial;--text-xs--line-height:calc(1 / .75);--text-pxs--line-height:calc(1.125 / .8125);--text-sm--line-height:calc(1.25 / .875);--text-base--line-height:calc(1.5 / 1);--text-lg--line-height:calc(1.75 / 1.125);--text-xl--line-height:calc(1.75 / 1.25);--text-2xl--line-height:calc(2 / 1.5)}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--font-heading:var(--font-sans);--text-xs:calc(.75rem * var(--text-scale,var(--scale)));--text-pxs:calc(.8125rem * var(--text-scale,var(--scale)));--text-sm:calc(.875rem * var(--text-scale,var(--scale)));--text-base:calc(1rem * var(--text-scale,var(--scale)));--text-lg:calc(1.125rem * var(--text-scale,var(--scale)));--text-xl:calc(1.25rem * var(--text-scale,var(--scale)));--text-2xl:calc(1.5rem * var(--text-scale,var(--scale)))}[data-density=compact]{--density-scale:.941177}[data-density=default]{--density-scale:initial}[data-density=comfortable]{--density-scale:1.075}:root{--height-control:2.125rem;--control-x:.75rem;--icon:1rem;--avatar:2rem}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--success:var(--success-600);--success-foreground:var(--neutral-50);--info:var(--info-600);--info-foreground:var(--neutral-25);--link-color:var(--link-600);--primary-accent:var(--brand-600);--warning:var(--warning-500);--warning-foreground:var(--warning-900);--warning-accent:var(--warning-700);--destructive-accent:color-mix(in oklab, var(--destructive) 85%, var(--foreground));--inverse-background:var(--neutral-800);--inverse-foreground:var(--neutral-50);--inverse-muted:color-mix(in oklab, var(--neutral-50) 74%, transparent);--inverse-subtle:color-mix(in oklab, var(--neutral-50) 58%, transparent);--inverse-disabled:color-mix(in oklab, var(--neutral-50) 42%, transparent);--inverse-surface:color-mix(in oklab, var(--neutral-50) 12%, transparent);--inverse-surface-strong:color-mix(in oklab, var(--neutral-50) 22%, transparent);--inverse-border:color-mix(in oklab, var(--neutral-50) 18%, transparent);--inverse-decoration:color-mix(in oklab, var(--neutral-50) 6%, transparent)}.dark,[data-theme=dark],:is(.dark,[data-theme=dark]) :is([data-ui-scope],[data-density]):not(.light,[data-theme=light]){--success:var(--success-400);--success-foreground:var(--success-950);--info:var(--info-400);--info-foreground:var(--info-950);--link-color:var(--link-400);--primary-accent:var(--brand-300);--warning:var(--warning-300);--warning-foreground:var(--warning-950);--warning-accent:var(--warning-300)}@media (prefers-color-scheme:dark){:root:not(.light,[data-theme=light]),[data-ui-scope]:not(.light,[data-theme=light],:where(.light,[data-theme=light]) *),[data-density]:not(.light,[data-theme=light],:where(.light,[data-theme=light]) *){--success:var(--success-400);--success-foreground:var(--success-950);--info:var(--info-400);--info-foreground:var(--info-950);--link-color:var(--link-400);--primary-accent:var(--brand-300);--warning:var(--warning-300);--warning-foreground:var(--warning-950);--warning-accent:var(--warning-300)}}:root{--shell-header-height:3.5rem;--sidebar-width:16rem;--content-width-sm:40rem;--content-width-md:48rem;--content-width-lg:64rem;--content-width-xl:80rem;--content-width-2xl:96rem;--adaptive-grid-min-sm:12rem;--adaptive-grid-min-md:16rem;--adaptive-grid-min-lg:20rem;--row-x:.75rem;--row-y:.5rem;--surface-x:1rem;--surface-y:1rem;--item-media-offset:.125rem;--repeater-dragging-opacity:.4;--overlay-backdrop:oklch(0% 0 0/.5)}}@layer theming{:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--border-60:color-mix(in oklab, var(--border) 60%, transparent);--muted-20:color-mix(in oklab, var(--muted) 20%, transparent);--muted-40:color-mix(in oklab, var(--muted) 40%, transparent);--muted-50:color-mix(in oklab, var(--muted) 50%, transparent);--muted-60:color-mix(in oklab, var(--muted) 60%, transparent);--muted-80:color-mix(in oklab, var(--muted) 80%, transparent);--destructive-5:color-mix(in oklab, var(--destructive) 5%, transparent);--destructive-10:color-mix(in oklab, var(--destructive) 10%, transparent);--destructive-20:color-mix(in oklab, var(--destructive) 20%, transparent);--destructive-30:color-mix(in oklab, var(--destructive) 30%, transparent);--destructive-40:color-mix(in oklab, var(--destructive) 40%, transparent);--primary-5:color-mix(in oklab, var(--primary) 5%, transparent);--primary-10:color-mix(in oklab, var(--primary) 10%, transparent);--primary-15:color-mix(in oklab, var(--primary) 15%, transparent);--primary-20:color-mix(in oklab, var(--primary) 20%, transparent);--primary-25:color-mix(in oklab, var(--primary) 25%, transparent);--primary-30:color-mix(in oklab, var(--primary) 30%, transparent);--primary-40:color-mix(in oklab, var(--primary) 40%, transparent);--foreground-8:color-mix(in oklab, var(--foreground) 8%, transparent);--foreground-10:color-mix(in oklab, var(--foreground) 10%, transparent);--foreground-20:color-mix(in oklab, var(--foreground) 20%, transparent);--warning-10:color-mix(in oklab, var(--warning) 10%, transparent);--warning-20:color-mix(in oklab, var(--warning) 20%, transparent);--warning-30:color-mix(in oklab, var(--warning) 30%, transparent);--warning-40:color-mix(in oklab, var(--warning) 40%, transparent);--success-5:color-mix(in oklab, var(--success) 5%, transparent);--success-10:color-mix(in oklab, var(--success) 10%, transparent);--success-30:color-mix(in oklab, var(--success) 30%, transparent);--info-5:color-mix(in oklab, var(--info) 5%, transparent);--info-10:color-mix(in oklab, var(--info) 10%, transparent);--info-30:color-mix(in oklab, var(--info) 30%, transparent);--muted-foreground-40:color-mix(in oklab, var(--muted-foreground) 40%, transparent);--muted-foreground-70:color-mix(in oklab, var(--muted-foreground) 70%, transparent);--background-70:color-mix(in oklab, var(--background) 70%, transparent);--background-80:color-mix(in oklab, var(--background) 80%, transparent);--input-30:color-mix(in oklab, var(--input) 30%, transparent);--accent-50:color-mix(in oklab, var(--accent) 50%, transparent);--sidebar-accent-50:color-mix(in oklab, var(--sidebar-accent) 50%, transparent)}:where([data-theme],.light,.dark){--surface-ground:initial}:root{--leading-12:1rem;--hit-area-min:1.5rem}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--space-2xs:round(calc(.125rem * var(--density-scale,var(--scale))), 1px);--space-xs:round(calc(.25rem * var(--density-scale,var(--scale))), 1px);--space-sm:round(calc(.375rem * var(--density-scale,var(--scale))), 1px);--space-md:round(calc(.5rem * var(--density-scale,var(--scale))), 1px);--space-lg:round(calc(.75rem * var(--density-scale,var(--scale))), 1px);--space-xl:round(calc(1rem * var(--density-scale,var(--scale))), 1px);--space-2xl:round(calc(1.5rem * var(--density-scale,var(--scale))), 1px);--control-h-2xs:round(calc(var(--height-control) * .705882 * var(--density-scale,var(--scale))), 1px);--control-h-sm:round(calc(var(--height-control) * .882353 * var(--density-scale,var(--scale))), 1px);--control-h:round(calc(var(--height-control) * var(--density-scale,var(--scale))), 1px);--control-px-2xs:round(calc(var(--control-x) * .666667 * var(--density-scale,var(--scale))), 1px);--control-px-sm:round(calc(var(--control-x) * .833333 * var(--density-scale,var(--scale))), 1px);--control-px:round(calc(var(--control-x) * var(--density-scale,var(--scale))), 1px);--size-icon-sm:round(calc(var(--icon) * .75 * var(--density-scale,var(--scale))), 1px);--size-icon-md:round(calc(var(--icon) * .875 * var(--density-scale,var(--scale))), 1px);--size-icon:round(calc(var(--icon) * var(--density-scale,var(--scale))), 1px);--size-icon-lg:round(calc(var(--icon) * 1.25 * var(--density-scale,var(--scale))), 1px);--size-icon-xl:round(calc(var(--icon) * 1.5 * var(--density-scale,var(--scale))), 1px);--size-icon-2xl:round(calc(var(--icon) * 2.5 * var(--density-scale,var(--scale))), 1px);--size-medallion:round(calc(2.5rem * var(--density-scale,var(--scale))), 1px);--size-avatar-sm:round(calc(var(--avatar) * .75 * var(--density-scale,var(--scale))), 1px);--size-avatar:round(calc(var(--avatar) * var(--density-scale,var(--scale))), 1px);--size-avatar-lg:round(calc(var(--avatar) * 1.25 * var(--density-scale,var(--scale))), 1px);--surface-px-xs:round(calc(var(--surface-x) * .5 * var(--density-scale,var(--scale))), 1px);--surface-px:round(calc(var(--surface-x) * var(--density-scale,var(--scale))), 1px);--surface-px-lg:round(calc(var(--surface-x) * 1.75 * var(--density-scale,var(--scale))), 1px);--surface-py-xs:round(calc(var(--surface-y) * .5 * var(--density-scale,var(--scale))), 1px);--surface-py:round(calc(var(--surface-y) * var(--density-scale,var(--scale))), 1px);--surface-py-lg:round(calc(var(--surface-y) * 1.75 * var(--density-scale,var(--scale))), 1px);--menu-row-py:round(calc(.25rem * var(--density-scale,var(--scale))), 1px);--menu-row-min-h:round(calc(2rem * var(--density-scale,var(--scale))), 1px);--row-px:round(calc(var(--row-x) * var(--density-scale,var(--scale))), 1px);--row-py:round(calc(var(--row-y) * var(--density-scale,var(--scale))), 1px);--table-head-h:round(calc(3rem * var(--density-scale,var(--scale))), 1px)}:root{--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-none:1;--leading-tight:1.25;--leading-snug:1.375;--leading-normal:1.5;--leading-relaxed:1.625;--tracking-widest:.1em;--tracking-tight:-.025em;--focus-ring-width:2px;--focus-ring-offset:0px;--disabled-opacity:.5}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--control-border:color-mix(in oklab, var(--input) 70%, var(--foreground) 30%);--control-border-hover:color-mix(in oklab, var(--input) 45%, var(--foreground) 55%);--focus-ring-color:color-mix(in oklab, var(--ring) 70%, var(--foreground) 30%);--focus-ring:0 0 0 var(--focus-ring-offset) var(--background), 0 0 0 calc(var(--focus-ring-width) + var(--focus-ring-offset)) var(--focus-ring-color);--focus-ring-inset:inset 0 0 0 var(--focus-ring-offset) var(--background), inset 0 0 0 calc(var(--focus-ring-width) + var(--focus-ring-offset)) var(--focus-ring-color);--field-focus-ring:0 0 0 var(--focus-ring-width) color-mix(in oklab, var(--focus-ring-color) 22%, transparent);--invalid-ring-color:var(--destructive-20);--invalid-ring-border:var(--destructive);--invalid-ring:0 0 0 var(--focus-ring-width) var(--invalid-ring-color)}.dark,[data-theme=dark],:is(.dark,[data-theme=dark]) :is([data-ui-scope],[data-density]):not(.light,[data-theme=light]){--control-border:color-mix(in oklab, var(--input) 85%, var(--foreground) 15%);--control-border-hover:color-mix(in oklab, var(--input) 65%, var(--foreground) 35%);--focus-ring-color:var(--ring);--invalid-ring-color:var(--destructive-40);--invalid-ring-border:var(--destructive-accent)}@media (prefers-color-scheme:dark){:root:not(.light,[data-theme=light]),[data-ui-scope]:not(.light,[data-theme=light],:where(.light,[data-theme=light]) *),[data-density]:not(.light,[data-theme=light],:where(.light,[data-theme=light]) *){--control-border:color-mix(in oklab, var(--input) 85%, var(--foreground) 15%);--control-border-hover:color-mix(in oklab, var(--input) 65%, var(--foreground) 35%);--focus-ring-color:var(--ring);--invalid-ring-color:var(--destructive-40);--invalid-ring-border:var(--destructive-accent)}}:root{--duration-instant:75ms;--duration-fast:.15s;--duration-normal:.2s;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1)}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--transition-control:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}@media (prefers-reduced-motion:reduce){:root{--duration-instant:0s;--duration-fast:0s;--duration-normal:0s}}:root{--z-raised:1;--z-sticky:10;--z-docked:20;--z-popover:50;--z-toast:100;--z-tooltip:1000;--enter-opacity:1;--enter-scale:1;--enter-translate-x:0;--enter-translate-y:0;--exit-opacity:1;--exit-scale:1;--exit-translate-x:0;--exit-translate-y:0;--animate-spin:spin 1s linear infinite;--slide-nudge:.5rem}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--animate-enter:enter var(--duration-fast) var(--ease-out);--animate-exit:exit var(--duration-fast) var(--ease-out);--animate-ping:ping 1s var(--ease-out) infinite;--animate-pulse:pulse 2s var(--ease-in-out) infinite}@keyframes enter{0%{opacity:var(--enter-opacity);transform:translate3d(var(--enter-translate-x), var(--enter-translate-y), 0) scale3d(var(--enter-scale), var(--enter-scale), var(--enter-scale))}}@keyframes exit{to{opacity:var(--exit-opacity);transform:translate3d(var(--exit-translate-x), var(--exit-translate-y), 0) scale3d(var(--exit-scale), var(--exit-scale), var(--exit-scale))}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes ping{75%,to{opacity:0;transform:scale(2)}}@keyframes pulse{50%{opacity:.5}}@keyframes progress-indeterminate{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){:root{--animate-enter:none;--animate-exit:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:0s!important;animation-iteration-count:1!important}}@keyframes shimmer-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}:root{--overlay-max-width:32rem;--overlay-enter-scale:.97;--overlay-backdrop-filter:none;--overlay-edge-inset:0px;--overlay-edge-sm:55%;--overlay-edge-md:75%;--overlay-edge-lg:90%;--overlay-edge-full:100%;--tooltip-arrow-size:.5rem;--overlay-region-p:initial}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--overlay-duration-exit:calc(var(--duration-normal) * .75);--overlay-edge-length:calc(100% - var(--overlay-edge-inset) * 2);--overlay-edge-inset-default:var(--space-lg);--popover-shadow:0 0 0 var(--border-width) var(--foreground-10), var(--shadow-md);--layout-column-gap:round(calc(2rem * var(--density-scale,var(--scale))), 1px);--layout-aside-min:calc(18rem * var(--scale));--shell-header-h:round(calc(var(--shell-header-height) * var(--density-scale,var(--scale))), 1px);--resource-media:round(calc(var(--avatar) * 1.5 * var(--density-scale,var(--scale))), 1px)}:root{--field-bg:transparent;--field-label-width:12rem}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--field-icon-lane:calc(var(--size-icon) + var(--space-md) * 2);--field-addon-lane:round(calc(2.5rem * var(--density-scale,var(--scale))), 1px);--empty-art-h:round(calc(6rem * var(--density-scale,var(--scale))), 1px);--progress-fill:var(--primary)}:root{--rich-text-list-indent:1.5em;--rich-text-quote-indent:1em;--link-underline-offset:3px}:root,[data-ui-scope],[data-density],[data-theme],.light,.dark{--text-role-main:var(--foreground);--text-role-inverse:var(--background);--text-role-secondary:var(--muted-foreground);--rich-text-block-gap:calc(.75em * var(--text-scale,var(--scale)));--rich-text-item-gap:calc(.25em * var(--text-scale,var(--scale)))}}@layer base{*,:before,:after{box-sizing:border-box;border:0 solid var(--border)}*{margin:0}html{font-family:var(--font-sans);line-height:var(--text-sm--line-height);-webkit-text-size-adjust:100%;tab-size:4}body{background-color:var(--background);color:var(--foreground);font-size:var(--text-sm);line-height:var(--text-sm--line-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background-color:var(--primary);color:var(--primary-foreground)}:is(input,textarea,[contenteditable=true]){caret-color:var(--primary-accent)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:1em}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}mark{background-color:var(--warning-30);color:var(--foreground);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin-inline:-.125em;padding-inline:.125em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0;padding:0}button,input[type=button],input[type=reset],input[type=submit]{appearance:button;background-color:#0000;background-image:none}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}:disabled{cursor:default}::placeholder{opacity:1;color:var(--muted-foreground)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:not([hidden=until-found]){display:none!important}}@layer components{[data-field-control]{width:100%;min-width:0;height:var(--control-h);padding-inline:var(--control-px-sm);padding-block:var(--space-xs);border:var(--border-width) solid var(--control-border);border-radius:var(--radius-sm);background-color:var(--field-bg);color:var(--foreground);font:inherit;font-size:var(--text-sm);line-height:var(--text-sm--line-height);box-shadow:none;transition:color var(--duration-fast) var(--ease-in-out), border-color var(--duration-fast) var(--ease-in-out), box-shadow var(--duration-fast) var(--ease-in-out);outline:none}[data-iphone-input-zoom=true]{--field-min-font-size:16px}[data-iphone-input-zoom=false]{--field-min-font-size:0px}:is(input,textarea,select)[data-field-control]{font-size:max(var(--text-sm), var(--field-min-font-size,0px));line-height:max(var(--text-sm--line-height), calc(var(--field-min-font-size,0px) * 1.25))}[data-field-control]::placeholder{color:var(--muted-foreground)}[data-field-control]:hover:not(:disabled):not([data-disabled]):not(:focus-visible):not([aria-invalid=true]):not(:is(input,textarea):read-only){border-color:var(--control-border-hover)}:is(input,textarea)[data-field-control]:read-only:not(:disabled){background-color:var(--foreground-8)}[data-field-control]:focus-visible{border-color:var(--focus-ring-color);box-shadow:var(--field-focus-ring)}[data-field-control][aria-invalid=true]{border-color:var(--invalid-ring-border);box-shadow:var(--invalid-ring)}[data-field-control][aria-invalid=true]:focus-visible{box-shadow:var(--field-focus-ring)}[data-field-control]:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}[data-field-control]:-webkit-any(:autofill,:-webkit-autofill){-webkit-text-fill-color:var(--foreground);box-shadow:inset 0 0 0 100px var(--card)}[data-field-control]:is(:autofill,:autofill){-webkit-text-fill-color:var(--foreground);box-shadow:inset 0 0 0 100px var(--card)}[data-field-control]:-webkit-any(:autofill,:-webkit-autofill):focus-visible{box-shadow:inset 0 0 0 100px var(--card), var(--field-focus-ring)}[data-field-control]:is(:autofill,:autofill):focus-visible{box-shadow:inset 0 0 0 100px var(--card), var(--field-focus-ring)}[data-field-shell]{align-items:center;gap:var(--space-sm);min-height:var(--control-h);padding-inline:var(--control-px-sm);border:var(--border-width) solid var(--control-border);border-radius:var(--radius-sm);background-color:var(--field-bg);box-shadow:none;transition:border-color var(--duration-fast) var(--ease-in-out), box-shadow var(--duration-fast) var(--ease-in-out);display:flex}[data-field-shell]:has([data-field-control]:focus-visible){border-color:var(--focus-ring-color);box-shadow:var(--field-focus-ring)}[data-field-shell]:hover:not(:has([data-field-control]:disabled)):not(:has([data-field-control][data-disabled])):not(:has([data-field-control]:focus-visible)):not(:has([data-field-control][aria-invalid=true])):not([aria-invalid=true]):not(:has(:is(input,textarea)[data-field-control]:read-only)){border-color:var(--control-border-hover)}[data-field-shell]:has(:is(input,textarea)[data-field-control]:read-only:not(:disabled)){background-color:var(--foreground-8)}[data-field-shell]:has([data-field-control][aria-invalid=true]),[data-field-shell][aria-invalid=true]{border-color:var(--invalid-ring-border);box-shadow:var(--invalid-ring)}[data-field-shell]:has([data-field-control][aria-invalid=true]):has([data-field-control]:focus-visible),[data-field-shell][aria-invalid=true]:has([data-field-control]:focus-visible){box-shadow:var(--field-focus-ring)}[data-field-shell]:has([data-field-control]:disabled){cursor:not-allowed;opacity:var(--disabled-opacity)}[data-field-shell] [data-field-control]{height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;padding-inline:0}[data-field-shell] [data-field-control]:focus-visible,[data-field-shell] [data-field-control][aria-invalid=true]{box-shadow:none}[data-field-shell]:has([data-field-control]:autofill){background-color:var(--card)}[data-field-shell] [data-field-control]:-webkit-any(:autofill,:-webkit-autofill){box-shadow:inset 0 0 0 100px var(--card)}[data-field-shell] [data-field-control]:is(:autofill,:autofill){box-shadow:inset 0 0 0 100px var(--card)}[data-field-shell] :is(input,textarea)[data-field-control]:read-only:not(:disabled){background:0 0}[data-hit-area]{position:relative}[data-hit-area]:after{content:"";width:max(100%, var(--hit-area-min));height:max(100%, var(--hit-area-min));position:absolute;top:50%;left:50%;translate:-50% -50%}:is(span,a)[data-ref-id]{border-radius:var(--radius-sm);font-size:1em;font-weight:var(--weight-medium);white-space:nowrap;vertical-align:baseline;background-color:var(--foreground-8);color:var(--foreground);box-shadow:inset 0 0 0 var(--border-width) var(--foreground-10);transition:background-color var(--duration-fast) var(--ease-out);-webkit-user-select:all;user-select:all;padding:.0625em .375em;line-height:1.35;text-decoration:none;display:inline-block}a[data-ref-id]:hover{background-color:color-mix(in oklab, var(--foreground) 20%, transparent)}span[data-ref-id]{cursor:default}a[data-ref-id]{cursor:pointer}:is(span,a)[data-ref-id][data-ref-tone=primary]{--ref-hue:var(--primary);--ref-ink:var(--primary-accent)}:is(span,a)[data-ref-id][data-ref-tone=info]{--ref-hue:var(--info);--ref-ink:var(--info)}:is(span,a)[data-ref-id][data-ref-tone=success]{--ref-hue:var(--success);--ref-ink:var(--success)}:is(span,a)[data-ref-id][data-ref-tone=warning]{--ref-hue:var(--warning);--ref-ink:var(--warning-accent);--ref-line:40%}:is(span,a)[data-ref-id][data-ref-tone=destructive]{--ref-hue:var(--destructive);--ref-ink:var(--destructive-accent)}:is(span,a)[data-ref-id]:is([data-ref-tone=primary],[data-ref-tone=info],[data-ref-tone=success],[data-ref-tone=warning],[data-ref-tone=destructive]){background-color:color-mix(in oklab, var(--ref-hue) 10%, transparent);color:var(--ref-ink);box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab, var(--ref-hue) var(--ref-line,30%), transparent)}a[data-ref-id]:is([data-ref-tone=primary],[data-ref-tone=info],[data-ref-tone=success],[data-ref-tone=warning],[data-ref-tone=destructive]):hover{background-color:color-mix(in oklab, var(--ref-hue) 20%, transparent)}:is(span,a)[data-ref-id][data-ref-tone=secondary]{background-color:var(--foreground-8);color:var(--muted-foreground);box-shadow:inset 0 0 0 var(--border-width) var(--foreground-10)}a[data-ref-id][data-ref-tone=secondary]:hover{background-color:color-mix(in oklab, var(--muted-foreground) 20%, transparent)}:is(span,a)[data-ref-id]>svg{vertical-align:-.15em;width:1em;height:1em;margin-inline-end:.25em;display:inline-block}}@layer utilities{.border-b{border-bottom-width:var(--border-width)}.border-t{border-top-width:var(--border-width)}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (forced-colors:active){:focus-visible,[data-field-shell]:has([data-field-control]:focus-visible){outline:var(--focus-ring-width) solid Highlight;outline-offset:2px}}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}dialog::backdrop{background-color:var(--overlay-backdrop);-webkit-backdrop-filter:var(--overlay-backdrop-filter);backdrop-filter:var(--overlay-backdrop-filter);opacity:0;transition:opacity var(--overlay-duration-exit) var(--ease-out), overlay var(--overlay-duration-exit) allow-discrete, display var(--overlay-duration-exit) allow-discrete}dialog[open]::backdrop{opacity:1;transition:opacity var(--duration-normal) var(--ease-out), overlay var(--duration-normal) allow-discrete, display var(--duration-normal) allow-discrete}@starting-style{dialog[open]::backdrop{opacity:0}}dialog[data-modality=trap-focus]::backdrop,dialog[data-modality=non-modal]::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000}.map--component.leaflet-container{background-color:var(--muted);font-family:var(--font-sans)}.map--component.leaflet-container:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(-1 * var(--focus-ring-width))}.map--component[data-tile-filter=invert] .leaflet-tile-pane{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.9)}.map--component .leaflet-popup-content-wrapper{border-radius:var(--radius);background-color:var(--popover);color:var(--popover-foreground);box-shadow:var(--popover-shadow)}.map--component .leaflet-popup-content{margin:var(--surface-py) var(--surface-px);font-family:var(--font-sans);font-size:var(--text-sm);line-height:var(--leading-normal)}.map--component .leaflet-popup-tip{background-color:var(--popover);box-shadow:none}.map--component .leaflet-popup-close-button{color:var(--muted-foreground)}.map--component .leaflet-popup-close-button:hover{color:var(--foreground)}.map--component .leaflet-tooltip{box-shadow:none;background:0 0;border:0;padding:0}.map--component .leaflet-tooltip:before{display:none}.map--component.leaflet-container .leaflet-control-attribution{border-radius:var(--radius-sm) 0 0 0;background-color:var(--background-80);color:var(--muted-foreground);font-family:var(--font-sans);font-size:var(--text-xs);line-height:var(--text-xs--line-height)}.map--component .leaflet-control-attribution a{color:var(--link-color)}.map--component .leaflet-draw-toolbar,.map--component .leaflet-draw-actions{display:none}.map--component .leaflet-draw-tooltip{border:var(--border-width) solid var(--foreground);border-radius:var(--radius-sm);padding-block:var(--space-sm);padding-inline:var(--control-px);background-color:var(--foreground);color:var(--background);font-family:var(--font-sans);font-size:var(--text-xs);line-height:var(--text-xs--line-height)}.map--component .leaflet-draw-tooltip:before{border-right-color:var(--foreground)}.map--component .leaflet-draw-tooltip-subtext{color:var(--background-70)}.map--component .marker-cluster{border-radius:var(--radius-pill);background-color:var(--primary-20);color:var(--primary-accent);font-family:var(--font-sans);font-size:var(--text-xs);line-height:var(--text-xs--line-height);font-weight:var(--weight-semibold);justify-content:center;align-items:center;display:flex}.map--component .marker-cluster div{border-radius:var(--radius-pill);background-color:var(--primary-10);justify-content:center;align-items:center;width:100%;height:100%;margin:0;display:flex}
1
+ @layer tokens, base, components, utilities;
2
+ @layer tokens{:root{color-scheme:light dark;--background:light-dark(oklch(100% 0 0),oklch(20.5% 0 0));--foreground:light-dark(oklch(28% 0 0),oklch(98.5% 0 0));--card:light-dark(oklch(100% 0 0),oklch(25% 0 0));--card-foreground:light-dark(oklch(28% 0 0),oklch(98.5% 0 0));--popover:light-dark(oklch(100% 0 0),oklch(28% 0 0));--popover-foreground:light-dark(oklch(28% 0 0),oklch(98.5% 0 0));--muted:light-dark(oklch(97% 0 0),oklch(23% 0 0));--muted-foreground:light-dark(oklch(50% 0 0),oklch(70.8% 0 0));--accent:light-dark(oklch(97% 0 0),oklch(33% 0 0));--accent-foreground:light-dark(oklch(20.5% 0 0),oklch(98.5% 0 0));--border:light-dark(oklch(92.2% 0 0),oklch(100% 0 0/.1));--input:light-dark(oklch(73% 0 0),oklch(100% 0 0/.28));--ring:light-dark(oklch(58% 0 0),oklch(62% 0 0));--primary:light-dark(oklch(45% .124 167.35),oklch(70% .13 167.35));--primary-foreground:light-dark(oklch(98.5% 0 0),oklch(18% .03 167.35));--secondary:light-dark(oklch(97% 0 0),oklch(25% 0 0));--secondary-foreground:light-dark(oklch(20.5% 0 0),oklch(98.5% 0 0));--destructive:light-dark(oklch(50% .245 27.325),oklch(74% .158 22.216));--destructive-foreground:light-dark(oklch(99% 0 0),oklch(18% .05 22));--success:light-dark(oklch(40% .16 145),oklch(76% .16 145));--success-foreground:light-dark(oklch(98.5% 0 0),oklch(18% .05 145));--warning:light-dark(oklch(72% .16 90),oklch(82% .16 90));--warning-foreground:light-dark(oklch(20% .05 80),oklch(18% .05 80));--info:light-dark(oklch(45% .214 276.966),oklch(72% .14 250));--info-foreground:light-dark(oklch(99% 0 0),oklch(18% .05 250));--link:light-dark(oklch(46.2% .1776 259.13),oklch(72% .12 259.13));--tint:10%;--tint-strong:30%;--chart-1:light-dark(oklch(56% .11 167),oklch(74% .13 167));--chart-2:light-dark(oklch(56% .11 230),oklch(72% .14 230));--chart-3:light-dark(oklch(56% .17 285),oklch(72% .15 285));--chart-4:light-dark(oklch(58% .16 330),oklch(74% .15 330));--chart-5:light-dark(oklch(60% .14 60),oklch(78% .14 60));--sidebar:light-dark(oklch(96% 0 0),oklch(16% 0 0));--sidebar-foreground:light-dark(oklch(28% 0 0),oklch(98.5% 0 0));--sidebar-accent:light-dark(oklch(98% 0 0),oklch(28% 0 0));--sidebar-accent-foreground:light-dark(oklch(20.5% 0 0),oklch(98.5% 0 0));--sidebar-border:light-dark(oklch(92.2% 0 0),oklch(100% 0 0/.1));--sidebar-ring:light-dark(oklch(58% 0 0),oklch(62% 0 0));--overlay-backdrop:oklch(0% 0 0/.5)}.light,[data-theme=light]{color-scheme:light}.dark,[data-theme=dark]{color-scheme:dark}:where([data-theme],.light,.dark){--surface-ground:initial}:root{--radius:1rem;--radius-sm:.5rem;--radius-pill:999px;--border-width:1px;--padding:1rem;--padding-sm:.5rem;--gap:1rem;--gap-sm:.5rem;--control-height:2.125rem;--control-height-sm:1.875rem;--icon-size:1rem;--icon-size-sm:.75rem;--font-sans:"Geist", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;--font-mono:"Geist Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--font-heading:initial;--text-xs:.75rem;--text-pxs:.8125rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-scale:1;--shadow:0 1px 2px 0 oklch(0% 0 0/.06), 0 1px 1px -1px oklch(0% 0 0/.06);--shadow-lg:0 4px 8px -2px oklch(0% 0 0/.1), 0 12px 24px -12px oklch(0% 0 0/.18);--duration-fast:.15s;--duration:.2s;--ease:cubic-bezier(.23, 1, .32, 1);--disabled-opacity:.5}@media (prefers-reduced-motion:reduce){:root{--duration-fast:0s;--duration:0s}}:root{--z-sticky:10;--z-docked:20;--z-popover:50;--z-toast:100;--z-tooltip:1000;--sidebar-width:16rem;--header-height:3.5rem;--content-width:64rem;--overlay-backdrop-filter:none}[data-density=compact]{--padding:.75rem;--padding-sm:.375rem;--gap:.75rem;--gap-sm:.375rem;--control-height:2rem;--control-height-sm:1.75rem}[data-density=default]{--padding:1rem;--padding-sm:.5rem;--gap:1rem;--gap-sm:.5rem;--control-height:2.125rem;--control-height-sm:1.875rem}[data-density=comfortable]{--padding:1.25rem;--padding-sm:.625rem;--gap:1.25rem;--gap-sm:.625rem;--control-height:2.25rem;--control-height-sm:2rem}:root{--keyframes-enter:themelia-enter;--keyframes-exit:themelia-exit;--keyframes-spin:themelia-spin;--keyframes-pulse:themelia-pulse;--keyframes-ping:themelia-ping;--keyframes-progress:themelia-progress;--keyframes-shimmer:themelia-shimmer}}@layer base{*,:before,:after{box-sizing:border-box;border:0 solid var(--border)}*{margin:0}html{font-family:var(--font-sans);-webkit-text-size-adjust:100%;tab-size:4;line-height:1.42857}body{background-color:var(--background);color:var(--foreground);font-size:calc(var(--text-sm) * var(--text-scale));-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.42857}::selection{background-color:var(--primary);color:var(--primary-foreground)}:is(input,textarea,[contenteditable=true]){caret-color:var(--primary)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:1em}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}mark{background-color:color-mix(in oklab, var(--warning) var(--tint-strong), transparent);color:var(--foreground);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin-inline:-.125em;padding-inline:.125em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0;padding:0}button,input[type=button],input[type=reset],input[type=submit]{appearance:button;background-color:#0000;background-image:none}button:not(:disabled),[role=button]:not(:disabled){cursor:pointer}:disabled{cursor:default}::placeholder{opacity:1;color:var(--muted-foreground)}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:not([hidden=until-found]){display:none!important}:is([data-tone],[data-ref-tone]){--_tone-ink:100%;--tone-ink:color-mix(in oklab, var(--tone) var(--_tone-ink), light-dark(var(--foreground),var(--tone)))}:is([data-tone=neutral],[data-ref-tone=neutral]){--tone:var(--foreground);--tone-foreground:var(--background)}:is([data-tone=primary],[data-ref-tone=primary]){--tone:var(--primary);--tone-foreground:var(--primary-foreground)}:is([data-tone=secondary],[data-ref-tone=secondary]){--tone:var(--muted-foreground);--tone-foreground:var(--background);--tone-ink:var(--foreground)}:is([data-tone=info],[data-ref-tone=info]){--tone:var(--info);--tone-foreground:var(--info-foreground)}:is([data-tone=success],[data-ref-tone=success]){--tone:var(--success);--tone-foreground:var(--success-foreground)}:is([data-tone=warning],[data-ref-tone=warning]){--tone:var(--warning);--tone-foreground:var(--warning-foreground);--_tone-ink:45%}:is([data-tone=destructive],[data-ref-tone=destructive]){--tone:var(--destructive);--tone-foreground:var(--destructive-foreground);--_tone-ink:85%}:where(:focus-visible){outline:calc(var(--border-width) * 2) solid var(--ring);outline-offset:calc(var(--border-width) * 2)}}@layer components{[data-field-control]{width:100%;min-width:0;height:var(--control-height);padding-inline:var(--padding-sm);padding-block:calc(var(--padding-sm) / 2);border:var(--border-width) solid var(--input);border-radius:var(--radius-sm);color:var(--foreground);font:inherit;font-size:calc(var(--text-sm) * var(--text-scale));box-shadow:none;transition:color var(--duration-fast) var(--ease), border-color var(--duration-fast) var(--ease);background-color:#0000;line-height:1.42857}[data-iphone-input-zoom=true]{--_field-min-font-size:16px}[data-iphone-input-zoom=false]{--_field-min-font-size:0px}:is(input,textarea,select)[data-field-control]{font-size:max(calc(var(--text-sm) * var(--text-scale)), var(--_field-min-font-size,0px));line-height:max(calc(1.25 / .875), calc(var(--_field-min-font-size,0px) * 1.25))}[data-field-control]::placeholder{color:var(--muted-foreground)}[data-field-control]:hover:not(:disabled):not([data-disabled]):not(:focus-visible):not([aria-invalid=true]):not(:is(input,textarea):read-only){border-color:color-mix(in oklab, var(--input), var(--foreground) 35%)}:is(input,textarea)[data-field-control]:read-only:not(:disabled){background-color:color-mix(in oklab, var(--foreground) var(--tint), transparent)}[data-field-control]:focus-visible{border-color:var(--ring);outline-offset:calc(var(--border-width) * -1)}[data-field-control][aria-invalid=true]{border-color:var(--destructive)}[data-field-control][aria-invalid=true]:focus-visible{outline-color:var(--destructive)}[data-field-control]:disabled{cursor:not-allowed;opacity:var(--disabled-opacity)}[data-field-control]:-webkit-any(:autofill,:-webkit-autofill){-webkit-text-fill-color:var(--foreground);box-shadow:inset 0 0 0 100px var(--card)}[data-field-control]:is(:autofill,:autofill){-webkit-text-fill-color:var(--foreground);box-shadow:inset 0 0 0 100px var(--card)}[data-field-shell]{align-items:center;gap:var(--gap-sm);min-height:var(--control-height);padding-inline:var(--padding-sm);border:var(--border-width) solid var(--input);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease);background-color:#0000;display:flex}[data-field-shell]:has([data-field-control]:focus-visible){border-color:var(--ring);outline:calc(var(--border-width) * 2) solid var(--ring);outline-offset:calc(var(--border-width) * -1)}[data-field-shell]:hover:not(:has([data-field-control]:disabled)):not(:has([data-field-control][data-disabled])):not(:has([data-field-control]:focus-visible)):not(:has([data-field-control][aria-invalid=true])):not([aria-invalid=true]):not(:has(:is(input,textarea)[data-field-control]:read-only)){border-color:color-mix(in oklab, var(--input), var(--foreground) 35%)}[data-field-shell]:has(:is(input,textarea)[data-field-control]:read-only:not(:disabled)){background-color:color-mix(in oklab, var(--foreground) var(--tint), transparent)}[data-field-shell]:has([data-field-control][aria-invalid=true]),[data-field-shell][aria-invalid=true]{border-color:var(--destructive);outline-color:var(--destructive)}[data-field-shell]:has([data-field-control]:disabled){cursor:not-allowed;opacity:var(--disabled-opacity)}[data-field-shell] [data-field-control]{height:auto;box-shadow:none;background:0 0;border:0;border-radius:0;padding-inline:0}[data-field-shell] [data-field-control]:focus-visible{outline:none}[data-field-shell]:has([data-field-control]:autofill){background-color:var(--card)}[data-field-shell] [data-field-control]:-webkit-any(:autofill,:-webkit-autofill){box-shadow:inset 0 0 0 100px var(--card)}[data-field-shell] [data-field-control]:is(:autofill,:autofill){box-shadow:inset 0 0 0 100px var(--card)}[data-field-shell] :is(input,textarea)[data-field-control]:read-only:not(:disabled){background:0 0}[data-hit-area]{position:relative}[data-hit-area]:after{content:"";width:max(100%,1.5rem);height:max(100%,1.5rem);position:absolute;top:50%;left:50%;translate:-50% -50%}:is(span,a)[data-ref-id]{border-radius:var(--radius-sm);white-space:nowrap;vertical-align:baseline;background-color:color-mix(in oklab, var(--foreground) var(--tint), transparent);color:var(--foreground);box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab, var(--foreground) var(--tint), transparent);transition:background-color var(--duration-fast) var(--ease);-webkit-user-select:all;user-select:all;padding:.0625em .375em;font-size:1em;font-weight:500;line-height:1.35;text-decoration:none;display:inline-block}a[data-ref-id]:hover{background-color:color-mix(in oklab, var(--foreground) var(--tint-strong), transparent)}span[data-ref-id]{cursor:default}a[data-ref-id]{cursor:pointer}:is(span,a)[data-ref-id]:is([data-ref-tone=primary],[data-ref-tone=info],[data-ref-tone=success],[data-ref-tone=warning],[data-ref-tone=destructive]){background-color:color-mix(in oklab, var(--tone) var(--tint), transparent);color:var(--tone-ink);box-shadow:inset 0 0 0 var(--border-width) color-mix(in oklab, var(--tone) var(--tint-strong), transparent)}a[data-ref-id]:is([data-ref-tone=primary],[data-ref-tone=info],[data-ref-tone=success],[data-ref-tone=warning],[data-ref-tone=destructive]):hover{background-color:color-mix(in oklab, var(--tone) var(--tint-strong), transparent)}:is(span,a)[data-ref-id][data-ref-tone=secondary]{color:var(--muted-foreground)}:is(span,a)[data-ref-id]>svg{vertical-align:-.15em;width:1em;height:1em;margin-inline-end:.25em;display:inline-block}}@layer utilities{.border-b{border-bottom-width:var(--border-width)}.border-t{border-top-width:var(--border-width)}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (forced-colors:active){:focus-visible,[data-field-shell]:has([data-field-control]:focus-visible){outline:calc(var(--border-width) * 2) solid Highlight;outline-offset:calc(var(--border-width) * 2)}}}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-cyrillic.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-cyrillic-ext.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(./fonts/geist-mono-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@keyframes themelia-enter{0%{opacity:var(--_enter-opacity,1);transform:translate3d(var(--_enter-x,0), var(--_enter-y,0), 0) scale(var(--_enter-scale,1))}}@keyframes themelia-exit{to{opacity:var(--_exit-opacity,1);transform:translate3d(var(--_exit-x,0), var(--_exit-y,0), 0) scale(var(--_exit-scale,1))}}@keyframes themelia-spin{to{transform:rotate(360deg)}}@keyframes themelia-ping{75%,to{opacity:0;transform:scale(2)}}@keyframes themelia-pulse{50%{opacity:.5}}@keyframes themelia-progress{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes themelia-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:0s!important;animation-iteration-count:1!important}}dialog::backdrop{background-color:var(--overlay-backdrop);-webkit-backdrop-filter:var(--overlay-backdrop-filter);backdrop-filter:var(--overlay-backdrop-filter);opacity:0;transition:opacity var(--duration-fast) var(--ease), overlay var(--duration-fast) allow-discrete, display var(--duration-fast) allow-discrete}dialog[open]::backdrop{opacity:1;transition:opacity var(--duration) var(--ease), overlay var(--duration) allow-discrete, display var(--duration) allow-discrete}@starting-style{dialog[open]::backdrop{opacity:0}}dialog[data-modality=trap-focus]::backdrop,dialog[data-modality=non-modal]::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:#0000}.map--component.leaflet-container{background-color:var(--muted);font-family:inherit}.map--component.leaflet-container:focus-visible{outline-offset:calc(var(--border-width) * -2)}.map--component[data-tile-filter=invert] .leaflet-tile-pane{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.9)}.map--component .leaflet-popup-content-wrapper{border-radius:var(--radius);background-color:var(--popover);color:var(--popover-foreground);box-shadow:0 0 0 var(--border-width) var(--border), var(--shadow-lg)}.map--component .leaflet-popup-content{margin:var(--padding);font-size:calc(var(--text-sm) * var(--text-scale));line-height:1.5}.map--component .leaflet-popup-content p{margin:0}.map--component .leaflet-popup-tip{background-color:var(--popover);box-shadow:none}.map--component .leaflet-popup-close-button{color:var(--muted-foreground)}.map--component .leaflet-popup-close-button:hover{color:var(--foreground)}.map--component .leaflet-tooltip{padding:calc(var(--padding-sm) / 2) var(--padding-sm);border-radius:var(--radius-sm);background-color:var(--foreground);color:var(--background);box-shadow:var(--shadow);border:0}.map--component .leaflet-tooltip:before{display:none}.map--component.leaflet-container .leaflet-control-attribution{border-radius:var(--radius-sm) 0 0 0;background-color:color-mix(in oklab, var(--background) 80%, transparent);color:var(--muted-foreground);font-size:calc(var(--text-xs) * var(--text-scale));line-height:1.33333}.map--component .leaflet-control-attribution a{color:var(--link)}.map--component .leaflet-draw-toolbar,.map--component .leaflet-draw-actions{display:none}.map--component .leaflet-draw-tooltip{border:var(--border-width) solid var(--foreground);border-radius:var(--radius-sm);padding-block:calc(var(--padding-sm) / 2);padding-inline:var(--padding-sm);background-color:var(--foreground);color:var(--background);font-family:inherit;font-size:calc(var(--text-xs) * var(--text-scale));line-height:1.33333}.map--component .leaflet-draw-tooltip:before{border-right-color:var(--foreground)}.map--component .leaflet-draw-tooltip-subtext{color:color-mix(in oklab, var(--background) 70%, transparent)}.map--component .marker-cluster{border-radius:var(--radius-pill);background-color:color-mix(in oklab, var(--primary) var(--tint), transparent);color:var(--primary);font-size:calc(var(--text-xs) * var(--text-scale));justify-content:center;align-items:center;font-weight:600;line-height:1.33333;display:flex}.map--component .marker-cluster div{border-radius:var(--radius-pill);background-color:color-mix(in oklab, var(--primary) var(--tint), transparent);justify-content:center;align-items:center;width:100%;height:100%;margin:0;display:flex}
@@ -1 +1,2 @@
1
- @layer components{.admin__credentialList___Lu3kk{min-width:0}.admin__credentialHeader___PzAO0{align-items:center;gap:var(--space-md);display:flex}.admin__credentialToggle___uegl-{text-align:start;flex:1;justify-content:flex-start;padding-inline:0}.admin__credentialBody___khth_{flex-direction:column;padding-block-start:var(--space-md);display:flex}.admin__role___YCmE-{gap:var(--space-xl);flex-direction:column;min-width:0;display:flex;container:role-block/inline-size}.admin__roleHeader___d478J{justify-content:space-between;align-items:flex-start;gap:var(--space-lg);flex-wrap:wrap;min-width:0;display:flex}.admin__roleIdentity___Gxgk0{gap:var(--space-2xs);flex-direction:column;flex:16rem;min-width:0;display:flex}.admin__roleHeaderActions___Zlm1I{align-items:center;gap:var(--space-md);flex-shrink:0;display:flex}.admin__roleGroup___MFCue{gap:var(--space-md);grid-template-columns:1fr;min-width:0;display:grid}.admin__roleGroup___MFCue+.admin__roleGroup___MFCue{border-block-start:var(--border-width) solid var(--border-60);padding-block-start:var(--space-lg)}.admin__rolePermissions___KA_Mi{grid-template-columns:repeat(auto-fill, minmax(calc(9rem * var(--scale)), 1fr));gap:var(--space-sm) var(--space-lg);min-width:0;display:grid}.admin__rolePermission___qUfHm{align-items:center;gap:var(--space-sm);min-width:0;color:var(--text-role-secondary);display:inline-flex}.admin__rolePermission___qUfHm[data-granted]{color:var(--foreground)}.admin__roleMark___z_njs{width:var(--size-icon-md);height:var(--size-icon-md);color:var(--muted-foreground);flex-shrink:0}.admin__rolePermission___qUfHm[data-granted] .admin__roleMark___z_njs{color:var(--success)}@container role-block (width>=28rem){.admin__roleGroup___MFCue{grid-template-columns:calc(7.5rem * var(--scale)) 1fr;align-items:start;gap:var(--space-md) var(--space-xl)}}.admin__sensitive___LUftI{border-color:var(--destructive-30)}.admin__sensitiveRow___EIo7R{align-items:flex-start;gap:var(--space-lg);flex-wrap:wrap;min-width:0;display:flex}.admin__sensitiveBody___7-R_u{gap:var(--space-2xs);flex-direction:column;flex:12rem;min-width:0;display:flex}.admin__sensitiveAction___1cUzh{flex-shrink:0;margin-inline-start:auto}}
1
+ @layer tokens, base, components, utilities;
2
+ @layer components{.admin__credentialList___m9Hah{min-width:0}.admin__credentialHeader___KWb5k{align-items:center;gap:var(--gap-sm);display:flex}.admin__credentialToggle___GAzQY{text-align:start;flex:1;justify-content:flex-start;padding-inline:0}.admin__credentialBody___mUbPv{flex-direction:column;padding-block-start:var(--gap-sm);display:flex}.admin__role___j2f50{gap:var(--gap);flex-direction:column;min-width:0;display:flex;container:role-block/inline-size}.admin__roleHeader___he8MI{justify-content:space-between;align-items:flex-start;gap:var(--gap);flex-wrap:wrap;min-width:0;display:flex}.admin__roleIdentity___7i9JT{gap:calc(var(--gap-sm) / 2);flex-direction:column;flex:16rem;min-width:0;display:flex}.admin__roleHeaderActions___GVqNY{align-items:center;gap:var(--gap-sm);flex-shrink:0;display:flex}.admin__roleGroup___M51Jm{gap:var(--gap-sm);grid-template-columns:1fr;min-width:0;display:grid}.admin__roleGroup___M51Jm+.admin__roleGroup___M51Jm{border-block-start:var(--border-width) solid var(--border);padding-block-start:var(--gap)}.admin__rolePermissions___vhuBI{gap:var(--gap-sm) var(--gap);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));min-width:0;display:grid}.admin__rolePermission___Y9rxU{align-items:center;gap:var(--gap-sm);min-width:0;color:var(--muted-foreground);display:inline-flex}.admin__rolePermission___Y9rxU[data-granted]{color:var(--foreground)}.admin__roleMark___3nuht{width:var(--icon-size);height:var(--icon-size);color:var(--muted-foreground);flex-shrink:0}.admin__rolePermission___Y9rxU[data-granted] .admin__roleMark___3nuht{color:var(--success)}@container role-block (width>=28rem){.admin__roleGroup___M51Jm{align-items:start;gap:var(--gap-sm) var(--gap);grid-template-columns:7.5rem 1fr}}.admin__sensitive___lO4fx{border-color:color-mix(in oklab, var(--destructive) var(--tint-strong), transparent)}.admin__sensitiveRow___txnVH{align-items:flex-start;gap:var(--gap);flex-wrap:wrap;min-width:0;display:flex}.admin__sensitiveBody___6A9Jz{gap:calc(var(--gap-sm) / 2);flex-direction:column;flex:12rem;min-width:0;display:flex}.admin__sensitiveAction___yZRes{flex-shrink:0;margin-inline-start:auto}}
@@ -1 +1,2 @@
1
- @layer components{.accordion__root___hEph1{width:100%;font-size:var(--text-sm);line-height:var(--text-sm--line-height);flex-direction:column;display:flex}.accordion__surfaceBordered___zgX5U{border:var(--border-width) solid var(--border);border-radius:var(--radius);background-color:var(--card);overflow:hidden}.accordion__surfaceCard___U4Iy7{gap:var(--space-md)}.accordion__surfaceFlat___qR6LI{background-color:#0000;border:0}.accordion__item___3ML8e{background-color:#0000}.accordion__surfaceBordered___zgX5U .accordion__item___3ML8e:not(:last-child){border-bottom:var(--border-width) solid var(--border-60)}.accordion__surfaceCard___U4Iy7 .accordion__item___3ML8e{border:var(--border-width) solid var(--border);border-radius:var(--radius);background-color:var(--card);overflow:hidden}.accordion__item___3ML8e[data-open]{background-image:linear-gradient(var(--accent-50), var(--accent-50))}.accordion__header___OH-Pt{display:flex}.accordion__trigger___uSwje{justify-content:space-between;align-items:center;gap:var(--space-2xl);min-width:0;min-height:var(--control-h);padding:var(--space-lg) var(--surface-px);text-align:start;font:inherit;font-weight:var(--weight-medium);line-height:var(--text-sm--line-height);color:inherit;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out);border-radius:inherit;background:0 0;border:0;flex:1;display:flex;position:relative}.accordion__trigger___uSwje:hover{background-color:var(--accent-50)}.accordion__trigger___uSwje:focus-visible{z-index:var(--z-raised);box-shadow:var(--focus-ring-inset);outline:none}.accordion__surfaceBordered___zgX5U .accordion__item___3ML8e:first-child .accordion__trigger___uSwje{border-start-start-radius:calc(var(--radius) - var(--border-width));border-start-end-radius:calc(var(--radius) - var(--border-width))}.accordion__surfaceCard___U4Iy7 .accordion__trigger___uSwje{border-radius:calc(var(--radius) - var(--border-width))}.accordion__trigger___uSwje[aria-disabled=true]{pointer-events:none;opacity:var(--disabled-opacity)}.accordion__icon___LakYD{width:var(--size-icon);height:var(--size-icon);color:var(--muted-foreground);pointer-events:none;transition:rotate var(--duration-fast) var(--ease-out);flex-shrink:0}.accordion__trigger___uSwje[aria-expanded=true] .accordion__icon___LakYD{rotate:180deg}.accordion__panel___08Ioe{height:var(--accordion-panel-height);padding-inline:var(--surface-px);transition:height var(--duration-fast) var(--ease-out);overflow:hidden}.accordion__panel___08Ioe[data-starting-style],.accordion__panel___08Ioe[data-ending-style]{height:0}.accordion__content___QPJl8{padding-block:0 var(--surface-py);line-height:var(--leading-relaxed)}.accordion__row___oCO96{align-items:center;gap:0 var(--space-lg);flex:1;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.accordion__rowWithMedia___0tYvT{grid-template-columns:auto minmax(0,1fr)}.accordion__media___uasy7{width:var(--size-icon-lg);height:var(--size-icon-lg);color:var(--muted-foreground);flex-shrink:0;justify-content:center;align-self:center;align-items:center;display:inline-flex}.accordion__media___uasy7>svg{width:var(--size-icon);height:var(--size-icon)}.accordion__mediaMedallion___HST4U{width:var(--size-medallion);height:var(--size-medallion);border-radius:var(--radius-sm);background-color:var(--foreground-8);color:var(--foreground)}.accordion__heading___l_NxV{gap:var(--space-2xs);flex-direction:column;flex:1;min-width:0;display:flex}.accordion__titleLine___Q0PVI{align-items:center;gap:var(--space-xs) var(--space-md);flex-wrap:wrap;min-width:0;display:flex}.accordion__badge___PHYok{flex-shrink:0;display:inline-flex}.accordion__bodyWithMedia___jP5Gh{padding-inline-start:calc(var(--size-icon-lg) + var(--space-lg))}.accordion__bodyWithMedallion___rRwpM{padding-inline-start:calc(var(--size-medallion) + var(--space-lg))}}
1
+ @layer tokens, base, components, utilities;
2
+ @layer components{.accordion__root___hEph1{--_medallion-size:2.5rem;flex-direction:column;width:100%;display:flex}.accordion__surfaceBordered___zgX5U{border:var(--border-width) solid var(--border);border-radius:var(--radius);background-color:var(--card);overflow:hidden}.accordion__surfaceCard___U4Iy7{gap:var(--gap-sm)}.accordion__surfaceFlat___qR6LI{background-color:#0000;border:0}.accordion__item___3ML8e{background-color:#0000}.accordion__surfaceBordered___zgX5U .accordion__item___3ML8e:not(:last-child){border-bottom:var(--border-width) solid var(--border)}.accordion__surfaceCard___U4Iy7 .accordion__item___3ML8e{border:var(--border-width) solid var(--border);border-radius:var(--radius);background-color:var(--card);overflow:hidden}.accordion__item___3ML8e[data-open]{background-image:linear-gradient(var(--accent), var(--accent))}.accordion__header___OH-Pt{display:flex}.accordion__trigger___uSwje{justify-content:space-between;align-items:center;gap:var(--gap);min-width:0;min-height:var(--control-height);padding:var(--padding);text-align:start;color:inherit;cursor:pointer;transition:background-color var(--duration-fast) var(--ease);border-radius:inherit;background:0 0;border:0;flex:1;display:flex;position:relative}.accordion__trigger___uSwje:hover:not([aria-disabled=true]){background-color:var(--accent)}.accordion__trigger___uSwje:focus-visible{outline-offset:calc(var(--border-width) * -2)}.accordion__surfaceBordered___zgX5U .accordion__item___3ML8e:first-child .accordion__trigger___uSwje{border-start-start-radius:calc(var(--radius) - var(--border-width));border-start-end-radius:calc(var(--radius) - var(--border-width))}.accordion__surfaceCard___U4Iy7 .accordion__trigger___uSwje{border-radius:calc(var(--radius) - var(--border-width))}.accordion__trigger___uSwje[aria-disabled=true]{cursor:not-allowed;opacity:var(--disabled-opacity)}.accordion__icon___LakYD{width:var(--icon-size);height:var(--icon-size);color:var(--muted-foreground);pointer-events:none;transition:rotate var(--duration-fast) var(--ease);flex-shrink:0}.accordion__trigger___uSwje[aria-expanded=true] .accordion__icon___LakYD{rotate:180deg}.accordion__panel___08Ioe{height:var(--accordion-panel-height);padding-inline:var(--padding);transition:height var(--duration-fast) var(--ease);overflow:hidden}.accordion__panel___08Ioe[data-starting-style],.accordion__panel___08Ioe[data-ending-style]{height:0}.accordion__content___QPJl8{padding-block:0 var(--padding)}.accordion__row___oCO96{align-items:center;gap:0 var(--gap);flex:1;grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.accordion__rowWithMedia___0tYvT{grid-template-columns:auto minmax(0,1fr)}.accordion__media___uasy7{width:var(--icon-size);height:var(--icon-size);color:var(--muted-foreground);flex-shrink:0;justify-content:center;align-self:center;align-items:center;display:inline-flex}.accordion__media___uasy7>svg{width:var(--icon-size);height:var(--icon-size)}.accordion__mediaMedallion___HST4U{width:var(--_medallion-size);height:var(--_medallion-size);border-radius:var(--radius-sm);background-color:color-mix(in oklab, var(--foreground) var(--tint), transparent);color:var(--foreground)}.accordion__heading___l_NxV{gap:calc(var(--gap-sm) / 2);flex-direction:column;flex:1;min-width:0;display:flex}.accordion__titleLine___Q0PVI{align-items:center;gap:calc(var(--gap-sm) / 2) var(--gap-sm);flex-wrap:wrap;min-width:0;display:flex}.accordion__badge___PHYok{flex-shrink:0;display:inline-flex}.accordion__bodyWithMedia___jP5Gh{padding-inline-start:calc(var(--icon-size) + var(--gap))}.accordion__bodyWithMedallion___rRwpM{padding-inline-start:calc(var(--_medallion-size) + var(--gap))}}
@@ -1 +1,2 @@
1
- @layer components{.action-menu__triggerLabel___1wz5W{white-space:nowrap}.action-menu__buttons___ZDGlp{align-items:center;gap:var(--space-md);flex-wrap:wrap;max-width:100%;display:inline-flex}.action-menu__linkButton___haCOh{text-underline-offset:var(--link-underline-offset);text-decoration:underline}.action-menu__labelHidden___rNMtb,.action-menu__labelResponsive___4TIRQ{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=40rem){.action-menu__labelResponsive___4TIRQ{clip-path:none;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}}}
1
+ @layer tokens, base, components, utilities;
2
+ @layer components{.action-menu__triggerLabel___1wz5W{white-space:nowrap}:where(.action-menu__buttons___ZDGlp){align-items:center;gap:var(--gap-sm);flex-wrap:wrap;max-width:100%;display:inline-flex}.action-menu__linkButton___haCOh{text-underline-offset:3px;text-decoration:underline}.action-menu__labelHidden___rNMtb,.action-menu__labelResponsive___4TIRQ{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=40rem){.action-menu__labelResponsive___4TIRQ{clip-path:none;white-space:nowrap;width:auto;height:auto;margin:0;position:static;overflow:visible}}}
@@ -1 +1,2 @@
1
- @layer components{:root,[data-ui-scope],[data-density],[data-theme],.light,.dark,[data-tone=neutral],[data-tone=secondary]{--activity-disc-rich:round(calc(1.75rem * var(--density-scale,var(--scale))), 1px);--activity-tone-solid:var(--muted-foreground);--activity-tone-wash:var(--foreground-8);--activity-tone-fg:var(--muted-foreground)}[data-tone=primary]{--activity-tone-solid:var(--primary);--activity-tone-wash:var(--primary-10);--activity-tone-fg:var(--primary-accent)}[data-tone=success]{--activity-tone-solid:var(--success);--activity-tone-wash:var(--success-10);--activity-tone-fg:var(--success)}[data-tone=info]{--activity-tone-solid:var(--info);--activity-tone-wash:var(--info-10);--activity-tone-fg:var(--info)}[data-tone=warning]{--activity-tone-solid:var(--warning-accent);--activity-tone-wash:var(--warning-10);--activity-tone-fg:var(--warning-accent)}[data-tone=destructive]{--activity-tone-solid:var(--destructive);--activity-tone-wash:var(--destructive-10);--activity-tone-fg:var(--destructive-accent)}.activities__feed___ngaRb{gap:var(--space-xl);flex-direction:column;min-width:0;display:flex}.activities__state___XVSXH{padding-block:var(--space-2xl)}.activities__refreshing___GmCr-{padding-block:var(--space-sm);text-align:start;flex-direction:row;justify-content:flex-start}.activities__groups___qNHlO,.activities__group___ru6pk,.activities__rows___IPZDp{flex-direction:column;min-width:0;display:flex}.activities__rows___IPZDp{margin-top:var(--space-sm)}.activities__feedHeader___oetTb,.activities__feedFooter___2aunk{min-width:0}.activities__dateLabel___mZWyA{align-items:center;gap:var(--space-md);display:flex}.activities__dateLabel___mZWyA:after{content:"";height:var(--border-width);background:var(--border-60);flex:1}.activities__dateLabel___mZWyA:not([data-first]){margin-top:var(--space-xl)}.activities__row___FwEWr{gap:var(--space-md);min-width:0;display:flex}.activities__row___FwEWr[data-activity-density=compact]{gap:var(--space-sm)}.activities__content___lHOgM{min-width:0;flex:1;padding-block-start:var(--space-xs)}.activities__row___FwEWr[data-activity-density=compact] .activities__content___lHOgM{padding-block-start:var(--space-2xs)}.activities__row___FwEWr[data-interactive]{border-radius:var(--radius-sm);cursor:pointer}.activities__row___FwEWr[data-interactive]:hover{background-color:var(--accent-50)}.activities__row___FwEWr[data-interactive]:focus-visible{box-shadow:var(--focus-ring);outline:none}.activities__row___FwEWr:not([data-last]) .activities__content___lHOgM{padding-bottom:var(--space-md)}.activities__row___FwEWr[data-spacing=compact]:not([data-last]) .activities__content___lHOgM{padding-bottom:var(--space-sm)}.activities__row___FwEWr[data-spacing=relaxed]:not([data-last]) .activities__content___lHOgM{padding-bottom:var(--space-xl)}.activities__marker___L4_uy{flex-direction:column;flex-shrink:0;align-items:center;display:flex}.activities__markerDot___lE8rH{width:var(--space-md);height:var(--space-md);margin-top:var(--space-sm);background-color:var(--activity-tone-solid);border-radius:50%;flex-shrink:0}.activities__markerDisc___a_mmc{width:var(--size-icon-lg);height:var(--size-icon-lg);background-color:var(--activity-tone-wash);color:var(--activity-tone-fg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.activities__marker___L4_uy[data-activity-density=rich] .activities__markerDisc___a_mmc{width:var(--activity-disc-rich);height:var(--activity-disc-rich);box-shadow:inset 0 0 0 var(--border-width) var(--border-60)}.activities__markerDisc___a_mmc svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}.activities__marker___L4_uy[data-activity-density=rich] .activities__markerDisc___a_mmc svg{width:var(--size-icon-md);height:var(--size-icon-md)}.activities__markerRail___BRDHb{width:var(--border-width);margin-top:var(--space-xs);background-color:var(--border);flex:1}.activities__summary___jFK4A{align-items:start;gap:var(--space-sm) var(--space-lg);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.activities__summaryMain___I4lTu{gap:var(--space-xs);flex-direction:column;min-width:0;display:flex}.activities__summaryTrailing___uP3yL:empty{display:none}.activities__summaryTrailing___uP3yL{align-items:center;gap:var(--space-2xs);display:flex}.activities__eventMeta___D9BWQ{align-items:baseline;gap:var(--space-xs) var(--space-sm);flex-wrap:wrap;min-width:0;margin-top:0;display:flex}.activities__source___e-6qG{overflow-wrap:anywhere}.activities__source___e-6qG:not(:first-child):before{content:"·";margin-inline-end:var(--space-sm)}.activities__headlineRow___3R3Zl{align-items:center;gap:var(--space-xs) var(--space-sm);flex-wrap:wrap;min-width:0;display:flex}.activities__headline___XbTSh{min-width:0;line-height:var(--text-sm--line-height);overflow-wrap:anywhere}.activities__actor___w5rC2{color:var(--foreground);font:inherit;text-underline-offset:var(--link-underline-offset);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:0;padding:0;text-decoration:none}.activities__actor___w5rC2:hover{text-decoration:underline}.activities__actor___w5rC2:focus-visible{box-shadow:var(--focus-ring);outline:none}.activities__time___2rL8S{white-space:nowrap}.activities__expandToggle___FRGE1{align-items:center;gap:var(--space-xs);color:var(--muted-foreground);display:inline-flex}.activities__expandToggle___FRGE1 svg{width:var(--size-icon-sm);height:var(--size-icon-sm)}.activities__description___BVJci{margin-top:var(--space-xs);max-width:48rem}.activities__metaPreview___r4auV{align-items:center;gap:var(--space-2xs) var(--space-sm);margin-top:var(--space-xs);flex-wrap:wrap;min-width:0;display:flex}.activities__metaGrid___PFXt2{overflow-wrap:anywhere;min-width:0}.activities__changes___ZpmWp{border:var(--border-width) solid var(--border-60);border-radius:var(--radius-sm);padding:var(--surface-py) var(--surface-px);background-color:var(--muted-50)}.activities__changeValues___jIDSQ{align-items:baseline;gap:var(--space-xs);flex-wrap:wrap;min-width:0;display:inline-flex}.activities__changeOld___-e98o{padding-inline:var(--space-xs);border-radius:var(--radius-sm);background-color:var(--destructive-10);color:var(--destructive-accent);text-decoration:line-through}.activities__changeNew____7WvX{padding-inline:var(--space-xs);border-radius:var(--radius-sm);background-color:var(--success-10);color:var(--success)}.activities__tag___oEoeE{align-items:center;gap:var(--space-xs);min-width:0;max-width:100%;padding-inline:var(--space-sm);border:var(--border-width) solid var(--border);border-radius:var(--radius-pill);background-color:var(--foreground-8);color:var(--foreground);font:inherit;line-height:var(--leading-normal);vertical-align:baseline;overflow-wrap:anywhere;flex-wrap:wrap;padding-block:1px;display:inline-flex}.activities__tagIdentity___AxeIo{align-items:center;gap:var(--space-xs);text-align:start;min-width:0;max-width:100%;display:inline-flex}.activities__tagLabel___wbxAL{overflow-wrap:anywhere;flex:1 1 0;min-width:0}.activities__tag___oEoeE .activities__tagIcon___LIa5-{color:var(--activity-tone-fg)}button.activities__tag___oEoeE{cursor:pointer}button.activities__tag___oEoeE:hover{background-color:var(--accent)}button.activities__tag___oEoeE:focus-visible{box-shadow:var(--focus-ring);outline:none}.activities__tagIcon___LIa5-{width:var(--size-icon-sm);height:var(--size-icon-sm);flex-shrink:0}.activities__tagTags___IqI8U{border-inline-start:var(--border-width) solid var(--border-60);margin-inline-start:var(--space-2xs);padding-inline-start:var(--space-sm)}.activities__tagBadge___4KOR9{color:var(--muted-foreground)}.activities__tagBadge___4KOR9[data-tone=success]{color:var(--success)}.activities__tagBadge___4KOR9[data-tone=warning]{color:var(--warning-accent)}.activities__tagBadge___4KOR9[data-tone=destructive]{color:var(--destructive)}.activities__tagBadge___4KOR9[data-tone=info]{color:var(--info)}.activities__tagBadge___4KOR9[data-tone=primary]{color:var(--primary-accent)}.activities__resources___7CtP2,.activities__inlineActions___fNtnk,.activities__rowFooter___IBxZ_{align-items:center;gap:var(--space-xs);margin-top:var(--space-sm);flex-wrap:wrap;min-width:0;display:flex}.activities__panel___ftOkU{gap:var(--space-md);margin-top:var(--space-sm);padding:var(--surface-py) var(--surface-px);border:var(--border-width) solid var(--border-60);border-radius:var(--radius-sm);background-color:var(--card);box-shadow:var(--shadow-xs);flex-direction:column;min-width:0;display:flex;container:activity-details/inline-size}.activities__disclosure___IM9n5{margin-top:var(--space-sm)}.activities__rowFooter___IBxZ_{gap:var(--space-md)}.activities__rowFooter___IBxZ_ .activities__inlineActions___fNtnk{margin-top:0}.activities__detailSection___R-9Zh{gap:var(--space-sm);flex-direction:column;min-width:0;display:flex}.activities__detailSection___R-9Zh+.activities__detailSection___R-9Zh{padding-top:var(--space-sm);border-top:var(--border-width) solid var(--border-60)}.activities__detailSection___R-9Zh .activities__resources___7CtP2{gap:var(--space-sm);margin-top:0}.activities__log___em2N0{gap:var(--space-lg);flex-direction:column;min-width:0;display:flex}.activities__commentRow___dVIPk{gap:var(--space-md);min-width:0;display:flex}.activities__commentBody___AwZL5{min-width:0;flex:1;padding-block-start:var(--space-xs)}.activities__commentRow___dVIPk:not([data-last]) .activities__commentBody___AwZL5{padding-bottom:var(--space-lg)}.activities__commentRow___dVIPk[data-spacing=compact]:not([data-last]) .activities__commentBody___AwZL5{padding-bottom:var(--space-sm)}.activities__commentRow___dVIPk[data-spacing=relaxed]:not([data-last]) .activities__commentBody___AwZL5{padding-bottom:var(--space-2xl)}}
1
+ @layer tokens, base, components, utilities;
2
+ @layer components{:is(.activities__marker___L4_uy,.activities__tag___oEoeE,.activities__tagBadge___4KOR9){--_activity-ink:var(--tone-ink,var(--muted-foreground));--_activity-wash:color-mix(in oklab, var(--tone,var(--foreground)) var(--tint), transparent)}:is(.activities__marker___L4_uy,.activities__tag___oEoeE,.activities__tagBadge___4KOR9):is([data-tone=neutral],[data-tone=secondary]){--_activity-ink:var(--muted-foreground);--_activity-wash:color-mix(in oklab, var(--foreground) var(--tint), transparent)}.activities__feed___ngaRb{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.activities__state___XVSXH{padding-block:var(--padding)}.activities__refreshing___GmCr-{padding-block:var(--padding-sm);text-align:start;flex-direction:row;justify-content:flex-start}.activities__groups___qNHlO,.activities__group___ru6pk,.activities__rows___IPZDp{flex-direction:column;min-width:0;display:flex}.activities__rows___IPZDp{margin-top:var(--gap-sm)}.activities__feedHeader___oetTb,.activities__feedFooter___2aunk{min-width:0}.activities__dateLabel___mZWyA{align-items:center;gap:var(--gap-sm);display:flex}.activities__dateLabel___mZWyA:after{content:"";height:var(--border-width);background:var(--border);flex:1}.activities__dateLabel___mZWyA:not([data-first]){margin-top:var(--gap)}.activities__row___FwEWr{gap:var(--gap-sm);min-width:0;display:flex}:is(.activities__row___FwEWr,.activities__marker___L4_uy){--_activity-disc:calc(var(--icon-size-sm) + var(--padding-sm))}:is(.activities__row___FwEWr,.activities__marker___L4_uy)[data-variant=rich]{--_activity-disc:1.75rem}.activities__content___lHOgM{min-width:0;flex:1;padding-block-start:calc((var(--_activity-disc) - 1lh) / 2)}.activities__row___FwEWr[data-variant=compact] .activities__content___lHOgM{padding-block-start:0}.activities__row___FwEWr[data-interactive]{border-radius:var(--radius-sm);cursor:pointer}.activities__row___FwEWr[data-interactive]:hover{background-color:var(--accent)}.activities__row___FwEWr:not([data-last]) .activities__content___lHOgM{padding-bottom:var(--padding-sm)}.activities__row___FwEWr[data-spacing=sm]:not([data-last]) .activities__content___lHOgM{padding-bottom:calc(var(--padding-sm) / 2)}.activities__marker___L4_uy{--_activity-dot:.5rem;flex-direction:column;flex-shrink:0;align-items:center;display:flex}.activities__markerDot___lE8rH{width:var(--_activity-dot);height:var(--_activity-dot);margin-top:calc((1lh - var(--_activity-dot)) / 2);background-color:var(--_activity-ink);border-radius:50%;flex-shrink:0}.activities__markerDisc___a_mmc{width:var(--_activity-disc);height:var(--_activity-disc);background-color:var(--_activity-wash);color:var(--_activity-ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.activities__marker___L4_uy[data-variant=rich] .activities__markerDisc___a_mmc{box-shadow:inset 0 0 0 var(--border-width) var(--border)}.activities__markerDisc___a_mmc svg{width:var(--icon-size-sm);height:var(--icon-size-sm)}.activities__marker___L4_uy[data-variant=rich] .activities__markerDisc___a_mmc svg{width:var(--icon-size);height:var(--icon-size)}.activities__markerRail___BRDHb{width:var(--border-width);margin-top:calc(var(--gap-sm) / 2);background-color:var(--border);flex:1}.activities__summary___jFK4A{align-items:start;gap:var(--gap-sm) var(--gap);grid-template-columns:minmax(0,1fr) auto;min-width:0;display:grid}.activities__summaryMain___I4lTu{gap:var(--gap-sm);flex-direction:column;min-width:0;display:flex}.activities__summaryTrailing___uP3yL:empty{display:none}.activities__summaryTrailing___uP3yL{align-items:center;gap:var(--gap-sm);display:flex}.activities__eventMeta___D9BWQ{align-items:baseline;gap:0 var(--gap-sm);flex-wrap:wrap;min-width:0;margin-top:0;display:flex}.activities__source___e-6qG{overflow-wrap:anywhere}.activities__source___e-6qG:not(:first-child):before{content:"·";margin-inline-end:var(--gap-sm)}.activities__headlineRow___3R3Zl{align-items:center;gap:calc(var(--gap-sm) / 2) var(--gap-sm);flex-wrap:wrap;min-width:0;display:flex}.activities__headline___XbTSh{overflow-wrap:anywhere;min-width:0}.activities__actor___w5rC2{color:var(--foreground);text-underline-offset:3px;cursor:pointer;border-radius:var(--radius-sm);text-decoration:none}.activities__actor___w5rC2:is(:hover,:focus-visible){text-decoration:underline}.activities__time___2rL8S{white-space:nowrap}.activities__expandToggle___FRGE1{align-items:center;gap:calc(var(--gap-sm) / 2);color:var(--muted-foreground);display:inline-flex}.activities__expandToggle___FRGE1 svg{width:var(--icon-size-sm);height:var(--icon-size-sm)}.activities__description___BVJci{margin-top:var(--gap-sm);max-width:48rem}.activities__metaPreview___r4auV{align-items:center;gap:calc(var(--gap-sm) / 2) var(--gap-sm);margin-top:var(--gap-sm);flex-wrap:wrap;min-width:0;display:flex}.activities__metaGrid___PFXt2{overflow-wrap:anywhere;min-width:0}.activities__changes___ZpmWp{border:var(--border-width) solid var(--border);border-radius:var(--radius-sm);padding:var(--padding);background-color:var(--muted)}.activities__changeValues___jIDSQ{align-items:baseline;gap:calc(var(--gap-sm) / 2);flex-wrap:wrap;min-width:0;display:inline-flex}.activities__changeOld___-e98o,.activities__changeNew____7WvX{padding-inline:calc(var(--padding-sm) / 2);border-radius:var(--radius-sm);background-color:color-mix(in oklab, var(--tone) var(--tint), transparent);color:var(--tone-ink)}.activities__changeOld___-e98o{text-decoration:line-through}.activities__tag___oEoeE{align-items:center;gap:calc(var(--gap-sm) / 2);min-width:0;max-width:100%;min-height:calc(var(--control-height-sm) - var(--padding-sm));padding-inline:var(--padding-sm);border:var(--border-width) solid var(--border);border-radius:var(--radius-pill);background-color:color-mix(in oklab, var(--foreground) var(--tint), transparent);color:var(--foreground);vertical-align:baseline;overflow-wrap:anywhere;flex-wrap:wrap;display:inline-flex}.activities__tagIdentity___AxeIo{align-items:center;gap:calc(var(--gap-sm) / 2);text-align:start;min-width:0;max-width:100%;display:inline-flex}.activities__tagLabel___wbxAL{overflow-wrap:anywhere;flex:1 1 0;min-width:0}.activities__tag___oEoeE .activities__tagIcon___LIa5-{color:var(--_activity-ink)}button.activities__tag___oEoeE{cursor:pointer}button.activities__tag___oEoeE:hover{background-color:var(--accent)}.activities__tagIcon___LIa5-{width:var(--icon-size-sm);height:var(--icon-size-sm);flex-shrink:0}.activities__tagTags___IqI8U{border-inline-start:var(--border-width) solid var(--border);padding-inline-start:calc(var(--padding-sm) / 2)}.activities__tagBadge___4KOR9{color:var(--_activity-ink)}.activities__resources___7CtP2,.activities__inlineActions___fNtnk,.activities__rowFooter___IBxZ_{align-items:center;gap:var(--gap-sm);margin-top:var(--gap-sm);flex-wrap:wrap;min-width:0;display:flex}.activities__panel___ftOkU{gap:var(--gap-sm);margin-top:var(--gap-sm);padding:var(--padding);border:var(--border-width) solid var(--border);border-radius:var(--radius-sm);background-color:var(--card);box-shadow:var(--shadow);flex-direction:column;min-width:0;display:flex;container:activity-details/inline-size}.activities__disclosure___IM9n5{margin-top:var(--gap-sm)}.activities__rowFooter___IBxZ_ .activities__inlineActions___fNtnk{margin-top:0}.activities__detailSection___R-9Zh{gap:var(--gap-sm);flex-direction:column;min-width:0;display:flex}.activities__detailSection___R-9Zh+.activities__detailSection___R-9Zh{padding-top:var(--padding-sm);border-top:var(--border-width) solid var(--border)}.activities__detailSection___R-9Zh .activities__resources___7CtP2{margin-top:0}.activities__log___em2N0{gap:var(--gap);flex-direction:column;min-width:0;display:flex}.activities__commentRow___dVIPk{gap:var(--gap-sm);min-width:0;display:flex}.activities__commentBody___AwZL5{min-width:0;flex:1;padding-block-start:calc(var(--padding-sm) / 2)}.activities__commentRow___dVIPk:not([data-last]) .activities__commentBody___AwZL5{padding-bottom:var(--padding-sm)}.activities__commentRow___dVIPk[data-spacing=sm]:not([data-last]) .activities__commentBody___AwZL5{padding-bottom:calc(var(--padding-sm) / 2)}}