@opensaas/stack-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 (203) hide show
  1. package/.turbo/turbo-build.log +8 -0
  2. package/README.md +286 -0
  3. package/dist/components/AdminUI.d.ts +24 -0
  4. package/dist/components/AdminUI.d.ts.map +1 -0
  5. package/dist/components/AdminUI.js +48 -0
  6. package/dist/components/ConfirmDialog.d.ts +16 -0
  7. package/dist/components/ConfirmDialog.d.ts.map +1 -0
  8. package/dist/components/ConfirmDialog.js +11 -0
  9. package/dist/components/Dashboard.d.ts +12 -0
  10. package/dist/components/Dashboard.d.ts.map +1 -0
  11. package/dist/components/Dashboard.js +30 -0
  12. package/dist/components/ItemForm.d.ts +17 -0
  13. package/dist/components/ItemForm.d.ts.map +1 -0
  14. package/dist/components/ItemForm.js +97 -0
  15. package/dist/components/ItemFormClient.d.ts +22 -0
  16. package/dist/components/ItemFormClient.d.ts.map +1 -0
  17. package/dist/components/ItemFormClient.js +127 -0
  18. package/dist/components/ListView.d.ts +17 -0
  19. package/dist/components/ListView.d.ts.map +1 -0
  20. package/dist/components/ListView.js +76 -0
  21. package/dist/components/ListViewClient.d.ts +19 -0
  22. package/dist/components/ListViewClient.d.ts.map +1 -0
  23. package/dist/components/ListViewClient.js +108 -0
  24. package/dist/components/LoadingSpinner.d.ts +10 -0
  25. package/dist/components/LoadingSpinner.d.ts.map +1 -0
  26. package/dist/components/LoadingSpinner.js +14 -0
  27. package/dist/components/Navigation.d.ts +13 -0
  28. package/dist/components/Navigation.d.ts.map +1 -0
  29. package/dist/components/Navigation.js +20 -0
  30. package/dist/components/SkeletonLoader.d.ts +22 -0
  31. package/dist/components/SkeletonLoader.d.ts.map +1 -0
  32. package/dist/components/SkeletonLoader.js +25 -0
  33. package/dist/components/fields/CheckboxField.d.ts +11 -0
  34. package/dist/components/fields/CheckboxField.d.ts.map +1 -0
  35. package/dist/components/fields/CheckboxField.js +10 -0
  36. package/dist/components/fields/ComboboxField.d.ts +18 -0
  37. package/dist/components/fields/ComboboxField.d.ts.map +1 -0
  38. package/dist/components/fields/ComboboxField.js +32 -0
  39. package/dist/components/fields/FieldRenderer.d.ts +22 -0
  40. package/dist/components/fields/FieldRenderer.d.ts.map +1 -0
  41. package/dist/components/fields/FieldRenderer.js +81 -0
  42. package/dist/components/fields/IntegerField.d.ts +15 -0
  43. package/dist/components/fields/IntegerField.d.ts.map +1 -0
  44. package/dist/components/fields/IntegerField.js +14 -0
  45. package/dist/components/fields/PasswordField.d.ts +18 -0
  46. package/dist/components/fields/PasswordField.d.ts.map +1 -0
  47. package/dist/components/fields/PasswordField.js +42 -0
  48. package/dist/components/fields/RelationshipField.d.ts +20 -0
  49. package/dist/components/fields/RelationshipField.d.ts.map +1 -0
  50. package/dist/components/fields/RelationshipField.js +11 -0
  51. package/dist/components/fields/RelationshipManager.d.ts +19 -0
  52. package/dist/components/fields/RelationshipManager.d.ts.map +1 -0
  53. package/dist/components/fields/RelationshipManager.js +37 -0
  54. package/dist/components/fields/SelectField.d.ts +16 -0
  55. package/dist/components/fields/SelectField.d.ts.map +1 -0
  56. package/dist/components/fields/SelectField.js +11 -0
  57. package/dist/components/fields/TextField.d.ts +13 -0
  58. package/dist/components/fields/TextField.d.ts.map +1 -0
  59. package/dist/components/fields/TextField.js +11 -0
  60. package/dist/components/fields/TimestampField.d.ts +12 -0
  61. package/dist/components/fields/TimestampField.d.ts.map +1 -0
  62. package/dist/components/fields/TimestampField.js +12 -0
  63. package/dist/components/fields/index.d.ts +23 -0
  64. package/dist/components/fields/index.d.ts.map +1 -0
  65. package/dist/components/fields/index.js +13 -0
  66. package/dist/components/fields/registry.d.ts +43 -0
  67. package/dist/components/fields/registry.d.ts.map +1 -0
  68. package/dist/components/fields/registry.js +42 -0
  69. package/dist/components/standalone/DeleteButton.d.ts +35 -0
  70. package/dist/components/standalone/DeleteButton.d.ts.map +1 -0
  71. package/dist/components/standalone/DeleteButton.js +46 -0
  72. package/dist/components/standalone/ItemCreateForm.d.ts +34 -0
  73. package/dist/components/standalone/ItemCreateForm.d.ts.map +1 -0
  74. package/dist/components/standalone/ItemCreateForm.js +91 -0
  75. package/dist/components/standalone/ItemEditForm.d.ts +37 -0
  76. package/dist/components/standalone/ItemEditForm.d.ts.map +1 -0
  77. package/dist/components/standalone/ItemEditForm.js +112 -0
  78. package/dist/components/standalone/ListTable.d.ts +33 -0
  79. package/dist/components/standalone/ListTable.d.ts.map +1 -0
  80. package/dist/components/standalone/ListTable.js +94 -0
  81. package/dist/components/standalone/SearchBar.d.ts +29 -0
  82. package/dist/components/standalone/SearchBar.d.ts.map +1 -0
  83. package/dist/components/standalone/SearchBar.js +43 -0
  84. package/dist/components/standalone/index.d.ts +11 -0
  85. package/dist/components/standalone/index.d.ts.map +1 -0
  86. package/dist/components/standalone/index.js +6 -0
  87. package/dist/index.d.ts +27 -0
  88. package/dist/index.d.ts.map +1 -0
  89. package/dist/index.js +19 -0
  90. package/dist/lib/serializeFieldConfig.d.ts +43 -0
  91. package/dist/lib/serializeFieldConfig.d.ts.map +1 -0
  92. package/dist/lib/serializeFieldConfig.js +48 -0
  93. package/dist/lib/theme.d.ts +17 -0
  94. package/dist/lib/theme.d.ts.map +1 -0
  95. package/dist/lib/theme.js +192 -0
  96. package/dist/lib/utils.d.ts +18 -0
  97. package/dist/lib/utils.d.ts.map +1 -0
  98. package/dist/lib/utils.js +76 -0
  99. package/dist/primitives/button.d.ts +12 -0
  100. package/dist/primitives/button.d.ts.map +1 -0
  101. package/dist/primitives/button.js +33 -0
  102. package/dist/primitives/calendar.d.ts +9 -0
  103. package/dist/primitives/calendar.d.ts.map +1 -0
  104. package/dist/primitives/calendar.js +48 -0
  105. package/dist/primitives/card.d.ts +9 -0
  106. package/dist/primitives/card.d.ts.map +1 -0
  107. package/dist/primitives/card.js +16 -0
  108. package/dist/primitives/checkbox.d.ts +5 -0
  109. package/dist/primitives/checkbox.d.ts.map +1 -0
  110. package/dist/primitives/checkbox.js +7 -0
  111. package/dist/primitives/combobox.d.ts +14 -0
  112. package/dist/primitives/combobox.d.ts.map +1 -0
  113. package/dist/primitives/combobox.js +20 -0
  114. package/dist/primitives/datetime-picker.d.ts +9 -0
  115. package/dist/primitives/datetime-picker.d.ts.map +1 -0
  116. package/dist/primitives/datetime-picker.js +42 -0
  117. package/dist/primitives/dialog.d.ts +20 -0
  118. package/dist/primitives/dialog.d.ts.map +1 -0
  119. package/dist/primitives/dialog.js +21 -0
  120. package/dist/primitives/index.d.ts +14 -0
  121. package/dist/primitives/index.d.ts.map +1 -0
  122. package/dist/primitives/index.js +14 -0
  123. package/dist/primitives/input.d.ts +5 -0
  124. package/dist/primitives/input.d.ts.map +1 -0
  125. package/dist/primitives/input.js +8 -0
  126. package/dist/primitives/label.d.ts +6 -0
  127. package/dist/primitives/label.d.ts.map +1 -0
  128. package/dist/primitives/label.js +9 -0
  129. package/dist/primitives/popover.d.ts +7 -0
  130. package/dist/primitives/popover.d.ts.map +1 -0
  131. package/dist/primitives/popover.js +10 -0
  132. package/dist/primitives/select.d.ts +14 -0
  133. package/dist/primitives/select.d.ts.map +1 -0
  134. package/dist/primitives/select.js +24 -0
  135. package/dist/primitives/table.d.ts +11 -0
  136. package/dist/primitives/table.d.ts.map +1 -0
  137. package/dist/primitives/table.js +20 -0
  138. package/dist/primitives/time-picker.d.ts +8 -0
  139. package/dist/primitives/time-picker.d.ts.map +1 -0
  140. package/dist/primitives/time-picker.js +27 -0
  141. package/dist/server/index.d.ts +2 -0
  142. package/dist/server/index.d.ts.map +1 -0
  143. package/dist/server/index.js +2 -0
  144. package/dist/server/types.d.ts +15 -0
  145. package/dist/server/types.d.ts.map +1 -0
  146. package/dist/server/types.js +1 -0
  147. package/dist/styles/globals.css +1896 -0
  148. package/package.json +91 -0
  149. package/postcss.config.cjs +5 -0
  150. package/src/components/AdminUI.tsx +112 -0
  151. package/src/components/ConfirmDialog.tsx +56 -0
  152. package/src/components/Dashboard.tsx +134 -0
  153. package/src/components/ItemForm.tsx +195 -0
  154. package/src/components/ItemFormClient.tsx +237 -0
  155. package/src/components/ListView.tsx +153 -0
  156. package/src/components/ListViewClient.tsx +282 -0
  157. package/src/components/LoadingSpinner.tsx +32 -0
  158. package/src/components/Navigation.tsx +117 -0
  159. package/src/components/SkeletonLoader.tsx +82 -0
  160. package/src/components/fields/CheckboxField.tsx +54 -0
  161. package/src/components/fields/ComboboxField.tsx +127 -0
  162. package/src/components/fields/FieldRenderer.tsx +132 -0
  163. package/src/components/fields/IntegerField.tsx +68 -0
  164. package/src/components/fields/PasswordField.tsx +159 -0
  165. package/src/components/fields/RelationshipField.tsx +71 -0
  166. package/src/components/fields/RelationshipManager.tsx +189 -0
  167. package/src/components/fields/SelectField.tsx +71 -0
  168. package/src/components/fields/TextField.tsx +59 -0
  169. package/src/components/fields/TimestampField.tsx +49 -0
  170. package/src/components/fields/index.ts +27 -0
  171. package/src/components/fields/registry.ts +72 -0
  172. package/src/components/standalone/DeleteButton.tsx +114 -0
  173. package/src/components/standalone/ItemCreateForm.tsx +161 -0
  174. package/src/components/standalone/ItemEditForm.tsx +193 -0
  175. package/src/components/standalone/ListTable.tsx +211 -0
  176. package/src/components/standalone/SearchBar.tsx +86 -0
  177. package/src/components/standalone/index.ts +13 -0
  178. package/src/index.ts +74 -0
  179. package/src/lib/serializeFieldConfig.ts +88 -0
  180. package/src/lib/theme.ts +202 -0
  181. package/src/lib/utils.ts +81 -0
  182. package/src/primitives/button.tsx +49 -0
  183. package/src/primitives/calendar.tsx +160 -0
  184. package/src/primitives/card.tsx +58 -0
  185. package/src/primitives/checkbox.tsx +27 -0
  186. package/src/primitives/combobox.tsx +159 -0
  187. package/src/primitives/datetime-picker.tsx +130 -0
  188. package/src/primitives/dialog.tsx +108 -0
  189. package/src/primitives/index.ts +54 -0
  190. package/src/primitives/input.tsx +24 -0
  191. package/src/primitives/label.tsx +19 -0
  192. package/src/primitives/popover.tsx +31 -0
  193. package/src/primitives/select.tsx +158 -0
  194. package/src/primitives/table.tsx +91 -0
  195. package/src/primitives/time-picker.tsx +65 -0
  196. package/src/server/index.ts +3 -0
  197. package/src/server/types.ts +15 -0
  198. package/src/styles/globals.css +123 -0
  199. package/tailwind.config.ts +3 -0
  200. package/tests/components/TextField.test.tsx +94 -0
  201. package/tests/setup.ts +11 -0
  202. package/tsconfig.json +26 -0
  203. package/vitest.config.ts +22 -0
