@mdigital_ui/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 (205) hide show
  1. package/README.md +296 -0
  2. package/dist/accordion/index.js +5 -0
  3. package/dist/accordion/index.js.map +1 -0
  4. package/dist/badge/index.js +5 -0
  5. package/dist/badge/index.js.map +1 -0
  6. package/dist/button/index.js +6 -0
  7. package/dist/button/index.js.map +1 -0
  8. package/dist/card/index.js +4 -0
  9. package/dist/card/index.js.map +1 -0
  10. package/dist/carousel/index.js +3 -0
  11. package/dist/carousel/index.js.map +1 -0
  12. package/dist/cascader/index.js +4 -0
  13. package/dist/cascader/index.js.map +1 -0
  14. package/dist/chart/index.js +4 -0
  15. package/dist/chart/index.js.map +1 -0
  16. package/dist/checkbox/index.js +5 -0
  17. package/dist/checkbox/index.js.map +1 -0
  18. package/dist/checkbox-group/index.js +4 -0
  19. package/dist/checkbox-group/index.js.map +1 -0
  20. package/dist/chunk-2JGAYDZR.js +181 -0
  21. package/dist/chunk-2JGAYDZR.js.map +1 -0
  22. package/dist/chunk-3PFA3YG6.js +228 -0
  23. package/dist/chunk-3PFA3YG6.js.map +1 -0
  24. package/dist/chunk-4OMLQCUV.js +96 -0
  25. package/dist/chunk-4OMLQCUV.js.map +1 -0
  26. package/dist/chunk-4P5EMRFI.js +298 -0
  27. package/dist/chunk-4P5EMRFI.js.map +1 -0
  28. package/dist/chunk-5UEWVFF6.js +212 -0
  29. package/dist/chunk-5UEWVFF6.js.map +1 -0
  30. package/dist/chunk-5VCGW53O.js +332 -0
  31. package/dist/chunk-5VCGW53O.js.map +1 -0
  32. package/dist/chunk-75XESYGN.js +49 -0
  33. package/dist/chunk-75XESYGN.js.map +1 -0
  34. package/dist/chunk-7AEGBABZ.js +1102 -0
  35. package/dist/chunk-7AEGBABZ.js.map +1 -0
  36. package/dist/chunk-AOITJRSV.js +134 -0
  37. package/dist/chunk-AOITJRSV.js.map +1 -0
  38. package/dist/chunk-AWPKZYHT.js +152 -0
  39. package/dist/chunk-AWPKZYHT.js.map +1 -0
  40. package/dist/chunk-BNILRB4T.js +37 -0
  41. package/dist/chunk-BNILRB4T.js.map +1 -0
  42. package/dist/chunk-BP434VYV.js +448 -0
  43. package/dist/chunk-BP434VYV.js.map +1 -0
  44. package/dist/chunk-C7SXY3ZV.js +65 -0
  45. package/dist/chunk-C7SXY3ZV.js.map +1 -0
  46. package/dist/chunk-CLLQDCDR.js +560 -0
  47. package/dist/chunk-CLLQDCDR.js.map +1 -0
  48. package/dist/chunk-CWHFK7ZC.js +128 -0
  49. package/dist/chunk-CWHFK7ZC.js.map +1 -0
  50. package/dist/chunk-D3JWPGCA.js +123 -0
  51. package/dist/chunk-D3JWPGCA.js.map +1 -0
  52. package/dist/chunk-DOKTHDG3.js +55 -0
  53. package/dist/chunk-DOKTHDG3.js.map +1 -0
  54. package/dist/chunk-DPOSWW22.js +126 -0
  55. package/dist/chunk-DPOSWW22.js.map +1 -0
  56. package/dist/chunk-E2CYDDYC.js +39 -0
  57. package/dist/chunk-E2CYDDYC.js.map +1 -0
  58. package/dist/chunk-EYTOKUBM.js +401 -0
  59. package/dist/chunk-EYTOKUBM.js.map +1 -0
  60. package/dist/chunk-FGWSUPVW.js +356 -0
  61. package/dist/chunk-FGWSUPVW.js.map +1 -0
  62. package/dist/chunk-FPOXTCYV.js +166 -0
  63. package/dist/chunk-FPOXTCYV.js.map +1 -0
  64. package/dist/chunk-FTJOSVTY.js +104 -0
  65. package/dist/chunk-FTJOSVTY.js.map +1 -0
  66. package/dist/chunk-FYHQDFKE.js +164 -0
  67. package/dist/chunk-FYHQDFKE.js.map +1 -0
  68. package/dist/chunk-H2HIBD5Y.js +158 -0
  69. package/dist/chunk-H2HIBD5Y.js.map +1 -0
  70. package/dist/chunk-J3G5WWGR.js +53 -0
  71. package/dist/chunk-J3G5WWGR.js.map +1 -0
  72. package/dist/chunk-JZCHZ4B3.js +487 -0
  73. package/dist/chunk-JZCHZ4B3.js.map +1 -0
  74. package/dist/chunk-KBCBVH7B.js +51 -0
  75. package/dist/chunk-KBCBVH7B.js.map +1 -0
  76. package/dist/chunk-KNQ7UQ2W.js +143 -0
  77. package/dist/chunk-KNQ7UQ2W.js.map +1 -0
  78. package/dist/chunk-KTBPIEP2.js +102 -0
  79. package/dist/chunk-KTBPIEP2.js.map +1 -0
  80. package/dist/chunk-L3SP7GHC.js +1023 -0
  81. package/dist/chunk-L3SP7GHC.js.map +1 -0
  82. package/dist/chunk-LBJG2UWT.js +100 -0
  83. package/dist/chunk-LBJG2UWT.js.map +1 -0
  84. package/dist/chunk-MLDX3Z67.js +470 -0
  85. package/dist/chunk-MLDX3Z67.js.map +1 -0
  86. package/dist/chunk-NNSS366W.js +331 -0
  87. package/dist/chunk-NNSS366W.js.map +1 -0
  88. package/dist/chunk-OQANRZPV.js +197 -0
  89. package/dist/chunk-OQANRZPV.js.map +1 -0
  90. package/dist/chunk-OW5A5IIF.js +175 -0
  91. package/dist/chunk-OW5A5IIF.js.map +1 -0
  92. package/dist/chunk-R225A5II.js +187 -0
  93. package/dist/chunk-R225A5II.js.map +1 -0
  94. package/dist/chunk-ROR4E6IE.js +119 -0
  95. package/dist/chunk-ROR4E6IE.js.map +1 -0
  96. package/dist/chunk-RPAQAZTI.js +54 -0
  97. package/dist/chunk-RPAQAZTI.js.map +1 -0
  98. package/dist/chunk-RQBXZKTH.js +452 -0
  99. package/dist/chunk-RQBXZKTH.js.map +1 -0
  100. package/dist/chunk-S5XJXU52.js +178 -0
  101. package/dist/chunk-S5XJXU52.js.map +1 -0
  102. package/dist/chunk-SAVE5ACL.js +324 -0
  103. package/dist/chunk-SAVE5ACL.js.map +1 -0
  104. package/dist/chunk-SERJ3TZE.js +640 -0
  105. package/dist/chunk-SERJ3TZE.js.map +1 -0
  106. package/dist/chunk-SK5ECBBK.js +175 -0
  107. package/dist/chunk-SK5ECBBK.js.map +1 -0
  108. package/dist/chunk-SOV4PE3P.js +218 -0
  109. package/dist/chunk-SOV4PE3P.js.map +1 -0
  110. package/dist/chunk-W7BQYIXF.js +687 -0
  111. package/dist/chunk-W7BQYIXF.js.map +1 -0
  112. package/dist/chunk-XMAH5PDW.js +59 -0
  113. package/dist/chunk-XMAH5PDW.js.map +1 -0
  114. package/dist/chunk-XOBGEMQY.js +94 -0
  115. package/dist/chunk-XOBGEMQY.js.map +1 -0
  116. package/dist/chunk-YNNAOXU5.js +57 -0
  117. package/dist/chunk-YNNAOXU5.js.map +1 -0
  118. package/dist/chunk-YZVSDRJD.js +253 -0
  119. package/dist/chunk-YZVSDRJD.js.map +1 -0
  120. package/dist/collapse/index.js +4 -0
  121. package/dist/collapse/index.js.map +1 -0
  122. package/dist/command/index.js +5 -0
  123. package/dist/command/index.js.map +1 -0
  124. package/dist/date-picker/index.js +5 -0
  125. package/dist/date-picker/index.js.map +1 -0
  126. package/dist/descriptions/index.js +4 -0
  127. package/dist/descriptions/index.js.map +1 -0
  128. package/dist/drawer/index.js +4 -0
  129. package/dist/drawer/index.js.map +1 -0
  130. package/dist/dropdown/index.js +5 -0
  131. package/dist/dropdown/index.js.map +1 -0
  132. package/dist/empty/index.js +4 -0
  133. package/dist/empty/index.js.map +1 -0
  134. package/dist/fetching-overlay/index.js +5 -0
  135. package/dist/fetching-overlay/index.js.map +1 -0
  136. package/dist/image/index.js +4 -0
  137. package/dist/image/index.js.map +1 -0
  138. package/dist/index.d.ts +2672 -0
  139. package/dist/index.js +976 -0
  140. package/dist/index.js.map +1 -0
  141. package/dist/input/index.js +5 -0
  142. package/dist/input/index.js.map +1 -0
  143. package/dist/input-group/index.js +4 -0
  144. package/dist/input-group/index.js.map +1 -0
  145. package/dist/input-otp/index.js +4 -0
  146. package/dist/input-otp/index.js.map +1 -0
  147. package/dist/input-password/index.js +6 -0
  148. package/dist/input-password/index.js.map +1 -0
  149. package/dist/kbd/index.js +4 -0
  150. package/dist/kbd/index.js.map +1 -0
  151. package/dist/modal/index.js +4 -0
  152. package/dist/modal/index.js.map +1 -0
  153. package/dist/multi-select/index.js +5 -0
  154. package/dist/multi-select/index.js.map +1 -0
  155. package/dist/notification/index.js +4 -0
  156. package/dist/notification/index.js.map +1 -0
  157. package/dist/pagination/index.js +4 -0
  158. package/dist/pagination/index.js.map +1 -0
  159. package/dist/popover/index.js +4 -0
  160. package/dist/popover/index.js.map +1 -0
  161. package/dist/progress/index.js +4 -0
  162. package/dist/progress/index.js.map +1 -0
  163. package/dist/radio/index.js +4 -0
  164. package/dist/radio/index.js.map +1 -0
  165. package/dist/radio-group/index.js +4 -0
  166. package/dist/radio-group/index.js.map +1 -0
  167. package/dist/rating/index.js +4 -0
  168. package/dist/rating/index.js.map +1 -0
  169. package/dist/ribbon/index.js +4 -0
  170. package/dist/ribbon/index.js.map +1 -0
  171. package/dist/select/index.js +6 -0
  172. package/dist/select/index.js.map +1 -0
  173. package/dist/skeleton/index.js +4 -0
  174. package/dist/skeleton/index.js.map +1 -0
  175. package/dist/slider/index.js +4 -0
  176. package/dist/slider/index.js.map +1 -0
  177. package/dist/spinner/index.js +4 -0
  178. package/dist/spinner/index.js.map +1 -0
  179. package/dist/stepper/index.js +4 -0
  180. package/dist/stepper/index.js.map +1 -0
  181. package/dist/styles/base.css +161 -0
  182. package/dist/styles/global.css +633 -0
  183. package/dist/styles/themes/dark.css +84 -0
  184. package/dist/styles/themes/light.css +84 -0
  185. package/dist/switch/index.js +4 -0
  186. package/dist/switch/index.js.map +1 -0
  187. package/dist/table/index.js +12 -0
  188. package/dist/table/index.js.map +1 -0
  189. package/dist/tabs/index.js +5 -0
  190. package/dist/tabs/index.js.map +1 -0
  191. package/dist/textarea/index.js +4 -0
  192. package/dist/textarea/index.js.map +1 -0
  193. package/dist/toggle/index.js +4 -0
  194. package/dist/toggle/index.js.map +1 -0
  195. package/dist/toggle-group/index.js +4 -0
  196. package/dist/toggle-group/index.js.map +1 -0
  197. package/dist/tooltip/index.js +4 -0
  198. package/dist/tooltip/index.js.map +1 -0
  199. package/dist/transfer/index.js +6 -0
  200. package/dist/transfer/index.js.map +1 -0
  201. package/dist/tree/index.js +4 -0
  202. package/dist/tree/index.js.map +1 -0
  203. package/dist/tree-select/index.js +6 -0
  204. package/dist/tree-select/index.js.map +1 -0
  205. package/package.json +107 -0
