@zvk/ui 0.1.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 (278) hide show
  1. package/LICENSE.md +26 -0
  2. package/README.md +31 -0
  3. package/dist/components/accordion/accordion.d.ts +43 -0
  4. package/dist/components/accordion/accordion.js +207 -0
  5. package/dist/components/accordion/index.d.ts +2 -0
  6. package/dist/components/accordion/index.js +2 -0
  7. package/dist/components/alert/alert.d.ts +24 -0
  8. package/dist/components/alert/alert.js +17 -0
  9. package/dist/components/alert/index.d.ts +2 -0
  10. package/dist/components/alert/index.js +1 -0
  11. package/dist/components/alert-dialog/alert-dialog.d.ts +46 -0
  12. package/dist/components/alert-dialog/alert-dialog.js +112 -0
  13. package/dist/components/alert-dialog/index.d.ts +2 -0
  14. package/dist/components/alert-dialog/index.js +2 -0
  15. package/dist/components/avatar/avatar.d.ts +14 -0
  16. package/dist/components/avatar/avatar.js +22 -0
  17. package/dist/components/avatar/index.d.ts +2 -0
  18. package/dist/components/avatar/index.js +2 -0
  19. package/dist/components/badge/badge.d.ts +11 -0
  20. package/dist/components/badge/badge.js +6 -0
  21. package/dist/components/badge/index.d.ts +2 -0
  22. package/dist/components/badge/index.js +1 -0
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +24 -0
  24. package/dist/components/breadcrumbs/breadcrumbs.js +18 -0
  25. package/dist/components/breadcrumbs/index.d.ts +2 -0
  26. package/dist/components/breadcrumbs/index.js +1 -0
  27. package/dist/components/button/button.d.ts +13 -0
  28. package/dist/components/button/button.js +8 -0
  29. package/dist/components/button/index.d.ts +2 -0
  30. package/dist/components/button/index.js +1 -0
  31. package/dist/components/card/card.d.ts +31 -0
  32. package/dist/components/card/card.js +28 -0
  33. package/dist/components/card/index.d.ts +2 -0
  34. package/dist/components/card/index.js +1 -0
  35. package/dist/components/checkbox/checkbox.d.ts +11 -0
  36. package/dist/components/checkbox/checkbox.js +30 -0
  37. package/dist/components/checkbox/index.d.ts +2 -0
  38. package/dist/components/checkbox/index.js +2 -0
  39. package/dist/components/code-block/code-block.d.ts +10 -0
  40. package/dist/components/code-block/code-block.js +16 -0
  41. package/dist/components/code-block/index.d.ts +2 -0
  42. package/dist/components/code-block/index.js +1 -0
  43. package/dist/components/collapsible/collapsible.d.ts +23 -0
  44. package/dist/components/collapsible/collapsible.js +52 -0
  45. package/dist/components/collapsible/index.d.ts +2 -0
  46. package/dist/components/collapsible/index.js +2 -0
  47. package/dist/components/combobox/combobox.d.ts +20 -0
  48. package/dist/components/combobox/combobox.js +121 -0
  49. package/dist/components/combobox/index.d.ts +2 -0
  50. package/dist/components/combobox/index.js +2 -0
  51. package/dist/components/command/command-dialog.d.ts +2 -0
  52. package/dist/components/command/command-dialog.js +1 -0
  53. package/dist/components/command/command-filter.d.ts +7 -0
  54. package/dist/components/command/command-filter.js +14 -0
  55. package/dist/components/command/command.d.ts +55 -0
  56. package/dist/components/command/command.js +200 -0
  57. package/dist/components/command/index.d.ts +2 -0
  58. package/dist/components/command/index.js +2 -0
  59. package/dist/components/context-menu/context-menu.d.ts +34 -0
  60. package/dist/components/context-menu/context-menu.js +154 -0
  61. package/dist/components/context-menu/index.d.ts +2 -0
  62. package/dist/components/context-menu/index.js +2 -0
  63. package/dist/components/conversation/conversation.d.ts +60 -0
  64. package/dist/components/conversation/conversation.js +49 -0
  65. package/dist/components/conversation/index.d.ts +2 -0
  66. package/dist/components/conversation/index.js +1 -0
  67. package/dist/components/copy-button/copy-button.d.ts +23 -0
  68. package/dist/components/copy-button/copy-button.js +50 -0
  69. package/dist/components/copy-button/index.d.ts +2 -0
  70. package/dist/components/copy-button/index.js +2 -0
  71. package/dist/components/dialog/dialog.d.ts +62 -0
  72. package/dist/components/dialog/dialog.js +141 -0
  73. package/dist/components/dialog/index.d.ts +2 -0
  74. package/dist/components/dialog/index.js +2 -0
  75. package/dist/components/dropdown-menu/dropdown-menu.d.ts +43 -0
  76. package/dist/components/dropdown-menu/dropdown-menu.js +286 -0
  77. package/dist/components/dropdown-menu/index.d.ts +2 -0
  78. package/dist/components/dropdown-menu/index.js +2 -0
  79. package/dist/components/empty-state/empty-state.d.ts +13 -0
  80. package/dist/components/empty-state/empty-state.js +34 -0
  81. package/dist/components/empty-state/index.d.ts +2 -0
  82. package/dist/components/empty-state/index.js +1 -0
  83. package/dist/components/error-boundary/error-boundary.d.ts +29 -0
  84. package/dist/components/error-boundary/error-boundary.js +43 -0
  85. package/dist/components/error-boundary/index.d.ts +2 -0
  86. package/dist/components/error-boundary/index.js +2 -0
  87. package/dist/components/field/field.d.ts +23 -0
  88. package/dist/components/field/field.js +20 -0
  89. package/dist/components/field/index.d.ts +2 -0
  90. package/dist/components/field/index.js +1 -0
  91. package/dist/components/file-upload-input/file-upload-input.d.ts +13 -0
  92. package/dist/components/file-upload-input/file-upload-input.js +41 -0
  93. package/dist/components/file-upload-input/index.d.ts +2 -0
  94. package/dist/components/file-upload-input/index.js +2 -0
  95. package/dist/components/form/form.d.ts +30 -0
  96. package/dist/components/form/form.js +88 -0
  97. package/dist/components/form/index.d.ts +2 -0
  98. package/dist/components/form/index.js +2 -0
  99. package/dist/components/icon-button/icon-button.d.ts +10 -0
  100. package/dist/components/icon-button/icon-button.js +8 -0
  101. package/dist/components/icon-button/index.d.ts +2 -0
  102. package/dist/components/icon-button/index.js +1 -0
  103. package/dist/components/index.d.ts +102 -0
  104. package/dist/components/index.js +51 -0
  105. package/dist/components/input/index.d.ts +2 -0
  106. package/dist/components/input/index.js +1 -0
  107. package/dist/components/input/input.d.ts +11 -0
  108. package/dist/components/input/input.js +27 -0
  109. package/dist/components/label/index.d.ts +2 -0
  110. package/dist/components/label/index.js +1 -0
  111. package/dist/components/label/label.d.ts +9 -0
  112. package/dist/components/label/label.js +6 -0
  113. package/dist/components/menubar/index.d.ts +2 -0
  114. package/dist/components/menubar/index.js +2 -0
  115. package/dist/components/menubar/menubar.d.ts +39 -0
  116. package/dist/components/menubar/menubar.js +214 -0
  117. package/dist/components/pagination/index.d.ts +2 -0
  118. package/dist/components/pagination/index.js +1 -0
  119. package/dist/components/pagination/pagination.d.ts +21 -0
  120. package/dist/components/pagination/pagination.js +92 -0
  121. package/dist/components/popover/index.d.ts +2 -0
  122. package/dist/components/popover/index.js +2 -0
  123. package/dist/components/popover/popover.d.ts +28 -0
  124. package/dist/components/popover/popover.js +164 -0
  125. package/dist/components/progress/index.d.ts +2 -0
  126. package/dist/components/progress/index.js +1 -0
  127. package/dist/components/progress/progress.d.ts +24 -0
  128. package/dist/components/progress/progress.js +29 -0
  129. package/dist/components/radio-group/index.d.ts +2 -0
  130. package/dist/components/radio-group/index.js +2 -0
  131. package/dist/components/radio-group/radio-group.d.ts +42 -0
  132. package/dist/components/radio-group/radio-group.js +69 -0
  133. package/dist/components/responsive-container/index.d.ts +2 -0
  134. package/dist/components/responsive-container/index.js +1 -0
  135. package/dist/components/responsive-container/responsive-container.d.ts +10 -0
  136. package/dist/components/responsive-container/responsive-container.js +6 -0
  137. package/dist/components/scroll-area/index.d.ts +2 -0
  138. package/dist/components/scroll-area/index.js +2 -0
  139. package/dist/components/scroll-area/scroll-area.d.ts +21 -0
  140. package/dist/components/scroll-area/scroll-area.js +23 -0
  141. package/dist/components/sectioned-sidebar-nav/index.d.ts +2 -0
  142. package/dist/components/sectioned-sidebar-nav/index.js +1 -0
  143. package/dist/components/sectioned-sidebar-nav/sectioned-sidebar-nav.d.ts +39 -0
  144. package/dist/components/sectioned-sidebar-nav/sectioned-sidebar-nav.js +37 -0
  145. package/dist/components/select/index.d.ts +2 -0
  146. package/dist/components/select/index.js +2 -0
  147. package/dist/components/select/select.d.ts +46 -0
  148. package/dist/components/select/select.js +239 -0
  149. package/dist/components/separator/index.d.ts +2 -0
  150. package/dist/components/separator/index.js +1 -0
  151. package/dist/components/separator/separator.d.ts +8 -0
  152. package/dist/components/separator/separator.js +6 -0
  153. package/dist/components/sheet/index.d.ts +2 -0
  154. package/dist/components/sheet/index.js +2 -0
  155. package/dist/components/sheet/sheet.d.ts +49 -0
  156. package/dist/components/sheet/sheet.js +116 -0
  157. package/dist/components/sidebar-shell/index.d.ts +2 -0
  158. package/dist/components/sidebar-shell/index.js +1 -0
  159. package/dist/components/sidebar-shell/sidebar-shell.d.ts +35 -0
  160. package/dist/components/sidebar-shell/sidebar-shell.js +28 -0
  161. package/dist/components/skeleton/index.d.ts +2 -0
  162. package/dist/components/skeleton/index.js +1 -0
  163. package/dist/components/skeleton/skeleton.d.ts +10 -0
  164. package/dist/components/skeleton/skeleton.js +16 -0
  165. package/dist/components/slider/index.d.ts +2 -0
  166. package/dist/components/slider/index.js +2 -0
  167. package/dist/components/slider/slider.d.ts +12 -0
  168. package/dist/components/slider/slider.js +30 -0
  169. package/dist/components/spinner/index.d.ts +2 -0
  170. package/dist/components/spinner/index.js +1 -0
  171. package/dist/components/spinner/spinner.d.ts +10 -0
  172. package/dist/components/spinner/spinner.js +7 -0
  173. package/dist/components/stat/index.d.ts +2 -0
  174. package/dist/components/stat/index.js +1 -0
  175. package/dist/components/stat/stat.d.ts +13 -0
  176. package/dist/components/stat/stat.js +8 -0
  177. package/dist/components/switch/index.d.ts +2 -0
  178. package/dist/components/switch/index.js +2 -0
  179. package/dist/components/switch/switch.d.ts +11 -0
  180. package/dist/components/switch/switch.js +27 -0
  181. package/dist/components/table/index.d.ts +2 -0
  182. package/dist/components/table/index.js +1 -0
  183. package/dist/components/table/table.d.ts +45 -0
  184. package/dist/components/table/table.js +36 -0
  185. package/dist/components/tabs/index.d.ts +2 -0
  186. package/dist/components/tabs/index.js +2 -0
  187. package/dist/components/tabs/tabs.d.ts +34 -0
  188. package/dist/components/tabs/tabs.js +233 -0
  189. package/dist/components/tabs-with-sidebar/index.d.ts +2 -0
  190. package/dist/components/tabs-with-sidebar/index.js +2 -0
  191. package/dist/components/tabs-with-sidebar/tabs-with-sidebar.d.ts +21 -0
  192. package/dist/components/tabs-with-sidebar/tabs-with-sidebar.js +18 -0
  193. package/dist/components/textarea/index.d.ts +2 -0
  194. package/dist/components/textarea/index.js +2 -0
  195. package/dist/components/textarea/textarea.d.ts +11 -0
  196. package/dist/components/textarea/textarea.js +28 -0
  197. package/dist/components/toast/index.d.ts +2 -0
  198. package/dist/components/toast/index.js +1 -0
  199. package/dist/components/toast/toast.d.ts +33 -0
  200. package/dist/components/toast/toast.js +27 -0
  201. package/dist/components/toggle/index.d.ts +2 -0
  202. package/dist/components/toggle/index.js +2 -0
  203. package/dist/components/toggle/toggle.d.ts +12 -0
  204. package/dist/components/toggle/toggle.js +18 -0
  205. package/dist/components/toggle-group/index.d.ts +2 -0
  206. package/dist/components/toggle-group/index.js +2 -0
  207. package/dist/components/toggle-group/toggle-group.d.ts +28 -0
  208. package/dist/components/toggle-group/toggle-group.js +67 -0
  209. package/dist/components/tooltip/index.d.ts +2 -0
  210. package/dist/components/tooltip/index.js +2 -0
  211. package/dist/components/tooltip/tooltip.d.ts +10 -0
  212. package/dist/components/tooltip/tooltip.js +100 -0
  213. package/dist/hooks/index.d.ts +7 -0
  214. package/dist/hooks/index.js +5 -0
  215. package/dist/hooks/use-composed-refs.d.ts +3 -0
  216. package/dist/hooks/use-composed-refs.js +18 -0
  217. package/dist/hooks/use-controllable-state.d.ts +7 -0
  218. package/dist/hooks/use-controllable-state.js +30 -0
  219. package/dist/hooks/use-disclosure.d.ts +13 -0
  220. package/dist/hooks/use-disclosure.js +20 -0
  221. package/dist/hooks/use-event.d.ts +1 -0
  222. package/dist/hooks/use-event.js +11 -0
  223. package/dist/index.d.ts +3 -0
  224. package/dist/index.js +3 -0
  225. package/dist/internal/collection/collection.d.ts +18 -0
  226. package/dist/internal/collection/collection.js +54 -0
  227. package/dist/internal/collection/index.d.ts +2 -0
  228. package/dist/internal/collection/index.js +1 -0
  229. package/dist/internal/dismissable-layer/dismissable-layer.d.ts +13 -0
  230. package/dist/internal/dismissable-layer/dismissable-layer.js +73 -0
  231. package/dist/internal/dismissable-layer/index.d.ts +2 -0
  232. package/dist/internal/dismissable-layer/index.js +1 -0
  233. package/dist/internal/floating/auto-update.d.ts +9 -0
  234. package/dist/internal/floating/auto-update.js +48 -0
  235. package/dist/internal/floating/compute-position.d.ts +2 -0
  236. package/dist/internal/floating/compute-position.js +96 -0
  237. package/dist/internal/floating/detect-overflow.d.ts +13 -0
  238. package/dist/internal/floating/detect-overflow.js +13 -0
  239. package/dist/internal/floating/floating-types.d.ts +42 -0
  240. package/dist/internal/floating/floating-types.js +1 -0
  241. package/dist/internal/floating/index.d.ts +27 -0
  242. package/dist/internal/floating/index.js +5 -0
  243. package/dist/internal/floating/middleware.d.ts +11 -0
  244. package/dist/internal/floating/middleware.js +42 -0
  245. package/dist/internal/floating/use-floating-position.d.ts +2 -0
  246. package/dist/internal/floating/use-floating-position.js +113 -0
  247. package/dist/internal/focus/focus-scope.d.ts +10 -0
  248. package/dist/internal/focus/focus-scope.js +68 -0
  249. package/dist/internal/focus/focus-utils.d.ts +9 -0
  250. package/dist/internal/focus/focus-utils.js +94 -0
  251. package/dist/internal/focus/index.d.ts +3 -0
  252. package/dist/internal/focus/index.js +2 -0
  253. package/dist/internal/overlay-stack/index.d.ts +1 -0
  254. package/dist/internal/overlay-stack/index.js +1 -0
  255. package/dist/internal/overlay-stack/overlay-stack.d.ts +12 -0
  256. package/dist/internal/overlay-stack/overlay-stack.js +41 -0
  257. package/dist/internal/portal/index.d.ts +2 -0
  258. package/dist/internal/portal/index.js +1 -0
  259. package/dist/internal/portal/portal.d.ts +7 -0
  260. package/dist/internal/portal/portal.js +19 -0
  261. package/dist/internal/scroll-lock/index.d.ts +1 -0
  262. package/dist/internal/scroll-lock/index.js +1 -0
  263. package/dist/internal/scroll-lock/scroll-lock.d.ts +4 -0
  264. package/dist/internal/scroll-lock/scroll-lock.js +69 -0
  265. package/dist/styles.css +3852 -0
  266. package/dist/tokens/index.d.ts +2 -0
  267. package/dist/tokens/index.js +1 -0
  268. package/dist/tokens/token-types.d.ts +23 -0
  269. package/dist/tokens/token-types.js +1 -0
  270. package/dist/tokens/tokens.d.ts +139 -0
  271. package/dist/tokens/tokens.js +139 -0
  272. package/dist/utils/cn.d.ts +2 -0
  273. package/dist/utils/cn.js +3 -0
  274. package/dist/utils/compose-event-handlers.d.ts +6 -0
  275. package/dist/utils/compose-event-handlers.js +8 -0
  276. package/dist/utils/index.d.ts +4 -0
  277. package/dist/utils/index.js +2 -0
  278. package/package.json +282 -0