@@ -0,0 +1,1896 @@
1
+ /*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ @layer theme, base, components, utilities;
4
+ @layer theme {
5
+ :root, :host {
6
+ --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji",
7
+ "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
8
+ --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
9
+ "Courier New", monospace;
10
+ --color-gray-200: oklch(92.8% 0.006 264.531);
11
+ --color-black: #000;
12
+ --color-white: #fff;
13
+ --spacing: 0.25rem;
14
+ --container-lg: 32rem;
15
+ --container-4xl: 56rem;
16
+ --text-xs: 0.75rem;
17
+ --text-xs--line-height: calc(1 / 0.75);
18
+ --text-sm: 0.875rem;
19
+ --text-sm--line-height: calc(1.25 / 0.875);
20
+ --text-base: 1rem;
21
+ --text-base--line-height: calc(1.5 / 1);
22
+ --text-lg: 1.125rem;
23
+ --text-lg--line-height: calc(1.75 / 1.125);
24
+ --text-xl: 1.25rem;
25
+ --text-xl--line-height: calc(1.75 / 1.25);
26
+ --text-2xl: 1.5rem;
27
+ --text-2xl--line-height: calc(2 / 1.5);
28
+ --text-3xl: 1.875rem;
29
+ --text-3xl--line-height: calc(2.25 / 1.875);
30
+ --text-4xl: 2.25rem;
31
+ --text-4xl--line-height: calc(2.5 / 2.25);
32
+ --font-weight-normal: 400;
33
+ --font-weight-medium: 500;
34
+ --font-weight-semibold: 600;
35
+ --font-weight-bold: 700;
36
+ --tracking-tight: -0.025em;
37
+ --tracking-wider: 0.05em;
38
+ --radius-sm: 0.25rem;
39
+ --radius-md: 0.375rem;
40
+ --radius-lg: 0.5rem;
41
+ --radius-2xl: 1rem;
42
+ --animate-spin: spin 1s linear infinite;
43
+ --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
44
+ --default-transition-duration: 150ms;
45
+ --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
46
+ --default-font-family: var(--font-sans);
47
+ --default-mono-font-family: var(--font-mono);
48
+ --radius: 0.75rem;
49
+ --color-background-light: oklch(0.97 0.01 264);
50
+ --color-foreground-light: oklch(0.2 0.02 264);
51
+ --color-card-light: oklch(1 0 0);
52
+ --color-card-foreground-light: oklch(0.2 0.02 264);
53
+ --color-popover-light: oklch(1 0 0);
54
+ --color-popover-foreground-light: oklch(0.2 0.02 264);
55
+ --color-primary-light: oklch(0.68 0.19 210);
56
+ --color-primary-foreground-light: oklch(0.2 0.02 264);
57
+ --color-secondary-light: oklch(0.95 0.01 264);
58
+ --color-secondary-foreground-light: oklch(0.2 0.02 264);
59
+ --color-muted-light: oklch(0.95 0.01 264);
60
+ --color-muted-foreground-light: oklch(0.5 0.01 264);
61
+ --color-accent-light: oklch(0.7 0.21 320);
62
+ --color-accent-foreground-light: oklch(1 0 0);
63
+ --color-destructive-light: oklch(0.65 0.23 25);
64
+ --color-destructive-foreground-light: oklch(1 0 0);
65
+ --color-border-light: oklch(0.9 0.01 264);
66
+ --color-input-light: oklch(0.9 0.01 264);
67
+ --color-ring-light: oklch(0.68 0.19 210);
68
+ --color-background-dark: oklch(0.15 0.02 264);
69
+ --color-foreground-dark: oklch(0.95 0.01 264);
70
+ --color-card-dark: oklch(0.18 0.02 264);
71
+ --color-card-foreground-dark: oklch(0.95 0.01 264);
72
+ --color-popover-dark: oklch(0.18 0.02 264);
73
+ --color-popover-foreground-dark: oklch(0.95 0.01 264);
74
+ --color-primary-dark: oklch(0.72 0.2 210);
75
+ --color-primary-foreground-dark: oklch(0.2 0.02 264);
76
+ --color-secondary-dark: oklch(0.25 0.02 264);
77
+ --color-secondary-foreground-dark: oklch(0.95 0.01 264);
78
+ --color-muted-dark: oklch(0.25 0.02 264);
79
+ --color-muted-foreground-dark: oklch(0.6 0.01 264);
80
+ --color-accent-dark: oklch(0.75 0.22 320);
81
+ --color-accent-foreground-dark: oklch(0.2 0.02 264);
82
+ --color-destructive-dark: oklch(0.68 0.24 25);
83
+ --color-destructive-foreground-dark: oklch(1 0 0);
84
+ --color-border-dark: oklch(0.3 0.02 264);
85
+ --color-input-dark: oklch(0.3 0.02 264);
86
+ --color-ring-dark: oklch(0.72 0.2 210);
87
+ --color-background: light-dark(var(--color-background-light), var(--color-background-dark));
88
+ --color-foreground: light-dark(var(--color-foreground-light), var(--color-foreground-dark));
89
+ --color-border: light-dark(var(--color-border-light), var(--color-border-dark));
90
+ --gradient-from-light: oklch(0.68 0.19 210);
91
+ --gradient-to-light: oklch(0.7 0.21 320);
92
+ --gradient-from-dark: oklch(0.72 0.2 210);
93
+ --gradient-to-dark: oklch(0.75 0.22 320);
94
+ }
95
+ }
96
+ @layer base {
97
+ *, ::after, ::before, ::backdrop, ::file-selector-button {
98
+ box-sizing: border-box;
99
+ margin: 0;
100
+ padding: 0;
101
+ border: 0 solid;
102
+ }
103
+ html, :host {
104
+ line-height: 1.5;
105
+ -webkit-text-size-adjust: 100%;
106
+ tab-size: 4;
107
+ font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
108
+ font-feature-settings: var(--default-font-feature-settings, normal);
109
+ font-variation-settings: var(--default-font-variation-settings, normal);
110
+ -webkit-tap-highlight-color: transparent;
111
+ }
112
+ hr {
113
+ height: 0;
114
+ color: inherit;
115
+ border-top-width: 1px;
116
+ }
117
+ abbr:where([title]) {
118
+ -webkit-text-decoration: underline dotted;
119
+ text-decoration: underline dotted;
120
+ }
121
+ h1, h2, h3, h4, h5, h6 {
122
+ font-size: inherit;
123
+ font-weight: inherit;
124
+ }
125
+ a {
126
+ color: inherit;
127
+ -webkit-text-decoration: inherit;
128
+ text-decoration: inherit;
129
+ }
130
+ b, strong {
131
+ font-weight: bolder;
132
+ }
133
+ code, kbd, samp, pre {
134
+ font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
135
+ font-feature-settings: var(--default-mono-font-feature-settings, normal);
136
+ font-variation-settings: var(--default-mono-font-variation-settings, normal);
137
+ font-size: 1em;
138
+ }
139
+ small {
140
+ font-size: 80%;
141
+ }
142
+ sub, sup {
143
+ font-size: 75%;
144
+ line-height: 0;
145
+ position: relative;
146
+ vertical-align: baseline;
147
+ }
148
+ sub {
149
+ bottom: -0.25em;
150
+ }
151
+ sup {
152
+ top: -0.5em;
153
+ }
154
+ table {
155
+ text-indent: 0;
156
+ border-color: inherit;
157
+ border-collapse: collapse;
158
+ }
159
+ :-moz-focusring {
160
+ outline: auto;
161
+ }
162
+ progress {
163
+ vertical-align: baseline;
164
+ }
165
+ summary {
166
+ display: list-item;
167
+ }
168
+ ol, ul, menu {
169
+ list-style: none;
170
+ }
171
+ img, svg, video, canvas, audio, iframe, embed, object {
172
+ display: block;
173
+ vertical-align: middle;
174
+ }
175
+ img, video {
176
+ max-width: 100%;
177
+ height: auto;
178
+ }
179
+ button, input, select, optgroup, textarea, ::file-selector-button {
180
+ font: inherit;
181
+ font-feature-settings: inherit;
182
+ font-variation-settings: inherit;
183
+ letter-spacing: inherit;
184
+ color: inherit;
185
+ border-radius: 0;
186
+ background-color: transparent;
187
+ opacity: 1;
188
+ }
189
+ :where(select:is([multiple], [size])) optgroup {
190
+ font-weight: bolder;
191
+ }
192
+ :where(select:is([multiple], [size])) optgroup option {
193
+ padding-inline-start: 20px;
194
+ }
195
+ ::file-selector-button {
196
+ margin-inline-end: 4px;
197
+ }
198
+ ::placeholder {
199
+ opacity: 1;
200
+ }
201
+ @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
202
+ ::placeholder {
203
+ color: currentcolor;
204
+ @supports (color: color-mix(in lab, red, red)) {
205
+ color: color-mix(in oklab, currentcolor 50%, transparent);
206
+ }
207
+ }
208
+ }
209
+ textarea {
210
+ resize: vertical;
211
+ }
212
+ ::-webkit-search-decoration {
213
+ -webkit-appearance: none;
214
+ }
215
+ ::-webkit-date-and-time-value {
216
+ min-height: 1lh;
217
+ text-align: inherit;
218
+ }
219
+ ::-webkit-datetime-edit {
220
+ display: inline-flex;
221
+ }
222
+ ::-webkit-datetime-edit-fields-wrapper {
223
+ padding: 0;
224
+ }
225
+ ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {
226
+ padding-block: 0;
227
+ }
228
+ ::-webkit-calendar-picker-indicator {
229
+ line-height: 1;
230
+ }
231
+ :-moz-ui-invalid {
232
+ box-shadow: none;
233
+ }
234
+ button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button {
235
+ appearance: button;
236
+ }
237
+ ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {
238
+ height: auto;
239
+ }
240
+ [hidden]:where(:not([hidden="until-found"])) {
241
+ display: none !important;
242
+ }
243
+ }
244
+ @layer utilities {
245
+ .sr-only {
246
+ position: absolute;
247
+ width: 1px;
248
+ height: 1px;
249
+ padding: 0;
250
+ margin: -1px;
251
+ overflow: hidden;
252
+ clip-path: inset(50%);
253
+ white-space: nowrap;
254
+ border-width: 0;
255
+ }
256
+ .absolute {
257
+ position: absolute;
258
+ }
259
+ .fixed {
260
+ position: fixed;
261
+ }
262
+ .relative {
263
+ position: relative;
264
+ }
265
+ .sticky {
266
+ position: sticky;
267
+ }
268
+ .inset-0 {
269
+ inset: calc(var(--spacing) * 0);
270
+ }
271
+ .top-0 {
272
+ top: calc(var(--spacing) * 0);
273
+ }
274
+ .top-1\/2 {
275
+ top: calc(1/2 * 100%);
276
+ }
277
+ .top-4 {
278
+ top: calc(var(--spacing) * 4);
279
+ }
280
+ .top-\[50\%\] {
281
+ top: 50%;
282
+ }
283
+ .right-2 {
284
+ right: calc(var(--spacing) * 2);
285
+ }
286
+ .right-4 {
287
+ right: calc(var(--spacing) * 4);
288
+ }
289
+ .left-2 {
290
+ left: calc(var(--spacing) * 2);
291
+ }
292
+ .left-\[50\%\] {
293
+ left: 50%;
294
+ }
295
+ .z-50 {
296
+ z-index: 50;
297
+ }
298
+ .-mx-1 {
299
+ margin-inline: calc(var(--spacing) * -1);
300
+ }
301
+ .mx-1 {
302
+ margin-inline: calc(var(--spacing) * 1);
303
+ }
304
+ .my-1 {
305
+ margin-block: calc(var(--spacing) * 1);
306
+ }
307
+ .mt-1 {
308
+ margin-top: calc(var(--spacing) * 1);
309
+ }
310
+ .mt-2 {
311
+ margin-top: calc(var(--spacing) * 2);
312
+ }
313
+ .mt-4 {
314
+ margin-top: calc(var(--spacing) * 4);
315
+ }
316
+ .mt-6 {
317
+ margin-top: calc(var(--spacing) * 6);
318
+ }
319
+ .mt-12 {
320
+ margin-top: calc(var(--spacing) * 12);
321
+ }
322
+ .mr-1 {
323
+ margin-right: calc(var(--spacing) * 1);
324
+ }
325
+ .mr-2 {
326
+ margin-right: calc(var(--spacing) * 2);
327
+ }
328
+ .mb-2 {
329
+ margin-bottom: calc(var(--spacing) * 2);
330
+ }
331
+ .mb-4 {
332
+ margin-bottom: calc(var(--spacing) * 4);
333
+ }
334
+ .mb-6 {
335
+ margin-bottom: calc(var(--spacing) * 6);
336
+ }
337
+ .mb-8 {
338
+ margin-bottom: calc(var(--spacing) * 8);
339
+ }
340
+ .ml-1 {
341
+ margin-left: calc(var(--spacing) * 1);
342
+ }
343
+ .ml-2 {
344
+ margin-left: calc(var(--spacing) * 2);
345
+ }
346
+ .block {
347
+ display: block;
348
+ }
349
+ .flex {
350
+ display: flex;
351
+ }
352
+ .grid {
353
+ display: grid;
354
+ }
355
+ .inline-block {
356
+ display: inline-block;
357
+ }
358
+ .inline-flex {
359
+ display: inline-flex;
360
+ }
361
+ .table {
362
+ display: table;
363
+ }
364
+ .h-3\.5 {
365
+ height: calc(var(--spacing) * 3.5);
366
+ }
367
+ .h-4 {
368
+ height: calc(var(--spacing) * 4);
369
+ }
370
+ .h-7 {
371
+ height: calc(var(--spacing) * 7);
372
+ }
373
+ .h-8 {
374
+ height: calc(var(--spacing) * 8);
375
+ }
376
+ .h-9 {
377
+ height: calc(var(--spacing) * 9);
378
+ }
379
+ .h-10 {
380
+ height: calc(var(--spacing) * 10);
381
+ }
382
+ .h-11 {
383
+ height: calc(var(--spacing) * 11);
384
+ }
385
+ .h-12 {
386
+ height: calc(var(--spacing) * 12);
387
+ }
388
+ .h-24 {
389
+ height: calc(var(--spacing) * 24);
390
+ }
391
+ .h-\[var\(--radix-select-trigger-height\)\] {
392
+ height: var(--radix-select-trigger-height);
393
+ }
394
+ .h-full {
395
+ height: 100%;
396
+ }
397
+ .h-px {
398
+ height: 1px;
399
+ }
400
+ .h-screen {
401
+ height: 100vh;
402
+ }
403
+ .max-h-96 {
404
+ max-height: calc(var(--spacing) * 96);
405
+ }
406
+ .max-h-\[300px\] {
407
+ max-height: 300px;
408
+ }
409
+ .min-h-screen {
410
+ min-height: 100vh;
411
+ }
412
+ .w-2\/3 {
413
+ width: calc(2/3 * 100%);
414
+ }
415
+ .w-3\.5 {
416
+ width: calc(var(--spacing) * 3.5);
417
+ }
418
+ .w-4 {
419
+ width: calc(var(--spacing) * 4);
420
+ }
421
+ .w-8 {
422
+ width: calc(var(--spacing) * 8);
423
+ }
424
+ .w-9 {
425
+ width: calc(var(--spacing) * 9);
426
+ }
427
+ .w-10 {
428
+ width: calc(var(--spacing) * 10);
429
+ }
430
+ .w-12 {
431
+ width: calc(var(--spacing) * 12);
432
+ }
433
+ .w-14 {
434
+ width: calc(var(--spacing) * 14);
435
+ }
436
+ .w-20 {
437
+ width: calc(var(--spacing) * 20);
438
+ }
439
+ .w-24 {
440
+ width: calc(var(--spacing) * 24);
441
+ }
442
+ .w-32 {
443
+ width: calc(var(--spacing) * 32);
444
+ }
445
+ .w-64 {
446
+ width: calc(var(--spacing) * 64);
447
+ }
448
+ .w-72 {
449
+ width: calc(var(--spacing) * 72);
450
+ }
451
+ .w-\[100px\] {
452
+ width: 100px;
453
+ }
454
+ .w-auto {
455
+ width: auto;
456
+ }
457
+ .w-full {
458
+ width: 100%;
459
+ }
460
+ .max-w-4xl {
461
+ max-width: var(--container-4xl);
462
+ }
463
+ .max-w-lg {
464
+ max-width: var(--container-lg);
465
+ }
466
+ .min-w-0 {
467
+ min-width: calc(var(--spacing) * 0);
468
+ }
469
+ .min-w-\[8rem\] {
470
+ min-width: 8rem;
471
+ }
472
+ .min-w-\[var\(--radix-popover-trigger-width\)\] {
473
+ min-width: var(--radix-popover-trigger-width);
474
+ }
475
+ .min-w-\[var\(--radix-select-trigger-width\)\] {
476
+ min-width: var(--radix-select-trigger-width);
477
+ }
478
+ .flex-1 {
479
+ flex: 1;
480
+ }
481
+ .shrink-0 {
482
+ flex-shrink: 0;
483
+ }
484
+ .caption-bottom {
485
+ caption-side: bottom;
486
+ }
487
+ .border-collapse {
488
+ border-collapse: collapse;
489
+ }
490
+ .translate-x-\[-50\%\] {
491
+ --tw-translate-x: -50%;
492
+ translate: var(--tw-translate-x) var(--tw-translate-y);
493
+ }
494
+ .-translate-y-1\/2 {
495
+ --tw-translate-y: calc(calc(1/2 * 100%) * -1);
496
+ translate: var(--tw-translate-x) var(--tw-translate-y);
497
+ }
498
+ .translate-y-\[-50\%\] {
499
+ --tw-translate-y: -50%;
500
+ translate: var(--tw-translate-x) var(--tw-translate-y);
501
+ }
502
+ .animate-pulse {
503
+ animation: var(--animate-pulse);
504
+ }
505
+ .animate-spin {
506
+ animation: var(--animate-spin);
507
+ }
508
+ .cursor-default {
509
+ cursor: default;
510
+ }
511
+ .cursor-pointer {
512
+ cursor: pointer;
513
+ }
514
+ .grid-cols-1 {
515
+ grid-template-columns: repeat(1, minmax(0, 1fr));
516
+ }
517
+ .flex-col {
518
+ flex-direction: column;
519
+ }
520
+ .flex-col-reverse {
521
+ flex-direction: column-reverse;
522
+ }
523
+ .flex-wrap {
524
+ flex-wrap: wrap;
525
+ }
526
+ .items-center {
527
+ align-items: center;
528
+ }
529
+ .items-start {
530
+ align-items: flex-start;
531
+ }
532
+ .justify-between {
533
+ justify-content: space-between;
534
+ }
535
+ .justify-center {
536
+ justify-content: center;
537
+ }
538
+ .justify-start {
539
+ justify-content: flex-start;
540
+ }
541
+ .gap-1 {
542
+ gap: calc(var(--spacing) * 1);
543
+ }
544
+ .gap-2 {
545
+ gap: calc(var(--spacing) * 2);
546
+ }
547
+ .gap-3 {
548
+ gap: calc(var(--spacing) * 3);
549
+ }
550
+ .gap-4 {
551
+ gap: calc(var(--spacing) * 4);
552
+ }
553
+ .gap-6 {
554
+ gap: calc(var(--spacing) * 6);
555
+ }
556
+ .space-y-1 {
557
+ :where(& > :not(:last-child)) {
558
+ --tw-space-y-reverse: 0;
559
+ margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
560
+ margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
561
+ }
562
+ }
563
+ .space-y-1\.5 {
564
+ :where(& > :not(:last-child)) {
565
+ --tw-space-y-reverse: 0;
566
+ margin-block-start: calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));
567
+ margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));
568
+ }
569
+ }
570
+ .space-y-2 {
571
+ :where(& > :not(:last-child)) {
572
+ --tw-space-y-reverse: 0;
573
+ margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
574
+ margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
575
+ }
576
+ }
577
+ .space-y-4 {
578
+ :where(& > :not(:last-child)) {
579
+ --tw-space-y-reverse: 0;
580
+ margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
581
+ margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
582
+ }
583
+ }
584
+ .space-y-6 {
585
+ :where(& > :not(:last-child)) {
586
+ --tw-space-y-reverse: 0;
587
+ margin-block-start: calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));
588
+ margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
589
+ }
590
+ }
591
+ .space-x-1 {
592
+ :where(& > :not(:last-child)) {
593
+ --tw-space-x-reverse: 0;
594
+ margin-inline-start: calc(calc(var(--spacing) * 1) * var(--tw-space-x-reverse));
595
+ margin-inline-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-x-reverse)));
596
+ }
597
+ }
598
+ .space-x-2 {
599
+ :where(& > :not(:last-child)) {
600
+ --tw-space-x-reverse: 0;
601
+ margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
602
+ margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
603
+ }
604
+ }
605
+ .space-x-3 {
606
+ :where(& > :not(:last-child)) {
607
+ --tw-space-x-reverse: 0;
608
+ margin-inline-start: calc(calc(var(--spacing) * 3) * var(--tw-space-x-reverse));
609
+ margin-inline-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-x-reverse)));
610
+ }
611
+ }
612
+ .divide-y {
613
+ :where(& > :not(:last-child)) {
614
+ --tw-divide-y-reverse: 0;
615
+ border-bottom-style: var(--tw-border-style);
616
+ border-top-style: var(--tw-border-style);
617
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
618
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
619
+ }
620
+ }
621
+ .divide-border {
622
+ :where(& > :not(:last-child)) {
623
+ border-color: light-dark(var(--color-border-light), var(--color-border-dark));
624
+ }
625
+ }
626
+ .truncate {
627
+ overflow: hidden;
628
+ text-overflow: ellipsis;
629
+ white-space: nowrap;
630
+ }
631
+ .overflow-auto {
632
+ overflow: auto;
633
+ }
634
+ .overflow-hidden {
635
+ overflow: hidden;
636
+ }
637
+ .overflow-x-auto {
638
+ overflow-x: auto;
639
+ }
640
+ .overflow-x-hidden {
641
+ overflow-x: hidden;
642
+ }
643
+ .overflow-y-auto {
644
+ overflow-y: auto;
645
+ }
646
+ .rounded {
647
+ border-radius: 0.75rem;
648
+ }
649
+ .rounded-2xl {
650
+ border-radius: var(--radius-2xl);
651
+ }
652
+ .rounded-full {
653
+ border-radius: calc(infinity * 1px);
654
+ }
655
+ .rounded-lg {
656
+ border-radius: var(--radius-lg);
657
+ }
658
+ .rounded-md {
659
+ border-radius: var(--radius-md);
660
+ }
661
+ .rounded-sm {
662
+ border-radius: var(--radius-sm);
663
+ }
664
+ .border {
665
+ border-style: var(--tw-border-style);
666
+ border-width: 1px;
667
+ }
668
+ .border-2 {
669
+ border-style: var(--tw-border-style);
670
+ border-width: 2px;
671
+ }
672
+ .border-3 {
673
+ border-style: var(--tw-border-style);
674
+ border-width: 3px;
675
+ }
676
+ .border-t {
677
+ border-top-style: var(--tw-border-style);
678
+ border-top-width: 1px;
679
+ }
680
+ .border-r {
681
+ border-right-style: var(--tw-border-style);
682
+ border-right-width: 1px;
683
+ }
684
+ .border-b {
685
+ border-bottom-style: var(--tw-border-style);
686
+ border-bottom-width: 1px;
687
+ }
688
+ .border-dashed {
689
+ --tw-border-style: dashed;
690
+ border-style: dashed;
691
+ }
692
+ .border-accent\/20 {
693
+ border-color: color-mix(in srgb, light-dark(oklch(0.7 0.21 320), oklch(0.75 0.22 320)) 20%, transparent);
694
+ @supports (color: color-mix(in lab, red, red)) {
695
+ border-color: color-mix(in oklab, light-dark(var(--color-accent-light), var(--color-accent-dark)) 20%, transparent);
696
+ }
697
+ }
698
+ .border-border {
699
+ border-color: light-dark(var(--color-border-light), var(--color-border-dark));
700
+ }
701
+ .border-destructive {
702
+ border-color: light-dark(var(--color-destructive-light), var(--color-destructive-dark));
703
+ }
704
+ .border-gray-200 {
705
+ border-color: var(--color-gray-200);
706
+ }
707
+ .border-input {
708
+ border-color: light-dark(var(--color-input-light), var(--color-input-dark));
709
+ }
710
+ .border-primary {
711
+ border-color: light-dark(var(--color-primary-light), var(--color-primary-dark));
712
+ }
713
+ .border-primary-foreground {
714
+ border-color: light-dark(
715
+ var(--color-primary-foreground-light),
716
+ var(--color-primary-foreground-dark)
717
+ );
718
+ }
719
+ .border-primary\/20 {
720
+ border-color: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 20%, transparent);
721
+ @supports (color: color-mix(in lab, red, red)) {
722
+ border-color: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 20%, transparent);
723
+ }
724
+ }
725
+ .border-t-transparent {
726
+ border-top-color: transparent;
727
+ }
728
+ .bg-accent {
729
+ background-color: light-dark(var(--color-accent-light), var(--color-accent-dark));
730
+ }
731
+ .bg-background {
732
+ background-color: light-dark(var(--color-background-light), var(--color-background-dark));
733
+ }
734
+ .bg-black\/80 {
735
+ background-color: color-mix(in srgb, #000 80%, transparent);
736
+ @supports (color: color-mix(in lab, red, red)) {
737
+ background-color: color-mix(in oklab, var(--color-black) 80%, transparent);
738
+ }
739
+ }
740
+ .bg-border {
741
+ background-color: light-dark(var(--color-border-light), var(--color-border-dark));
742
+ }
743
+ .bg-card {
744
+ background-color: light-dark(var(--color-card-light), var(--color-card-dark));
745
+ }
746
+ .bg-destructive {
747
+ background-color: light-dark(var(--color-destructive-light), var(--color-destructive-dark));
748
+ }
749
+ .bg-destructive\/10 {
750
+ background-color: color-mix(in srgb, light-dark(oklch(0.65 0.23 25), oklch(0.68 0.24 25)) 10%, transparent);
751
+ @supports (color: color-mix(in lab, red, red)) {
752
+ background-color: color-mix(in oklab, light-dark(var(--color-destructive-light), var(--color-destructive-dark)) 10%, transparent);
753
+ }
754
+ }
755
+ .bg-muted {
756
+ background-color: light-dark(var(--color-muted-light), var(--color-muted-dark));
757
+ }
758
+ .bg-muted\/50 {
759
+ background-color: color-mix(in srgb, light-dark(oklch(0.95 0.01 264), oklch(0.25 0.02 264)) 50%, transparent);
760
+ @supports (color: color-mix(in lab, red, red)) {
761
+ background-color: color-mix(in oklab, light-dark(var(--color-muted-light), var(--color-muted-dark)) 50%, transparent);
762
+ }
763
+ }
764
+ .bg-popover {
765
+ background-color: light-dark(var(--color-popover-light), var(--color-popover-dark));
766
+ }
767
+ .bg-primary {
768
+ background-color: light-dark(var(--color-primary-light), var(--color-primary-dark));
769
+ }
770
+ .bg-primary\/10 {
771
+ background-color: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 10%, transparent);
772
+ @supports (color: color-mix(in lab, red, red)) {
773
+ background-color: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 10%, transparent);
774
+ }
775
+ }
776
+ .bg-secondary {
777
+ background-color: light-dark(var(--color-secondary-light), var(--color-secondary-dark));
778
+ }
779
+ .bg-transparent {
780
+ background-color: transparent;
781
+ }
782
+ .bg-white {
783
+ background-color: var(--color-white);
784
+ }
785
+ .bg-gradient-to-br {
786
+ --tw-gradient-position: to bottom right in oklab;
787
+ background-image: linear-gradient(var(--tw-gradient-stops));
788
+ }
789
+ .bg-gradient-to-r {
790
+ --tw-gradient-position: to right in oklab;
791
+ background-image: linear-gradient(var(--tw-gradient-stops));
792
+ }
793
+ .from-accent\/10 {
794
+ --tw-gradient-from: color-mix(in srgb, light-dark(oklch(0.7 0.21 320), oklch(0.75 0.22 320)) 10%, transparent);
795
+ @supports (color: color-mix(in lab, red, red)) {
796
+ --tw-gradient-from: color-mix(in oklab, light-dark(var(--color-accent-light), var(--color-accent-dark)) 10%, transparent);
797
+ }
798
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
799
+ }
800
+ .from-primary {
801
+ --tw-gradient-from: light-dark(var(--color-primary-light), var(--color-primary-dark));
802
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
803
+ }
804
+ .from-primary\/5 {
805
+ --tw-gradient-from: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 5%, transparent);
806
+ @supports (color: color-mix(in lab, red, red)) {
807
+ --tw-gradient-from: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 5%, transparent);
808
+ }
809
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
810
+ }
811
+ .from-primary\/10 {
812
+ --tw-gradient-from: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 10%, transparent);
813
+ @supports (color: color-mix(in lab, red, red)) {
814
+ --tw-gradient-from: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 10%, transparent);
815
+ }
816
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
817
+ }
818
+ .from-primary\/20 {
819
+ --tw-gradient-from: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 20%, transparent);
820
+ @supports (color: color-mix(in lab, red, red)) {
821
+ --tw-gradient-from: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 20%, transparent);
822
+ }
823
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
824
+ }
825
+ .to-accent {
826
+ --tw-gradient-to: light-dark(var(--color-accent-light), var(--color-accent-dark));
827
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
828
+ }
829
+ .to-accent\/5 {
830
+ --tw-gradient-to: color-mix(in srgb, light-dark(oklch(0.7 0.21 320), oklch(0.75 0.22 320)) 5%, transparent);
831
+ @supports (color: color-mix(in lab, red, red)) {
832
+ --tw-gradient-to: color-mix(in oklab, light-dark(var(--color-accent-light), var(--color-accent-dark)) 5%, transparent);
833
+ }
834
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
835
+ }
836
+ .to-accent\/10 {
837
+ --tw-gradient-to: color-mix(in srgb, light-dark(oklch(0.7 0.21 320), oklch(0.75 0.22 320)) 10%, transparent);
838
+ @supports (color: color-mix(in lab, red, red)) {
839
+ --tw-gradient-to: color-mix(in oklab, light-dark(var(--color-accent-light), var(--color-accent-dark)) 10%, transparent);
840
+ }
841
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
842
+ }
843
+ .to-accent\/20 {
844
+ --tw-gradient-to: color-mix(in srgb, light-dark(oklch(0.7 0.21 320), oklch(0.75 0.22 320)) 20%, transparent);
845
+ @supports (color: color-mix(in lab, red, red)) {
846
+ --tw-gradient-to: color-mix(in oklab, light-dark(var(--color-accent-light), var(--color-accent-dark)) 20%, transparent);
847
+ }
848
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
849
+ }
850
+ .to-primary\/10 {
851
+ --tw-gradient-to: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 10%, transparent);
852
+ @supports (color: color-mix(in lab, red, red)) {
853
+ --tw-gradient-to: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 10%, transparent);
854
+ }
855
+ --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
856
+ }
857
+ .bg-clip-text {
858
+ background-clip: text;
859
+ }
860
+ .p-0 {
861
+ padding: calc(var(--spacing) * 0);
862
+ }
863
+ .p-1 {
864
+ padding: calc(var(--spacing) * 1);
865
+ }
866
+ .p-3 {
867
+ padding: calc(var(--spacing) * 3);
868
+ }
869
+ .p-4 {
870
+ padding: calc(var(--spacing) * 4);
871
+ }
872
+ .p-6 {
873
+ padding: calc(var(--spacing) * 6);
874
+ }
875
+ .p-8 {
876
+ padding: calc(var(--spacing) * 8);
877
+ }
878
+ .p-12 {
879
+ padding: calc(var(--spacing) * 12);
880
+ }
881
+ .px-2 {
882
+ padding-inline: calc(var(--spacing) * 2);
883
+ }
884
+ .px-3 {
885
+ padding-inline: calc(var(--spacing) * 3);
886
+ }
887
+ .px-4 {
888
+ padding-inline: calc(var(--spacing) * 4);
889
+ }
890
+ .px-6 {
891
+ padding-inline: calc(var(--spacing) * 6);
892
+ }
893
+ .px-8 {
894
+ padding-inline: calc(var(--spacing) * 8);
895
+ }
896
+ .py-1 {
897
+ padding-block: calc(var(--spacing) * 1);
898
+ }
899
+ .py-1\.5 {
900
+ padding-block: calc(var(--spacing) * 1.5);
901
+ }
902
+ .py-2 {
903
+ padding-block: calc(var(--spacing) * 2);
904
+ }
905
+ .py-2\.5 {
906
+ padding-block: calc(var(--spacing) * 2.5);
907
+ }
908
+ .py-3 {
909
+ padding-block: calc(var(--spacing) * 3);
910
+ }
911
+ .py-4 {
912
+ padding-block: calc(var(--spacing) * 4);
913
+ }
914
+ .py-6 {
915
+ padding-block: calc(var(--spacing) * 6);
916
+ }
917
+ .pt-0 {
918
+ padding-top: calc(var(--spacing) * 0);
919
+ }
920
+ .pt-4 {
921
+ padding-top: calc(var(--spacing) * 4);
922
+ }
923
+ .pt-6 {
924
+ padding-top: calc(var(--spacing) * 6);
925
+ }
926
+ .pr-2 {
927
+ padding-right: calc(var(--spacing) * 2);
928
+ }
929
+ .pr-10 {
930
+ padding-right: calc(var(--spacing) * 10);
931
+ }
932
+ .pb-2 {
933
+ padding-bottom: calc(var(--spacing) * 2);
934
+ }
935
+ .pl-8 {
936
+ padding-left: calc(var(--spacing) * 8);
937
+ }
938
+ .text-center {
939
+ text-align: center;
940
+ }
941
+ .text-left {
942
+ text-align: left;
943
+ }
944
+ .text-right {
945
+ text-align: right;
946
+ }
947
+ .align-middle {
948
+ vertical-align: middle;
949
+ }
950
+ .text-2xl {
951
+ font-size: var(--text-2xl);
952
+ line-height: var(--tw-leading, var(--text-2xl--line-height));
953
+ }
954
+ .text-3xl {
955
+ font-size: var(--text-3xl);
956
+ line-height: var(--tw-leading, var(--text-3xl--line-height));
957
+ }
958
+ .text-4xl {
959
+ font-size: var(--text-4xl);
960
+ line-height: var(--tw-leading, var(--text-4xl--line-height));
961
+ }
962
+ .text-base {
963
+ font-size: var(--text-base);
964
+ line-height: var(--tw-leading, var(--text-base--line-height));
965
+ }
966
+ .text-lg {
967
+ font-size: var(--text-lg);
968
+ line-height: var(--tw-leading, var(--text-lg--line-height));
969
+ }
970
+ .text-sm {
971
+ font-size: var(--text-sm);
972
+ line-height: var(--tw-leading, var(--text-sm--line-height));
973
+ }
974
+ .text-xl {
975
+ font-size: var(--text-xl);
976
+ line-height: var(--tw-leading, var(--text-xl--line-height));
977
+ }
978
+ .text-xs {
979
+ font-size: var(--text-xs);
980
+ line-height: var(--tw-leading, var(--text-xs--line-height));
981
+ }
982
+ .leading-none {
983
+ --tw-leading: 1;
984
+ line-height: 1;
985
+ }
986
+ .font-bold {
987
+ --tw-font-weight: var(--font-weight-bold);
988
+ font-weight: var(--font-weight-bold);
989
+ }
990
+ .font-medium {
991
+ --tw-font-weight: var(--font-weight-medium);
992
+ font-weight: var(--font-weight-medium);
993
+ }
994
+ .font-normal {
995
+ --tw-font-weight: var(--font-weight-normal);
996
+ font-weight: var(--font-weight-normal);
997
+ }
998
+ .font-semibold {
999
+ --tw-font-weight: var(--font-weight-semibold);
1000
+ font-weight: var(--font-weight-semibold);
1001
+ }
1002
+ .tracking-tight {
1003
+ --tw-tracking: var(--tracking-tight);
1004
+ letter-spacing: var(--tracking-tight);
1005
+ }
1006
+ .tracking-wider {
1007
+ --tw-tracking: var(--tracking-wider);
1008
+ letter-spacing: var(--tracking-wider);
1009
+ }
1010
+ .whitespace-nowrap {
1011
+ white-space: nowrap;
1012
+ }
1013
+ .text-accent-foreground {
1014
+ color: light-dark(
1015
+ var(--color-accent-foreground-light),
1016
+ var(--color-accent-foreground-dark)
1017
+ );
1018
+ }
1019
+ .text-card-foreground {
1020
+ color: light-dark(
1021
+ var(--color-card-foreground-light),
1022
+ var(--color-card-foreground-dark)
1023
+ );
1024
+ }
1025
+ .text-current {
1026
+ color: currentcolor;
1027
+ }
1028
+ .text-destructive {
1029
+ color: light-dark(var(--color-destructive-light), var(--color-destructive-dark));
1030
+ }
1031
+ .text-destructive-foreground {
1032
+ color: light-dark(
1033
+ var(--color-destructive-foreground-light),
1034
+ var(--color-destructive-foreground-dark)
1035
+ );
1036
+ }
1037
+ .text-foreground {
1038
+ color: light-dark(var(--color-foreground-light), var(--color-foreground-dark));
1039
+ }
1040
+ .text-muted-foreground {
1041
+ color: light-dark(
1042
+ var(--color-muted-foreground-light),
1043
+ var(--color-muted-foreground-dark)
1044
+ );
1045
+ }
1046
+ .text-popover-foreground {
1047
+ color: light-dark(
1048
+ var(--color-popover-foreground-light),
1049
+ var(--color-popover-foreground-dark)
1050
+ );
1051
+ }
1052
+ .text-primary {
1053
+ color: light-dark(var(--color-primary-light), var(--color-primary-dark));
1054
+ }
1055
+ .text-primary-foreground {
1056
+ color: light-dark(
1057
+ var(--color-primary-foreground-light),
1058
+ var(--color-primary-foreground-dark)
1059
+ );
1060
+ }
1061
+ .text-secondary-foreground {
1062
+ color: light-dark(
1063
+ var(--color-secondary-foreground-light),
1064
+ var(--color-secondary-foreground-dark)
1065
+ );
1066
+ }
1067
+ .text-transparent {
1068
+ color: transparent;
1069
+ }
1070
+ .uppercase {
1071
+ text-transform: uppercase;
1072
+ }
1073
+ .italic {
1074
+ font-style: italic;
1075
+ }
1076
+ .underline-offset-4 {
1077
+ text-underline-offset: 4px;
1078
+ }
1079
+ .opacity-0 {
1080
+ opacity: 0%;
1081
+ }
1082
+ .opacity-50 {
1083
+ opacity: 50%;
1084
+ }
1085
+ .opacity-60 {
1086
+ opacity: 60%;
1087
+ }
1088
+ .opacity-70 {
1089
+ opacity: 70%;
1090
+ }
1091
+ .opacity-100 {
1092
+ opacity: 100%;
1093
+ }
1094
+ .shadow-2xl {
1095
+ --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));
1096
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1097
+ }
1098
+ .shadow-lg {
1099
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1100
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1101
+ }
1102
+ .shadow-md {
1103
+ --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1104
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1105
+ }
1106
+ .shadow-sm {
1107
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1108
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1109
+ }
1110
+ .ring {
1111
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1112
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1113
+ }
1114
+ .shadow-primary\/25 {
1115
+ --tw-shadow-color: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 25%, transparent);
1116
+ @supports (color: color-mix(in lab, red, red)) {
1117
+ --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 25%, transparent) var(--tw-shadow-alpha), transparent);
1118
+ }
1119
+ }
1120
+ .ring-offset-background {
1121
+ --tw-ring-offset-color: light-dark(var(--color-background-light), var(--color-background-dark));
1122
+ }
1123
+ .outline {
1124
+ outline-style: var(--tw-outline-style);
1125
+ outline-width: 1px;
1126
+ }
1127
+ .filter {
1128
+ filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
1129
+ }
1130
+ .transition-all {
1131
+ transition-property: all;
1132
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1133
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1134
+ }
1135
+ .transition-colors {
1136
+ transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
1137
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1138
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1139
+ }
1140
+ .transition-opacity {
1141
+ transition-property: opacity;
1142
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1143
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1144
+ }
1145
+ .transition-transform {
1146
+ transition-property: transform, translate, scale, rotate;
1147
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
1148
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
1149
+ }
1150
+ .duration-200 {
1151
+ --tw-duration: 200ms;
1152
+ transition-duration: 200ms;
1153
+ }
1154
+ .outline-none {
1155
+ --tw-outline-style: none;
1156
+ outline-style: none;
1157
+ }
1158
+ .select-none {
1159
+ -webkit-user-select: none;
1160
+ user-select: none;
1161
+ }
1162
+ .group-hover\:translate-x-1 {
1163
+ &:is(:where(.group):hover *) {
1164
+ @media (hover: hover) {
1165
+ --tw-translate-x: calc(var(--spacing) * 1);
1166
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1167
+ }
1168
+ }
1169
+ }
1170
+ .group-hover\:text-primary {
1171
+ &:is(:where(.group):hover *) {
1172
+ @media (hover: hover) {
1173
+ color: light-dark(var(--color-primary-light), var(--color-primary-dark));
1174
+ }
1175
+ }
1176
+ }
1177
+ .group-hover\:opacity-100 {
1178
+ &:is(:where(.group):hover *) {
1179
+ @media (hover: hover) {
1180
+ opacity: 100%;
1181
+ }
1182
+ }
1183
+ }
1184
+ .peer-disabled\:cursor-not-allowed {
1185
+ &:is(:where(.peer):disabled ~ *) {
1186
+ cursor: not-allowed;
1187
+ }
1188
+ }
1189
+ .peer-disabled\:opacity-70 {
1190
+ &:is(:where(.peer):disabled ~ *) {
1191
+ opacity: 70%;
1192
+ }
1193
+ }
1194
+ .file\:border-0 {
1195
+ &::file-selector-button {
1196
+ border-style: var(--tw-border-style);
1197
+ border-width: 0px;
1198
+ }
1199
+ }
1200
+ .file\:bg-transparent {
1201
+ &::file-selector-button {
1202
+ background-color: transparent;
1203
+ }
1204
+ }
1205
+ .file\:text-sm {
1206
+ &::file-selector-button {
1207
+ font-size: var(--text-sm);
1208
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1209
+ }
1210
+ }
1211
+ .file\:font-medium {
1212
+ &::file-selector-button {
1213
+ --tw-font-weight: var(--font-weight-medium);
1214
+ font-weight: var(--font-weight-medium);
1215
+ }
1216
+ }
1217
+ .file\:text-foreground {
1218
+ &::file-selector-button {
1219
+ color: light-dark(var(--color-foreground-light), var(--color-foreground-dark));
1220
+ }
1221
+ }
1222
+ .placeholder\:text-muted-foreground {
1223
+ &::placeholder {
1224
+ color: light-dark(
1225
+ var(--color-muted-foreground-light),
1226
+ var(--color-muted-foreground-dark)
1227
+ );
1228
+ }
1229
+ }
1230
+ .hover\:border-primary {
1231
+ &:hover {
1232
+ @media (hover: hover) {
1233
+ border-color: light-dark(var(--color-primary-light), var(--color-primary-dark));
1234
+ }
1235
+ }
1236
+ }
1237
+ .hover\:bg-accent {
1238
+ &:hover {
1239
+ @media (hover: hover) {
1240
+ background-color: light-dark(var(--color-accent-light), var(--color-accent-dark));
1241
+ }
1242
+ }
1243
+ }
1244
+ .hover\:bg-accent\/50 {
1245
+ &:hover {
1246
+ @media (hover: hover) {
1247
+ background-color: color-mix(in srgb, light-dark(oklch(0.7 0.21 320), oklch(0.75 0.22 320)) 50%, transparent);
1248
+ @supports (color: color-mix(in lab, red, red)) {
1249
+ background-color: color-mix(in oklab, light-dark(var(--color-accent-light), var(--color-accent-dark)) 50%, transparent);
1250
+ }
1251
+ }
1252
+ }
1253
+ }
1254
+ .hover\:bg-destructive\/90 {
1255
+ &:hover {
1256
+ @media (hover: hover) {
1257
+ background-color: color-mix(in srgb, light-dark(oklch(0.65 0.23 25), oklch(0.68 0.24 25)) 90%, transparent);
1258
+ @supports (color: color-mix(in lab, red, red)) {
1259
+ background-color: color-mix(in oklab, light-dark(var(--color-destructive-light), var(--color-destructive-dark)) 90%, transparent);
1260
+ }
1261
+ }
1262
+ }
1263
+ }
1264
+ .hover\:bg-muted\/50 {
1265
+ &:hover {
1266
+ @media (hover: hover) {
1267
+ background-color: color-mix(in srgb, light-dark(oklch(0.95 0.01 264), oklch(0.25 0.02 264)) 50%, transparent);
1268
+ @supports (color: color-mix(in lab, red, red)) {
1269
+ background-color: color-mix(in oklab, light-dark(var(--color-muted-light), var(--color-muted-dark)) 50%, transparent);
1270
+ }
1271
+ }
1272
+ }
1273
+ }
1274
+ .hover\:bg-muted\/70 {
1275
+ &:hover {
1276
+ @media (hover: hover) {
1277
+ background-color: color-mix(in srgb, light-dark(oklch(0.95 0.01 264), oklch(0.25 0.02 264)) 70%, transparent);
1278
+ @supports (color: color-mix(in lab, red, red)) {
1279
+ background-color: color-mix(in oklab, light-dark(var(--color-muted-light), var(--color-muted-dark)) 70%, transparent);
1280
+ }
1281
+ }
1282
+ }
1283
+ }
1284
+ .hover\:bg-primary {
1285
+ &:hover {
1286
+ @media (hover: hover) {
1287
+ background-color: light-dark(var(--color-primary-light), var(--color-primary-dark));
1288
+ }
1289
+ }
1290
+ }
1291
+ .hover\:bg-primary\/90 {
1292
+ &:hover {
1293
+ @media (hover: hover) {
1294
+ background-color: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 90%, transparent);
1295
+ @supports (color: color-mix(in lab, red, red)) {
1296
+ background-color: color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 90%, transparent);
1297
+ }
1298
+ }
1299
+ }
1300
+ }
1301
+ .hover\:bg-secondary\/80 {
1302
+ &:hover {
1303
+ @media (hover: hover) {
1304
+ background-color: color-mix(in srgb, light-dark(oklch(0.95 0.01 264), oklch(0.25 0.02 264)) 80%, transparent);
1305
+ @supports (color: color-mix(in lab, red, red)) {
1306
+ background-color: color-mix(in oklab, light-dark(var(--color-secondary-light), var(--color-secondary-dark)) 80%, transparent);
1307
+ }
1308
+ }
1309
+ }
1310
+ }
1311
+ .hover\:text-accent-foreground {
1312
+ &:hover {
1313
+ @media (hover: hover) {
1314
+ color: light-dark(
1315
+ var(--color-accent-foreground-light),
1316
+ var(--color-accent-foreground-dark)
1317
+ );
1318
+ }
1319
+ }
1320
+ }
1321
+ .hover\:text-foreground {
1322
+ &:hover {
1323
+ @media (hover: hover) {
1324
+ color: light-dark(var(--color-foreground-light), var(--color-foreground-dark));
1325
+ }
1326
+ }
1327
+ }
1328
+ .hover\:text-primary-foreground {
1329
+ &:hover {
1330
+ @media (hover: hover) {
1331
+ color: light-dark(
1332
+ var(--color-primary-foreground-light),
1333
+ var(--color-primary-foreground-dark)
1334
+ );
1335
+ }
1336
+ }
1337
+ }
1338
+ .hover\:underline {
1339
+ &:hover {
1340
+ @media (hover: hover) {
1341
+ text-decoration-line: underline;
1342
+ }
1343
+ }
1344
+ }
1345
+ .hover\:opacity-100 {
1346
+ &:hover {
1347
+ @media (hover: hover) {
1348
+ opacity: 100%;
1349
+ }
1350
+ }
1351
+ }
1352
+ .hover\:shadow-lg {
1353
+ &:hover {
1354
+ @media (hover: hover) {
1355
+ --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1356
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1357
+ }
1358
+ }
1359
+ }
1360
+ .hover\:shadow-primary\/20 {
1361
+ &:hover {
1362
+ @media (hover: hover) {
1363
+ --tw-shadow-color: color-mix(in srgb, light-dark(oklch(0.68 0.19 210), oklch(0.72 0.2 210)) 20%, transparent);
1364
+ @supports (color: color-mix(in lab, red, red)) {
1365
+ --tw-shadow-color: color-mix(in oklab, color-mix(in oklab, light-dark(var(--color-primary-light), var(--color-primary-dark)) 20%, transparent) var(--tw-shadow-alpha), transparent);
1366
+ }
1367
+ }
1368
+ }
1369
+ }
1370
+ .focus\:bg-accent {
1371
+ &:focus {
1372
+ background-color: light-dark(var(--color-accent-light), var(--color-accent-dark));
1373
+ }
1374
+ }
1375
+ .focus\:text-accent-foreground {
1376
+ &:focus {
1377
+ color: light-dark(
1378
+ var(--color-accent-foreground-light),
1379
+ var(--color-accent-foreground-dark)
1380
+ );
1381
+ }
1382
+ }
1383
+ .focus\:ring-2 {
1384
+ &:focus {
1385
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1386
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1387
+ }
1388
+ }
1389
+ .focus\:ring-ring {
1390
+ &:focus {
1391
+ --tw-ring-color: light-dark(var(--color-ring-light), var(--color-ring-dark));
1392
+ }
1393
+ }
1394
+ .focus\:ring-offset-2 {
1395
+ &:focus {
1396
+ --tw-ring-offset-width: 2px;
1397
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1398
+ }
1399
+ }
1400
+ .focus\:outline-none {
1401
+ &:focus {
1402
+ --tw-outline-style: none;
1403
+ outline-style: none;
1404
+ }
1405
+ }
1406
+ .focus-visible\:ring-2 {
1407
+ &:focus-visible {
1408
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1409
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1410
+ }
1411
+ }
1412
+ .focus-visible\:ring-ring {
1413
+ &:focus-visible {
1414
+ --tw-ring-color: light-dark(var(--color-ring-light), var(--color-ring-dark));
1415
+ }
1416
+ }
1417
+ .focus-visible\:ring-offset-2 {
1418
+ &:focus-visible {
1419
+ --tw-ring-offset-width: 2px;
1420
+ --tw-ring-offset-shadow: var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1421
+ }
1422
+ }
1423
+ .focus-visible\:outline-none {
1424
+ &:focus-visible {
1425
+ --tw-outline-style: none;
1426
+ outline-style: none;
1427
+ }
1428
+ }
1429
+ .disabled\:pointer-events-none {
1430
+ &:disabled {
1431
+ pointer-events: none;
1432
+ }
1433
+ }
1434
+ .disabled\:cursor-not-allowed {
1435
+ &:disabled {
1436
+ cursor: not-allowed;
1437
+ }
1438
+ }
1439
+ .disabled\:opacity-50 {
1440
+ &:disabled {
1441
+ opacity: 50%;
1442
+ }
1443
+ }
1444
+ .data-\[disabled\]\:pointer-events-none {
1445
+ &[data-disabled] {
1446
+ pointer-events: none;
1447
+ }
1448
+ }
1449
+ .data-\[disabled\]\:opacity-50 {
1450
+ &[data-disabled] {
1451
+ opacity: 50%;
1452
+ }
1453
+ }
1454
+ .data-\[side\=bottom\]\:translate-y-1 {
1455
+ &[data-side="bottom"] {
1456
+ --tw-translate-y: calc(var(--spacing) * 1);
1457
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1458
+ }
1459
+ }
1460
+ .data-\[side\=left\]\:-translate-x-1 {
1461
+ &[data-side="left"] {
1462
+ --tw-translate-x: calc(var(--spacing) * -1);
1463
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1464
+ }
1465
+ }
1466
+ .data-\[side\=right\]\:translate-x-1 {
1467
+ &[data-side="right"] {
1468
+ --tw-translate-x: calc(var(--spacing) * 1);
1469
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1470
+ }
1471
+ }
1472
+ .data-\[side\=top\]\:-translate-y-1 {
1473
+ &[data-side="top"] {
1474
+ --tw-translate-y: calc(var(--spacing) * -1);
1475
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1476
+ }
1477
+ }
1478
+ .data-\[state\=checked\]\:bg-primary {
1479
+ &[data-state="checked"] {
1480
+ background-color: light-dark(var(--color-primary-light), var(--color-primary-dark));
1481
+ }
1482
+ }
1483
+ .data-\[state\=checked\]\:text-primary-foreground {
1484
+ &[data-state="checked"] {
1485
+ color: light-dark(
1486
+ var(--color-primary-foreground-light),
1487
+ var(--color-primary-foreground-dark)
1488
+ );
1489
+ }
1490
+ }
1491
+ .data-\[state\=open\]\:bg-accent {
1492
+ &[data-state="open"] {
1493
+ background-color: light-dark(var(--color-accent-light), var(--color-accent-dark));
1494
+ }
1495
+ }
1496
+ .data-\[state\=open\]\:text-muted-foreground {
1497
+ &[data-state="open"] {
1498
+ color: light-dark(
1499
+ var(--color-muted-foreground-light),
1500
+ var(--color-muted-foreground-dark)
1501
+ );
1502
+ }
1503
+ }
1504
+ .data-\[state\=selected\]\:bg-muted {
1505
+ &[data-state="selected"] {
1506
+ background-color: light-dark(var(--color-muted-light), var(--color-muted-dark));
1507
+ }
1508
+ }
1509
+ .sm\:flex-row {
1510
+ @media (width >= 40rem) {
1511
+ flex-direction: row;
1512
+ }
1513
+ }
1514
+ .sm\:justify-end {
1515
+ @media (width >= 40rem) {
1516
+ justify-content: flex-end;
1517
+ }
1518
+ }
1519
+ .sm\:space-x-2 {
1520
+ @media (width >= 40rem) {
1521
+ :where(& > :not(:last-child)) {
1522
+ --tw-space-x-reverse: 0;
1523
+ margin-inline-start: calc(calc(var(--spacing) * 2) * var(--tw-space-x-reverse));
1524
+ margin-inline-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-x-reverse)));
1525
+ }
1526
+ }
1527
+ }
1528
+ .sm\:rounded-lg {
1529
+ @media (width >= 40rem) {
1530
+ border-radius: var(--radius-lg);
1531
+ }
1532
+ }
1533
+ .sm\:text-left {
1534
+ @media (width >= 40rem) {
1535
+ text-align: left;
1536
+ }
1537
+ }
1538
+ .md\:grid-cols-2 {
1539
+ @media (width >= 48rem) {
1540
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1541
+ }
1542
+ }
1543
+ .md\:text-sm {
1544
+ @media (width >= 48rem) {
1545
+ font-size: var(--text-sm);
1546
+ line-height: var(--tw-leading, var(--text-sm--line-height));
1547
+ }
1548
+ }
1549
+ .lg\:grid-cols-3 {
1550
+ @media (width >= 64rem) {
1551
+ grid-template-columns: repeat(3, minmax(0, 1fr));
1552
+ }
1553
+ }
1554
+ .\[\&_svg\]\:pointer-events-none {
1555
+ & svg {
1556
+ pointer-events: none;
1557
+ }
1558
+ }
1559
+ .\[\&_svg\]\:size-4 {
1560
+ & svg {
1561
+ width: calc(var(--spacing) * 4);
1562
+ height: calc(var(--spacing) * 4);
1563
+ }
1564
+ }
1565
+ .\[\&_svg\]\:shrink-0 {
1566
+ & svg {
1567
+ flex-shrink: 0;
1568
+ }
1569
+ }
1570
+ .\[\&_tr\]\:border-b {
1571
+ & tr {
1572
+ border-bottom-style: var(--tw-border-style);
1573
+ border-bottom-width: 1px;
1574
+ }
1575
+ }
1576
+ .\[\&_tr\:last-child\]\:border-0 {
1577
+ & tr:last-child {
1578
+ border-style: var(--tw-border-style);
1579
+ border-width: 0px;
1580
+ }
1581
+ }
1582
+ .\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0 {
1583
+ &:has([role=checkbox]) {
1584
+ padding-right: calc(var(--spacing) * 0);
1585
+ }
1586
+ }
1587
+ .\[\&\>span\]\:line-clamp-1 {
1588
+ &>span {
1589
+ overflow: hidden;
1590
+ display: -webkit-box;
1591
+ -webkit-box-orient: vertical;
1592
+ -webkit-line-clamp: 1;
1593
+ }
1594
+ }
1595
+ .\[\&\>tr\]\:last\:border-b-0 {
1596
+ &>tr {
1597
+ &:last-child {
1598
+ border-bottom-style: var(--tw-border-style);
1599
+ border-bottom-width: 0px;
1600
+ }
1601
+ }
1602
+ }
1603
+ }
1604
+ :root {
1605
+ color-scheme: light dark;
1606
+ }
1607
+ * {
1608
+ border-color: var(--color-border);
1609
+ }
1610
+ body {
1611
+ background-color: var(--color-background);
1612
+ color: var(--color-foreground);
1613
+ font-family: system-ui,
1614
+ -apple-system,
1615
+ sans-serif;
1616
+ }
1617
+ @property --tw-translate-x {
1618
+ syntax: "*";
1619
+ inherits: false;
1620
+ initial-value: 0;
1621
+ }
1622
+ @property --tw-translate-y {
1623
+ syntax: "*";
1624
+ inherits: false;
1625
+ initial-value: 0;
1626
+ }
1627
+ @property --tw-translate-z {
1628
+ syntax: "*";
1629
+ inherits: false;
1630
+ initial-value: 0;
1631
+ }
1632
+ @property --tw-space-y-reverse {
1633
+ syntax: "*";
1634
+ inherits: false;
1635
+ initial-value: 0;
1636
+ }
1637
+ @property --tw-space-x-reverse {
1638
+ syntax: "*";
1639
+ inherits: false;
1640
+ initial-value: 0;
1641
+ }
1642
+ @property --tw-divide-y-reverse {
1643
+ syntax: "*";
1644
+ inherits: false;
1645
+ initial-value: 0;
1646
+ }
1647
+ @property --tw-border-style {
1648
+ syntax: "*";
1649
+ inherits: false;
1650
+ initial-value: solid;
1651
+ }
1652
+ @property --tw-gradient-position {
1653
+ syntax: "*";
1654
+ inherits: false;
1655
+ }
1656
+ @property --tw-gradient-from {
1657
+ syntax: "<color>";
1658
+ inherits: false;
1659
+ initial-value: #0000;
1660
+ }
1661
+ @property --tw-gradient-via {
1662
+ syntax: "<color>";
1663
+ inherits: false;
1664
+ initial-value: #0000;
1665
+ }
1666
+ @property --tw-gradient-to {
1667
+ syntax: "<color>";
1668
+ inherits: false;
1669
+ initial-value: #0000;
1670
+ }
1671
+ @property --tw-gradient-stops {
1672
+ syntax: "*";
1673
+ inherits: false;
1674
+ }
1675
+ @property --tw-gradient-via-stops {
1676
+ syntax: "*";
1677
+ inherits: false;
1678
+ }
1679
+ @property --tw-gradient-from-position {
1680
+ syntax: "<length-percentage>";
1681
+ inherits: false;
1682
+ initial-value: 0%;
1683
+ }
1684
+ @property --tw-gradient-via-position {
1685
+ syntax: "<length-percentage>";
1686
+ inherits: false;
1687
+ initial-value: 50%;
1688
+ }
1689
+ @property --tw-gradient-to-position {
1690
+ syntax: "<length-percentage>";
1691
+ inherits: false;
1692
+ initial-value: 100%;
1693
+ }
1694
+ @property --tw-leading {
1695
+ syntax: "*";
1696
+ inherits: false;
1697
+ }
1698
+ @property --tw-font-weight {
1699
+ syntax: "*";
1700
+ inherits: false;
1701
+ }
1702
+ @property --tw-tracking {
1703
+ syntax: "*";
1704
+ inherits: false;
1705
+ }
1706
+ @property --tw-shadow {
1707
+ syntax: "*";
1708
+ inherits: false;
1709
+ initial-value: 0 0 #0000;
1710
+ }
1711
+ @property --tw-shadow-color {
1712
+ syntax: "*";
1713
+ inherits: false;
1714
+ }
1715
+ @property --tw-shadow-alpha {
1716
+ syntax: "<percentage>";
1717
+ inherits: false;
1718
+ initial-value: 100%;
1719
+ }
1720
+ @property --tw-inset-shadow {
1721
+ syntax: "*";
1722
+ inherits: false;
1723
+ initial-value: 0 0 #0000;
1724
+ }
1725
+ @property --tw-inset-shadow-color {
1726
+ syntax: "*";
1727
+ inherits: false;
1728
+ }
1729
+ @property --tw-inset-shadow-alpha {
1730
+ syntax: "<percentage>";
1731
+ inherits: false;
1732
+ initial-value: 100%;
1733
+ }
1734
+ @property --tw-ring-color {
1735
+ syntax: "*";
1736
+ inherits: false;
1737
+ }
1738
+ @property --tw-ring-shadow {
1739
+ syntax: "*";
1740
+ inherits: false;
1741
+ initial-value: 0 0 #0000;
1742
+ }
1743
+ @property --tw-inset-ring-color {
1744
+ syntax: "*";
1745
+ inherits: false;
1746
+ }
1747
+ @property --tw-inset-ring-shadow {
1748
+ syntax: "*";
1749
+ inherits: false;
1750
+ initial-value: 0 0 #0000;
1751
+ }
1752
+ @property --tw-ring-inset {
1753
+ syntax: "*";
1754
+ inherits: false;
1755
+ }
1756
+ @property --tw-ring-offset-width {
1757
+ syntax: "<length>";
1758
+ inherits: false;
1759
+ initial-value: 0px;
1760
+ }
1761
+ @property --tw-ring-offset-color {
1762
+ syntax: "*";
1763
+ inherits: false;
1764
+ initial-value: #fff;
1765
+ }
1766
+ @property --tw-ring-offset-shadow {
1767
+ syntax: "*";
1768
+ inherits: false;
1769
+ initial-value: 0 0 #0000;
1770
+ }
1771
+ @property --tw-outline-style {
1772
+ syntax: "*";
1773
+ inherits: false;
1774
+ initial-value: solid;
1775
+ }
1776
+ @property --tw-blur {
1777
+ syntax: "*";
1778
+ inherits: false;
1779
+ }
1780
+ @property --tw-brightness {
1781
+ syntax: "*";
1782
+ inherits: false;
1783
+ }
1784
+ @property --tw-contrast {
1785
+ syntax: "*";
1786
+ inherits: false;
1787
+ }
1788
+ @property --tw-grayscale {
1789
+ syntax: "*";
1790
+ inherits: false;
1791
+ }
1792
+ @property --tw-hue-rotate {
1793
+ syntax: "*";
1794
+ inherits: false;
1795
+ }
1796
+ @property --tw-invert {
1797
+ syntax: "*";
1798
+ inherits: false;
1799
+ }
1800
+ @property --tw-opacity {
1801
+ syntax: "*";
1802
+ inherits: false;
1803
+ }
1804
+ @property --tw-saturate {
1805
+ syntax: "*";
1806
+ inherits: false;
1807
+ }
1808
+ @property --tw-sepia {
1809
+ syntax: "*";
1810
+ inherits: false;
1811
+ }
1812
+ @property --tw-drop-shadow {
1813
+ syntax: "*";
1814
+ inherits: false;
1815
+ }
1816
+ @property --tw-drop-shadow-color {
1817
+ syntax: "*";
1818
+ inherits: false;
1819
+ }
1820
+ @property --tw-drop-shadow-alpha {
1821
+ syntax: "<percentage>";
1822
+ inherits: false;
1823
+ initial-value: 100%;
1824
+ }
1825
+ @property --tw-drop-shadow-size {
1826
+ syntax: "*";
1827
+ inherits: false;
1828
+ }
1829
+ @property --tw-duration {
1830
+ syntax: "*";
1831
+ inherits: false;
1832
+ }
1833
+ @keyframes spin {
1834
+ to {
1835
+ transform: rotate(360deg);
1836
+ }
1837
+ }
1838
+ @keyframes pulse {
1839
+ 50% {
1840
+ opacity: 0.5;
1841
+ }
1842
+ }
1843
+ @layer properties {
1844
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
1845
+ *, ::before, ::after, ::backdrop {
1846
+ --tw-translate-x: 0;
1847
+ --tw-translate-y: 0;
1848
+ --tw-translate-z: 0;
1849
+ --tw-space-y-reverse: 0;
1850
+ --tw-space-x-reverse: 0;
1851
+ --tw-divide-y-reverse: 0;
1852
+ --tw-border-style: solid;
1853
+ --tw-gradient-position: initial;
1854
+ --tw-gradient-from: #0000;
1855
+ --tw-gradient-via: #0000;
1856
+ --tw-gradient-to: #0000;
1857
+ --tw-gradient-stops: initial;
1858
+ --tw-gradient-via-stops: initial;
1859
+ --tw-gradient-from-position: 0%;
1860
+ --tw-gradient-via-position: 50%;
1861
+ --tw-gradient-to-position: 100%;
1862
+ --tw-leading: initial;
1863
+ --tw-font-weight: initial;
1864
+ --tw-tracking: initial;
1865
+ --tw-shadow: 0 0 #0000;
1866
+ --tw-shadow-color: initial;
1867
+ --tw-shadow-alpha: 100%;
1868
+ --tw-inset-shadow: 0 0 #0000;
1869
+ --tw-inset-shadow-color: initial;
1870
+ --tw-inset-shadow-alpha: 100%;
1871
+ --tw-ring-color: initial;
1872
+ --tw-ring-shadow: 0 0 #0000;
1873
+ --tw-inset-ring-color: initial;
1874
+ --tw-inset-ring-shadow: 0 0 #0000;
1875
+ --tw-ring-inset: initial;
1876
+ --tw-ring-offset-width: 0px;
1877
+ --tw-ring-offset-color: #fff;
1878
+ --tw-ring-offset-shadow: 0 0 #0000;
1879
+ --tw-outline-style: solid;
1880
+ --tw-blur: initial;
1881
+ --tw-brightness: initial;
1882
+ --tw-contrast: initial;
1883
+ --tw-grayscale: initial;
1884
+ --tw-hue-rotate: initial;
1885
+ --tw-invert: initial;
1886
+ --tw-opacity: initial;
1887
+ --tw-saturate: initial;
1888
+ --tw-sepia: initial;
1889
+ --tw-drop-shadow: initial;
1890
+ --tw-drop-shadow-color: initial;
1891
+ --tw-drop-shadow-alpha: 100%;
1892
+ --tw-drop-shadow-size: initial;
1893
+ --tw-duration: initial;
1894
+ }
1895
+ }
1896
+ }