@@ -0,0 +1,633 @@
1
+ @import 'tailwindcss';
2
+ @import 'tw-animate-css';
3
+
4
+ @custom-variant dark (&:is(.dark *));
5
+
6
+ @theme inline {
7
+ /* ============================================
8
+ GLOBAL PRIMITIVES
9
+ ============================================ */
10
+
11
+ /* === COLOR PRIMITIVES === */
12
+ --color-white: oklch(100% 0 0);
13
+ --color-black: oklch(0% 0 0);
14
+
15
+ /* === GRAY SCALE === */
16
+ --color-gray-50: oklch(98% 0 0);
17
+ --color-gray-100: oklch(96% 0 0);
18
+ --color-gray-200: oklch(92% 0 0);
19
+ --color-gray-300: oklch(87% 0 0);
20
+ --color-gray-400: oklch(71% 0 0);
21
+ --color-gray-500: oklch(55% 0 0);
22
+ --color-gray-600: oklch(45% 0 0);
23
+ --color-gray-700: oklch(35% 0 0);
24
+ --color-gray-800: oklch(25% 0 0);
25
+ --color-gray-900: oklch(15% 0 0);
26
+ --color-gray-950: oklch(10% 0 0);
27
+
28
+ /* === BRAND COLORS === */
29
+ --color-primary: oklch(0.6029 0.15 239.2065);
30
+ --color-primary-hover: oklch(0.5029 0.2 239.2065);
31
+ --color-primary-active: oklch(0.4529 0.2 239.2065);
32
+ --color-primary-foreground: oklch(100% 0 0);
33
+
34
+ --color-secondary: oklch(50% 0.05 240);
35
+ --color-secondary-hover: oklch(45% 0.06 240);
36
+ --color-secondary-active: oklch(40% 0.07 240);
37
+ --color-secondary-foreground: oklch(100% 0 0);
38
+
39
+ --color-accent: oklch(0.8 0.1737 67);
40
+ --color-accent-hover: oklch(0.75 0.237 67);
41
+ --color-accent-active: oklch(0.7 0.1937 67);
42
+ --color-accent-foreground: oklch(15% 0 0);
43
+
44
+ /* === SEMANTIC COLORS === */
45
+ --color-success: oklch(0.7 0.2 145);
46
+ --color-success-hover: oklch(0.65 0.22 145);
47
+ --color-success-active: oklch(0.5 0.24 145);
48
+ --color-success-foreground: oklch(100% 0 0);
49
+
50
+ --color-error: oklch(65% 0.2 25);
51
+ --color-error-hover: oklch(75% 0.2 25);
52
+ --color-error-active: oklch(80% 0.2 25);
53
+ --color-error-foreground: oklch(100% 0 0);
54
+
55
+ --color-warning: oklch(75% 0.15 85);
56
+ --color-warning-hover: oklch(70% 0.17 85);
57
+ --color-warning-active: oklch(65% 0.19 85);
58
+ --color-warning-foreground: oklch(15% 0 0);
59
+
60
+ --color-info: oklch(60% 0.19 255);
61
+ --color-info-hover: oklch(55% 0.21 255);
62
+ --color-info-active: oklch(50% 0.23 255);
63
+ --color-info-foreground: oklch(100% 0 0);
64
+
65
+ /* === BACKGROUND & SURFACE === */
66
+ --color-background: oklch(100% 0 0);
67
+ --color-background-secondary: oklch(98% 0 0);
68
+ --color-surface: oklch(96% 0 0);
69
+ --color-border: oklch(93% 0 0);
70
+ --color-border-primary: oklch(85% 0 0);
71
+
72
+ /* === TEXT COLORS === */
73
+ --color-text-primary: oklch(15% 0 0);
74
+ --color-text-secondary: oklch(45% 0 0);
75
+ --color-text-muted: oklch(60% 0 0);
76
+
77
+ /* ============================================
78
+ COMPONENT TOKENS
79
+ ============================================ */
80
+
81
+ /* === BUTTON === */
82
+ --button-height-xs: 1.75rem; /* 28px */
83
+ --button-height-sm: 2rem; /* 32px */
84
+ --button-height-md: 2.25rem; /* 36px */
85
+ --button-height-lg: 2.75rem; /* 44px */
86
+
87
+ --button-padding-x-xs: 0.5rem; /* 8px */
88
+ --button-padding-x-sm: 0.75rem; /* 12px */
89
+ --button-padding-x-md: 0.875rem; /* 14px */
90
+ --button-padding-x-lg: 1.25rem; /* 20px */
91
+
92
+ /* === INPUT === */
93
+ --input-height-xs: 1.75rem; /* 28px */
94
+ --input-height-sm: 2rem; /* 32px */
95
+ --input-height-md: 2.25rem; /* 36px */
96
+ --input-height-lg: 2.75rem; /* 44px */
97
+
98
+ --input-padding-x-xs: 0.5rem; /* 8px */
99
+ --input-padding-x-sm: 0.75rem; /* 12px */
100
+ --input-padding-x-md: 0.875rem; /* 14px */
101
+ --input-padding-x-lg: 1.125rem; /* 18px */
102
+
103
+ --color-input-border: oklch(87% 0 0);
104
+ --color-input-border-focus: oklch(55% 0.25 255);
105
+ --color-input-border-error: oklch(60% 0.25 25);
106
+ --color-input-bg: oklch(100% 0 0);
107
+ --color-input-text: oklch(15% 0 0);
108
+ --color-input-placeholder: oklch(60% 0 0);
109
+
110
+ /* === TEXTAREA === */
111
+ --textarea-min-height: 5rem; /* 80px */
112
+ --textarea-padding-xs: 0.5rem; /* 8px */
113
+ --textarea-padding-sm: 0.625rem; /* 10px */
114
+ --textarea-padding-md: 0.6875rem; /* 11px */
115
+ --textarea-padding-lg: 0.875rem; /* 14px */
116
+
117
+ /* === SELECT === */
118
+ --select-height-xs: 1.75rem; /* 28px */
119
+ --select-height-sm: 2rem; /* 32px */
120
+ --select-height-md: 2.25rem; /* 36px */
121
+ --select-height-lg: 2.75rem; /* 44px */
122
+
123
+ --select-padding-x-xs: 0.5rem; /* 8px */
124
+ --select-padding-x-sm: 0.75rem; /* 12px */
125
+ --select-padding-x-md: 0.875rem; /* 14px */
126
+ --select-padding-x-lg: 1.125rem; /* 18px */
127
+
128
+ /* === CHECKBOX / RADIO === */
129
+ --checkbox-size-xs: 0.875rem; /* 14px */
130
+ --checkbox-size-sm: 1rem; /* 16px */
131
+ --checkbox-size-md: 1.125rem; /* 18px */
132
+ --checkbox-size-lg: 1.375rem; /* 22px */
133
+
134
+ /* === SWITCH === */
135
+ --switch-width-xs: 1.75rem; /* 28px */
136
+ --switch-width-sm: 2rem; /* 32px */
137
+ --switch-width-md: 2.5rem; /* 40px */
138
+ --switch-width-lg: 3rem; /* 48px */
139
+
140
+ --switch-height-xs: 0.875rem; /* 14px */
141
+ --switch-height-sm: 1rem; /* 16px */
142
+ --switch-height-md: 1.25rem; /* 20px */
143
+ --switch-height-lg: 1.5rem; /* 24px */
144
+
145
+ /* === LABEL === */
146
+ --label-font-size-xs: 0.75rem; /* 12px */
147
+ --label-font-size-sm: 0.875rem; /* 13px */
148
+ --label-font-size-base: 1rem; /* 14px */
149
+ --label-font-size-lg: 1.125rem; /* 16px */
150
+
151
+ /* ============================================
152
+ GLOBAL DESIGN TOKENS
153
+ ============================================ */
154
+
155
+ /* === SPACING === */
156
+ --spacing-0: 0px;
157
+ --spacing-1: 0.25rem; /* 4px */
158
+ --spacing-2: 0.5rem; /* 8px */
159
+ --spacing-3: 0.75rem; /* 12px */
160
+ --spacing-4: 1rem; /* 16px */
161
+ --spacing-5: 1.25rem; /* 20px */
162
+ --spacing-6: 1.5rem; /* 24px */
163
+ --spacing-8: 2rem; /* 32px */
164
+ --spacing-10: 2.5rem; /* 40px */
165
+ --spacing-12: 3rem; /* 48px */
166
+
167
+ /* === BORDER RADIUS === */
168
+ --radius-none: 0px;
169
+ --radius-sm: 0.25rem; /* 4px */
170
+ --radius-md: 0.375rem; /* 6px */
171
+ --radius-lg: 0.5rem; /* 8px */
172
+ --radius-xl: 0.625rem; /* 10px */
173
+ --radius-2xl: 0.75rem; /* 12px */
174
+ --radius-3xl: 1rem; /* 16px */
175
+ --radius-full: 9999px;
176
+
177
+ /* === TYPOGRAPHY === */
178
+ --font-sans: ui-sans-serif, system-ui, sans-serif;
179
+ --font-mono: ui-monospace, 'SF Mono', monospace;
180
+
181
+ --text-xs: 0.75rem; /* 12px */
182
+ --text-sm: 0.875rem; /* 14px */
183
+ --text-base: 0.9rem; /* 14px */
184
+ --text-lg: 1.125rem; /* 16px */
185
+
186
+ --font-weight-normal: 400;
187
+ --font-weight-medium: 500;
188
+ --font-weight-semibold: 600;
189
+ --font-weight-bold: 700;
190
+
191
+ /* === TRANSITIONS === */
192
+ --transition-fast: 150ms cubic-bezier(0.4, 0, 0.2, 1);
193
+ --transition-base: 200ms cubic-bezier(0.4, 0, 0.2, 1);
194
+ --transition-slow: 300ms cubic-bezier(0.4, 0, 0.2, 1);
195
+
196
+ /* === SHADOWS === */
197
+ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
198
+ --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1);
199
+ --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1);
200
+ --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1);
201
+ --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25);
202
+
203
+ /* === Z-INDEX === */
204
+ --z-dropdown: 1000;
205
+ --z-sticky: 1020;
206
+ --z-modal: 1040;
207
+ --z-popover: 1050;
208
+ --z-tooltip: 1060;
209
+ }
210
+
211
+ .dark {
212
+ /* === BRAND COLORS (DARK) === */
213
+ --color-primary: oklch(65% 0.25 255);
214
+ --color-primary-hover: oklch(70% 0.27 255);
215
+ --color-primary-active: oklch(75% 0.29 255);
216
+
217
+ --color-secondary: oklch(60% 0.15 30);
218
+ --color-secondary-hover: oklch(65% 0.17 30);
219
+ --color-secondary-active: oklch(70% 0.19 30);
220
+
221
+ --color-accent: oklch(70% 0.22 310);
222
+ --color-accent-hover: oklch(75% 0.24 310);
223
+ --color-accent-active: oklch(80% 0.26 310);
224
+
225
+ /* === SEMANTIC COLORS (DARK) === */
226
+ --color-success: oklch(65% 0.2 145);
227
+ --color-success-hover: oklch(70% 0.22 145);
228
+ --color-success-active: oklch(75% 0.24 145);
229
+
230
+ --color-error: oklch(65% 0.2 25);
231
+ --color-error-hover: oklch(75% 0.2 25);
232
+ --color-error-active: oklch(80% 0.2 25);
233
+
234
+ --color-warning: oklch(75% 0.15 85);
235
+ --color-warning-hover: oklch(80% 0.17 85);
236
+ --color-warning-active: oklch(85% 0.19 85);
237
+
238
+ --color-info: oklch(65% 0.19 255);
239
+ --color-info-hover: oklch(70% 0.21 255);
240
+ --color-info-active: oklch(75% 0.23 255);
241
+
242
+ /* === BACKGROUND & SURFACE (DARK) === */
243
+ --color-background: oklch(15% 0 0);
244
+ --color-background-secondary: oklch(18% 0 0);
245
+ --color-surface: oklch(20% 0 0);
246
+ --color-border: oklch(30% 0 0);
247
+ --color-border-primary: oklch(35% 0 0);
248
+
249
+ /* === TEXT COLORS (DARK) === */
250
+ --color-text-primary: oklch(95% 0 0);
251
+ --color-text-secondary: oklch(70% 0 0);
252
+ --color-text-muted: oklch(55% 0 0);
253
+
254
+ /* === INPUT (DARK) === */
255
+ --color-input-border: oklch(30% 0 0);
256
+ --color-input-border-focus: oklch(65% 0.25 255);
257
+ --color-input-border-error: oklch(65% 0.25 25);
258
+ --color-input-bg: oklch(18% 0 0);
259
+ --color-input-text: oklch(95% 0 0);
260
+ --color-input-placeholder: oklch(55% 0 0);
261
+ }
262
+
263
+ html,
264
+ body {
265
+ overscroll-behavior: none;
266
+ }
267
+
268
+ /* Select */
269
+ @layer components {
270
+ .custom-select .ant-select-selection-overflow {
271
+ flex-wrap: nowrap !important;
272
+ overflow: hidden;
273
+ text-overflow: ellipsis;
274
+ }
275
+
276
+ .ant-select {
277
+ height: 40px !important;
278
+ }
279
+
280
+ .ant-select-selection-wrap {
281
+ margin: auto;
282
+ }
283
+
284
+ .ant-select-disabled .ant-select-selector {
285
+ background-color: var(--secondary-foreground) !important;
286
+ opacity: 0.7 !important;
287
+ }
288
+ }
289
+
290
+ .pagination {
291
+ display: flex;
292
+ gap: 2px;
293
+ position: absolute;
294
+ left: 50%;
295
+ transform: translateX(-50%);
296
+ bottom: 20px;
297
+ z-index: 100;
298
+ }
299
+
300
+ /* React DatePicker Theme Overrides */
301
+
302
+ .react-datepicker-wrapper {
303
+ display: block;
304
+ }
305
+
306
+ .react-datepicker__input-container {
307
+ display: block;
308
+ }
309
+
310
+ .react-datepicker-popper {
311
+ z-index: var(--z-popover) !important;
312
+ }
313
+
314
+ .react-datepicker {
315
+ font-family: var(--font-sans) !important;
316
+ background-color: var(--color-white) !important;
317
+ border: 0 !important;
318
+ border-radius: var(--radius-md) !important;
319
+ box-shadow: var(--shadow-lg) !important;
320
+ }
321
+
322
+ .react-datepicker__header {
323
+ background-color: var(--color-surface) !important;
324
+ border-top-left-radius: var(--radius-md) !important;
325
+ border-bottom: 0 !important;
326
+ padding: 0 !important;
327
+ border-top-right-radius: var(--radius-md) !important;
328
+ }
329
+
330
+ .react-datepicker__current-month,
331
+ .react-datepicker-time__header,
332
+ .react-datepicker-year-header {
333
+ color: var(--color-gray-900) !important;
334
+ font-weight: var(--font-weight-semibold) !important;
335
+ font-size: var(--font-size-base) !important;
336
+ }
337
+
338
+ .react-datepicker__day-name,
339
+ .react-datepicker__day,
340
+ .react-datepicker__time-name {
341
+ color: var(--color-gray-700) !important;
342
+ width: 2rem !important;
343
+ height: 2rem !important;
344
+ line-height: 2rem !important;
345
+ margin: 0.166rem !important;
346
+ border-radius: var(--radius-sm) !important;
347
+ }
348
+
349
+ .react-datepicker__day:hover,
350
+ .react-datepicker__month-text:hover,
351
+ .react-datepicker__quarter-text:hover,
352
+ .react-datepicker__year-text:hover {
353
+ background-color: var(--color-gray-100) !important;
354
+ }
355
+
356
+ .react-datepicker__day--selected,
357
+ .react-datepicker__day--in-selecting-range,
358
+ .react-datepicker__day--in-range,
359
+ .react-datepicker__month-text--selected,
360
+ .react-datepicker__month-text--in-selecting-range,
361
+ .react-datepicker__month-text--in-range,
362
+ .react-datepicker__quarter-text--selected,
363
+ .react-datepicker__quarter-text--in-selecting-range,
364
+ .react-datepicker__quarter-text--in-range,
365
+ .react-datepicker__year-text--selected,
366
+ .react-datepicker__year-text--in-selecting-range,
367
+ .react-datepicker__year-text--in-range {
368
+ background-color: var(--color-primary) !important;
369
+ color: var(--color-primary-foreground) !important;
370
+ }
371
+
372
+ .react-datepicker__day--selected:hover,
373
+ .react-datepicker__day--in-selecting-range:hover,
374
+ .react-datepicker__day--in-range:hover,
375
+ .react-datepicker__month-text--selected:hover,
376
+ .react-datepicker__month-text--in-selecting-range:hover,
377
+ .react-datepicker__month-text--in-range:hover,
378
+ .react-datepicker__quarter-text--selected:hover,
379
+ .react-datepicker__quarter-text--in-selecting-range:hover,
380
+ .react-datepicker__quarter-text--in-range:hover,
381
+ .react-datepicker__year-text--selected:hover,
382
+ .react-datepicker__year-text--in-selecting-range:hover,
383
+ .react-datepicker__year-text--in-range:hover {
384
+ background-color: var(--color-primary-hover) !important;
385
+ }
386
+
387
+ .react-datepicker__day--keyboard-selected,
388
+ .react-datepicker__month-text--keyboard-selected,
389
+ .react-datepicker__quarter-text--keyboard-selected,
390
+ .react-datepicker__year-text--keyboard-selected {
391
+ background-color: var(--color-primary-hover) !important;
392
+ color: var(--color-primary-foreground) !important;
393
+ }
394
+
395
+ .react-datepicker__day--disabled,
396
+ .react-datepicker__month-text--disabled,
397
+ .react-datepicker__quarter-text--disabled,
398
+ .react-datepicker__year-text--disabled {
399
+ color: var(--color-gray-400) !important;
400
+ cursor: not-allowed !important;
401
+ }
402
+
403
+ .react-datepicker__day--outside-month {
404
+ color: var(--color-gray-400) !important;
405
+ }
406
+
407
+ .react-datepicker__navigation {
408
+ top: 0.65rem !important;
409
+ }
410
+
411
+ .react-datepicker__navigation-icon::before {
412
+ border-color: var(--color-gray-600) !important;
413
+ }
414
+
415
+ .react-datepicker__navigation:hover *::before {
416
+ border-color: var(--color-gray-900) !important;
417
+ }
418
+
419
+ .react-datepicker__current-month {
420
+ display: none;
421
+ }
422
+
423
+ .react-datepicker__time-container {
424
+ border-left: 1px solid var(--color-gray-200) !important;
425
+ }
426
+
427
+ .react-datepicker__time-container .react-datepicker__time {
428
+ background-color: var(--color-white) !important;
429
+ }
430
+
431
+ .react-datepicker__time-container
432
+ .react-datepicker__time
433
+ .react-datepicker__time-box {
434
+ width: 100% !important;
435
+ }
436
+
437
+ .react-datepicker__time-container
438
+ .react-datepicker__time
439
+ .react-datepicker__time-box
440
+ ul.react-datepicker__time-list {
441
+ padding: 0 !important;
442
+ }
443
+
444
+ .react-datepicker__time-container
445
+ .react-datepicker__time
446
+ .react-datepicker__time-box
447
+ ul.react-datepicker__time-list
448
+ li.react-datepicker__time-list-item {
449
+ color: var(--color-gray-700) !important;
450
+ padding: 0.5rem !important;
451
+ }
452
+
453
+ .react-datepicker__time-container
454
+ .react-datepicker__time
455
+ .react-datepicker__time-box
456
+ ul.react-datepicker__time-list
457
+ li.react-datepicker__time-list-item:hover {
458
+ background-color: var(--color-gray-100) !important;
459
+ }
460
+
461
+ .react-datepicker__time-container
462
+ .react-datepicker__time
463
+ .react-datepicker__time-box
464
+ ul.react-datepicker__time-list
465
+ li.react-datepicker__time-list-item--selected {
466
+ background-color: var(--color-primary) !important;
467
+ color: var(--color-primary-foreground) !important;
468
+ }
469
+
470
+ .react-datepicker__day--in-selecting-range:not(
471
+ .react-datepicker__day--in-range
472
+ ) {
473
+ background-color: var(--color-gray-200) !important;
474
+ }
475
+
476
+ .react-datepicker__month-text,
477
+ .react-datepicker__quarter-text,
478
+ .react-datepicker__year-text {
479
+ padding: 0.5rem !important;
480
+ border-radius: var(--radius-sm) !important;
481
+ }
482
+
483
+ .react-datepicker__year-read-view--down-arrow,
484
+ .react-datepicker__month-read-view--down-arrow,
485
+ .react-datepicker__month-year-read-view--down-arrow {
486
+ border-top-color: var(--color-gray-600) !important;
487
+ }
488
+
489
+ .react-datepicker__year-dropdown,
490
+ .react-datepicker__month-dropdown,
491
+ .react-datepicker__month-year-dropdown {
492
+ background-color: var(--color-white) !important;
493
+ border: 1px solid var(--color-gray-200) !important;
494
+ border-radius: var(--radius-md) !important;
495
+ }
496
+
497
+ .react-datepicker__year-option,
498
+ .react-datepicker__month-option,
499
+ .react-datepicker__month-year-option {
500
+ color: var(--color-gray-700) !important;
501
+ padding: 0.5rem !important;
502
+ }
503
+
504
+ .react-datepicker__year-option:hover,
505
+ .react-datepicker__month-option:hover,
506
+ .react-datepicker__month-year-option:hover {
507
+ background-color: var(--color-gray-100) !important;
508
+ }
509
+
510
+ .react-datepicker__year-option--selected,
511
+ .react-datepicker__month-option--selected,
512
+ .react-datepicker__month-year-option--selected {
513
+ background-color: var(--color-primary) !important;
514
+ color: var(--color-primary-foreground) !important;
515
+ }
516
+
517
+ /* Dark mode overrides for DatePicker */
518
+ .dark .react-datepicker {
519
+ background-color: var(--color-surface) !important;
520
+ }
521
+
522
+ .dark .react-datepicker__header {
523
+ background-color: var(--color-background-secondary) !important;
524
+ }
525
+
526
+ .dark .react-datepicker__current-month,
527
+ .dark .react-datepicker-time__header,
528
+ .dark .react-datepicker-year-header {
529
+ color: var(--color-text-primary) !important;
530
+ }
531
+
532
+ .dark .react-datepicker__day-name,
533
+ .dark .react-datepicker__day,
534
+ .dark .react-datepicker__time-name {
535
+ color: var(--color-text-secondary) !important;
536
+ }
537
+
538
+ .dark .react-datepicker__day:hover,
539
+ .dark .react-datepicker__month-text:hover,
540
+ .dark .react-datepicker__quarter-text:hover,
541
+ .dark .react-datepicker__year-text:hover {
542
+ background-color: var(--color-background-secondary) !important;
543
+ }
544
+
545
+ .dark .react-datepicker__day--disabled,
546
+ .dark .react-datepicker__month-text--disabled,
547
+ .dark .react-datepicker__quarter-text--disabled,
548
+ .dark .react-datepicker__year-text--disabled {
549
+ color: var(--color-text-muted) !important;
550
+ }
551
+
552
+ .dark .react-datepicker__day--outside-month {
553
+ color: var(--color-text-muted) !important;
554
+ }
555
+
556
+ .dark .react-datepicker__navigation-icon::before {
557
+ border-color: var(--color-text-secondary) !important;
558
+ }
559
+
560
+ .dark .react-datepicker__navigation:hover *::before {
561
+ border-color: var(--color-text-primary) !important;
562
+ }
563
+
564
+ .dark .react-datepicker__time-container {
565
+ border-left: 1px solid var(--color-border) !important;
566
+ }
567
+
568
+ .dark .react-datepicker__time-container .react-datepicker__time {
569
+ background-color: var(--color-surface) !important;
570
+ }
571
+
572
+ .dark
573
+ .react-datepicker__time-container
574
+ .react-datepicker__time
575
+ .react-datepicker__time-box
576
+ ul.react-datepicker__time-list
577
+ li.react-datepicker__time-list-item {
578
+ color: var(--color-text-secondary) !important;
579
+ }
580
+
581
+ .dark
582
+ .react-datepicker__time-container
583
+ .react-datepicker__time
584
+ .react-datepicker__time-box
585
+ ul.react-datepicker__time-list
586
+ li.react-datepicker__time-list-item:hover {
587
+ background-color: var(--color-background-secondary) !important;
588
+ }
589
+
590
+ .dark
591
+ .react-datepicker__day--in-selecting-range:not(
592
+ .react-datepicker__day--in-range
593
+ ) {
594
+ background-color: var(--color-background-secondary) !important;
595
+ }
596
+
597
+ .dark .react-datepicker__year-read-view--down-arrow,
598
+ .dark .react-datepicker__month-read-view--down-arrow,
599
+ .dark .react-datepicker__month-year-read-view--down-arrow {
600
+ border-top-color: var(--color-text-secondary) !important;
601
+ }
602
+
603
+ .dark .react-datepicker__year-dropdown,
604
+ .dark .react-datepicker__month-dropdown,
605
+ .dark .react-datepicker__month-year-dropdown {
606
+ background-color: var(--color-surface) !important;
607
+ border: 1px solid var(--color-border) !important;
608
+ }
609
+
610
+ .dark .react-datepicker__year-option,
611
+ .dark .react-datepicker__month-option,
612
+ .dark .react-datepicker__month-year-option {
613
+ color: var(--color-text-secondary) !important;
614
+ }
615
+
616
+ .dark .react-datepicker__year-option:hover,
617
+ .dark .react-datepicker__month-option:hover,
618
+ .dark .react-datepicker__month-year-option:hover {
619
+ background-color: var(--color-background-secondary) !important;
620
+ }
621
+
622
+ @keyframes shimmer {
623
+ 0% {
624
+ background-position: 0 0;
625
+ }
626
+ 100% {
627
+ background-position: 2rem 0;
628
+ }
629
+ }
630
+
631
+ .progress-shimmer {
632
+ animation: shimmer 1s linear infinite;
633
+ }
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Dark Theme
3
+ * Dark mode with light text on dark background
4
+ */
5
+
6
+ .dark {
7
+ /* ============================================
8
+ COLOR PRIMITIVES (same in both themes)
9
+ ============================================ */
10
+
11
+ /* === COLOR PRIMITIVES === */
12
+ --color-white: oklch(100% 0 0);
13
+ --color-black: oklch(0% 0 0);
14
+
15
+ /* === GRAY SCALE === */
16
+ --color-gray-50: oklch(98% 0 0);
17
+ --color-gray-100: oklch(96% 0 0);
18
+ --color-gray-200: oklch(92% 0 0);
19
+ --color-gray-300: oklch(87% 0 0);
20
+ --color-gray-400: oklch(71% 0 0);
21
+ --color-gray-500: oklch(55% 0 0);
22
+ --color-gray-600: oklch(45% 0 0);
23
+ --color-gray-700: oklch(35% 0 0);
24
+ --color-gray-800: oklch(25% 0 0);
25
+ --color-gray-900: oklch(15% 0 0);
26
+ --color-gray-950: oklch(10% 0 0);
27
+
28
+ /* === BRAND COLORS (DARK) === */
29
+ --color-primary: oklch(65% 0.25 255);
30
+ --color-primary-hover: oklch(70% 0.27 255);
31
+ --color-primary-active: oklch(75% 0.29 255);
32
+ --color-primary-foreground: oklch(100% 0 0);
33
+
34
+ --color-secondary: oklch(60% 0.15 30);
35
+ --color-secondary-hover: oklch(65% 0.17 30);
36
+ --color-secondary-active: oklch(70% 0.19 30);
37
+ --color-secondary-foreground: oklch(100% 0 0);
38
+
39
+ --color-accent: oklch(70% 0.22 310);
40
+ --color-accent-hover: oklch(75% 0.24 310);
41
+ --color-accent-active: oklch(80% 0.26 310);
42
+ --color-accent-foreground: oklch(15% 0 0);
43
+
44
+ /* === SEMANTIC COLORS (DARK) === */
45
+ --color-success: oklch(65% 0.2 145);
46
+ --color-success-hover: oklch(70% 0.22 145);
47
+ --color-success-active: oklch(75% 0.24 145);
48
+ --color-success-foreground: oklch(100% 0 0);
49
+
50
+ --color-error: oklch(65% 0.2 25);
51
+ --color-error-hover: oklch(75% 0.2 25);
52
+ --color-error-active: oklch(80% 0.2 25);
53
+ --color-error-foreground: oklch(100% 0 0);
54
+
55
+ --color-warning: oklch(75% 0.15 85);
56
+ --color-warning-hover: oklch(80% 0.17 85);
57
+ --color-warning-active: oklch(85% 0.19 85);
58
+ --color-warning-foreground: oklch(15% 0 0);
59
+
60
+ --color-info: oklch(65% 0.19 255);
61
+ --color-info-hover: oklch(70% 0.21 255);
62
+ --color-info-active: oklch(75% 0.23 255);
63
+ --color-info-foreground: oklch(100% 0 0);
64
+
65
+ /* === BACKGROUND & SURFACE (DARK) === */
66
+ --color-background: oklch(15% 0 0);
67
+ --color-background-secondary: oklch(18% 0 0);
68
+ --color-surface: oklch(20% 0 0);
69
+ --color-border: oklch(30% 0 0);
70
+ --color-border-primary: oklch(35% 0 0);
71
+
72
+ /* === TEXT COLORS (DARK) === */
73
+ --color-text-primary: oklch(95% 0 0);
74
+ --color-text-secondary: oklch(70% 0 0);
75
+ --color-text-muted: oklch(55% 0 0);
76
+
77
+ /* === INPUT (DARK) === */
78
+ --color-input-border: oklch(30% 0 0);
79
+ --color-input-border-focus: oklch(65% 0.25 255);
80
+ --color-input-border-error: oklch(65% 0.25 25);
81
+ --color-input-bg: oklch(18% 0 0);
82
+ --color-input-text: oklch(95% 0 0);
83
+ --color-input-placeholder: oklch(55% 0 0);
84
+ }