@@ -0,0 +1,3852 @@
1
+ /* src/styles.css */
2
+ @layer liano-reset, liano-tokens, liano-themes, liano-base, liano-components, liano-utilities;
3
+
4
+ /* src/tokens/tokens.css */
5
+ @layer liano-tokens {
6
+ :root {
7
+ --liano-font-family-sans: "Aptos", "SF Pro Text", "Segoe UI Variable", ui-sans-serif, system-ui, sans-serif;
8
+ --liano-font-family-mono: "SF Mono", "Cascadia Code", ui-monospace, monospace;
9
+ --liano-font-size-xs: 0.75rem;
10
+ --liano-font-size-sm: 0.875rem;
11
+ --liano-font-size-md: 0.9375rem;
12
+ --liano-font-size-lg: 1rem;
13
+ --liano-line-height-tight: 1.2;
14
+ --liano-line-height-normal: 1.5;
15
+
16
+ --liano-space-0: 0;
17
+ --liano-space-1: 0.25rem;
18
+ --liano-space-2: 0.5rem;
19
+ --liano-space-3: 0.75rem;
20
+ --liano-space-4: 1rem;
21
+ --liano-space-5: 1.25rem;
22
+ --liano-space-6: 1.5rem;
23
+ --liano-space-8: 2rem;
24
+
25
+ --liano-radius-xs: 0.25rem;
26
+ --liano-radius-sm: 0.375rem;
27
+ --liano-radius-md: 0.5rem;
28
+ --liano-radius-lg: 0.75rem;
29
+ --liano-radius-full: 999px;
30
+
31
+ --liano-shadow-xs: 0 1px 1px rgb(15 23 42 / 0.06);
32
+ --liano-shadow-sm: 0 1px 2px rgb(15 23 42 / 0.08), 0 8px 24px rgb(15 23 42 / 0.04);
33
+ --liano-shadow-md: 0 12px 32px rgb(15 23 42 / 0.10);
34
+
35
+ --liano-opacity-disabled: 0.56;
36
+ --liano-duration-fast: 120ms;
37
+ --liano-duration-normal: 180ms;
38
+ --liano-ease-standard: cubic-bezier(0.2, 0, 0, 1);
39
+ --liano-focus-ring: 0 0 0 3px color-mix(in srgb, var(--liano-color-ring) 24%, transparent);
40
+ }
41
+ }
42
+
43
+
44
+ /* src/tokens/themes.css */
45
+ @layer liano-themes {
46
+ :root,
47
+ [data-liano-theme="light"] {
48
+ color-scheme: light;
49
+ --liano-color-background: #ffffff;
50
+ --liano-color-foreground: #111827;
51
+ --liano-color-muted: #f8fafc;
52
+ --liano-color-muted-foreground: #64748b;
53
+ --liano-color-surface: #ffffff;
54
+ --liano-color-surface-raised: #ffffff;
55
+ --liano-color-border: #d9e0ea;
56
+ --liano-color-border-strong: #b8c4d4;
57
+ --liano-color-ring: #2563eb;
58
+ --liano-color-primary: #1d4ed8;
59
+ --liano-color-primary-hover: #1e40af;
60
+ --liano-color-primary-foreground: #ffffff;
61
+ --liano-color-success: #0f8a6a;
62
+ --liano-color-warning: #b86f00;
63
+ --liano-color-destructive: #c62828;
64
+ --liano-color-info: #087ea4;
65
+ --liano-control-background: #ffffff;
66
+ --liano-control-hover: #f8fafc;
67
+ --liano-control-active: #eef4ff;
68
+ }
69
+
70
+ [data-liano-theme="dark"] {
71
+ color-scheme: dark;
72
+ --liano-color-background: #0d1117;
73
+ --liano-color-foreground: #f4f7fb;
74
+ --liano-color-muted: #151b23;
75
+ --liano-color-muted-foreground: #9aa8ba;
76
+ --liano-color-surface: #111821;
77
+ --liano-color-surface-raised: #151e2a;
78
+ --liano-color-border: #293445;
79
+ --liano-color-border-strong: #3b4a5f;
80
+ --liano-color-ring: #69a3ff;
81
+ --liano-color-primary: #6ea2ff;
82
+ --liano-color-primary-hover: #91b8ff;
83
+ --liano-color-primary-foreground: #07101f;
84
+ --liano-color-success: #3dd6aa;
85
+ --liano-color-warning: #f5bd4f;
86
+ --liano-color-destructive: #ff6b6b;
87
+ --liano-color-info: #58d5f7;
88
+ --liano-control-background: #111821;
89
+ --liano-control-hover: #172233;
90
+ --liano-control-active: #1b2f50;
91
+ }
92
+ }
93
+
94
+
95
+ /* src/tokens/density.css */
96
+ @layer liano-tokens {
97
+ :root,
98
+ [data-liano-density="default"] {
99
+ --liano-control-height-sm: 2rem;
100
+ --liano-control-height-md: 2.5rem;
101
+ --liano-control-height-lg: 3rem;
102
+ --liano-control-padding-x: 0.875rem;
103
+ --liano-control-gap: 0.5rem;
104
+ --liano-field-gap: 0.375rem;
105
+ }
106
+
107
+ [data-liano-density="compact"] {
108
+ --liano-control-height-sm: 1.75rem;
109
+ --liano-control-height-md: 2.25rem;
110
+ --liano-control-height-lg: 2.625rem;
111
+ --liano-control-padding-x: 0.75rem;
112
+ --liano-control-gap: 0.375rem;
113
+ --liano-field-gap: 0.25rem;
114
+ }
115
+
116
+ [data-liano-density="comfortable"] {
117
+ --liano-control-height-sm: 2.25rem;
118
+ --liano-control-height-md: 2.75rem;
119
+ --liano-control-height-lg: 3.25rem;
120
+ --liano-control-padding-x: 1rem;
121
+ --liano-control-gap: 0.625rem;
122
+ --liano-field-gap: 0.5rem;
123
+ }
124
+ }
125
+
126
+
127
+ /* src/styles/reset.css */
128
+ @layer liano-reset {
129
+ :where(.liano-button, .liano-icon-button, .liano-badge, .liano-card, .liano-field, .liano-input, .liano-spinner, .liano-skeleton),
130
+ :where(.liano-card, .liano-field) * {
131
+ box-sizing: border-box;
132
+ }
133
+
134
+ :where(.liano-button, .liano-icon-button, .liano-input) {
135
+ font: inherit;
136
+ }
137
+ }
138
+
139
+
140
+ /* src/styles/base.css */
141
+ @layer liano-base {
142
+ :where(.liano-root, [data-liano-scope]) {
143
+ background: var(--liano-color-background);
144
+ color: var(--liano-color-foreground);
145
+ font-family: var(--liano-font-family-sans);
146
+ line-height: var(--liano-line-height-normal);
147
+ }
148
+ }
149
+
150
+
151
+ /* src/components/button/button.css */
152
+ @layer liano-components {
153
+ :where(.liano-button) {
154
+ --liano-button-height: var(--liano-control-height-md);
155
+ --liano-button-padding-x: var(--liano-control-padding-x);
156
+ --liano-button-bg: var(--liano-control-background);
157
+ --liano-button-fg: var(--liano-color-foreground);
158
+ --liano-button-border: var(--liano-color-border);
159
+ --liano-button-shadow: var(--liano-shadow-xs);
160
+ align-items: center;
161
+ appearance: none;
162
+ background: var(--liano-button-bg);
163
+ border: 1px solid var(--liano-button-border);
164
+ border-radius: var(--liano-radius-md);
165
+ box-shadow: var(--liano-button-shadow);
166
+ color: var(--liano-button-fg);
167
+ cursor: pointer;
168
+ display: inline-flex;
169
+ font-family: var(--liano-font-family-sans);
170
+ font-size: var(--liano-font-size-sm);
171
+ font-weight: 600;
172
+ gap: var(--liano-control-gap);
173
+ height: var(--liano-button-height);
174
+ justify-content: center;
175
+ line-height: 1;
176
+ min-width: max-content;
177
+ padding-inline: var(--liano-button-padding-x);
178
+ text-decoration: none;
179
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
180
+ user-select: none;
181
+ }
182
+
183
+ :where(.liano-button:hover:not(:disabled, [data-disabled="true"])) {
184
+ background: var(--liano-control-hover);
185
+ border-color: var(--liano-color-border-strong);
186
+ }
187
+
188
+ :where(.liano-button:active:not(:disabled, [data-disabled="true"])) {
189
+ background: var(--liano-control-active);
190
+ transform: translateY(1px);
191
+ }
192
+
193
+ :where(.liano-button:focus-visible) {
194
+ box-shadow: var(--liano-button-shadow), var(--liano-focus-ring);
195
+ outline: 0;
196
+ }
197
+
198
+ :where(.liano-button:disabled, .liano-button[data-disabled="true"], .liano-button[data-loading="true"]) {
199
+ cursor: not-allowed;
200
+ opacity: var(--liano-opacity-disabled);
201
+ }
202
+
203
+ :where(.liano-button[data-size="sm"]) {
204
+ --liano-button-height: var(--liano-control-height-sm);
205
+ --liano-button-padding-x: calc(var(--liano-control-padding-x) - 0.125rem);
206
+ font-size: var(--liano-font-size-xs);
207
+ }
208
+
209
+ :where(.liano-button[data-size="lg"]) {
210
+ --liano-button-height: var(--liano-control-height-lg);
211
+ --liano-button-padding-x: calc(var(--liano-control-padding-x) + 0.25rem);
212
+ font-size: var(--liano-font-size-md);
213
+ }
214
+
215
+ :where(.liano-button[data-variant="primary"]) {
216
+ --liano-button-bg: var(--liano-color-primary);
217
+ --liano-button-fg: var(--liano-color-primary-foreground);
218
+ --liano-button-border: color-mix(in srgb, var(--liano-color-primary) 86%, black);
219
+ --liano-button-shadow: var(--liano-shadow-sm);
220
+ }
221
+
222
+ :where(.liano-button[data-variant="primary"]:hover:not(:disabled, [data-disabled="true"])) {
223
+ background: var(--liano-color-primary-hover);
224
+ }
225
+
226
+ :where(.liano-button[data-variant="secondary"]) {
227
+ --liano-button-bg: var(--liano-color-muted);
228
+ --liano-button-fg: var(--liano-color-foreground);
229
+ }
230
+
231
+ :where(.liano-button[data-variant="outline"]) {
232
+ --liano-button-bg: transparent;
233
+ }
234
+
235
+ :where(.liano-button[data-variant="ghost"]) {
236
+ --liano-button-bg: transparent;
237
+ --liano-button-border: transparent;
238
+ --liano-button-shadow: none;
239
+ }
240
+
241
+ :where(.liano-button[data-variant="destructive"]) {
242
+ --liano-button-bg: var(--liano-color-destructive);
243
+ --liano-button-fg: white;
244
+ --liano-button-border: color-mix(in srgb, var(--liano-color-destructive) 82%, black);
245
+ }
246
+
247
+ :where(.liano-button__icon, .liano-button__spinner) {
248
+ align-items: center;
249
+ display: inline-flex;
250
+ flex: 0 0 auto;
251
+ }
252
+
253
+ :where(.liano-button__content) {
254
+ min-width: 0;
255
+ }
256
+ }
257
+
258
+
259
+ /* src/components/icon-button/icon-button.css */
260
+ @layer liano-components {
261
+ :where(.liano-icon-button) {
262
+ align-items: center;
263
+ aspect-ratio: 1;
264
+ appearance: none;
265
+ background: var(--liano-control-background);
266
+ border: 1px solid var(--liano-color-border);
267
+ border-radius: var(--liano-radius-md);
268
+ box-shadow: var(--liano-shadow-xs);
269
+ color: var(--liano-color-foreground);
270
+ cursor: pointer;
271
+ display: inline-flex;
272
+ height: var(--liano-control-height-md);
273
+ justify-content: center;
274
+ padding: 0;
275
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
276
+ }
277
+
278
+ :where(.liano-icon-button:hover:not(:disabled, [data-disabled="true"])) {
279
+ background: var(--liano-control-hover);
280
+ border-color: var(--liano-color-border-strong);
281
+ }
282
+
283
+ :where(.liano-icon-button:focus-visible) {
284
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
285
+ outline: 0;
286
+ }
287
+
288
+ :where(.liano-icon-button:active:not(:disabled, [data-disabled="true"])) {
289
+ background: var(--liano-control-active);
290
+ transform: translateY(1px);
291
+ }
292
+
293
+ :where(.liano-icon-button:disabled, .liano-icon-button[data-disabled="true"], .liano-icon-button[data-loading="true"]) {
294
+ cursor: not-allowed;
295
+ opacity: var(--liano-opacity-disabled);
296
+ }
297
+
298
+ :where(.liano-icon-button[data-size="sm"]) {
299
+ height: var(--liano-control-height-sm);
300
+ }
301
+
302
+ :where(.liano-icon-button[data-size="lg"]) {
303
+ height: var(--liano-control-height-lg);
304
+ }
305
+
306
+ :where(.liano-icon-button[data-variant="primary"]) {
307
+ background: var(--liano-color-primary);
308
+ border-color: color-mix(in srgb, var(--liano-color-primary) 86%, black);
309
+ color: var(--liano-color-primary-foreground);
310
+ }
311
+
312
+ :where(.liano-icon-button[data-variant="secondary"]) {
313
+ background: var(--liano-color-muted);
314
+ }
315
+
316
+ :where(.liano-icon-button[data-variant="outline"]) {
317
+ background: transparent;
318
+ }
319
+
320
+ :where(.liano-icon-button[data-variant="ghost"]) {
321
+ background: transparent;
322
+ border-color: transparent;
323
+ box-shadow: none;
324
+ }
325
+
326
+ :where(.liano-icon-button[data-variant="destructive"]) {
327
+ background: var(--liano-color-destructive);
328
+ border-color: color-mix(in srgb, var(--liano-color-destructive) 82%, black);
329
+ color: white;
330
+ }
331
+ }
332
+
333
+
334
+ /* src/components/badge/badge.css */
335
+ @layer liano-components {
336
+ :where(.liano-badge) {
337
+ align-items: center;
338
+ background: color-mix(in srgb, var(--liano-badge-color, var(--liano-color-muted-foreground)) 12%, var(--liano-color-surface));
339
+ border: 1px solid color-mix(in srgb, var(--liano-badge-color, var(--liano-color-border-strong)) 24%, transparent);
340
+ border-radius: var(--liano-radius-full);
341
+ color: var(--liano-badge-color, var(--liano-color-foreground));
342
+ display: inline-flex;
343
+ font-family: var(--liano-font-family-sans);
344
+ font-size: var(--liano-font-size-xs);
345
+ font-weight: 650;
346
+ gap: var(--liano-space-1);
347
+ line-height: 1;
348
+ min-height: 1.5rem;
349
+ padding-inline: var(--liano-space-2);
350
+ white-space: nowrap;
351
+ }
352
+
353
+ :where(.liano-badge[data-size="md"]) {
354
+ min-height: 1.75rem;
355
+ padding-inline: var(--liano-space-3);
356
+ }
357
+
358
+ :where(.liano-badge[data-tone="primary"]) {
359
+ --liano-badge-color: var(--liano-color-primary);
360
+ }
361
+
362
+ :where(.liano-badge[data-tone="success"]) {
363
+ --liano-badge-color: var(--liano-color-success);
364
+ }
365
+
366
+ :where(.liano-badge[data-tone="warning"]) {
367
+ --liano-badge-color: var(--liano-color-warning);
368
+ }
369
+
370
+ :where(.liano-badge[data-tone="destructive"]) {
371
+ --liano-badge-color: var(--liano-color-destructive);
372
+ }
373
+
374
+ :where(.liano-badge[data-tone="info"]) {
375
+ --liano-badge-color: var(--liano-color-info);
376
+ }
377
+
378
+ :where(.liano-badge[data-variant="solid"]) {
379
+ background: var(--liano-badge-color, var(--liano-color-foreground));
380
+ border-color: transparent;
381
+ color: var(--liano-color-background);
382
+ }
383
+
384
+ :where(.liano-badge[data-variant="outline"]) {
385
+ background: transparent;
386
+ }
387
+ }
388
+
389
+
390
+ /* src/components/card/card.css */
391
+ @layer liano-components {
392
+ :where(.liano-card) {
393
+ background: var(--liano-color-surface);
394
+ border: 1px solid var(--liano-color-border);
395
+ border-radius: var(--liano-radius-lg);
396
+ color: var(--liano-color-foreground);
397
+ display: block;
398
+ padding: var(--liano-card-padding, var(--liano-space-5));
399
+ }
400
+
401
+ :where(.liano-card[data-variant="elevated"]) {
402
+ background: var(--liano-color-surface-raised);
403
+ box-shadow: var(--liano-shadow-sm);
404
+ }
405
+
406
+ :where(.liano-card[data-variant="ghost"]) {
407
+ background: transparent;
408
+ border-color: transparent;
409
+ box-shadow: none;
410
+ }
411
+
412
+ :where(.liano-card[data-padding="none"]) {
413
+ --liano-card-padding: 0;
414
+ }
415
+
416
+ :where(.liano-card[data-padding="sm"]) {
417
+ --liano-card-padding: var(--liano-space-3);
418
+ }
419
+
420
+ :where(.liano-card[data-padding="lg"]) {
421
+ --liano-card-padding: var(--liano-space-6);
422
+ }
423
+
424
+ :where(.liano-card__header, .liano-card__content, .liano-card__footer) {
425
+ display: grid;
426
+ gap: var(--liano-space-2);
427
+ }
428
+
429
+ :where(.liano-card__header + .liano-card__content, .liano-card__content + .liano-card__footer) {
430
+ margin-top: var(--liano-space-4);
431
+ }
432
+
433
+ :where(.liano-card__title) {
434
+ color: var(--liano-color-foreground);
435
+ font-family: var(--liano-font-family-sans);
436
+ font-size: var(--liano-font-size-lg);
437
+ font-weight: 700;
438
+ line-height: var(--liano-line-height-tight);
439
+ margin: 0;
440
+ }
441
+
442
+ :where(.liano-card__description) {
443
+ color: var(--liano-color-muted-foreground);
444
+ font-size: var(--liano-font-size-sm);
445
+ line-height: var(--liano-line-height-normal);
446
+ margin: 0;
447
+ }
448
+ }
449
+
450
+
451
+ /* src/components/separator/separator.css */
452
+ @layer liano-components {
453
+ :where(.liano-separator) {
454
+ background: var(--liano-color-border);
455
+ border: 0;
456
+ flex-shrink: 0;
457
+ }
458
+
459
+ :where(.liano-separator[data-orientation="horizontal"]) {
460
+ height: 1px;
461
+ inline-size: 100%;
462
+ }
463
+
464
+ :where(.liano-separator[data-orientation="vertical"]) {
465
+ align-self: stretch;
466
+ block-size: auto;
467
+ inline-size: 1px;
468
+ min-height: 1rem;
469
+ }
470
+ }
471
+
472
+
473
+ /* src/components/spinner/spinner.css */
474
+ @layer liano-components {
475
+ :where(.liano-spinner) {
476
+ --liano-spinner-size: 1rem;
477
+ color: var(--liano-color-primary);
478
+ display: inline-grid;
479
+ height: var(--liano-spinner-size);
480
+ place-items: center;
481
+ width: var(--liano-spinner-size);
482
+ }
483
+
484
+ .liano-spinner::before {
485
+ animation: liano-spinner-spin var(--liano-duration-normal) linear infinite;
486
+ border: 2px solid color-mix(in srgb, currentColor 22%, transparent);
487
+ border-block-start-color: currentColor;
488
+ border-radius: var(--liano-radius-full);
489
+ content: "";
490
+ height: 100%;
491
+ width: 100%;
492
+ }
493
+
494
+ :where(.liano-spinner[data-size="sm"]) {
495
+ --liano-spinner-size: 0.875rem;
496
+ }
497
+
498
+ :where(.liano-spinner[data-size="lg"]) {
499
+ --liano-spinner-size: 1.25rem;
500
+ }
501
+
502
+ :where(.liano-spinner[data-tone="muted"]) {
503
+ color: var(--liano-color-muted-foreground);
504
+ }
505
+
506
+ :where(.liano-button[data-loading="true"] .liano-spinner, .liano-icon-button[data-loading="true"] .liano-spinner) {
507
+ color: inherit;
508
+ }
509
+
510
+ @keyframes liano-spinner-spin {
511
+ to {
512
+ transform: rotate(360deg);
513
+ }
514
+ }
515
+
516
+ @media (prefers-reduced-motion: reduce) {
517
+ .liano-spinner::before {
518
+ animation-duration: 1.2s;
519
+ }
520
+ }
521
+ }
522
+
523
+
524
+ /* src/components/skeleton/skeleton.css */
525
+ @layer liano-components {
526
+ :where(.liano-skeleton) {
527
+ background: linear-gradient(90deg, var(--liano-color-muted), color-mix(in srgb, var(--liano-color-muted-foreground) 14%, var(--liano-color-muted)), var(--liano-color-muted));
528
+ background-size: 220% 100%;
529
+ border-radius: var(--liano-radius-md);
530
+ display: block;
531
+ min-height: 1rem;
532
+ }
533
+
534
+ :where(.liano-skeleton[data-animate="true"]) {
535
+ animation: liano-skeleton-shimmer 1.4s var(--liano-ease-standard) infinite;
536
+ }
537
+
538
+ :where(.liano-skeleton[data-rounded="sm"]) {
539
+ border-radius: var(--liano-radius-sm);
540
+ }
541
+
542
+ :where(.liano-skeleton[data-rounded="lg"]) {
543
+ border-radius: var(--liano-radius-lg);
544
+ }
545
+
546
+ :where(.liano-skeleton[data-rounded="full"]) {
547
+ border-radius: var(--liano-radius-full);
548
+ }
549
+
550
+ @keyframes liano-skeleton-shimmer {
551
+ to {
552
+ background-position: -220% 0;
553
+ }
554
+ }
555
+
556
+ @media (prefers-reduced-motion: reduce) {
557
+ :where(.liano-skeleton[data-animate="true"]) {
558
+ animation: none;
559
+ }
560
+ }
561
+ }
562
+
563
+
564
+ /* src/components/label/label.css */
565
+ @layer liano-components {
566
+ :where(.liano-label) {
567
+ color: var(--liano-color-foreground);
568
+ display: inline-flex;
569
+ font-family: var(--liano-font-family-sans);
570
+ font-size: var(--liano-label-font-size, var(--liano-font-size-sm));
571
+ font-weight: 650;
572
+ gap: var(--liano-space-1);
573
+ line-height: var(--liano-line-height-tight);
574
+ }
575
+
576
+ :where(.liano-label[data-size="sm"]) {
577
+ --liano-label-font-size: var(--liano-font-size-xs);
578
+ }
579
+
580
+ :where(.liano-label[data-disabled="true"]) {
581
+ cursor: not-allowed;
582
+ opacity: var(--liano-opacity-disabled);
583
+ }
584
+
585
+ .liano-label[data-required="true"]::after {
586
+ color: var(--liano-color-destructive);
587
+ content: "*";
588
+ }
589
+ }
590
+
591
+
592
+ /* src/components/progress/progress.css */
593
+ @layer liano-components {
594
+ :where(.liano-progress-group) {
595
+ display: grid;
596
+ gap: var(--liano-space-2);
597
+ min-width: 0;
598
+ }
599
+
600
+ :where(.liano-progress__label),
601
+ :where(.liano-progress__value) {
602
+ color: var(--liano-color-muted-foreground);
603
+ font-family: var(--liano-font-family-sans);
604
+ font-size: var(--liano-font-size-xs);
605
+ font-weight: 600;
606
+ line-height: var(--liano-line-height-tight);
607
+ }
608
+
609
+ :where(.liano-progress) {
610
+ --liano-progress-color: var(--liano-color-primary);
611
+ --liano-progress-height: 0.5rem;
612
+ --liano-progress-value: 0%;
613
+ display: block;
614
+ min-width: 0;
615
+ }
616
+
617
+ :where(.liano-progress[data-size="sm"]) {
618
+ --liano-progress-height: 0.375rem;
619
+ }
620
+
621
+ :where(.liano-progress[data-tone="success"]) {
622
+ --liano-progress-color: var(--liano-color-success);
623
+ }
624
+
625
+ :where(.liano-progress[data-tone="warning"]) {
626
+ --liano-progress-color: var(--liano-color-warning);
627
+ }
628
+
629
+ :where(.liano-progress[data-tone="destructive"]) {
630
+ --liano-progress-color: var(--liano-color-destructive);
631
+ }
632
+
633
+ :where(.liano-progress[data-tone="neutral"]) {
634
+ --liano-progress-color: var(--liano-color-muted-foreground);
635
+ }
636
+
637
+ :where(.liano-progress__track) {
638
+ background: var(--liano-color-muted);
639
+ border-radius: var(--liano-radius-full);
640
+ display: block;
641
+ height: var(--liano-progress-height);
642
+ overflow: hidden;
643
+ width: 100%;
644
+ }
645
+
646
+ :where(.liano-progress__indicator) {
647
+ background: var(--liano-progress-color);
648
+ border-radius: inherit;
649
+ display: block;
650
+ height: 100%;
651
+ transition: width var(--liano-duration-normal) var(--liano-ease-standard);
652
+ width: min(max(var(--liano-progress-value), 0%), 100%);
653
+ }
654
+
655
+ :where(.liano-progress[data-indeterminate="true"] .liano-progress__indicator) {
656
+ animation: liano-progress-indeterminate 1.2s var(--liano-ease-standard) infinite;
657
+ width: 40%;
658
+ }
659
+
660
+ @keyframes liano-progress-indeterminate {
661
+ from {
662
+ transform: translateX(-100%);
663
+ }
664
+
665
+ to {
666
+ transform: translateX(250%);
667
+ }
668
+ }
669
+
670
+ @media (prefers-reduced-motion: reduce) {
671
+ :where(.liano-progress__indicator) {
672
+ transition: none;
673
+ }
674
+
675
+ :where(.liano-progress[data-indeterminate="true"] .liano-progress__indicator) {
676
+ animation: none;
677
+ }
678
+ }
679
+ }
680
+
681
+
682
+ /* src/components/alert/alert.css */
683
+ @layer liano-components {
684
+ :where(.liano-alert) {
685
+ --liano-alert-color: var(--liano-color-info);
686
+ align-items: start;
687
+ background: color-mix(in srgb, var(--liano-alert-color) 10%, var(--liano-color-surface));
688
+ border: 1px solid color-mix(in srgb, var(--liano-alert-color) 28%, var(--liano-color-border));
689
+ border-radius: var(--liano-radius-md);
690
+ color: var(--liano-color-foreground);
691
+ display: grid;
692
+ gap: var(--liano-space-3);
693
+ grid-template-columns: auto minmax(0, 1fr);
694
+ padding: var(--liano-space-4);
695
+ }
696
+
697
+ :where(.liano-alert[data-tone="success"]) {
698
+ --liano-alert-color: var(--liano-color-success);
699
+ }
700
+
701
+ :where(.liano-alert[data-tone="warning"]) {
702
+ --liano-alert-color: var(--liano-color-warning);
703
+ }
704
+
705
+ :where(.liano-alert[data-tone="destructive"]) {
706
+ --liano-alert-color: var(--liano-color-destructive);
707
+ }
708
+
709
+ :where(.liano-alert[data-tone="neutral"]) {
710
+ --liano-alert-color: var(--liano-color-muted-foreground);
711
+ }
712
+
713
+ :where(.liano-alert__icon) {
714
+ color: var(--liano-alert-color);
715
+ display: inline-flex;
716
+ line-height: 1;
717
+ margin-block-start: 0.125rem;
718
+ }
719
+
720
+ :where(.liano-alert__content) {
721
+ display: grid;
722
+ gap: var(--liano-space-1);
723
+ min-width: 0;
724
+ }
725
+
726
+ :where(.liano-alert__title) {
727
+ color: var(--liano-color-foreground);
728
+ font-family: var(--liano-font-family-sans);
729
+ font-size: var(--liano-font-size-sm);
730
+ font-weight: 700;
731
+ line-height: var(--liano-line-height-tight);
732
+ margin: 0;
733
+ }
734
+
735
+ :where(.liano-alert__description) {
736
+ color: var(--liano-color-muted-foreground);
737
+ font-size: var(--liano-font-size-sm);
738
+ line-height: var(--liano-line-height-normal);
739
+ }
740
+ }
741
+
742
+
743
+ /* src/components/avatar/avatar.css */
744
+ @layer liano-components {
745
+ :where(.liano-avatar) {
746
+ --liano-avatar-size: 2rem;
747
+ align-items: center;
748
+ background: var(--liano-color-muted);
749
+ border: 1px solid var(--liano-color-border);
750
+ border-radius: var(--liano-radius-full);
751
+ color: var(--liano-color-muted-foreground);
752
+ display: inline-flex;
753
+ font-family: var(--liano-font-family-sans);
754
+ font-size: var(--liano-avatar-font-size, var(--liano-font-size-sm));
755
+ font-weight: 700;
756
+ height: var(--liano-avatar-size);
757
+ justify-content: center;
758
+ line-height: 1;
759
+ overflow: hidden;
760
+ user-select: none;
761
+ width: var(--liano-avatar-size);
762
+ }
763
+
764
+ :where(.liano-avatar[data-size="sm"]) {
765
+ --liano-avatar-font-size: var(--liano-font-size-xs);
766
+ --liano-avatar-size: 1.5rem;
767
+ }
768
+
769
+ :where(.liano-avatar[data-size="lg"]) {
770
+ --liano-avatar-font-size: var(--liano-font-size-md);
771
+ --liano-avatar-size: 2.5rem;
772
+ }
773
+
774
+ :where(.liano-avatar[data-shape="square"]) {
775
+ border-radius: var(--liano-radius-md);
776
+ }
777
+
778
+ :where(.liano-avatar__image) {
779
+ display: block;
780
+ height: 100%;
781
+ object-fit: cover;
782
+ width: 100%;
783
+ }
784
+
785
+ :where(.liano-avatar__fallback) {
786
+ align-items: center;
787
+ display: inline-flex;
788
+ height: 100%;
789
+ justify-content: center;
790
+ width: 100%;
791
+ }
792
+ }
793
+
794
+
795
+ /* src/components/copy-button/copy-button.css */
796
+ @layer liano-components {
797
+ :where(.liano-copy-button) {
798
+ align-items: center;
799
+ background: var(--liano-control-background);
800
+ border: 1px solid var(--liano-copy-button-border-color, var(--liano-color-border));
801
+ border-radius: var(--liano-radius-md);
802
+ box-shadow: var(--liano-shadow-xs);
803
+ color: var(--liano-color-foreground);
804
+ cursor: pointer;
805
+ display: inline-flex;
806
+ font-family: var(--liano-font-family-sans);
807
+ font-size: var(--liano-font-size-xs);
808
+ font-weight: 650;
809
+ height: var(--liano-copy-button-height, var(--liano-control-height-sm));
810
+ justify-content: center;
811
+ line-height: 1;
812
+ padding-inline: var(--liano-space-3);
813
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
814
+ white-space: nowrap;
815
+ }
816
+
817
+ :where(.liano-copy-button:hover:not(:disabled)) {
818
+ --liano-copy-button-border-color: var(--liano-color-border-strong);
819
+ background: var(--liano-color-surface);
820
+ }
821
+
822
+ :where(.liano-copy-button:focus-visible) {
823
+ --liano-copy-button-border-color: var(--liano-color-ring);
824
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
825
+ outline: 0;
826
+ }
827
+
828
+ :where(.liano-copy-button:disabled) {
829
+ cursor: not-allowed;
830
+ opacity: var(--liano-opacity-disabled);
831
+ }
832
+
833
+ :where(.liano-copy-button[data-size="md"]) {
834
+ --liano-copy-button-height: var(--liano-control-height-md);
835
+ font-size: var(--liano-font-size-sm);
836
+ }
837
+
838
+ :where(.liano-copy-button[data-status="copied"]) {
839
+ --liano-copy-button-border-color: var(--liano-color-success);
840
+ color: var(--liano-color-success);
841
+ }
842
+
843
+ :where(.liano-copy-button[data-status="error"]) {
844
+ --liano-copy-button-border-color: var(--liano-color-destructive);
845
+ color: var(--liano-color-destructive);
846
+ }
847
+
848
+ :where(.liano-copyable-text) {
849
+ align-items: center;
850
+ background: var(--liano-color-muted);
851
+ border: 1px solid var(--liano-color-border);
852
+ border-radius: var(--liano-radius-md);
853
+ display: flex;
854
+ gap: var(--liano-space-2);
855
+ min-width: 0;
856
+ padding: var(--liano-space-2);
857
+ }
858
+
859
+ :where(.liano-copyable-text__label) {
860
+ color: var(--liano-color-muted-foreground);
861
+ font-family: var(--liano-font-family-sans);
862
+ font-size: var(--liano-font-size-xs);
863
+ font-weight: 650;
864
+ line-height: var(--liano-line-height-tight);
865
+ }
866
+
867
+ :where(.liano-copyable-text__value) {
868
+ color: var(--liano-color-foreground);
869
+ flex: 1 1 auto;
870
+ font-family: var(--liano-font-family-mono);
871
+ font-size: var(--liano-font-size-sm);
872
+ line-height: var(--liano-line-height-tight);
873
+ min-width: 0;
874
+ }
875
+
876
+ :where(.liano-copyable-text__value[data-truncate="true"]) {
877
+ overflow: hidden;
878
+ text-overflow: ellipsis;
879
+ white-space: nowrap;
880
+ }
881
+ }
882
+
883
+
884
+ /* src/components/file-upload-input/file-upload-input.css */
885
+ @layer liano-components {
886
+ :where(.liano-file-upload-input) {
887
+ align-items: center;
888
+ background: var(--liano-control-background);
889
+ border: 1px solid var(--liano-file-upload-input-border-color, var(--liano-color-border));
890
+ border-radius: var(--liano-radius-md);
891
+ box-shadow: var(--liano-shadow-xs);
892
+ color: var(--liano-color-foreground);
893
+ display: flex;
894
+ gap: var(--liano-space-3);
895
+ min-height: var(--liano-file-upload-input-height, var(--liano-control-height-md));
896
+ min-width: 0;
897
+ padding: var(--liano-space-2);
898
+ transition: border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
899
+ }
900
+
901
+ :where(.liano-file-upload-input:focus-within) {
902
+ --liano-file-upload-input-border-color: var(--liano-color-ring);
903
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
904
+ }
905
+
906
+ :where(.liano-file-upload-input__button) {
907
+ align-items: center;
908
+ background: var(--liano-color-surface);
909
+ border: 1px solid var(--liano-color-border);
910
+ border-radius: var(--liano-radius-sm);
911
+ color: var(--liano-color-foreground);
912
+ display: inline-flex;
913
+ flex: 0 0 auto;
914
+ font-family: var(--liano-font-family-sans);
915
+ font-size: var(--liano-font-size-xs);
916
+ font-weight: 650;
917
+ min-height: var(--liano-control-height-sm);
918
+ padding-inline: var(--liano-space-3);
919
+ }
920
+
921
+ :where(.liano-file-upload-input__control) {
922
+ color: var(--liano-color-foreground);
923
+ flex: 0 1 auto;
924
+ font-family: var(--liano-font-family-sans);
925
+ font-size: var(--liano-font-size-sm);
926
+ min-width: 0;
927
+ }
928
+
929
+ :where(.liano-file-upload-input__control:focus-visible) {
930
+ outline: 0;
931
+ }
932
+
933
+ :where(.liano-file-upload-input__control:disabled) {
934
+ cursor: not-allowed;
935
+ }
936
+
937
+ :where(.liano-file-upload-input__control[data-disabled="true"]) {
938
+ opacity: var(--liano-opacity-disabled);
939
+ }
940
+
941
+ :where(.liano-file-upload-input__control[data-invalid="true"]) {
942
+ --liano-file-upload-input-border-color: var(--liano-color-destructive);
943
+ }
944
+
945
+ :where(.liano-file-upload-input__control[data-size="sm"]) {
946
+ --liano-file-upload-input-height: var(--liano-control-height-sm);
947
+ font-size: var(--liano-font-size-xs);
948
+ }
949
+
950
+ :where(.liano-file-upload-input__control[data-size="lg"]) {
951
+ --liano-file-upload-input-height: var(--liano-control-height-lg);
952
+ font-size: var(--liano-font-size-md);
953
+ }
954
+
955
+ :where(.liano-file-upload-input__summary) {
956
+ color: var(--liano-color-muted-foreground);
957
+ flex: 1 1 auto;
958
+ font-size: var(--liano-font-size-sm);
959
+ line-height: var(--liano-line-height-tight);
960
+ min-width: 0;
961
+ overflow: hidden;
962
+ text-overflow: ellipsis;
963
+ white-space: nowrap;
964
+ }
965
+ }
966
+
967
+
968
+ /* src/components/error-boundary/error-boundary.css */
969
+ @layer liano-components {
970
+ :where(.liano-error-fallback) {
971
+ background: color-mix(in srgb, var(--liano-color-destructive) 10%, var(--liano-color-surface));
972
+ border: 1px solid color-mix(in srgb, var(--liano-color-destructive) 32%, var(--liano-color-border));
973
+ border-radius: var(--liano-radius-md);
974
+ color: var(--liano-color-foreground);
975
+ display: grid;
976
+ gap: var(--liano-space-2);
977
+ padding: var(--liano-space-4);
978
+ }
979
+
980
+ :where(.liano-error-fallback__title) {
981
+ color: var(--liano-color-foreground);
982
+ font-family: var(--liano-font-family-sans);
983
+ font-size: var(--liano-font-size-sm);
984
+ font-weight: 700;
985
+ line-height: var(--liano-line-height-tight);
986
+ margin: 0;
987
+ }
988
+
989
+ :where(.liano-error-fallback__message) {
990
+ color: var(--liano-color-muted-foreground);
991
+ font-size: var(--liano-font-size-sm);
992
+ line-height: var(--liano-line-height-normal);
993
+ margin: 0;
994
+ }
995
+
996
+ :where(.liano-error-fallback__action) {
997
+ margin-block-start: var(--liano-space-2);
998
+ }
999
+ }
1000
+
1001
+
1002
+ /* src/components/field/field.css */
1003
+ @layer liano-components {
1004
+ :where(.liano-field) {
1005
+ display: grid;
1006
+ gap: var(--liano-field-gap);
1007
+ }
1008
+
1009
+ :where(.liano-field[data-disabled="true"]) {
1010
+ opacity: var(--liano-opacity-disabled);
1011
+ }
1012
+
1013
+ :where(.liano-field__label) {
1014
+ color: var(--liano-color-foreground);
1015
+ font-family: var(--liano-font-family-sans);
1016
+ font-size: var(--liano-font-size-sm);
1017
+ font-weight: 650;
1018
+ line-height: var(--liano-line-height-tight);
1019
+ }
1020
+
1021
+ :where(.liano-field__description) {
1022
+ color: var(--liano-color-muted-foreground);
1023
+ font-size: var(--liano-font-size-xs);
1024
+ line-height: var(--liano-line-height-normal);
1025
+ }
1026
+
1027
+ :where(.liano-field__error) {
1028
+ color: var(--liano-color-destructive);
1029
+ font-size: var(--liano-font-size-xs);
1030
+ font-weight: 600;
1031
+ line-height: var(--liano-line-height-normal);
1032
+ }
1033
+ }
1034
+
1035
+
1036
+ /* src/components/form/form.css */
1037
+ @layer liano-components {
1038
+ :where(.liano-form) {
1039
+ display: grid;
1040
+ gap: var(--liano-space-4);
1041
+ }
1042
+
1043
+ :where(.liano-form-field, .liano-form-item) {
1044
+ display: grid;
1045
+ gap: var(--liano-space-2);
1046
+ }
1047
+
1048
+ :where(.liano-form-label) {
1049
+ color: var(--liano-color-foreground);
1050
+ font-family: var(--liano-font-family-sans);
1051
+ font-size: var(--liano-font-size-sm);
1052
+ font-weight: 650;
1053
+ line-height: var(--liano-line-height-tight);
1054
+ }
1055
+
1056
+ :where(.liano-form-description, .liano-form-message) {
1057
+ color: var(--liano-color-muted-foreground);
1058
+ font-size: var(--liano-font-size-xs);
1059
+ line-height: var(--liano-line-height-normal);
1060
+ margin: 0;
1061
+ }
1062
+
1063
+ :where(.liano-form-message) {
1064
+ color: var(--liano-color-destructive);
1065
+ font-weight: 600;
1066
+ }
1067
+
1068
+ :where(.liano-form-field[data-disabled="true"]) {
1069
+ opacity: var(--liano-opacity-disabled);
1070
+ }
1071
+ }
1072
+
1073
+
1074
+ /* src/components/input/input.css */
1075
+ @layer liano-components {
1076
+ :where(.liano-input) {
1077
+ appearance: none;
1078
+ background: var(--liano-control-background);
1079
+ border: 1px solid var(--liano-input-border-color, var(--liano-color-border));
1080
+ border-radius: var(--liano-radius-md);
1081
+ box-shadow: var(--liano-shadow-xs);
1082
+ color: var(--liano-color-foreground);
1083
+ font-family: var(--liano-font-family-sans);
1084
+ font-size: var(--liano-font-size-sm);
1085
+ height: var(--liano-input-height, var(--liano-control-height-md));
1086
+ line-height: 1;
1087
+ min-width: 0;
1088
+ padding-inline: var(--liano-control-padding-x);
1089
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1090
+ width: 100%;
1091
+ }
1092
+
1093
+ .liano-input::placeholder {
1094
+ color: var(--liano-color-muted-foreground);
1095
+ }
1096
+
1097
+ :where(.liano-input:hover:not(:disabled)) {
1098
+ --liano-input-border-color: var(--liano-color-border-strong);
1099
+ }
1100
+
1101
+ :where(.liano-input:focus-visible) {
1102
+ --liano-input-border-color: var(--liano-color-ring);
1103
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
1104
+ outline: 0;
1105
+ }
1106
+
1107
+ :where(.liano-input:disabled) {
1108
+ cursor: not-allowed;
1109
+ opacity: var(--liano-opacity-disabled);
1110
+ }
1111
+
1112
+ :where(.liano-input[data-invalid="true"]) {
1113
+ --liano-input-border-color: var(--liano-color-destructive);
1114
+ }
1115
+
1116
+ :where(.liano-input[data-size="sm"]) {
1117
+ --liano-input-height: var(--liano-control-height-sm);
1118
+ font-size: var(--liano-font-size-xs);
1119
+ }
1120
+
1121
+ :where(.liano-input[data-size="lg"]) {
1122
+ --liano-input-height: var(--liano-control-height-lg);
1123
+ font-size: var(--liano-font-size-md);
1124
+ }
1125
+ }
1126
+
1127
+
1128
+ /* src/components/textarea/textarea.css */
1129
+ @layer liano-components {
1130
+ .liano-textarea {
1131
+ appearance: none;
1132
+ background: var(--liano-control-background);
1133
+ border: 1px solid var(--liano-input-border-color, var(--liano-color-border));
1134
+ border-radius: var(--liano-radius-md);
1135
+ box-shadow: var(--liano-shadow-xs);
1136
+ color: var(--liano-color-foreground);
1137
+ font-family: var(--liano-font-family-sans);
1138
+ font-size: var(--liano-font-size-sm);
1139
+ min-block-size: calc(var(--liano-control-height-md) * 2);
1140
+ padding-inline: var(--liano-control-padding-x);
1141
+ padding-block: var(--liano-space-2);
1142
+ resize: vertical;
1143
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1144
+ width: 100%;
1145
+ }
1146
+
1147
+ .liano-textarea::placeholder {
1148
+ color: var(--liano-color-muted-foreground);
1149
+ }
1150
+
1151
+ :where(.liano-textarea:hover:not(:disabled)) {
1152
+ --liano-input-border-color: var(--liano-color-border-strong);
1153
+ }
1154
+
1155
+ :where(.liano-textarea:focus-visible) {
1156
+ --liano-input-border-color: var(--liano-color-ring);
1157
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
1158
+ outline: 0;
1159
+ }
1160
+
1161
+ :where(.liano-textarea:disabled) {
1162
+ cursor: not-allowed;
1163
+ opacity: var(--liano-opacity-disabled);
1164
+ }
1165
+
1166
+ :where(.liano-textarea[data-invalid="true"]) {
1167
+ --liano-input-border-color: var(--liano-color-destructive);
1168
+ }
1169
+
1170
+ :where(.liano-textarea[data-size="sm"]) {
1171
+ font-size: var(--liano-font-size-xs);
1172
+ min-block-size: calc(var(--liano-control-height-sm) * 2);
1173
+ }
1174
+
1175
+ :where(.liano-textarea[data-size="lg"]) {
1176
+ font-size: var(--liano-font-size-md);
1177
+ min-block-size: calc(var(--liano-control-height-lg) * 2);
1178
+ }
1179
+ }
1180
+
1181
+
1182
+ /* src/components/checkbox/checkbox.css */
1183
+ @layer liano-components {
1184
+ .liano-checkbox {
1185
+ --liano-checkbox-size: 1.125rem;
1186
+ align-items: start;
1187
+ cursor: pointer;
1188
+ display: inline-grid;
1189
+ gap: var(--liano-space-2);
1190
+ grid-template-columns: var(--liano-checkbox-size) minmax(0, 1fr);
1191
+ user-select: none;
1192
+ }
1193
+
1194
+ .liano-checkbox__input {
1195
+ block-size: var(--liano-checkbox-size);
1196
+ cursor: inherit;
1197
+ grid-column: 1;
1198
+ grid-row: 1;
1199
+ inline-size: var(--liano-checkbox-size);
1200
+ margin: 0;
1201
+ opacity: 0;
1202
+ z-index: 1;
1203
+ }
1204
+
1205
+ .liano-checkbox__control {
1206
+ align-items: center;
1207
+ background: var(--liano-control-background);
1208
+ border: 1px solid var(--liano-color-border);
1209
+ border-radius: var(--liano-radius-sm);
1210
+ box-shadow: var(--liano-shadow-xs);
1211
+ display: inline-flex;
1212
+ grid-column: 1;
1213
+ grid-row: 1;
1214
+ block-size: var(--liano-checkbox-size);
1215
+ inline-size: var(--liano-checkbox-size);
1216
+ justify-content: center;
1217
+ pointer-events: none;
1218
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1219
+ }
1220
+
1221
+ .liano-checkbox__indicator {
1222
+ block-size: 0.55rem;
1223
+ border: solid var(--liano-color-primary-foreground);
1224
+ border-width: 0 2px 2px 0;
1225
+ display: block;
1226
+ inline-size: 0.3rem;
1227
+ opacity: 0;
1228
+ transform: rotate(45deg) scale(0.85) translate(-1px, -1px);
1229
+ transition: opacity var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
1230
+ }
1231
+
1232
+ .liano-checkbox__input:checked + .liano-checkbox__control {
1233
+ background: var(--liano-color-primary);
1234
+ border-color: var(--liano-color-primary);
1235
+ }
1236
+
1237
+ .liano-checkbox__input:checked + .liano-checkbox__control .liano-checkbox__indicator {
1238
+ opacity: 1;
1239
+ transform: rotate(45deg) scale(1) translate(-1px, -1px);
1240
+ }
1241
+
1242
+ .liano-checkbox__input:focus-visible + .liano-checkbox__control {
1243
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
1244
+ }
1245
+
1246
+ .liano-checkbox[data-disabled="true"] {
1247
+ cursor: not-allowed;
1248
+ opacity: var(--liano-opacity-disabled);
1249
+ }
1250
+
1251
+ .liano-checkbox__input:disabled {
1252
+ cursor: not-allowed;
1253
+ }
1254
+
1255
+ .liano-checkbox[data-invalid="true"] .liano-checkbox__control {
1256
+ border-color: var(--liano-color-destructive);
1257
+ }
1258
+
1259
+ .liano-checkbox[data-size="sm"] {
1260
+ --liano-checkbox-size: 1rem;
1261
+ }
1262
+
1263
+ .liano-checkbox[data-size="lg"] {
1264
+ --liano-checkbox-size: 1.25rem;
1265
+ }
1266
+
1267
+ .liano-checkbox__label {
1268
+ color: var(--liano-color-foreground);
1269
+ font-family: var(--liano-font-family-sans);
1270
+ font-size: var(--liano-font-size-sm);
1271
+ line-height: var(--liano-line-height-tight);
1272
+ }
1273
+
1274
+ @media (prefers-reduced-motion: reduce) {
1275
+ .liano-checkbox__control,
1276
+ .liano-checkbox__indicator {
1277
+ transition: none;
1278
+ }
1279
+ }
1280
+ }
1281
+
1282
+
1283
+ /* src/components/switch/switch.css */
1284
+ @layer liano-components {
1285
+ .liano-switch {
1286
+ --liano-switch-height: var(--liano-control-height-md);
1287
+ --liano-switch-width: calc(var(--liano-switch-height) * 1.75);
1288
+ --liano-switch-padding: var(--liano-space-1);
1289
+ --liano-switch-thumb-size: calc(var(--liano-switch-height) - (var(--liano-switch-padding) * 2) - 2px);
1290
+ --liano-switch-thumb-translate: calc(var(--liano-switch-width) - var(--liano-switch-thumb-size) - (var(--liano-switch-padding) * 2) - 2px);
1291
+ align-items: center;
1292
+ cursor: pointer;
1293
+ display: inline-grid;
1294
+ gap: var(--liano-space-2);
1295
+ grid-template-columns: var(--liano-switch-width) minmax(0, 1fr);
1296
+ user-select: none;
1297
+ }
1298
+
1299
+ .liano-switch__input {
1300
+ block-size: var(--liano-switch-height);
1301
+ cursor: inherit;
1302
+ grid-column: 1;
1303
+ grid-row: 1;
1304
+ inline-size: var(--liano-switch-width);
1305
+ margin: 0;
1306
+ opacity: 0;
1307
+ z-index: 1;
1308
+ }
1309
+
1310
+ .liano-switch__track {
1311
+ align-items: center;
1312
+ background: var(--liano-control-background);
1313
+ border: 1px solid var(--liano-color-border);
1314
+ border-radius: var(--liano-radius-full);
1315
+ box-shadow: var(--liano-shadow-xs);
1316
+ box-sizing: border-box;
1317
+ display: inline-flex;
1318
+ grid-column: 1;
1319
+ grid-row: 1;
1320
+ block-size: var(--liano-switch-height);
1321
+ inline-size: var(--liano-switch-width);
1322
+ padding: var(--liano-switch-padding);
1323
+ pointer-events: none;
1324
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1325
+ }
1326
+
1327
+ .liano-switch__thumb {
1328
+ background: var(--liano-color-surface-raised);
1329
+ border: 1px solid color-mix(in srgb, var(--liano-color-border-strong) 70%, transparent);
1330
+ border-radius: var(--liano-radius-full);
1331
+ box-shadow: var(--liano-shadow-xs);
1332
+ block-size: var(--liano-switch-thumb-size);
1333
+ inline-size: var(--liano-switch-thumb-size);
1334
+ transition: transform var(--liano-duration-fast) var(--liano-ease-standard), background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard);
1335
+ }
1336
+
1337
+ .liano-switch__input:checked + .liano-switch__track {
1338
+ background: var(--liano-color-primary);
1339
+ border-color: var(--liano-color-primary);
1340
+ }
1341
+
1342
+ .liano-switch__input:checked + .liano-switch__track .liano-switch__thumb {
1343
+ background: var(--liano-color-primary-foreground);
1344
+ border-color: color-mix(in srgb, var(--liano-color-primary) 24%, transparent);
1345
+ transform: translateX(var(--liano-switch-thumb-translate));
1346
+ }
1347
+
1348
+ .liano-switch__input:focus-visible + .liano-switch__track {
1349
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
1350
+ }
1351
+
1352
+ .liano-switch[data-size="sm"] {
1353
+ --liano-switch-height: var(--liano-control-height-sm);
1354
+ }
1355
+
1356
+ .liano-switch[data-size="lg"] {
1357
+ --liano-switch-height: var(--liano-control-height-lg);
1358
+ }
1359
+
1360
+ .liano-switch__label {
1361
+ color: var(--liano-color-foreground);
1362
+ font-family: var(--liano-font-family-sans);
1363
+ font-size: var(--liano-font-size-sm);
1364
+ line-height: var(--liano-line-height-tight);
1365
+ }
1366
+
1367
+ .liano-switch[data-disabled="true"] {
1368
+ cursor: not-allowed;
1369
+ opacity: var(--liano-opacity-disabled);
1370
+ }
1371
+
1372
+ .liano-switch__input:disabled {
1373
+ cursor: not-allowed;
1374
+ }
1375
+
1376
+ .liano-switch[data-invalid="true"] .liano-switch__track {
1377
+ border-color: var(--liano-color-destructive);
1378
+ }
1379
+
1380
+ @media (prefers-reduced-motion: reduce) {
1381
+ .liano-switch__track,
1382
+ .liano-switch__thumb {
1383
+ transition: none;
1384
+ }
1385
+ }
1386
+ }
1387
+
1388
+
1389
+ /* src/components/radio-group/radio-group.css */
1390
+ @layer liano-components {
1391
+ .liano-radio-group {
1392
+ border: 0;
1393
+ margin: 0;
1394
+ min-width: 0;
1395
+ padding: 0;
1396
+ }
1397
+
1398
+ .liano-radio-group__legend {
1399
+ color: var(--liano-color-foreground);
1400
+ font-family: var(--liano-font-family-sans);
1401
+ font-size: var(--liano-font-size-sm);
1402
+ font-weight: 650;
1403
+ line-height: var(--liano-line-height-tight);
1404
+ padding-inline: 0;
1405
+ }
1406
+
1407
+ .liano-radio-group__description,
1408
+ .liano-radio-group__error,
1409
+ .liano-radio-group__option-description {
1410
+ color: var(--liano-color-muted-foreground);
1411
+ font-size: var(--liano-font-size-xs);
1412
+ line-height: var(--liano-line-height-normal);
1413
+ margin: 0;
1414
+ }
1415
+
1416
+ .liano-radio-group__error {
1417
+ color: var(--liano-color-destructive);
1418
+ font-weight: 600;
1419
+ }
1420
+
1421
+ .liano-radio-group__items {
1422
+ display: inline-grid;
1423
+ gap: var(--liano-space-2);
1424
+ }
1425
+
1426
+ :where(.liano-radio-group[data-orientation="horizontal"] .liano-radio-group__items) {
1427
+ display: inline-flex;
1428
+ flex-wrap: wrap;
1429
+ }
1430
+
1431
+ .liano-radio-group__item {
1432
+ display: grid;
1433
+ gap: var(--liano-space-1);
1434
+ }
1435
+
1436
+ .liano-radio-group__option {
1437
+ align-items: start;
1438
+ cursor: pointer;
1439
+ display: inline-grid;
1440
+ gap: var(--liano-space-2);
1441
+ grid-template-columns: auto auto 1fr;
1442
+ }
1443
+
1444
+ .liano-radio-group__input {
1445
+ margin: 0;
1446
+ opacity: 0;
1447
+ inline-size: 1rem;
1448
+ block-size: 1rem;
1449
+ position: relative;
1450
+ z-index: 1;
1451
+ }
1452
+
1453
+ .liano-radio-group__control {
1454
+ align-items: center;
1455
+ background: var(--liano-control-background);
1456
+ border: 1px solid var(--liano-color-border);
1457
+ border-radius: var(--liano-radius-full);
1458
+ display: inline-flex;
1459
+ height: 1rem;
1460
+ justify-content: center;
1461
+ width: 1rem;
1462
+ }
1463
+
1464
+ .liano-radio-group__label {
1465
+ color: var(--liano-color-foreground);
1466
+ font-family: var(--liano-font-family-sans);
1467
+ font-size: var(--liano-font-size-sm);
1468
+ line-height: var(--liano-line-height-tight);
1469
+ }
1470
+
1471
+ .liano-radio-group[data-invalid="true"] .liano-radio-group__control {
1472
+ border-color: var(--liano-color-destructive);
1473
+ }
1474
+
1475
+ .liano-radio-group__input:focus-visible + .liano-radio-group__control {
1476
+ box-shadow: var(--liano-focus-ring);
1477
+ }
1478
+
1479
+ .liano-radio-group__input:checked + .liano-radio-group__control {
1480
+ background: var(--liano-color-foreground);
1481
+ box-shadow: inset 0 0 0 3px var(--liano-color-surface);
1482
+ }
1483
+
1484
+ .liano-radio-group[data-disabled="true"] {
1485
+ opacity: var(--liano-opacity-disabled);
1486
+ }
1487
+
1488
+ .liano-radio-group__input:disabled + .liano-radio-group__control {
1489
+ cursor: not-allowed;
1490
+ }
1491
+
1492
+ .liano-radio-group__item:has(.liano-radio-group__input:disabled) {
1493
+ cursor: not-allowed;
1494
+ opacity: var(--liano-opacity-disabled);
1495
+ }
1496
+ }
1497
+
1498
+
1499
+ /* src/components/slider/slider.css */
1500
+ @layer liano-components {
1501
+ :where(.liano-slider) {
1502
+ --liano-slider-height: var(--liano-control-height-md);
1503
+ accent-color: var(--liano-color-primary);
1504
+ background: transparent;
1505
+ cursor: pointer;
1506
+ display: block;
1507
+ height: var(--liano-slider-height);
1508
+ inline-size: 100%;
1509
+ min-width: 0;
1510
+ }
1511
+
1512
+ :where(.liano-slider:focus-visible) {
1513
+ border-radius: var(--liano-radius-md);
1514
+ box-shadow: var(--liano-focus-ring);
1515
+ outline: 0;
1516
+ }
1517
+
1518
+ :where(.liano-slider:disabled) {
1519
+ cursor: not-allowed;
1520
+ opacity: var(--liano-opacity-disabled);
1521
+ }
1522
+
1523
+ :where(.liano-slider[data-invalid="true"]) {
1524
+ accent-color: var(--liano-color-destructive);
1525
+ }
1526
+
1527
+ :where(.liano-slider[data-size="sm"]) {
1528
+ --liano-slider-height: var(--liano-control-height-sm);
1529
+ }
1530
+
1531
+ :where(.liano-slider[data-size="lg"]) {
1532
+ --liano-slider-height: var(--liano-control-height-lg);
1533
+ }
1534
+ }
1535
+
1536
+
1537
+ /* src/components/toggle/toggle.css */
1538
+ @layer liano-components {
1539
+ :where(.liano-toggle) {
1540
+ --liano-toggle-height: var(--liano-control-height-md);
1541
+ --liano-toggle-bg: transparent;
1542
+ --liano-toggle-border: transparent;
1543
+ align-items: center;
1544
+ appearance: none;
1545
+ background: var(--liano-toggle-bg);
1546
+ border: 1px solid var(--liano-toggle-border);
1547
+ border-radius: var(--liano-radius-md);
1548
+ color: var(--liano-color-foreground);
1549
+ cursor: pointer;
1550
+ display: inline-flex;
1551
+ font-family: var(--liano-font-family-sans);
1552
+ font-size: var(--liano-font-size-sm);
1553
+ font-weight: 600;
1554
+ gap: var(--liano-control-gap);
1555
+ height: var(--liano-toggle-height);
1556
+ justify-content: center;
1557
+ line-height: 1;
1558
+ min-width: var(--liano-toggle-height);
1559
+ padding-inline: var(--liano-control-padding-x);
1560
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1561
+ user-select: none;
1562
+ }
1563
+
1564
+ :where(.liano-toggle:hover:not(:disabled, [data-disabled="true"])) {
1565
+ background: var(--liano-control-hover);
1566
+ }
1567
+
1568
+ :where(.liano-toggle:focus-visible) {
1569
+ box-shadow: var(--liano-focus-ring);
1570
+ outline: 0;
1571
+ }
1572
+
1573
+ :where(.liano-toggle:disabled, .liano-toggle[data-disabled="true"]) {
1574
+ cursor: not-allowed;
1575
+ opacity: var(--liano-opacity-disabled);
1576
+ }
1577
+
1578
+ :where(.liano-toggle[data-state="on"]) {
1579
+ --liano-toggle-bg: var(--liano-color-muted);
1580
+ --liano-toggle-border: var(--liano-color-border-strong);
1581
+ }
1582
+
1583
+ :where(.liano-toggle[data-variant="outline"]) {
1584
+ --liano-toggle-border: var(--liano-color-border);
1585
+ }
1586
+
1587
+ :where(.liano-toggle[data-variant="ghost"]) {
1588
+ --liano-toggle-border: transparent;
1589
+ }
1590
+
1591
+ :where(.liano-toggle[data-size="sm"]) {
1592
+ --liano-toggle-height: var(--liano-control-height-sm);
1593
+ font-size: var(--liano-font-size-xs);
1594
+ }
1595
+
1596
+ :where(.liano-toggle[data-size="lg"]) {
1597
+ --liano-toggle-height: var(--liano-control-height-lg);
1598
+ font-size: var(--liano-font-size-md);
1599
+ }
1600
+ }
1601
+
1602
+
1603
+ /* src/components/toggle-group/toggle-group.css */
1604
+ @layer liano-components {
1605
+ :where(.liano-toggle-group) {
1606
+ display: inline-flex;
1607
+ gap: 0;
1608
+ }
1609
+
1610
+ :where(.liano-toggle-group[data-orientation="vertical"]) {
1611
+ flex-direction: column;
1612
+ }
1613
+
1614
+ :where(.liano-toggle-group .liano-toggle) {
1615
+ border-radius: 0;
1616
+ margin-inline-start: -1px;
1617
+ }
1618
+
1619
+ :where(.liano-toggle-group .liano-toggle:first-child) {
1620
+ border-start-start-radius: var(--liano-radius-md);
1621
+ border-end-start-radius: var(--liano-radius-md);
1622
+ margin-inline-start: 0;
1623
+ }
1624
+
1625
+ :where(.liano-toggle-group .liano-toggle:last-child) {
1626
+ border-start-end-radius: var(--liano-radius-md);
1627
+ border-end-end-radius: var(--liano-radius-md);
1628
+ }
1629
+
1630
+ :where(.liano-toggle-group[data-orientation="vertical"] .liano-toggle) {
1631
+ margin-block-start: -1px;
1632
+ margin-inline-start: 0;
1633
+ }
1634
+
1635
+ :where(.liano-toggle-group[data-orientation="vertical"] .liano-toggle:first-child) {
1636
+ border-end-start-radius: 0;
1637
+ border-start-end-radius: var(--liano-radius-md);
1638
+ margin-block-start: 0;
1639
+ }
1640
+
1641
+ :where(.liano-toggle-group[data-orientation="vertical"] .liano-toggle:last-child) {
1642
+ border-end-start-radius: var(--liano-radius-md);
1643
+ border-start-end-radius: 0;
1644
+ }
1645
+
1646
+ :where(.liano-toggle-group[data-disabled="true"]) {
1647
+ opacity: var(--liano-opacity-disabled);
1648
+ }
1649
+ }
1650
+
1651
+
1652
+ /* src/components/select/select.css */
1653
+ @layer liano-components {
1654
+ :where(.liano-select) {
1655
+ display: inline-grid;
1656
+ min-width: 0;
1657
+ }
1658
+
1659
+ :where(.liano-select__trigger) {
1660
+ align-items: center;
1661
+ appearance: none;
1662
+ background: var(--liano-control-background);
1663
+ border: 1px solid var(--liano-select-border-color, var(--liano-color-border));
1664
+ border-radius: var(--liano-radius-md);
1665
+ box-shadow: var(--liano-shadow-xs);
1666
+ color: var(--liano-color-foreground);
1667
+ cursor: pointer;
1668
+ display: inline-flex;
1669
+ font-family: var(--liano-font-family-sans);
1670
+ font-size: var(--liano-font-size-sm);
1671
+ gap: var(--liano-control-gap);
1672
+ height: var(--liano-control-height-md);
1673
+ justify-content: space-between;
1674
+ line-height: 1;
1675
+ min-width: 10rem;
1676
+ padding-inline: var(--liano-control-padding-x);
1677
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1678
+ }
1679
+
1680
+ :where(.liano-select__trigger:hover:not(:disabled)) {
1681
+ --liano-select-border-color: var(--liano-color-border-strong);
1682
+ }
1683
+
1684
+ :where(.liano-select__trigger:focus-visible) {
1685
+ --liano-select-border-color: var(--liano-color-ring);
1686
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
1687
+ outline: 0;
1688
+ }
1689
+
1690
+ :where(.liano-select__trigger:disabled) {
1691
+ cursor: not-allowed;
1692
+ opacity: var(--liano-opacity-disabled);
1693
+ }
1694
+
1695
+ :where(.liano-select__trigger[data-invalid="true"]) {
1696
+ --liano-select-border-color: var(--liano-color-destructive);
1697
+ }
1698
+
1699
+ :where(.liano-select[data-size="sm"] .liano-select__trigger) {
1700
+ height: var(--liano-control-height-sm);
1701
+ font-size: var(--liano-font-size-xs);
1702
+ }
1703
+
1704
+ :where(.liano-select[data-size="lg"] .liano-select__trigger) {
1705
+ height: var(--liano-control-height-lg);
1706
+ font-size: var(--liano-font-size-md);
1707
+ }
1708
+
1709
+ :where(.liano-select__value[data-placeholder="true"]) {
1710
+ color: var(--liano-color-muted-foreground);
1711
+ }
1712
+
1713
+ :where(.liano-select__content) {
1714
+ background: var(--liano-color-surface);
1715
+ border: 1px solid var(--liano-color-border);
1716
+ border-radius: var(--liano-radius-md);
1717
+ box-shadow: var(--liano-shadow-lg);
1718
+ color: var(--liano-color-foreground);
1719
+ display: grid;
1720
+ gap: var(--liano-space-1);
1721
+ min-width: var(--liano-floating-reference-width, 10rem);
1722
+ padding: var(--liano-space-1);
1723
+ z-index: var(--liano-z-popover);
1724
+ }
1725
+
1726
+ :where(.liano-select__content[hidden]) {
1727
+ display: none;
1728
+ }
1729
+
1730
+ :where(.liano-select__item) {
1731
+ align-items: center;
1732
+ border-radius: var(--liano-radius-sm);
1733
+ cursor: pointer;
1734
+ display: grid;
1735
+ font-family: var(--liano-font-family-sans);
1736
+ font-size: var(--liano-font-size-sm);
1737
+ gap: var(--liano-space-2);
1738
+ grid-template-columns: 1rem 1fr;
1739
+ min-height: var(--liano-control-height-sm);
1740
+ padding-inline: var(--liano-space-2);
1741
+ }
1742
+
1743
+ :where(.liano-select__item:hover:not([data-disabled="true"]), .liano-select__item:focus-visible) {
1744
+ background: var(--liano-control-hover);
1745
+ outline: 0;
1746
+ }
1747
+
1748
+ :where(.liano-select__item[data-state="checked"]) {
1749
+ color: var(--liano-color-primary);
1750
+ font-weight: 650;
1751
+ }
1752
+
1753
+ :where(.liano-select__item[data-disabled="true"]) {
1754
+ cursor: not-allowed;
1755
+ opacity: var(--liano-opacity-disabled);
1756
+ }
1757
+ }
1758
+
1759
+
1760
+ /* src/components/collapsible/collapsible.css */
1761
+ @layer liano-components {
1762
+ :where(.liano-collapsible) {
1763
+ --liano-collapsible-gap: var(--liano-space-3);
1764
+ display: grid;
1765
+ gap: var(--liano-collapsible-gap);
1766
+ }
1767
+
1768
+ :where(.liano-collapsible__trigger) {
1769
+ --liano-collapsible-trigger-padding-x: var(--liano-control-padding-x);
1770
+ --liano-collapsible-trigger-height: var(--liano-control-height-md);
1771
+ align-items: center;
1772
+ appearance: none;
1773
+ background: var(--liano-control-background);
1774
+ border: 1px solid var(--liano-color-border);
1775
+ border-radius: var(--liano-radius-md);
1776
+ color: var(--liano-color-foreground);
1777
+ cursor: pointer;
1778
+ display: inline-flex;
1779
+ font-family: var(--liano-font-family-sans);
1780
+ font-size: var(--liano-font-size-sm);
1781
+ gap: var(--liano-control-gap);
1782
+ height: var(--liano-collapsible-trigger-height);
1783
+ justify-content: flex-start;
1784
+ min-width: max-content;
1785
+ padding-inline: var(--liano-collapsible-trigger-padding-x);
1786
+ }
1787
+
1788
+ :where(.liano-collapsible__trigger:hover:not(:disabled, [data-disabled="true"])) {
1789
+ background: var(--liano-control-hover);
1790
+ }
1791
+
1792
+ :where(.liano-collapsible[data-state="open"] .liano-collapsible__trigger, .liano-collapsible__content:not([hidden])) {
1793
+ border-color: var(--liano-color-border-strong);
1794
+ }
1795
+
1796
+ :where(.liano-collapsible__content) {
1797
+ padding-inline: var(--liano-control-padding-x);
1798
+ }
1799
+
1800
+ :where(.liano-collapsible__content[data-state="closed"]) {
1801
+ overflow: hidden;
1802
+ }
1803
+ }
1804
+
1805
+
1806
+ /* src/components/accordion/accordion.css */
1807
+ @layer liano-components {
1808
+ :where(.liano-accordion) {
1809
+ --liano-accordion-gap: var(--liano-space-2);
1810
+ display: grid;
1811
+ gap: var(--liano-accordion-gap);
1812
+ }
1813
+
1814
+ :where(.liano-accordion__item) {
1815
+ border: 1px solid var(--liano-color-border);
1816
+ border-radius: var(--liano-radius-md);
1817
+ overflow: hidden;
1818
+ }
1819
+
1820
+ :where(.liano-accordion__item[data-state="open"]) {
1821
+ border-color: var(--liano-color-border-strong);
1822
+ }
1823
+
1824
+ :where(.liano-accordion__trigger) {
1825
+ --liano-accordion-trigger-height: var(--liano-control-height-md);
1826
+ appearance: none;
1827
+ background: var(--liano-surface);
1828
+ border: none;
1829
+ color: var(--liano-color-foreground);
1830
+ cursor: pointer;
1831
+ display: inline-flex;
1832
+ font-family: var(--liano-font-family-sans);
1833
+ font-size: var(--liano-font-size-sm);
1834
+ gap: var(--liano-control-gap);
1835
+ min-width: 100%;
1836
+ min-height: var(--liano-accordion-trigger-height);
1837
+ text-align: left;
1838
+ width: 100%;
1839
+ }
1840
+
1841
+ :where(.liano-accordion__trigger[data-state="open"]) {
1842
+ background: var(--liano-control-hover);
1843
+ }
1844
+
1845
+ :where(.liano-accordion__trigger:focus-visible) {
1846
+ outline: 0;
1847
+ box-shadow: var(--liano-focus-ring);
1848
+ }
1849
+
1850
+ :where(.liano-accordion__content) {
1851
+ padding: var(--liano-space-3);
1852
+ }
1853
+
1854
+ :where(.liano-accordion__content[data-state="closed"]) {
1855
+ display: none;
1856
+ }
1857
+
1858
+ :where(.liano-accordion[data-disabled="true"] .liano-accordion__trigger:disabled) {
1859
+ cursor: not-allowed;
1860
+ }
1861
+ }
1862
+
1863
+
1864
+ /* src/components/tabs/tabs.css */
1865
+ @layer liano-components {
1866
+ :where(.liano-tabs) {
1867
+ --liano-tabs-gap: var(--liano-space-3);
1868
+ display: grid;
1869
+ gap: var(--liano-tabs-gap);
1870
+ }
1871
+
1872
+ :where(.liano-tabs__list) {
1873
+ --liano-tabs-list-padding: var(--liano-space-1);
1874
+ align-items: center;
1875
+ display: flex;
1876
+ gap: var(--liano-space-1);
1877
+ overflow-x: auto;
1878
+ padding: var(--liano-tabs-list-padding);
1879
+ }
1880
+
1881
+ :where(.liano-tabs[data-orientation="vertical"] .liano-tabs__list) {
1882
+ flex-direction: column;
1883
+ }
1884
+
1885
+ :where(.liano-tabs__trigger) {
1886
+ --liano-tabs-trigger-height: var(--liano-control-height-md);
1887
+ align-items: center;
1888
+ appearance: none;
1889
+ background: transparent;
1890
+ border: 1px solid transparent;
1891
+ border-radius: var(--liano-radius-sm);
1892
+ color: var(--liano-color-muted-foreground);
1893
+ cursor: pointer;
1894
+ display: inline-flex;
1895
+ flex: 0 0 auto;
1896
+ font-family: var(--liano-font-family-sans);
1897
+ font-size: var(--liano-font-size-sm);
1898
+ font-weight: 600;
1899
+ justify-content: center;
1900
+ line-height: 1;
1901
+ min-block-size: var(--liano-tabs-trigger-height);
1902
+ padding-block: 0;
1903
+ padding-inline: var(--liano-control-padding-x);
1904
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
1905
+ }
1906
+
1907
+ :where(.liano-tabs__trigger:hover:not(:disabled)) {
1908
+ background: var(--liano-control-hover);
1909
+ color: var(--liano-color-foreground);
1910
+ }
1911
+
1912
+ :where(.liano-tabs__trigger[data-state="active"]) {
1913
+ background: var(--liano-color-surface-raised);
1914
+ border-color: var(--liano-color-border-strong);
1915
+ box-shadow: var(--liano-shadow-xs);
1916
+ color: var(--liano-color-foreground);
1917
+ }
1918
+
1919
+ :where(.liano-tabs__trigger[data-disabled="true"]) {
1920
+ cursor: not-allowed;
1921
+ opacity: var(--liano-opacity-disabled);
1922
+ }
1923
+
1924
+ :where(.liano-tabs__trigger:focus-visible) {
1925
+ outline: 0;
1926
+ box-shadow: var(--liano-focus-ring);
1927
+ }
1928
+
1929
+ :where(.liano-tabs__content[data-state="closed"]) {
1930
+ display: none;
1931
+ }
1932
+
1933
+ :where(.liano-tabs__content) {
1934
+ color: var(--liano-color-foreground);
1935
+ font-family: var(--liano-font-family-sans);
1936
+ font-size: var(--liano-font-size-md);
1937
+ line-height: var(--liano-line-height-normal);
1938
+ }
1939
+ }
1940
+
1941
+
1942
+ /* src/components/breadcrumbs/breadcrumbs.css */
1943
+ @layer liano-components {
1944
+ :where(.liano-breadcrumbs) {
1945
+ --liano-breadcrumbs-separator-gap: var(--liano-space-2);
1946
+ color: var(--liano-color-foreground);
1947
+ }
1948
+
1949
+ :where(.liano-breadcrumbs__list) {
1950
+ align-items: center;
1951
+ display: flex;
1952
+ flex-wrap: wrap;
1953
+ gap: var(--liano-breadcrumbs-separator-gap);
1954
+ list-style: none;
1955
+ margin: 0;
1956
+ padding: 0;
1957
+ }
1958
+
1959
+ :where(.liano-breadcrumbs__item) {
1960
+ align-items: center;
1961
+ color: var(--liano-color-muted-foreground);
1962
+ display: inline-flex;
1963
+ font-size: var(--liano-font-size-sm);
1964
+ gap: var(--liano-breadcrumbs-separator-gap);
1965
+ }
1966
+
1967
+ :where(.liano-breadcrumbs__item[aria-current="page"]) {
1968
+ color: var(--liano-color-foreground);
1969
+ font-weight: 600;
1970
+ }
1971
+
1972
+ :where(.liano-breadcrumbs__link) {
1973
+ color: inherit;
1974
+ text-decoration: none;
1975
+ }
1976
+
1977
+ :where(.liano-breadcrumbs__link:hover, .liano-breadcrumbs__link:focus-visible) {
1978
+ text-decoration: underline;
1979
+ }
1980
+
1981
+ :where(.liano-breadcrumbs__separator) {
1982
+ color: var(--liano-color-muted-foreground);
1983
+ pointer-events: none;
1984
+ }
1985
+ }
1986
+
1987
+
1988
+ /* src/components/pagination/pagination.css */
1989
+ @layer liano-components {
1990
+ :where(.liano-pagination) {
1991
+ display: block;
1992
+ width: max-content;
1993
+ }
1994
+
1995
+ :where(.liano-pagination__list) {
1996
+ display: inline-flex;
1997
+ align-items: center;
1998
+ gap: var(--liano-space-1);
1999
+ list-style: none;
2000
+ margin: 0;
2001
+ padding: 0;
2002
+ }
2003
+
2004
+ :where(.liano-pagination__list > li) {
2005
+ margin: 0;
2006
+ }
2007
+
2008
+ :where(.liano-pagination__item) {
2009
+ appearance: none;
2010
+ background: transparent;
2011
+ border: 1px solid transparent;
2012
+ border-radius: var(--liano-radius-sm);
2013
+ color: var(--liano-color-foreground);
2014
+ display: inline-flex;
2015
+ font-size: var(--liano-font-size-sm);
2016
+ padding-block: var(--liano-space-1);
2017
+ padding-inline: var(--liano-space-2);
2018
+ text-decoration: none;
2019
+ }
2020
+
2021
+ :where(.liano-pagination__item:hover:not(:disabled)) {
2022
+ border-color: var(--liano-color-border);
2023
+ background: var(--liano-color-accent);
2024
+ }
2025
+
2026
+ :where(.liano-pagination__item--current) {
2027
+ border-color: var(--liano-color-primary);
2028
+ font-weight: 600;
2029
+ }
2030
+
2031
+ :where(.liano-pagination__item--disabled) {
2032
+ opacity: var(--liano-opacity-disabled);
2033
+ }
2034
+
2035
+ :where(.liano-pagination__ellipsis) {
2036
+ color: var(--liano-color-muted-foreground);
2037
+ padding-inline: var(--liano-space-1);
2038
+ }
2039
+
2040
+ :where(.liano-pagination__item:focus-visible) {
2041
+ outline: 0;
2042
+ box-shadow: var(--liano-focus-ring);
2043
+ }
2044
+ }
2045
+
2046
+
2047
+ /* src/components/table/table.css */
2048
+ @layer liano-components {
2049
+ :where(.liano-table) {
2050
+ border-collapse: collapse;
2051
+ color: var(--liano-color-foreground);
2052
+ font-size: var(--liano-font-size-sm);
2053
+ width: 100%;
2054
+ }
2055
+
2056
+ :where(.liano-table[data-density="compact"]) {
2057
+ --liano-table-cell-padding-x: var(--liano-space-2);
2058
+ --liano-table-cell-padding-y: var(--liano-space-1);
2059
+ }
2060
+
2061
+ :where(.liano-table[data-density="default"]) {
2062
+ --liano-table-cell-padding-x: var(--liano-space-3);
2063
+ --liano-table-cell-padding-y: var(--liano-space-2);
2064
+ }
2065
+
2066
+ :where(.liano-table[data-density="comfortable"]) {
2067
+ --liano-table-cell-padding-x: var(--liano-space-4);
2068
+ --liano-table-cell-padding-y: var(--liano-space-3);
2069
+ }
2070
+
2071
+ :where(.liano-table[data-variant="surface"]) {
2072
+ background: var(--liano-color-surface);
2073
+ border: 1px solid var(--liano-color-border);
2074
+ border-radius: var(--liano-radius-md);
2075
+ overflow: hidden;
2076
+ }
2077
+
2078
+ :where(.liano-table[data-variant="plain"]) {
2079
+ border: none;
2080
+ }
2081
+
2082
+ :where(.liano-table[data-variant="surface"] .liano-table__row) {
2083
+ border-bottom: 1px solid var(--liano-color-border);
2084
+ }
2085
+
2086
+ :where(.liano-table__caption) {
2087
+ caption-side: bottom;
2088
+ color: var(--liano-color-muted-foreground);
2089
+ font-size: var(--liano-font-size-sm);
2090
+ margin-top: var(--liano-space-2);
2091
+ text-align: left;
2092
+ }
2093
+
2094
+ :where(.liano-table__head, .liano-table__cell) {
2095
+ text-align: left;
2096
+ padding-block: var(--liano-table-cell-padding-y);
2097
+ padding-inline: var(--liano-table-cell-padding-x);
2098
+ }
2099
+
2100
+ :where(.liano-table__head) {
2101
+ font-size: var(--liano-font-size-sm);
2102
+ font-weight: 600;
2103
+ }
2104
+
2105
+ :where(.liano-table__row) {
2106
+ border-bottom: 1px solid var(--liano-color-border-subtle);
2107
+ }
2108
+
2109
+ :where(.liano-table__row:last-child) {
2110
+ border-bottom: none;
2111
+ }
2112
+ }
2113
+
2114
+
2115
+ /* src/components/empty-state/empty-state.css */
2116
+ @layer liano-components {
2117
+ :where(.liano-empty-state) {
2118
+ align-items: center;
2119
+ display: flex;
2120
+ flex-direction: column;
2121
+ gap: var(--liano-space-3);
2122
+ text-align: center;
2123
+ }
2124
+
2125
+ :where(.liano-empty-state__icon) {
2126
+ color: var(--liano-color-muted-foreground);
2127
+ font-size: var(--liano-font-size-2xl);
2128
+ line-height: 1;
2129
+ min-height: 1.75rem;
2130
+ }
2131
+
2132
+ :where(.liano-empty-state__title) {
2133
+ color: var(--liano-color-foreground);
2134
+ font-size: var(--liano-font-size-lg);
2135
+ font-weight: 650;
2136
+ margin: 0;
2137
+ }
2138
+
2139
+ :where(.liano-empty-state__description) {
2140
+ color: var(--liano-color-muted-foreground);
2141
+ margin: 0;
2142
+ max-width: 45ch;
2143
+ }
2144
+
2145
+ :where(.liano-empty-state__actions) {
2146
+ display: inline-flex;
2147
+ gap: var(--liano-space-2);
2148
+ }
2149
+
2150
+ :where(.liano-empty-state[data-align="start"]) {
2151
+ align-items: flex-start;
2152
+ text-align: left;
2153
+ }
2154
+
2155
+ :where(.liano-empty-state[data-size="sm"]) {
2156
+ gap: var(--liano-space-2);
2157
+ }
2158
+
2159
+ :where(.liano-empty-state[data-size="sm"] .liano-empty-state__title) {
2160
+ font-size: var(--liano-font-size-base);
2161
+ }
2162
+
2163
+ :where(.liano-empty-state[data-size="lg"]) {
2164
+ gap: var(--liano-space-4);
2165
+ }
2166
+
2167
+ :where(.liano-empty-state[data-size="lg"] .liano-empty-state__title) {
2168
+ font-size: var(--liano-font-size-xl);
2169
+ }
2170
+ }
2171
+
2172
+
2173
+ /* src/components/stat/stat.css */
2174
+ @layer liano-components {
2175
+ :where(.liano-stat) {
2176
+ border: 1px solid var(--liano-color-border);
2177
+ border-radius: var(--liano-radius-lg);
2178
+ display: grid;
2179
+ gap: var(--liano-space-2);
2180
+ max-inline-size: 100%;
2181
+ padding: var(--liano-space-3) var(--liano-space-4);
2182
+ }
2183
+
2184
+ :where(.liano-stat__label) {
2185
+ color: var(--liano-color-muted-foreground);
2186
+ font-size: var(--liano-font-size-sm);
2187
+ margin: 0;
2188
+ }
2189
+
2190
+ :where(.liano-stat__value) {
2191
+ color: var(--liano-color-foreground);
2192
+ font-size: var(--liano-font-size-2xl);
2193
+ font-weight: 650;
2194
+ line-height: 1.1;
2195
+ margin: 0;
2196
+ }
2197
+
2198
+ :where(.liano-stat__description) {
2199
+ color: var(--liano-color-muted-foreground);
2200
+ font-size: var(--liano-font-size-sm);
2201
+ margin: 0;
2202
+ }
2203
+
2204
+ :where(.liano-stat__trend) {
2205
+ font-size: var(--liano-font-size-sm);
2206
+ margin: 0;
2207
+ }
2208
+
2209
+ :where(.liano-stat[data-size="sm"]) {
2210
+ padding: var(--liano-space-2) var(--liano-space-3);
2211
+ }
2212
+
2213
+ :where(.liano-stat[data-size="sm"] .liano-stat__value) {
2214
+ font-size: var(--liano-font-size-xl);
2215
+ }
2216
+
2217
+ :where(.liano-stat[data-size="lg"]) {
2218
+ padding: var(--liano-space-4) var(--liano-space-5);
2219
+ }
2220
+
2221
+ :where(.liano-stat[data-size="lg"] .liano-stat__value) {
2222
+ font-size: var(--liano-font-size-3xl);
2223
+ }
2224
+
2225
+ :where(.liano-stat[data-tone="success"]) {
2226
+ --liano-stat-accent: var(--liano-color-success);
2227
+ }
2228
+
2229
+ :where(.liano-stat[data-tone="warning"]) {
2230
+ --liano-stat-accent: var(--liano-color-warning);
2231
+ }
2232
+
2233
+ :where(.liano-stat[data-tone="destructive"]) {
2234
+ --liano-stat-accent: var(--liano-color-destructive);
2235
+ }
2236
+
2237
+ :where(.liano-stat[data-tone="info"]) {
2238
+ --liano-stat-accent: var(--liano-color-info);
2239
+ }
2240
+
2241
+ :where(.liano-stat[data-tone="neutral"]) {
2242
+ --liano-stat-accent: var(--liano-color-muted-foreground);
2243
+ }
2244
+
2245
+ :where(.liano-stat[data-tone]) .liano-stat__trend {
2246
+ color: var(--liano-stat-accent);
2247
+ font-weight: 600;
2248
+ }
2249
+ }
2250
+
2251
+
2252
+ /* src/components/code-block/code-block.css */
2253
+ @layer liano-components {
2254
+ :where(.liano-code-block) {
2255
+ background: color-mix(in srgb, var(--liano-color-foreground) 6%, var(--liano-color-surface));
2256
+ border: 1px solid var(--liano-color-border);
2257
+ border-radius: var(--liano-radius-md);
2258
+ display: grid;
2259
+ font-family: var(--liano-font-family-mono);
2260
+ line-height: 1.4;
2261
+ margin: 0;
2262
+ overflow: auto;
2263
+ padding: var(--liano-space-3);
2264
+ }
2265
+
2266
+ :where(.liano-code-block__header) {
2267
+ display: flex;
2268
+ justify-content: space-between;
2269
+ margin-bottom: var(--liano-space-2);
2270
+ }
2271
+
2272
+ :where(.liano-code-block__filename) {
2273
+ color: var(--liano-color-muted-foreground);
2274
+ font-size: var(--liano-font-size-xs);
2275
+ }
2276
+
2277
+ :where(.liano-code-block__language) {
2278
+ color: var(--liano-color-muted-foreground);
2279
+ font-size: var(--liano-font-size-xs);
2280
+ }
2281
+
2282
+ :where(.liano-code-block__code) {
2283
+ color: var(--liano-color-foreground);
2284
+ display: block;
2285
+ margin: 0;
2286
+ white-space: pre;
2287
+ }
2288
+
2289
+ :where(.liano-code-block[data-size="sm"]) {
2290
+ font-size: var(--liano-font-size-sm);
2291
+ padding: var(--liano-space-2);
2292
+ }
2293
+
2294
+ :where(.liano-code-block__code[class*="language-"]) {
2295
+ border-left: 2px solid var(--liano-color-border-strong);
2296
+ padding-left: var(--liano-space-3);
2297
+ }
2298
+ }
2299
+
2300
+
2301
+ /* src/components/dialog/dialog.css */
2302
+ @layer liano-components {
2303
+ :where(.liano-dialog__overlay) {
2304
+ --liano-dialog-overlay-background: color-mix(in srgb, var(--liano-color-foreground) 28%, transparent);
2305
+ animation: liano-dialog-overlay-enter var(--liano-duration-normal) var(--liano-ease-standard);
2306
+ background: var(--liano-dialog-overlay-background);
2307
+ inset: 0;
2308
+ position: fixed;
2309
+ z-index: 100;
2310
+ }
2311
+
2312
+ :where(.liano-dialog__content) {
2313
+ --liano-dialog-content-background: var(--liano-color-surface);
2314
+ --liano-dialog-content-border: var(--liano-color-border);
2315
+ background: var(--liano-dialog-content-background);
2316
+ border: 1px solid var(--liano-dialog-content-border);
2317
+ border-radius: var(--liano-radius-lg);
2318
+ box-shadow: var(--liano-shadow-md);
2319
+ left: 50%;
2320
+ max-height: min(85vh, 32rem);
2321
+ max-width: min(92vw, 32rem);
2322
+ overflow: auto;
2323
+ padding: var(--liano-space-5);
2324
+ position: fixed;
2325
+ top: 50%;
2326
+ transform: translate(-50%, -50%);
2327
+ width: min(92vw, 32rem);
2328
+ z-index: 101;
2329
+ }
2330
+
2331
+ :where(.liano-dialog__content[data-state="open"]) {
2332
+ animation: liano-dialog-content-enter var(--liano-duration-normal) var(--liano-ease-standard);
2333
+ }
2334
+
2335
+ :where(.liano-dialog__header, .liano-dialog__footer) {
2336
+ display: grid;
2337
+ gap: var(--liano-space-2);
2338
+ }
2339
+
2340
+ :where(.liano-dialog__header + .liano-dialog__footer, .liano-dialog__header + .liano-dialog__description) {
2341
+ margin-top: var(--liano-space-4);
2342
+ }
2343
+
2344
+ :where(.liano-dialog__title) {
2345
+ color: var(--liano-color-foreground);
2346
+ font-family: var(--liano-font-family-sans);
2347
+ font-size: var(--liano-font-size-lg);
2348
+ font-weight: 700;
2349
+ line-height: var(--liano-line-height-tight);
2350
+ margin: 0;
2351
+ }
2352
+
2353
+ :where(.liano-dialog__description) {
2354
+ color: var(--liano-color-muted-foreground);
2355
+ font-size: var(--liano-font-size-sm);
2356
+ line-height: var(--liano-line-height-normal);
2357
+ margin: 0;
2358
+ }
2359
+
2360
+ :where(.liano-dialog__footer) {
2361
+ grid-auto-flow: column;
2362
+ justify-content: end;
2363
+ }
2364
+
2365
+ :where(.liano-dialog__trigger, .liano-dialog__close) {
2366
+ align-items: center;
2367
+ appearance: none;
2368
+ background: var(--liano-control-background);
2369
+ border: 1px solid var(--liano-color-border);
2370
+ border-radius: var(--liano-radius-md);
2371
+ box-shadow: var(--liano-shadow-xs);
2372
+ color: var(--liano-color-foreground);
2373
+ cursor: pointer;
2374
+ display: inline-flex;
2375
+ font-family: var(--liano-font-family-sans);
2376
+ font-size: var(--liano-font-size-sm);
2377
+ font-weight: 600;
2378
+ justify-content: center;
2379
+ line-height: 1;
2380
+ min-block-size: var(--liano-control-height-md);
2381
+ padding-block: 0;
2382
+ padding-inline: var(--liano-control-padding-x);
2383
+ text-decoration: none;
2384
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
2385
+ user-select: none;
2386
+ }
2387
+
2388
+ :where(.liano-dialog__trigger:hover:not(:disabled)),
2389
+ :where(.liano-dialog__close:hover:not(:disabled)) {
2390
+ background: var(--liano-control-hover);
2391
+ border-color: var(--liano-color-border-strong);
2392
+ }
2393
+
2394
+ :where(.liano-dialog__trigger:active:not(:disabled)),
2395
+ :where(.liano-dialog__close:active:not(:disabled)) {
2396
+ background: var(--liano-control-active);
2397
+ transform: translateY(1px);
2398
+ }
2399
+
2400
+ :where(.liano-dialog__trigger:focus-visible, .liano-dialog__close:focus-visible) {
2401
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
2402
+ outline: 0;
2403
+ }
2404
+
2405
+ :where(.liano-dialog[data-state="closed"]) .liano-dialog__content,
2406
+ :where(.liano-dialog__content[data-state="closed"]) {
2407
+ display: none;
2408
+ }
2409
+
2410
+ @keyframes liano-dialog-overlay-enter {
2411
+ from {
2412
+ opacity: 0;
2413
+ }
2414
+
2415
+ to {
2416
+ opacity: 1;
2417
+ }
2418
+ }
2419
+
2420
+ @keyframes liano-dialog-content-enter {
2421
+ from {
2422
+ opacity: 0;
2423
+ transform: translate(-50%, calc(-50% + 0.375rem)) scale(0.97);
2424
+ }
2425
+
2426
+ to {
2427
+ opacity: 1;
2428
+ transform: translate(-50%, -50%) scale(1);
2429
+ }
2430
+ }
2431
+
2432
+ @media (prefers-reduced-motion: reduce) {
2433
+ :where(.liano-dialog__overlay),
2434
+ :where(.liano-dialog__content[data-state="open"]) {
2435
+ animation: none;
2436
+ }
2437
+ }
2438
+ }
2439
+
2440
+
2441
+ /* src/components/alert-dialog/alert-dialog.css */
2442
+ @layer liano-components {
2443
+ .liano-alert-dialog {
2444
+ display: contents;
2445
+ }
2446
+
2447
+ .liano-alert-dialog__overlay {
2448
+ background: color-mix(in srgb, var(--liano-color-foreground) 28%, transparent);
2449
+ inset: 0;
2450
+ position: fixed;
2451
+ z-index: 100;
2452
+ }
2453
+
2454
+ .liano-alert-dialog__content {
2455
+ background: var(--liano-color-surface);
2456
+ border: 1px solid var(--liano-color-border);
2457
+ border-radius: var(--liano-radius-lg);
2458
+ box-shadow: var(--liano-shadow-md);
2459
+ color: var(--liano-color-foreground);
2460
+ font-family: var(--liano-font-family-sans);
2461
+ inline-size: min(30rem, calc(100vw - 2rem));
2462
+ left: 50%;
2463
+ line-height: var(--liano-line-height-normal);
2464
+ padding: var(--liano-space-5);
2465
+ position: fixed;
2466
+ top: 50%;
2467
+ transform: translate(-50%, -50%);
2468
+ z-index: 101;
2469
+ }
2470
+
2471
+ .liano-alert-dialog__title {
2472
+ color: var(--liano-color-foreground);
2473
+ font-family: var(--liano-font-family-sans);
2474
+ font-size: var(--liano-font-size-lg);
2475
+ font-weight: 700;
2476
+ line-height: var(--liano-line-height-tight);
2477
+ margin: 0;
2478
+ }
2479
+
2480
+ .liano-alert-dialog__description {
2481
+ color: var(--liano-color-muted-foreground);
2482
+ font-size: var(--liano-font-size-sm);
2483
+ line-height: var(--liano-line-height-normal);
2484
+ margin: var(--liano-space-2) 0 0;
2485
+ }
2486
+
2487
+ .liano-alert-dialog__footer {
2488
+ display: flex;
2489
+ gap: var(--liano-space-2);
2490
+ justify-content: flex-end;
2491
+ margin-block-start: var(--liano-space-5);
2492
+ }
2493
+
2494
+ .liano-alert-dialog__trigger,
2495
+ .liano-alert-dialog__button {
2496
+ align-items: center;
2497
+ appearance: none;
2498
+ background: var(--liano-control-background);
2499
+ border: 1px solid var(--liano-color-border);
2500
+ border-radius: var(--liano-radius-md);
2501
+ box-shadow: var(--liano-shadow-xs);
2502
+ color: var(--liano-color-foreground);
2503
+ cursor: pointer;
2504
+ display: inline-flex;
2505
+ font-family: var(--liano-font-family-sans);
2506
+ font-size: var(--liano-font-size-sm);
2507
+ font-weight: 600;
2508
+ justify-content: center;
2509
+ line-height: 1;
2510
+ min-block-size: var(--liano-control-height-md);
2511
+ padding-block: 0;
2512
+ padding-inline: var(--liano-control-padding-x);
2513
+ text-decoration: none;
2514
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
2515
+ user-select: none;
2516
+ }
2517
+
2518
+ .liano-alert-dialog__trigger:hover:not(:disabled),
2519
+ .liano-alert-dialog__button:hover:not(:disabled) {
2520
+ background: var(--liano-control-hover);
2521
+ border-color: var(--liano-color-border-strong);
2522
+ }
2523
+
2524
+ .liano-alert-dialog__trigger:active:not(:disabled),
2525
+ .liano-alert-dialog__button:active:not(:disabled) {
2526
+ background: var(--liano-control-active);
2527
+ transform: translateY(1px);
2528
+ }
2529
+
2530
+ .liano-alert-dialog__trigger:focus-visible,
2531
+ .liano-alert-dialog__button:focus-visible {
2532
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
2533
+ outline: 0;
2534
+ }
2535
+
2536
+ .liano-alert-dialog__trigger:disabled,
2537
+ .liano-alert-dialog__button:disabled {
2538
+ cursor: not-allowed;
2539
+ opacity: var(--liano-opacity-disabled);
2540
+ }
2541
+ }
2542
+
2543
+
2544
+ /* src/components/sheet/sheet.css */
2545
+ @layer liano-components {
2546
+ .liano-sheet {
2547
+ display: contents;
2548
+ }
2549
+
2550
+ .liano-sheet__overlay {
2551
+ background: color-mix(in srgb, var(--liano-color-foreground) 24%, transparent);
2552
+ inset: 0;
2553
+ position: fixed;
2554
+ z-index: 100;
2555
+ }
2556
+
2557
+ .liano-sheet__content {
2558
+ background: var(--liano-color-surface);
2559
+ border: 1px solid var(--liano-color-border);
2560
+ box-shadow: var(--liano-shadow-md);
2561
+ color: var(--liano-color-foreground);
2562
+ display: flex;
2563
+ flex-direction: column;
2564
+ font-family: var(--liano-font-family-sans);
2565
+ gap: var(--liano-space-4);
2566
+ line-height: var(--liano-line-height-normal);
2567
+ padding: var(--liano-space-5);
2568
+ position: fixed;
2569
+ z-index: 101;
2570
+ }
2571
+
2572
+ .liano-sheet__content[data-side="right"],
2573
+ .liano-sheet__content[data-side="left"] {
2574
+ block-size: 100vh;
2575
+ max-inline-size: calc(100vw - 2rem);
2576
+ top: 0;
2577
+ inline-size: min(28rem, 100vw);
2578
+ }
2579
+
2580
+ .liano-sheet__content[data-side="right"] {
2581
+ border-inline-end: 0;
2582
+ right: 0;
2583
+ }
2584
+
2585
+ .liano-sheet__content[data-side="left"] {
2586
+ border-inline-start: 0;
2587
+ left: 0;
2588
+ }
2589
+
2590
+ .liano-sheet__content[data-side="top"],
2591
+ .liano-sheet__content[data-side="bottom"] {
2592
+ inline-size: 100vw;
2593
+ left: 0;
2594
+ max-block-size: calc(100vh - 2rem);
2595
+ }
2596
+
2597
+ .liano-sheet__content[data-side="top"] {
2598
+ border-block-start: 0;
2599
+ top: 0;
2600
+ }
2601
+
2602
+ .liano-sheet__content[data-side="bottom"] {
2603
+ border-block-end: 0;
2604
+ bottom: 0;
2605
+ }
2606
+
2607
+ .liano-sheet__header {
2608
+ display: grid;
2609
+ gap: var(--liano-space-2);
2610
+ }
2611
+
2612
+ .liano-sheet__title {
2613
+ color: var(--liano-color-foreground);
2614
+ font-family: var(--liano-font-family-sans);
2615
+ font-size: var(--liano-font-size-lg);
2616
+ font-weight: 700;
2617
+ line-height: var(--liano-line-height-tight);
2618
+ margin: 0;
2619
+ }
2620
+
2621
+ .liano-sheet__description {
2622
+ color: var(--liano-color-muted-foreground);
2623
+ font-size: var(--liano-font-size-sm);
2624
+ line-height: var(--liano-line-height-normal);
2625
+ margin: 0;
2626
+ }
2627
+
2628
+ .liano-sheet__footer {
2629
+ display: flex;
2630
+ gap: var(--liano-space-2);
2631
+ justify-content: flex-end;
2632
+ margin-block-start: auto;
2633
+ }
2634
+
2635
+ .liano-sheet__trigger,
2636
+ .liano-sheet__close {
2637
+ align-items: center;
2638
+ appearance: none;
2639
+ background: var(--liano-control-background);
2640
+ border: 1px solid var(--liano-color-border);
2641
+ border-radius: var(--liano-radius-md);
2642
+ box-shadow: var(--liano-shadow-xs);
2643
+ color: var(--liano-color-foreground);
2644
+ cursor: pointer;
2645
+ display: inline-flex;
2646
+ font-family: var(--liano-font-family-sans);
2647
+ font-size: var(--liano-font-size-sm);
2648
+ font-weight: 600;
2649
+ justify-content: center;
2650
+ line-height: 1;
2651
+ min-block-size: var(--liano-control-height-md);
2652
+ padding-block: 0;
2653
+ padding-inline: var(--liano-control-padding-x);
2654
+ text-decoration: none;
2655
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
2656
+ user-select: none;
2657
+ }
2658
+
2659
+ .liano-sheet__trigger:hover:not(:disabled),
2660
+ .liano-sheet__close:hover:not(:disabled) {
2661
+ background: var(--liano-control-hover);
2662
+ border-color: var(--liano-color-border-strong);
2663
+ }
2664
+
2665
+ .liano-sheet__trigger:active:not(:disabled),
2666
+ .liano-sheet__close:active:not(:disabled) {
2667
+ background: var(--liano-control-active);
2668
+ transform: translateY(1px);
2669
+ }
2670
+
2671
+ .liano-sheet__trigger:focus-visible,
2672
+ .liano-sheet__close:focus-visible {
2673
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
2674
+ outline: 0;
2675
+ }
2676
+
2677
+ .liano-sheet__trigger:disabled,
2678
+ .liano-sheet__close:disabled {
2679
+ cursor: not-allowed;
2680
+ opacity: var(--liano-opacity-disabled);
2681
+ }
2682
+ }
2683
+
2684
+
2685
+ /* src/components/popover/popover.css */
2686
+ @layer liano-components {
2687
+ :where(.liano-popover) {
2688
+ display: inline-grid;
2689
+ position: relative;
2690
+ }
2691
+
2692
+ :where(.liano-popover__trigger) {
2693
+ align-items: center;
2694
+ appearance: none;
2695
+ background: var(--liano-control-background);
2696
+ border: 1px solid var(--liano-color-border);
2697
+ border-radius: var(--liano-radius-md);
2698
+ box-shadow: var(--liano-shadow-xs);
2699
+ color: var(--liano-color-foreground);
2700
+ cursor: pointer;
2701
+ display: inline-flex;
2702
+ font-family: var(--liano-font-family-sans);
2703
+ font-size: var(--liano-font-size-sm);
2704
+ font-weight: 600;
2705
+ justify-content: center;
2706
+ line-height: 1;
2707
+ min-block-size: var(--liano-control-height-md);
2708
+ padding-block: 0;
2709
+ padding-inline: var(--liano-control-padding-x);
2710
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
2711
+ user-select: none;
2712
+ }
2713
+
2714
+ :where(.liano-popover__trigger:hover:not(:disabled)) {
2715
+ background: var(--liano-control-hover);
2716
+ border-color: var(--liano-color-border-strong);
2717
+ }
2718
+
2719
+ :where(.liano-popover__trigger:active:not(:disabled)) {
2720
+ background: var(--liano-control-active);
2721
+ transform: translateY(1px);
2722
+ }
2723
+
2724
+ :where(.liano-popover__trigger:focus-visible) {
2725
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
2726
+ outline: 0;
2727
+ }
2728
+
2729
+ :where(.liano-popover__content) {
2730
+ background: var(--liano-color-surface);
2731
+ border: 1px solid var(--liano-color-border);
2732
+ border-radius: var(--liano-radius-md);
2733
+ box-shadow: var(--liano-shadow-md);
2734
+ padding: var(--liano-space-3);
2735
+ position: absolute;
2736
+ max-width: var(--liano-floating-available-width);
2737
+ max-height: var(--liano-floating-available-height);
2738
+ transform-origin: var(--liano-popover-transform-origin);
2739
+ z-index: 1;
2740
+ pointer-events: auto;
2741
+ }
2742
+
2743
+ :where(.liano-popover__content[data-state="open"]) {
2744
+ animation: liano-popover-enter var(--liano-duration-normal) var(--liano-ease-standard);
2745
+ }
2746
+
2747
+ :where(.liano-popover__content[hidden]) {
2748
+ display: none;
2749
+ }
2750
+
2751
+ @keyframes liano-popover-enter {
2752
+ from {
2753
+ opacity: 0;
2754
+ transform: scale(0.96) translateY(-0.125rem);
2755
+ }
2756
+
2757
+ to {
2758
+ opacity: 1;
2759
+ transform: scale(1) translateY(0);
2760
+ }
2761
+ }
2762
+
2763
+ @media (prefers-reduced-motion: reduce) {
2764
+ :where(.liano-popover__content[data-state="open"]) {
2765
+ animation: none;
2766
+ }
2767
+ }
2768
+ }
2769
+
2770
+
2771
+ /* src/components/tooltip/tooltip.css */
2772
+ @layer liano-components {
2773
+ :where(.liano-tooltip) {
2774
+ animation: liano-tooltip-enter var(--liano-duration-fast) var(--liano-ease-standard);
2775
+ background: var(--liano-color-surface-raised);
2776
+ border: 1px solid var(--liano-color-border);
2777
+ border-radius: var(--liano-radius-md);
2778
+ color: var(--liano-color-foreground);
2779
+ font-family: var(--liano-font-family-sans);
2780
+ font-size: var(--liano-font-size-sm);
2781
+ max-width: min(16rem, var(--liano-floating-available-width));
2782
+ padding: var(--liano-space-2) var(--liano-space-3);
2783
+ pointer-events: none;
2784
+ position: absolute;
2785
+ white-space: pre-wrap;
2786
+ z-index: var(--liano-z-index-tooltip, var(--liano-z-index-overlay));
2787
+ }
2788
+
2789
+ @keyframes liano-tooltip-enter {
2790
+ from {
2791
+ opacity: 0;
2792
+ transform: scale(0.96) translateY(0.125rem);
2793
+ }
2794
+
2795
+ to {
2796
+ opacity: 1;
2797
+ transform: scale(1) translateY(0);
2798
+ }
2799
+ }
2800
+
2801
+ @media (prefers-reduced-motion: reduce) {
2802
+ :where(.liano-tooltip) {
2803
+ animation: none;
2804
+ }
2805
+ }
2806
+ }
2807
+
2808
+
2809
+ /* src/components/dropdown-menu/dropdown-menu.css */
2810
+ @layer liano-components {
2811
+ :where(.liano-dropdown-menu__trigger) {
2812
+ align-items: center;
2813
+ appearance: none;
2814
+ background: var(--liano-control-background);
2815
+ border: 1px solid var(--liano-color-border);
2816
+ border-radius: var(--liano-radius-md);
2817
+ box-shadow: var(--liano-shadow-xs);
2818
+ color: var(--liano-color-foreground);
2819
+ cursor: pointer;
2820
+ display: inline-flex;
2821
+ font-family: var(--liano-font-family-sans);
2822
+ font-size: var(--liano-font-size-sm);
2823
+ font-weight: 600;
2824
+ justify-content: center;
2825
+ line-height: 1;
2826
+ min-block-size: var(--liano-control-height-md);
2827
+ padding-block: 0;
2828
+ padding-inline: var(--liano-control-padding-x);
2829
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard), transform var(--liano-duration-fast) var(--liano-ease-standard);
2830
+ user-select: none;
2831
+ }
2832
+
2833
+ :where(.liano-dropdown-menu__trigger:hover:not(:disabled)) {
2834
+ background: var(--liano-control-hover);
2835
+ border-color: var(--liano-color-border-strong);
2836
+ }
2837
+
2838
+ :where(.liano-dropdown-menu__trigger:active:not(:disabled)) {
2839
+ background: var(--liano-control-active);
2840
+ transform: translateY(1px);
2841
+ }
2842
+
2843
+ :where(.liano-dropdown-menu__trigger:focus-visible) {
2844
+ box-shadow: var(--liano-shadow-xs), var(--liano-focus-ring);
2845
+ outline: 0;
2846
+ }
2847
+
2848
+ :where(.liano-dropdown-menu__content) {
2849
+ --liano-dropdown-menu-min-width: min-content;
2850
+ background: var(--liano-color-surface-raised);
2851
+ border: 1px solid var(--liano-color-border);
2852
+ border-radius: var(--liano-radius-md);
2853
+ box-shadow: var(--liano-shadow-md);
2854
+ color: var(--liano-color-foreground);
2855
+ min-width: var(--liano-dropdown-menu-min-width);
2856
+ outline: none;
2857
+ padding: var(--liano-space-1);
2858
+ position: absolute;
2859
+ }
2860
+
2861
+ :where(.liano-dropdown-menu__item) {
2862
+ all: unset;
2863
+ border-radius: var(--liano-radius-sm);
2864
+ cursor: default;
2865
+ padding: var(--liano-space-2) var(--liano-space-3);
2866
+ width: 100%;
2867
+ text-align: left;
2868
+ user-select: none;
2869
+ }
2870
+
2871
+ :where(.liano-dropdown-menu__item:hover, .liano-dropdown-menu__item:focus-visible) {
2872
+ background: var(--liano-control-hover);
2873
+ color: var(--liano-color-foreground);
2874
+ outline: none;
2875
+ }
2876
+
2877
+ :where(.liano-dropdown-menu__item[aria-disabled="true"]) {
2878
+ color: var(--liano-color-muted-foreground);
2879
+ pointer-events: none;
2880
+ }
2881
+
2882
+ :where(.liano-dropdown-menu__separator) {
2883
+ border-top: 1px solid var(--liano-color-border);
2884
+ margin: var(--liano-space-1) 0;
2885
+ }
2886
+ }
2887
+
2888
+
2889
+ /* src/components/scroll-area/scroll-area.css */
2890
+ @layer liano-components {
2891
+ .liano-scroll-area {
2892
+ --liano-scroll-area-max-height: none;
2893
+ --liano-scroll-area-max-width: none;
2894
+ --liano-scroll-area-thumb: var(--liano-color-border-strong);
2895
+ --liano-scroll-area-track: transparent;
2896
+
2897
+ max-block-size: var(--liano-scroll-area-max-height);
2898
+ max-inline-size: var(--liano-scroll-area-max-width);
2899
+ scrollbar-color: var(--liano-scroll-area-thumb) var(--liano-scroll-area-track);
2900
+ scrollbar-width: thin;
2901
+ }
2902
+
2903
+ .liano-scroll-area[data-orientation="vertical"],
2904
+ .liano-scroll-area[data-orientation="both"] {
2905
+ overflow-y: auto;
2906
+ }
2907
+
2908
+ .liano-scroll-area[data-orientation="horizontal"],
2909
+ .liano-scroll-area[data-orientation="both"] {
2910
+ overflow-x: auto;
2911
+ }
2912
+
2913
+ .liano-scroll-area[data-orientation="vertical"] {
2914
+ overflow-x: hidden;
2915
+ }
2916
+
2917
+ .liano-scroll-area[data-orientation="horizontal"] {
2918
+ overflow-y: hidden;
2919
+ }
2920
+
2921
+ .liano-scroll-area:focus-visible {
2922
+ outline: 2px solid var(--liano-color-ring);
2923
+ outline-offset: 2px;
2924
+ }
2925
+
2926
+ .liano-scroll-area::-webkit-scrollbar {
2927
+ block-size: 10px;
2928
+ inline-size: 10px;
2929
+ }
2930
+
2931
+ .liano-scroll-area::-webkit-scrollbar-track {
2932
+ background: var(--liano-scroll-area-track);
2933
+ }
2934
+
2935
+ .liano-scroll-area::-webkit-scrollbar-thumb {
2936
+ background: var(--liano-scroll-area-thumb);
2937
+ border: 2px solid var(--liano-color-surface);
2938
+ border-radius: var(--liano-radius-full);
2939
+ }
2940
+
2941
+ .liano-scroll-area__scrollbar {
2942
+ display: none;
2943
+ }
2944
+ }
2945
+
2946
+
2947
+ /* src/components/command/command.css */
2948
+ @layer liano-components {
2949
+ .liano-command {
2950
+ background: var(--liano-color-surface);
2951
+ color: var(--liano-color-foreground);
2952
+ display: grid;
2953
+ font-family: var(--liano-font-family-sans);
2954
+ gap: var(--liano-space-2);
2955
+ line-height: var(--liano-line-height-normal);
2956
+ }
2957
+
2958
+ .liano-command__input {
2959
+ background: var(--liano-color-surface);
2960
+ border: 1px solid var(--liano-color-border);
2961
+ border-radius: var(--liano-radius-md);
2962
+ color: var(--liano-color-foreground);
2963
+ font-family: var(--liano-font-family-sans);
2964
+ font-size: var(--liano-font-size-sm);
2965
+ line-height: var(--liano-line-height-tight);
2966
+ min-block-size: 2.5rem;
2967
+ padding: 0 var(--liano-space-3);
2968
+ inline-size: 100%;
2969
+ }
2970
+
2971
+ .liano-command__input:focus-visible {
2972
+ border-color: var(--liano-color-ring);
2973
+ outline: 2px solid var(--liano-color-ring);
2974
+ outline-offset: 1px;
2975
+ }
2976
+
2977
+ .liano-command__list {
2978
+ display: grid;
2979
+ gap: var(--liano-space-1);
2980
+ max-block-size: 18rem;
2981
+ overflow: auto;
2982
+ }
2983
+
2984
+ .liano-command__empty,
2985
+ .liano-command__group-heading {
2986
+ color: var(--liano-color-muted-foreground);
2987
+ font-size: var(--liano-font-size-xs);
2988
+ padding: var(--liano-space-2) var(--liano-space-3);
2989
+ }
2990
+
2991
+ .liano-command__group {
2992
+ display: grid;
2993
+ gap: var(--liano-space-1);
2994
+ }
2995
+
2996
+ .liano-command__item {
2997
+ border-radius: var(--liano-radius-md);
2998
+ color: var(--liano-color-foreground);
2999
+ cursor: pointer;
3000
+ font-size: var(--liano-font-size-sm);
3001
+ padding: var(--liano-space-2) var(--liano-space-3);
3002
+ }
3003
+
3004
+ .liano-command__item[data-highlighted="true"] {
3005
+ background: var(--liano-color-muted);
3006
+ }
3007
+
3008
+ .liano-command__item[data-disabled="true"] {
3009
+ color: var(--liano-color-muted-foreground);
3010
+ cursor: not-allowed;
3011
+ opacity: 0.6;
3012
+ }
3013
+
3014
+ .liano-command__separator {
3015
+ background: var(--liano-color-border);
3016
+ block-size: 1px;
3017
+ margin: var(--liano-space-1) 0;
3018
+ }
3019
+
3020
+ .liano-command-dialog {
3021
+ font-family: var(--liano-font-family-sans);
3022
+ padding: var(--liano-space-4);
3023
+ }
3024
+
3025
+ .liano-command-dialog__title {
3026
+ block-size: 1px;
3027
+ clip-path: inset(50%);
3028
+ inline-size: 1px;
3029
+ margin: -1px;
3030
+ overflow: hidden;
3031
+ position: absolute;
3032
+ white-space: nowrap;
3033
+ }
3034
+ }
3035
+
3036
+
3037
+ /* src/components/combobox/combobox.css */
3038
+ @layer liano-components {
3039
+ .liano-combobox {
3040
+ color: var(--liano-color-foreground);
3041
+ display: grid;
3042
+ gap: var(--liano-space-2);
3043
+ position: relative;
3044
+ }
3045
+
3046
+ .liano-combobox__label {
3047
+ color: var(--liano-color-foreground);
3048
+ font-size: var(--liano-font-size-sm);
3049
+ font-weight: 600;
3050
+ }
3051
+
3052
+ .liano-combobox__input {
3053
+ background: var(--liano-color-surface);
3054
+ border: 1px solid var(--liano-color-border);
3055
+ border-radius: var(--liano-radius-md);
3056
+ color: var(--liano-color-foreground);
3057
+ font: inherit;
3058
+ inline-size: 100%;
3059
+ min-block-size: 2.5rem;
3060
+ padding: 0 var(--liano-space-3);
3061
+ }
3062
+
3063
+ .liano-combobox__input[data-size="sm"] {
3064
+ min-block-size: 2rem;
3065
+ }
3066
+
3067
+ .liano-combobox__input[data-size="lg"] {
3068
+ min-block-size: 3rem;
3069
+ }
3070
+
3071
+ .liano-combobox__input:focus-visible {
3072
+ border-color: var(--liano-color-ring);
3073
+ outline: 2px solid var(--liano-color-ring);
3074
+ outline-offset: 1px;
3075
+ }
3076
+
3077
+ .liano-combobox__input[data-invalid="true"] {
3078
+ border-color: var(--liano-color-destructive);
3079
+ }
3080
+
3081
+ .liano-combobox__description,
3082
+ .liano-combobox__error {
3083
+ font-size: var(--liano-font-size-xs);
3084
+ line-height: var(--liano-line-height-normal);
3085
+ }
3086
+
3087
+ .liano-combobox__description {
3088
+ color: var(--liano-color-muted-foreground);
3089
+ }
3090
+
3091
+ .liano-combobox__error {
3092
+ color: var(--liano-color-destructive);
3093
+ }
3094
+
3095
+ .liano-combobox__popup {
3096
+ background: var(--liano-color-surface);
3097
+ border: 1px solid var(--liano-color-border);
3098
+ border-radius: var(--liano-radius-md);
3099
+ box-shadow: var(--liano-shadow-md);
3100
+ inset-block-start: calc(100% + var(--liano-space-1));
3101
+ inset-inline: 0;
3102
+ padding: var(--liano-space-1);
3103
+ position: absolute;
3104
+ z-index: 110;
3105
+ }
3106
+
3107
+ .liano-combobox__list {
3108
+ display: grid;
3109
+ gap: var(--liano-space-1);
3110
+ max-block-size: 16rem;
3111
+ overflow: auto;
3112
+ }
3113
+
3114
+ .liano-combobox__option {
3115
+ border-radius: var(--liano-radius-sm);
3116
+ color: var(--liano-color-foreground);
3117
+ cursor: pointer;
3118
+ font-size: var(--liano-font-size-sm);
3119
+ padding: var(--liano-space-2) var(--liano-space-3);
3120
+ }
3121
+
3122
+ .liano-combobox__option[data-highlighted="true"] {
3123
+ background: var(--liano-color-muted);
3124
+ }
3125
+
3126
+ .liano-combobox__option[data-selected="true"] {
3127
+ font-weight: 700;
3128
+ }
3129
+
3130
+ .liano-combobox__option[data-disabled="true"] {
3131
+ color: var(--liano-color-muted-foreground);
3132
+ cursor: not-allowed;
3133
+ opacity: 0.6;
3134
+ }
3135
+ }
3136
+
3137
+
3138
+ /* src/components/context-menu/context-menu.css */
3139
+ @layer liano-components {
3140
+ .liano-context-menu {
3141
+ display: contents;
3142
+ }
3143
+
3144
+ .liano-context-menu__trigger {
3145
+ display: contents;
3146
+ }
3147
+
3148
+ .liano-context-menu__content {
3149
+ background: var(--liano-color-surface);
3150
+ border: 1px solid var(--liano-color-border);
3151
+ border-radius: var(--liano-radius-md);
3152
+ box-shadow: var(--liano-shadow-md);
3153
+ color: var(--liano-color-foreground);
3154
+ display: grid;
3155
+ gap: var(--liano-space-1);
3156
+ min-inline-size: 12rem;
3157
+ padding: var(--liano-space-1);
3158
+ position: fixed;
3159
+ z-index: 110;
3160
+ }
3161
+
3162
+ .liano-context-menu__item {
3163
+ background: transparent;
3164
+ border: 0;
3165
+ border-radius: var(--liano-radius-sm);
3166
+ color: var(--liano-color-foreground);
3167
+ cursor: pointer;
3168
+ font: inherit;
3169
+ padding: var(--liano-space-2) var(--liano-space-3);
3170
+ text-align: start;
3171
+ }
3172
+
3173
+ .liano-context-menu__item:focus-visible {
3174
+ background: var(--liano-color-muted);
3175
+ outline: 0;
3176
+ }
3177
+
3178
+ .liano-context-menu__item[data-tone="danger"] {
3179
+ color: var(--liano-color-destructive);
3180
+ }
3181
+
3182
+ .liano-context-menu__item[data-disabled="true"] {
3183
+ color: var(--liano-color-muted-foreground);
3184
+ cursor: not-allowed;
3185
+ opacity: 0.6;
3186
+ }
3187
+
3188
+ .liano-context-menu__separator {
3189
+ background: var(--liano-color-border);
3190
+ block-size: 1px;
3191
+ margin: var(--liano-space-1) 0;
3192
+ }
3193
+ }
3194
+
3195
+
3196
+ /* src/components/menubar/menubar.css */
3197
+ @layer liano-components {
3198
+ .liano-menubar {
3199
+ align-items: center;
3200
+ background: var(--liano-color-surface);
3201
+ border: 1px solid var(--liano-color-border);
3202
+ border-radius: var(--liano-radius-md);
3203
+ color: var(--liano-color-foreground);
3204
+ display: inline-flex;
3205
+ gap: var(--liano-space-1);
3206
+ padding: var(--liano-space-1);
3207
+ }
3208
+
3209
+ .liano-menubar__trigger,
3210
+ .liano-menubar__item {
3211
+ background: transparent;
3212
+ border: 0;
3213
+ border-radius: var(--liano-radius-sm);
3214
+ color: var(--liano-color-foreground);
3215
+ cursor: pointer;
3216
+ font: inherit;
3217
+ }
3218
+
3219
+ .liano-menubar__trigger {
3220
+ padding: var(--liano-space-1) var(--liano-space-3);
3221
+ }
3222
+
3223
+ .liano-menubar__trigger:focus-visible,
3224
+ .liano-menubar__trigger[data-state="open"] {
3225
+ background: var(--liano-color-muted);
3226
+ outline: 0;
3227
+ }
3228
+
3229
+ .liano-menubar__content {
3230
+ background: var(--liano-color-surface);
3231
+ border: 1px solid var(--liano-color-border);
3232
+ border-radius: var(--liano-radius-md);
3233
+ box-shadow: var(--liano-shadow-md);
3234
+ color: var(--liano-color-foreground);
3235
+ display: grid;
3236
+ gap: var(--liano-space-1);
3237
+ margin-block-start: var(--liano-space-1);
3238
+ min-inline-size: 12rem;
3239
+ padding: var(--liano-space-1);
3240
+ position: fixed;
3241
+ z-index: 110;
3242
+ }
3243
+
3244
+ .liano-menubar__item {
3245
+ padding: var(--liano-space-2) var(--liano-space-3);
3246
+ text-align: start;
3247
+ }
3248
+
3249
+ .liano-menubar__item:focus-visible {
3250
+ background: var(--liano-color-muted);
3251
+ outline: 0;
3252
+ }
3253
+
3254
+ .liano-menubar__item[data-disabled="true"] {
3255
+ color: var(--liano-color-muted-foreground);
3256
+ cursor: not-allowed;
3257
+ opacity: 0.6;
3258
+ }
3259
+
3260
+ .liano-menubar__separator {
3261
+ background: var(--liano-color-border);
3262
+ block-size: 1px;
3263
+ margin: var(--liano-space-1) 0;
3264
+ }
3265
+ }
3266
+
3267
+
3268
+ /* src/components/responsive-container/responsive-container.css */
3269
+ @layer liano-components {
3270
+ :where(.liano-responsive-container) {
3271
+ --liano-responsive-container-max-inline-size: var(--liano-container-lg);
3272
+ --liano-responsive-container-gutter: var(--liano-space-4);
3273
+ box-sizing: border-box;
3274
+ inline-size: 100%;
3275
+ max-inline-size: var(--liano-responsive-container-max-inline-size);
3276
+ padding-inline: var(--liano-responsive-container-gutter);
3277
+ }
3278
+
3279
+ :where(.liano-responsive-container[data-center="true"]) {
3280
+ margin-inline: auto;
3281
+ }
3282
+
3283
+ :where(.liano-responsive-container[data-size="sm"]) {
3284
+ --liano-responsive-container-max-inline-size: var(--liano-container-sm);
3285
+ }
3286
+
3287
+ :where(.liano-responsive-container[data-size="md"]) {
3288
+ --liano-responsive-container-max-inline-size: var(--liano-container-md);
3289
+ }
3290
+
3291
+ :where(.liano-responsive-container[data-size="lg"]) {
3292
+ --liano-responsive-container-max-inline-size: var(--liano-container-lg);
3293
+ }
3294
+
3295
+ :where(.liano-responsive-container[data-size="xl"]) {
3296
+ --liano-responsive-container-max-inline-size: var(--liano-container-xl);
3297
+ }
3298
+
3299
+ :where(.liano-responsive-container[data-size="full"]) {
3300
+ --liano-responsive-container-max-inline-size: none;
3301
+ }
3302
+
3303
+ :where(.liano-responsive-container[data-gutter="none"]) {
3304
+ --liano-responsive-container-gutter: 0;
3305
+ }
3306
+
3307
+ :where(.liano-responsive-container[data-gutter="sm"]) {
3308
+ --liano-responsive-container-gutter: var(--liano-space-2);
3309
+ }
3310
+
3311
+ :where(.liano-responsive-container[data-gutter="md"]) {
3312
+ --liano-responsive-container-gutter: var(--liano-space-4);
3313
+ }
3314
+
3315
+ :where(.liano-responsive-container[data-gutter="lg"]) {
3316
+ --liano-responsive-container-gutter: var(--liano-space-6);
3317
+ }
3318
+ }
3319
+
3320
+
3321
+ /* src/components/sidebar-shell/sidebar-shell.css */
3322
+ @layer liano-components {
3323
+ :where(.liano-sidebar-shell) {
3324
+ --liano-sidebar-shell-gap: var(--liano-space-4);
3325
+ --liano-sidebar-shell-sidebar-width: 18rem;
3326
+ align-items: stretch;
3327
+ display: grid;
3328
+ gap: var(--liano-sidebar-shell-gap);
3329
+ grid-template-columns: var(--liano-sidebar-shell-sidebar-width) minmax(0, 1fr);
3330
+ min-block-size: 100%;
3331
+ }
3332
+
3333
+ :where(.liano-sidebar-shell[data-side="right"]) {
3334
+ grid-template-columns: minmax(0, 1fr) var(--liano-sidebar-shell-sidebar-width);
3335
+ }
3336
+
3337
+ :where(.liano-sidebar-shell[data-side="right"] .liano-sidebar-shell__sidebar) {
3338
+ order: 2;
3339
+ }
3340
+
3341
+ :where(.liano-sidebar-shell[data-width="sm"]) {
3342
+ --liano-sidebar-shell-sidebar-width: 14rem;
3343
+ }
3344
+
3345
+ :where(.liano-sidebar-shell[data-width="md"]) {
3346
+ --liano-sidebar-shell-sidebar-width: 18rem;
3347
+ }
3348
+
3349
+ :where(.liano-sidebar-shell[data-width="lg"]) {
3350
+ --liano-sidebar-shell-sidebar-width: 22rem;
3351
+ }
3352
+
3353
+ :where(.liano-sidebar-shell[data-collapsed="true"]) {
3354
+ --liano-sidebar-shell-sidebar-width: 4.5rem;
3355
+ }
3356
+
3357
+ :where(.liano-sidebar-shell__sidebar) {
3358
+ background: var(--liano-color-surface);
3359
+ border: 1px solid var(--liano-color-border);
3360
+ border-radius: var(--liano-radius-lg);
3361
+ color: var(--liano-color-foreground);
3362
+ min-inline-size: 0;
3363
+ padding: var(--liano-space-3);
3364
+ }
3365
+
3366
+ :where(.liano-sidebar-shell__main) {
3367
+ display: flex;
3368
+ flex-direction: column;
3369
+ gap: var(--liano-space-4);
3370
+ min-inline-size: 0;
3371
+ }
3372
+
3373
+ :where(.liano-sidebar-shell__header),
3374
+ :where(.liano-sidebar-shell__footer) {
3375
+ align-items: center;
3376
+ display: flex;
3377
+ gap: var(--liano-space-3);
3378
+ min-block-size: var(--liano-control-height-lg);
3379
+ }
3380
+
3381
+ :where(.liano-sidebar-shell__content) {
3382
+ flex: 1 1 auto;
3383
+ min-block-size: 0;
3384
+ min-inline-size: 0;
3385
+ }
3386
+
3387
+ @media (max-width: 48rem) {
3388
+ :where(.liano-sidebar-shell),
3389
+ :where(.liano-sidebar-shell[data-side="right"]) {
3390
+ grid-template-columns: 1fr;
3391
+ }
3392
+
3393
+ :where(.liano-sidebar-shell[data-side="right"] .liano-sidebar-shell__sidebar) {
3394
+ order: 0;
3395
+ }
3396
+ }
3397
+ }
3398
+
3399
+
3400
+ /* src/components/sectioned-sidebar-nav/sectioned-sidebar-nav.css */
3401
+ @layer liano-components {
3402
+ :where(.liano-sectioned-sidebar-nav) {
3403
+ color: var(--liano-color-foreground);
3404
+ display: grid;
3405
+ font-family: var(--liano-font-family-sans);
3406
+ gap: var(--liano-space-4);
3407
+ }
3408
+
3409
+ :where(.liano-sectioned-sidebar-nav__section) {
3410
+ display: grid;
3411
+ gap: var(--liano-space-2);
3412
+ }
3413
+
3414
+ :where(.liano-sectioned-sidebar-nav__section-title) {
3415
+ color: var(--liano-color-muted-foreground);
3416
+ font-size: var(--liano-font-size-xs);
3417
+ font-weight: 700;
3418
+ letter-spacing: 0;
3419
+ line-height: var(--liano-line-height-tight);
3420
+ margin: 0;
3421
+ padding-inline: var(--liano-space-2);
3422
+ text-transform: uppercase;
3423
+ }
3424
+
3425
+ :where(.liano-sectioned-sidebar-nav__list) {
3426
+ display: grid;
3427
+ gap: var(--liano-space-1);
3428
+ list-style: none;
3429
+ margin: 0;
3430
+ padding: 0;
3431
+ }
3432
+
3433
+ :where(.liano-sectioned-sidebar-nav__item) {
3434
+ margin: 0;
3435
+ min-inline-size: 0;
3436
+ }
3437
+
3438
+ :where(.liano-sectioned-sidebar-nav__item-control) {
3439
+ align-items: center;
3440
+ appearance: none;
3441
+ background: transparent;
3442
+ border: 1px solid transparent;
3443
+ border-radius: var(--liano-radius-sm);
3444
+ color: var(--liano-color-muted-foreground);
3445
+ cursor: pointer;
3446
+ display: grid;
3447
+ font: inherit;
3448
+ gap: var(--liano-space-2);
3449
+ grid-template-columns: auto minmax(0, 1fr) auto;
3450
+ inline-size: 100%;
3451
+ min-block-size: var(--liano-control-height-sm);
3452
+ padding-block: var(--liano-space-1);
3453
+ padding-inline: var(--liano-space-2);
3454
+ text-align: start;
3455
+ text-decoration: none;
3456
+ transition: background var(--liano-duration-fast) var(--liano-ease-standard), border-color var(--liano-duration-fast) var(--liano-ease-standard), color var(--liano-duration-fast) var(--liano-ease-standard), box-shadow var(--liano-duration-fast) var(--liano-ease-standard);
3457
+ }
3458
+
3459
+ :where(.liano-sectioned-sidebar-nav__item-control:hover:not(:disabled):not([data-disabled="true"])) {
3460
+ background: var(--liano-control-hover);
3461
+ color: var(--liano-color-foreground);
3462
+ }
3463
+
3464
+ :where(.liano-sectioned-sidebar-nav__item-control[data-state="active"]) {
3465
+ background: var(--liano-color-primary-soft);
3466
+ border-color: var(--liano-color-primary-border);
3467
+ color: var(--liano-color-primary-foreground);
3468
+ }
3469
+
3470
+ :where(.liano-sectioned-sidebar-nav__item-control[data-disabled="true"]) {
3471
+ cursor: not-allowed;
3472
+ opacity: var(--liano-opacity-disabled);
3473
+ }
3474
+
3475
+ :where(.liano-sectioned-sidebar-nav__item-control:focus-visible) {
3476
+ outline: 0;
3477
+ box-shadow: var(--liano-focus-ring);
3478
+ }
3479
+
3480
+ :where(.liano-sectioned-sidebar-nav__item-icon) {
3481
+ align-items: center;
3482
+ color: currentColor;
3483
+ display: inline-flex;
3484
+ justify-content: center;
3485
+ }
3486
+
3487
+ :where(.liano-sectioned-sidebar-nav__item-label) {
3488
+ min-inline-size: 0;
3489
+ overflow: hidden;
3490
+ text-overflow: ellipsis;
3491
+ white-space: nowrap;
3492
+ }
3493
+
3494
+ :where(.liano-sectioned-sidebar-nav__item-badge) {
3495
+ align-items: center;
3496
+ display: inline-flex;
3497
+ justify-content: end;
3498
+ }
3499
+ }
3500
+
3501
+
3502
+ /* src/components/tabs-with-sidebar/tabs-with-sidebar.css */
3503
+ @layer liano-components {
3504
+ :where(.liano-tabs-with-sidebar) {
3505
+ --liano-tabs-with-sidebar-width: 14rem;
3506
+ align-items: start;
3507
+ display: grid;
3508
+ gap: var(--liano-space-4);
3509
+ grid-template-columns: var(--liano-tabs-with-sidebar-width) minmax(0, 1fr);
3510
+ }
3511
+
3512
+ :where(.liano-tabs-with-sidebar[data-sidebar-width="sm"]),
3513
+ :where(.liano-tabs-with-sidebar__sidebar[data-sidebar-width="sm"]) {
3514
+ --liano-tabs-with-sidebar-width: 11rem;
3515
+ }
3516
+
3517
+ :where(.liano-tabs-with-sidebar[data-sidebar-width="md"]),
3518
+ :where(.liano-tabs-with-sidebar__sidebar[data-sidebar-width="md"]) {
3519
+ --liano-tabs-with-sidebar-width: 14rem;
3520
+ }
3521
+
3522
+ :where(.liano-tabs-with-sidebar[data-sidebar-width="lg"]),
3523
+ :where(.liano-tabs-with-sidebar__sidebar[data-sidebar-width="lg"]) {
3524
+ --liano-tabs-with-sidebar-width: 18rem;
3525
+ }
3526
+
3527
+ :where(.liano-tabs-with-sidebar__sidebar) {
3528
+ inline-size: min(100%, var(--liano-tabs-with-sidebar-width));
3529
+ min-inline-size: 0;
3530
+ }
3531
+
3532
+ :where(.liano-tabs-with-sidebar__sidebar .liano-tabs__list) {
3533
+ align-items: stretch;
3534
+ flex-direction: column;
3535
+ overflow: visible;
3536
+ }
3537
+
3538
+ :where(.liano-tabs-with-sidebar__sidebar .liano-tabs__trigger) {
3539
+ justify-content: flex-start;
3540
+ inline-size: 100%;
3541
+ }
3542
+
3543
+ :where(.liano-tabs-with-sidebar__panel) {
3544
+ min-inline-size: 0;
3545
+ }
3546
+
3547
+ @media (max-width: 48rem) {
3548
+ :where(.liano-tabs-with-sidebar) {
3549
+ grid-template-columns: 1fr;
3550
+ }
3551
+
3552
+ :where(.liano-tabs-with-sidebar__sidebar) {
3553
+ inline-size: 100%;
3554
+ }
3555
+ }
3556
+ }
3557
+
3558
+
3559
+ /* src/components/toast/toast.css */
3560
+ @layer liano-components {
3561
+ :where(.liano-toast-viewport) {
3562
+ --liano-toast-viewport-inset: var(--liano-space-4);
3563
+ display: grid;
3564
+ gap: var(--liano-space-2);
3565
+ inline-size: min(24rem, calc(100vw - var(--liano-toast-viewport-inset) * 2));
3566
+ max-block-size: calc(100vh - var(--liano-toast-viewport-inset) * 2);
3567
+ overflow: auto;
3568
+ position: fixed;
3569
+ z-index: var(--liano-z-index-toast);
3570
+ }
3571
+
3572
+ :where(.liano-toast-viewport[data-placement="top-right"]) {
3573
+ inset-block-start: var(--liano-toast-viewport-inset);
3574
+ inset-inline-end: var(--liano-toast-viewport-inset);
3575
+ }
3576
+
3577
+ :where(.liano-toast-viewport[data-placement="top-left"]) {
3578
+ inset-block-start: var(--liano-toast-viewport-inset);
3579
+ inset-inline-start: var(--liano-toast-viewport-inset);
3580
+ }
3581
+
3582
+ :where(.liano-toast-viewport[data-placement="bottom-right"]) {
3583
+ inset-block-end: var(--liano-toast-viewport-inset);
3584
+ inset-inline-end: var(--liano-toast-viewport-inset);
3585
+ }
3586
+
3587
+ :where(.liano-toast-viewport[data-placement="bottom-left"]) {
3588
+ inset-block-end: var(--liano-toast-viewport-inset);
3589
+ inset-inline-start: var(--liano-toast-viewport-inset);
3590
+ }
3591
+
3592
+ :where(.liano-toast) {
3593
+ --liano-toast-accent: var(--liano-color-border-strong);
3594
+ background: var(--liano-color-surface-raised);
3595
+ border: 1px solid var(--liano-color-border);
3596
+ border-inline-start: 3px solid var(--liano-toast-accent);
3597
+ border-radius: var(--liano-radius-md);
3598
+ box-shadow: var(--liano-shadow-md);
3599
+ color: var(--liano-color-foreground);
3600
+ display: grid;
3601
+ font-family: var(--liano-font-family-sans);
3602
+ gap: var(--liano-space-2);
3603
+ padding: var(--liano-space-3);
3604
+ }
3605
+
3606
+ :where(.liano-toast[data-tone="success"]) {
3607
+ --liano-toast-accent: var(--liano-color-success-border);
3608
+ }
3609
+
3610
+ :where(.liano-toast[data-tone="warning"]) {
3611
+ --liano-toast-accent: var(--liano-color-warning-border);
3612
+ }
3613
+
3614
+ :where(.liano-toast[data-tone="destructive"]) {
3615
+ --liano-toast-accent: var(--liano-color-destructive-border);
3616
+ }
3617
+
3618
+ :where(.liano-toast[data-tone="info"]) {
3619
+ --liano-toast-accent: var(--liano-color-info-border);
3620
+ }
3621
+
3622
+ :where(.liano-toast__title) {
3623
+ font-size: var(--liano-font-size-sm);
3624
+ font-weight: 700;
3625
+ line-height: var(--liano-line-height-tight);
3626
+ }
3627
+
3628
+ :where(.liano-toast__description) {
3629
+ color: var(--liano-color-muted-foreground);
3630
+ font-size: var(--liano-font-size-sm);
3631
+ line-height: var(--liano-line-height-normal);
3632
+ }
3633
+
3634
+ :where(.liano-toast__action),
3635
+ :where(.liano-toast__close) {
3636
+ align-items: center;
3637
+ appearance: none;
3638
+ background: transparent;
3639
+ border: 1px solid var(--liano-color-border);
3640
+ border-radius: var(--liano-radius-sm);
3641
+ color: var(--liano-color-foreground);
3642
+ cursor: pointer;
3643
+ display: inline-flex;
3644
+ font: inherit;
3645
+ justify-content: center;
3646
+ min-block-size: var(--liano-control-height-sm);
3647
+ padding-inline: var(--liano-space-2);
3648
+ }
3649
+
3650
+ :where(.liano-toast__action:hover:not(:disabled)),
3651
+ :where(.liano-toast__close:hover:not(:disabled)) {
3652
+ background: var(--liano-control-hover);
3653
+ }
3654
+
3655
+ :where(.liano-toast__action:focus-visible),
3656
+ :where(.liano-toast__close:focus-visible) {
3657
+ outline: 0;
3658
+ box-shadow: var(--liano-focus-ring);
3659
+ }
3660
+ }
3661
+
3662
+
3663
+ /* src/components/conversation/conversation.css */
3664
+ @layer liano-components {
3665
+ :where(.liano-conversation) {
3666
+ color: var(--liano-color-foreground);
3667
+ display: grid;
3668
+ font-family: var(--liano-font-family-sans);
3669
+ gap: var(--liano-space-4);
3670
+ }
3671
+
3672
+ :where(.liano-conversation__list) {
3673
+ display: grid;
3674
+ gap: var(--liano-space-4);
3675
+ }
3676
+
3677
+ :where(.liano-conversation__message) {
3678
+ display: grid;
3679
+ gap: var(--liano-space-3);
3680
+ grid-template-columns: auto minmax(0, 1fr);
3681
+ }
3682
+
3683
+ :where(.liano-conversation__message[data-role="user"]) {
3684
+ justify-self: end;
3685
+ }
3686
+
3687
+ :where(.liano-conversation__message[data-role="assistant"]),
3688
+ :where(.liano-conversation__message[data-role="system"]) {
3689
+ justify-self: stretch;
3690
+ }
3691
+
3692
+ :where(.liano-conversation__message-avatar) {
3693
+ align-items: center;
3694
+ background: var(--liano-color-muted);
3695
+ border-radius: var(--liano-radius-full);
3696
+ color: var(--liano-color-muted-foreground);
3697
+ display: inline-flex;
3698
+ font-size: var(--liano-font-size-sm);
3699
+ font-weight: 700;
3700
+ inline-size: 2rem;
3701
+ justify-content: center;
3702
+ min-block-size: 2rem;
3703
+ }
3704
+
3705
+ :where(.liano-conversation__message-content) {
3706
+ background: var(--liano-color-surface);
3707
+ border: 1px solid var(--liano-color-border);
3708
+ border-radius: var(--liano-radius-lg);
3709
+ min-inline-size: 0;
3710
+ padding: var(--liano-space-3);
3711
+ }
3712
+
3713
+ :where(.liano-conversation__message[data-role="user"] .liano-conversation__message-content) {
3714
+ background: var(--liano-color-primary-soft);
3715
+ border-color: var(--liano-color-primary-border);
3716
+ }
3717
+
3718
+ :where(.liano-conversation__response) {
3719
+ font-size: var(--liano-font-size-md);
3720
+ line-height: var(--liano-line-height-normal);
3721
+ }
3722
+
3723
+ :where(.liano-conversation__reasoning),
3724
+ :where(.liano-conversation__tool) {
3725
+ background: var(--liano-color-surface-raised);
3726
+ border: 1px solid var(--liano-color-border);
3727
+ border-radius: var(--liano-radius-md);
3728
+ padding: var(--liano-space-3);
3729
+ }
3730
+
3731
+ :where(.liano-conversation__reasoning-summary) {
3732
+ cursor: pointer;
3733
+ font-size: var(--liano-font-size-sm);
3734
+ font-weight: 700;
3735
+ }
3736
+
3737
+ :where(.liano-conversation__reasoning-summary:focus-visible) {
3738
+ outline: 0;
3739
+ box-shadow: var(--liano-focus-ring);
3740
+ }
3741
+
3742
+ :where(.liano-conversation__reasoning-content),
3743
+ :where(.liano-conversation__tool-content) {
3744
+ color: var(--liano-color-muted-foreground);
3745
+ font-size: var(--liano-font-size-sm);
3746
+ line-height: var(--liano-line-height-normal);
3747
+ margin-block-start: var(--liano-space-2);
3748
+ }
3749
+
3750
+ :where(.liano-conversation__tool) {
3751
+ --liano-conversation-tool-accent: var(--liano-color-border-strong);
3752
+ border-inline-start: 3px solid var(--liano-conversation-tool-accent);
3753
+ }
3754
+
3755
+ :where(.liano-conversation__tool[data-status="running"]) {
3756
+ --liano-conversation-tool-accent: var(--liano-color-info-border);
3757
+ }
3758
+
3759
+ :where(.liano-conversation__tool[data-status="success"]) {
3760
+ --liano-conversation-tool-accent: var(--liano-color-success-border);
3761
+ }
3762
+
3763
+ :where(.liano-conversation__tool[data-status="error"]) {
3764
+ --liano-conversation-tool-accent: var(--liano-color-destructive-border);
3765
+ }
3766
+
3767
+ :where(.liano-conversation__tool-title) {
3768
+ font-size: var(--liano-font-size-sm);
3769
+ font-weight: 700;
3770
+ }
3771
+
3772
+ :where(.liano-conversation__prompt-input) {
3773
+ align-items: end;
3774
+ background: var(--liano-color-surface);
3775
+ border: 1px solid var(--liano-color-border);
3776
+ border-radius: var(--liano-radius-lg);
3777
+ display: grid;
3778
+ gap: var(--liano-space-2);
3779
+ grid-template-columns: minmax(0, 1fr) auto;
3780
+ padding: var(--liano-space-2);
3781
+ }
3782
+
3783
+ :where(.liano-conversation__prompt-textarea) {
3784
+ background: transparent;
3785
+ border: 0;
3786
+ color: var(--liano-color-foreground);
3787
+ font: inherit;
3788
+ min-block-size: var(--liano-control-height-lg);
3789
+ min-inline-size: 0;
3790
+ resize: vertical;
3791
+ }
3792
+
3793
+ :where(.liano-conversation__prompt-textarea:focus-visible) {
3794
+ outline: 0;
3795
+ box-shadow: var(--liano-focus-ring);
3796
+ }
3797
+
3798
+ :where(.liano-conversation__prompt-submit) {
3799
+ align-items: center;
3800
+ appearance: none;
3801
+ background: var(--liano-color-primary);
3802
+ border: 1px solid var(--liano-color-primary);
3803
+ border-radius: var(--liano-radius-sm);
3804
+ color: var(--liano-color-primary-foreground);
3805
+ cursor: pointer;
3806
+ display: inline-flex;
3807
+ font: inherit;
3808
+ font-weight: 700;
3809
+ justify-content: center;
3810
+ min-block-size: var(--liano-control-height-md);
3811
+ padding-inline: var(--liano-control-padding-x);
3812
+ }
3813
+
3814
+ :where(.liano-conversation__prompt-submit[data-disabled="true"]) {
3815
+ cursor: not-allowed;
3816
+ opacity: var(--liano-opacity-disabled);
3817
+ }
3818
+
3819
+ :where(.liano-conversation__prompt-submit:focus-visible) {
3820
+ outline: 0;
3821
+ box-shadow: var(--liano-focus-ring);
3822
+ }
3823
+
3824
+ @media (max-width: 40rem) {
3825
+ :where(.liano-conversation__message) {
3826
+ grid-template-columns: 1fr;
3827
+ }
3828
+
3829
+ :where(.liano-conversation__prompt-input) {
3830
+ grid-template-columns: 1fr;
3831
+ }
3832
+ }
3833
+ }
3834
+
3835
+
3836
+ /* src/styles/utilities.css */
3837
+ @layer liano-utilities {
3838
+ .liano-sr-only {
3839
+ position: absolute;
3840
+ width: 1px;
3841
+ height: 1px;
3842
+ padding: 0;
3843
+ margin: -1px;
3844
+ overflow: hidden;
3845
+ clip: rect(0, 0, 0, 0);
3846
+ white-space: nowrap;
3847
+ border: 0;
3848
+ }
3849
+ }
3850
+
3851
+
3852
+