twntyx-css 1.0.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 (228) hide show
  1. package/README.md +105 -0
  2. package/llm/CHANGELOG.md +7 -0
  3. package/llm/components/ai-background.json +90 -0
  4. package/llm/components/ai-orb.json +91 -0
  5. package/llm/components/ai-perl.json +91 -0
  6. package/llm/components/all-components.json +104 -0
  7. package/llm/components/animation-references.json +84 -0
  8. package/llm/components/avatar.json +149 -0
  9. package/llm/components/badge.json +263 -0
  10. package/llm/components/banner-marketplace.json +81 -0
  11. package/llm/components/banner.json +120 -0
  12. package/llm/components/breadcrumb.json +169 -0
  13. package/llm/components/button-container.json +150 -0
  14. package/llm/components/button-feedback.json +155 -0
  15. package/llm/components/button.json +290 -0
  16. package/llm/components/card-assessment.json +93 -0
  17. package/llm/components/card-test.json +83 -0
  18. package/llm/components/card.json +94 -0
  19. package/llm/components/chat.json +155 -0
  20. package/llm/components/checkbox.json +186 -0
  21. package/llm/components/checkmark.json +175 -0
  22. package/llm/components/collapsible.json +100 -0
  23. package/llm/components/color-palette.json +79 -0
  24. package/llm/components/color-usage.json +83 -0
  25. package/llm/components/combobox.json +143 -0
  26. package/llm/components/command-palette.json +159 -0
  27. package/llm/components/countdown.json +113 -0
  28. package/llm/components/datepicker.json +151 -0
  29. package/llm/components/divider.json +104 -0
  30. package/llm/components/empty-state.json +80 -0
  31. package/llm/components/field.json +123 -0
  32. package/llm/components/fieldset.json +78 -0
  33. package/llm/components/file-upload.json +163 -0
  34. package/llm/components/form-example.json +82 -0
  35. package/llm/components/getting-started.json +70 -0
  36. package/llm/components/icons-reference.json +78 -0
  37. package/llm/components/illustrations-library.json +78 -0
  38. package/llm/components/input-group.json +94 -0
  39. package/llm/components/introduction.json +71 -0
  40. package/llm/components/join.json +105 -0
  41. package/llm/components/kbd.json +139 -0
  42. package/llm/components/key-value.json +86 -0
  43. package/llm/components/link.json +120 -0
  44. package/llm/components/loader.json +117 -0
  45. package/llm/components/logotype.json +75 -0
  46. package/llm/components/menu.json +192 -0
  47. package/llm/components/modal.json +167 -0
  48. package/llm/components/navbar.json +158 -0
  49. package/llm/components/pagination.json +122 -0
  50. package/llm/components/pie-chart.json +94 -0
  51. package/llm/components/popover.json +174 -0
  52. package/llm/components/progress-bullet.json +203 -0
  53. package/llm/components/progress-linear.json +129 -0
  54. package/llm/components/progress-radial.json +125 -0
  55. package/llm/components/radio.json +162 -0
  56. package/llm/components/range-slider.json +125 -0
  57. package/llm/components/scrollbar.json +96 -0
  58. package/llm/components/select-input.json +224 -0
  59. package/llm/components/shadows.json +107 -0
  60. package/llm/components/skeleton.json +84 -0
  61. package/llm/components/stacked-chart.json +100 -0
  62. package/llm/components/state.json +138 -0
  63. package/llm/components/stepper.json +95 -0
  64. package/llm/components/steps.json +177 -0
  65. package/llm/components/surface.json +181 -0
  66. package/llm/components/table.json +223 -0
  67. package/llm/components/tabs.json +147 -0
  68. package/llm/components/template-ai.json +80 -0
  69. package/llm/components/template-login.json +88 -0
  70. package/llm/components/template-stats.json +76 -0
  71. package/llm/components/text-input.json +275 -0
  72. package/llm/components/textarea.json +183 -0
  73. package/llm/components/timeline.json +142 -0
  74. package/llm/components/toast.json +164 -0
  75. package/llm/components/toggle.json +158 -0
  76. package/llm/components/tool-svg-to-base64.json +78 -0
  77. package/llm/components/tool-svg-to-icon-data.json +81 -0
  78. package/llm/components/tooltip.json +90 -0
  79. package/llm/examples/ai-background.html +1 -0
  80. package/llm/examples/ai-orb.html +1 -0
  81. package/llm/examples/ai-perl.html +1 -0
  82. package/llm/examples/all-components.html +1 -0
  83. package/llm/examples/animation-references.html +1 -0
  84. package/llm/examples/avatar.html +1 -0
  85. package/llm/examples/badge.html +1 -0
  86. package/llm/examples/banner-marketplace.html +1 -0
  87. package/llm/examples/banner.html +1 -0
  88. package/llm/examples/breadcrumb.html +1 -0
  89. package/llm/examples/button-container.html +1 -0
  90. package/llm/examples/button-feedback.html +1 -0
  91. package/llm/examples/button.html +3 -0
  92. package/llm/examples/card-assessment.html +1 -0
  93. package/llm/examples/card-test.html +1 -0
  94. package/llm/examples/card.html +1 -0
  95. package/llm/examples/chat.html +1 -0
  96. package/llm/examples/checkbox.html +1 -0
  97. package/llm/examples/checkmark.html +1 -0
  98. package/llm/examples/collapsible.html +1 -0
  99. package/llm/examples/color-palette.html +1 -0
  100. package/llm/examples/color-usage.html +1 -0
  101. package/llm/examples/combobox.html +1 -0
  102. package/llm/examples/command-palette.html +1 -0
  103. package/llm/examples/countdown.html +1 -0
  104. package/llm/examples/datepicker.html +1 -0
  105. package/llm/examples/divider.html +1 -0
  106. package/llm/examples/empty-state.html +1 -0
  107. package/llm/examples/field.html +1 -0
  108. package/llm/examples/fieldset.html +1 -0
  109. package/llm/examples/file-upload.html +1 -0
  110. package/llm/examples/form-example.html +1 -0
  111. package/llm/examples/getting-started.html +1 -0
  112. package/llm/examples/icons-reference.html +1 -0
  113. package/llm/examples/illustrations-library.html +1 -0
  114. package/llm/examples/input-group.html +1 -0
  115. package/llm/examples/introduction.html +1 -0
  116. package/llm/examples/join.html +1 -0
  117. package/llm/examples/kbd.html +1 -0
  118. package/llm/examples/key-value.html +1 -0
  119. package/llm/examples/link.html +1 -0
  120. package/llm/examples/loader.html +1 -0
  121. package/llm/examples/logotype.html +1 -0
  122. package/llm/examples/menu.html +1 -0
  123. package/llm/examples/modal.html +16 -0
  124. package/llm/examples/navbar.html +1 -0
  125. package/llm/examples/pagination.html +1 -0
  126. package/llm/examples/pie-chart.html +1 -0
  127. package/llm/examples/popover.html +1 -0
  128. package/llm/examples/progress-bullet.html +1 -0
  129. package/llm/examples/progress-linear.html +1 -0
  130. package/llm/examples/progress-radial.html +1 -0
  131. package/llm/examples/radio.html +1 -0
  132. package/llm/examples/range-slider.html +1 -0
  133. package/llm/examples/scrollbar.html +1 -0
  134. package/llm/examples/select-input.html +1 -0
  135. package/llm/examples/shadows.html +1 -0
  136. package/llm/examples/skeleton.html +1 -0
  137. package/llm/examples/stacked-chart.html +1 -0
  138. package/llm/examples/state.html +1 -0
  139. package/llm/examples/stepper.html +1 -0
  140. package/llm/examples/steps.html +1 -0
  141. package/llm/examples/surface.html +1 -0
  142. package/llm/examples/table.html +16 -0
  143. package/llm/examples/tabs.html +1 -0
  144. package/llm/examples/template-ai.html +1 -0
  145. package/llm/examples/template-login.html +1 -0
  146. package/llm/examples/template-stats.html +1 -0
  147. package/llm/examples/text-input.html +10 -0
  148. package/llm/examples/textarea.html +1 -0
  149. package/llm/examples/timeline.html +1 -0
  150. package/llm/examples/toast.html +5 -0
  151. package/llm/examples/toggle.html +1 -0
  152. package/llm/examples/tool-svg-to-base64.html +1 -0
  153. package/llm/examples/tool-svg-to-icon-data.html +1 -0
  154. package/llm/examples/tooltip.html +1 -0
  155. package/llm/index.json +1615 -0
  156. package/llm/llms.txt +18 -0
  157. package/llm/patterns.json +111 -0
  158. package/llm/rules.json +47 -0
  159. package/llm/schema.json +804 -0
  160. package/llm/tokens.json +3629 -0
  161. package/package.json +30 -0
  162. package/styles/ai.css +114 -0
  163. package/styles/animation.css +2493 -0
  164. package/styles/avatar.css +101 -0
  165. package/styles/background-ai.css +118 -0
  166. package/styles/badge.css +274 -0
  167. package/styles/banner.css +98 -0
  168. package/styles/breadcrumb.css +72 -0
  169. package/styles/button.css +621 -0
  170. package/styles/card.css +27 -0
  171. package/styles/chart-pie.css +39 -0
  172. package/styles/chart-stacked.css +91 -0
  173. package/styles/chat.css +506 -0
  174. package/styles/checkmark.css +105 -0
  175. package/styles/code.css +264 -0
  176. package/styles/collapsible.css +93 -0
  177. package/styles/colors.css +536 -0
  178. package/styles/combobox.css +66 -0
  179. package/styles/command.css +81 -0
  180. package/styles/contest.css +227 -0
  181. package/styles/countdown.css +65 -0
  182. package/styles/datepicker.css +124 -0
  183. package/styles/divider.css +72 -0
  184. package/styles/drawer.css +142 -0
  185. package/styles/dropdown.css +22 -0
  186. package/styles/empty-state.css +48 -0
  187. package/styles/field.css +47 -0
  188. package/styles/fieldset.css +24 -0
  189. package/styles/form-checkbox-radio-toggle.css +233 -0
  190. package/styles/form-fileupload.css +146 -0
  191. package/styles/form-rangeslider.css +106 -0
  192. package/styles/form-shared.css +41 -0
  193. package/styles/form-text-select.css +411 -0
  194. package/styles/form.css +86 -0
  195. package/styles/globals.css +66 -0
  196. package/styles/input-group.css +63 -0
  197. package/styles/join.css +141 -0
  198. package/styles/kbd.css +55 -0
  199. package/styles/key-value.css +44 -0
  200. package/styles/link.css +48 -0
  201. package/styles/loader.css +183 -0
  202. package/styles/logotype.css +13 -0
  203. package/styles/menu.css +317 -0
  204. package/styles/modal.css +172 -0
  205. package/styles/navbar.css +48 -0
  206. package/styles/package-quill.css +1001 -0
  207. package/styles/pagination.css +147 -0
  208. package/styles/panel.css +113 -0
  209. package/styles/popover.css +303 -0
  210. package/styles/prism.css +60 -0
  211. package/styles/progress.css +209 -0
  212. package/styles/scrollbar.css +17 -0
  213. package/styles/shadow.css +25 -0
  214. package/styles/shared.css +226 -0
  215. package/styles/skeleton.css +34 -0
  216. package/styles/state.css +150 -0
  217. package/styles/stepper.css +72 -0
  218. package/styles/steps.css +98 -0
  219. package/styles/surface.css +252 -0
  220. package/styles/tab.css +286 -0
  221. package/styles/table.css +243 -0
  222. package/styles/theme.css +126 -0
  223. package/styles/timeline.css +193 -0
  224. package/styles/toast.css +150 -0
  225. package/styles/tooltip.css +8 -0
  226. package/styles/typography.css +160 -0
  227. package/styles/utility.css +20 -0
  228. package/tailwind.config.cjs +9 -0
@@ -0,0 +1,411 @@
1
+ /*----------------------------*/
2
+ /* BASE INPUT STYLES */
3
+ /*----------------------------*/
4
+
5
+ /* Common base styles for inputs and selects */
6
+ @utility input-text-select-base {
7
+ --input-text-select-height: 44px;
8
+ --input-text-select-border-radius: calc(var(--input-text-select-height) / 2);
9
+ @apply /* w-full */
10
+ text-sm
11
+ rounded-(--input-text-select-border-radius)
12
+ border
13
+ border-line-highlight
14
+ bg-core-ui-50
15
+ dark:bg-core-ui-900
16
+ include-active
17
+ text-text-default
18
+ min-h-(--input-text-select-height);
19
+
20
+ /* Placeholder styles */
21
+ &::placeholder,
22
+ & > input::placeholder,
23
+ & > select::placeholder {
24
+ @apply text-text-disabled;
25
+ }
26
+
27
+ /* Disabled state */
28
+ &:has(input:disabled),
29
+ &:has(select:disabled) {
30
+ @apply cursor-not-allowed bg-core-ui-100 dark:bg-core-ui-700 text-text-disabled active:outline-transparent;
31
+
32
+ > * {
33
+ @apply cursor-not-allowed;
34
+ }
35
+ &:hover {
36
+ @apply border-line-highlight;
37
+ }
38
+ }
39
+
40
+ &:has(input:not(:disabled):hover),
41
+ &:has(select:not(:disabled):hover) {
42
+ @apply border-line-strong;
43
+ }
44
+ &:has(input:disabled),
45
+ &:has(select:disabled) {
46
+ @apply border-line-default;
47
+ }
48
+
49
+ /* Read-only state */
50
+ &:has(input:read-only) {
51
+ @apply bg-core-ui-100 dark:bg-core-ui-700 active:outline-transparent;
52
+ &:hover {
53
+ @apply border-line-highlight;
54
+ }
55
+ }
56
+ }
57
+
58
+ /* Basic input/select styles */
59
+ @utility input-text-select {
60
+ @apply flex-1 px-4 py-2 w-full input-text-select-base;
61
+ }
62
+
63
+ @utility input-text {
64
+ @apply overflow-hidden flex-1 content-center min-h-[calc(var(--input-text-select-height)-2px)];
65
+ > span {
66
+ @apply truncate;
67
+ }
68
+ }
69
+
70
+ @utility input-select {
71
+ @apply overflow-hidden flex-1 content-center min-h-[calc(var(--input-text-select-height)-2px)];
72
+ > span {
73
+ @apply truncate;
74
+ }
75
+ }
76
+
77
+ /* Required indicator */
78
+ .input-required::after {
79
+ @apply content-['*'] ml-1 text-text-error;
80
+ }
81
+
82
+ /* Helper text */
83
+ @utility input-helper {
84
+ @apply mt-1.5 text-sm text-text-tertiary;
85
+ }
86
+
87
+ /* Error state */
88
+ @utility input-error {
89
+ @apply border-line-error focus:border-line-error focus:ring-line-error/20;
90
+ }
91
+
92
+ /* Textarea specific styles */
93
+ @utility input-textarea {
94
+ @apply flex-1 resize min-h-[calc(var(--input-text-select-height)-2px)];
95
+
96
+ &:not(.input-resize-none) {
97
+ field-sizing: content;
98
+ }
99
+
100
+ &.input-resize-none {
101
+ @apply resize-none;
102
+ }
103
+
104
+ &.input-resize-y {
105
+ @apply resize-y;
106
+ }
107
+
108
+ &.input-resize-x {
109
+ @apply resize-x;
110
+ }
111
+
112
+ &.input-autosize {
113
+ @apply overflow-hidden;
114
+ /* Add auto-resize functionality if needed */
115
+ }
116
+ }
117
+
118
+ /* Standalone modifiers for safe @apply usage */
119
+ @utility input-chevron {
120
+ &::after {
121
+ @apply content-['']
122
+ transition-transform
123
+ include-transition
124
+ bg-line-focus/75
125
+ mask-carat
126
+ size-5
127
+ m-auto
128
+ mr-2;
129
+ }
130
+
131
+ &:has(input:focus),
132
+ &:has(select:focus),
133
+ &.is-active {
134
+ &::after {
135
+ @apply -rotate-180 bg-line-focus;
136
+ }
137
+ }
138
+ }
139
+
140
+ @utility input-ghost {
141
+ @apply bg-transparent border-transparent shadow-none;
142
+
143
+ &:hover {
144
+ @apply border-transparent;
145
+ }
146
+
147
+ &:focus-within {
148
+ @apply border-transparent shadow-none;
149
+ }
150
+
151
+ &.is-active,
152
+ &:has(input:focus),
153
+ &:has(select:focus),
154
+ &:has(textarea:focus) {
155
+ @apply bg-core-black/5 dark:bg-core-white/5 border-line-default;
156
+ }
157
+
158
+ .input-text,
159
+ .input-select {
160
+ @apply bg-transparent;
161
+ }
162
+
163
+ &:hover .input-text,
164
+ &:hover .input-select {
165
+ @apply bg-core-ui-100/0 dark:bg-core-ui-800/0;
166
+ }
167
+ }
168
+
169
+ @utility input-rounded-md {
170
+ --input-text-select-border-radius: 0.375rem; /* 6px */
171
+ }
172
+
173
+ /*----------------------------*/
174
+ /* INPUT CONTROL COMPONENTS */
175
+ /*----------------------------*/
176
+
177
+ @utility input-control {
178
+ @apply flex gap-0 items-stretch p-0 input-text-select-base;
179
+
180
+ /* Size modifiers */
181
+ &.input-xs {
182
+ --input-text-select-height: 20px;
183
+ @apply text-xs;
184
+ }
185
+ &.input-sm {
186
+ --input-text-select-height: 32px;
187
+ @apply text-sm;
188
+ }
189
+ &.input-lg {
190
+ --input-text-select-height: 56px;
191
+ }
192
+
193
+ /* State modifiers */
194
+ &.has-error {
195
+ @apply border-line-error bg-background-error/25 text-text-error;
196
+ }
197
+ &.has-success {
198
+ @apply border-line-success bg-background-success/25 text-text-success;
199
+ }
200
+ &.has-info {
201
+ @apply border-line-info bg-background-info/25 text-text-info;
202
+ }
203
+ &.has-warning {
204
+ @apply border-line-warning bg-background-warning/25 text-text-warning;
205
+ }
206
+ &.has-attention {
207
+ @apply bg-background-brand/10 border-brand-moderate text-brand-strong;
208
+ }
209
+
210
+ /* Border radius handling for first/last elements */
211
+ > .input-addon,
212
+ > .input-text,
213
+ > .input-select {
214
+ &:first-child {
215
+ @apply rounded-l-(--input-text-select-border-radius);
216
+ }
217
+ &:last-child {
218
+ @apply rounded-r-(--input-text-select-border-radius);
219
+ }
220
+ }
221
+
222
+ /* Input and select styling within control */
223
+ .input-text,
224
+ .input-select {
225
+ @apply leading-(--input-text-select-height) px-[calc(var(--input-text-select-height)/4)] bg-transparent border-none;
226
+ &:focus {
227
+ @apply outline-hidden;
228
+ }
229
+ }
230
+
231
+ &.is-active,
232
+ &:has(input:focus),
233
+ &:has(select:focus),
234
+ &:has(textarea:focus) {
235
+ @apply border-line-focus;
236
+ }
237
+
238
+ &:not(.input-divide) {
239
+ > .input-text,
240
+ > .input-select {
241
+ &:not(:first-child) {
242
+ @apply pl-0;
243
+ }
244
+ }
245
+ }
246
+
247
+ &.input-divide {
248
+ @apply divide-x divide-solid divide-line-highlight;
249
+
250
+ &:has(input:not(:disabled):hover),
251
+ &:has(select:not(:disabled):hover) {
252
+ @apply divide-line-strong;
253
+ }
254
+
255
+ &:has(input:focus),
256
+ &:has(select:focus) {
257
+ @apply divide-line-focus;
258
+ }
259
+ }
260
+
261
+ /* Loading state */
262
+ &.is-loading {
263
+ @apply relative;
264
+ &::after {
265
+ @apply content-[''] shrink-0 my-auto loader-base size-[calc(var(--input-text-select-height)/2)]! mr-[calc(var(--input-text-select-height)/4.5)]!;
266
+ }
267
+ }
268
+
269
+ /* Addon styling */
270
+ .input-addon {
271
+ @apply text-text-tertiary;
272
+ }
273
+
274
+ /* Focus state addon color */
275
+ &:has(textarea:focus),
276
+ &:has(input:focus),
277
+ &:has(select:focus) {
278
+ .input-addon {
279
+ @apply text-text-default;
280
+ }
281
+ }
282
+
283
+ /* Active and hover states */
284
+ &:active {
285
+ @apply bg-transparent;
286
+ }
287
+
288
+ &:hover {
289
+ :where(input, select) {
290
+ &:not(:last-child) {
291
+ @apply border-line-strong;
292
+ }
293
+ }
294
+ }
295
+
296
+ /* Input with badges */
297
+ &:has(.badge) {
298
+ @apply flex-wrap;
299
+ .input-select,
300
+ .input-text {
301
+ @apply w-[inherit];
302
+ }
303
+ .input-addon:has(.badge) {
304
+ @apply flex-wrap gap-1 px-[calc(var(--input-text-select-height)/6)] my-1;
305
+
306
+ .badge {
307
+ @apply text-[10px] py-0.5;
308
+ &:has(button) {
309
+ @apply pr-1;
310
+ }
311
+ }
312
+ &:not(:empty) {
313
+ + .input-text {
314
+ @apply hidden;
315
+ }
316
+ }
317
+ }
318
+ }
319
+
320
+ /* Roundness variants */
321
+ &.input-rounded-none {
322
+ --input-text-select-border-radius: 0px;
323
+ }
324
+ &.input-rounded-sm {
325
+ --input-text-select-border-radius: 0.125rem; /* 2px */
326
+ }
327
+ &.input-rounded-lg {
328
+ --input-text-select-border-radius: 0.5rem; /* 8px */
329
+ }
330
+
331
+ /* Add textarea specific control styles */
332
+ > .input-textarea {
333
+ @apply px-[calc(var(--input-text-select-height)/4)] py-2 bg-transparent border-none leading-6;
334
+
335
+ &:focus {
336
+ @apply outline-hidden;
337
+ }
338
+ }
339
+ }
340
+
341
+ @utility input-addon {
342
+ @apply flex isolate items-center px-2 max-w-full text-text-secondary shrink-0;
343
+
344
+ &:has(select),
345
+ &:has(button:not(.button)) {
346
+ @apply px-0;
347
+ }
348
+
349
+ &:has(.button) {
350
+ @apply px-[calc(var(--input-text-select-height)/8)];
351
+ }
352
+
353
+ > select,
354
+ > button:not(.button) {
355
+ @apply h-full;
356
+ }
357
+
358
+ > select {
359
+ @apply bg-transparent;
360
+ &:focus {
361
+ @apply outline-1 outline-offset-0 outline-line-focus;
362
+ }
363
+ }
364
+
365
+ > button:not(.button) {
366
+ @apply px-4;
367
+ &:hover,
368
+ &:active {
369
+ @apply bg-core-ui-100 dark:bg-core-ui-800 text-text-default/60;
370
+ }
371
+ }
372
+
373
+ /* Border radius handling for buttons and selects */
374
+ &:first-child {
375
+ > select,
376
+ > button:not(.button) {
377
+ @apply rounded-l-(--input-text-select-border-radius);
378
+ }
379
+ }
380
+ &:last-child {
381
+ > select,
382
+ > button:not(.button) {
383
+ @apply rounded-r-(--input-text-select-border-radius);
384
+ }
385
+ }
386
+ }
387
+
388
+ /*----------------------------*/
389
+ /* SELECT ELEMENT STYLING */
390
+ /*----------------------------*/
391
+
392
+ select {
393
+ @apply pr-8!
394
+ appearance-none
395
+ text-text-default
396
+ bg-no-repeat
397
+ bg-[url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23737373%22%20d%3D%22M11.9998%2014.677C11.8793%2014.677%2011.7671%2014.6578%2011.6633%2014.6193C11.5594%2014.5808%2011.4607%2014.5148%2011.367%2014.4213L6.87276%209.92701C6.73442%209.78851%206.66359%209.61443%206.66026%209.40476C6.65709%209.19526%206.72792%209.01801%206.87276%208.87301C7.01776%208.72818%207.19342%208.65576%207.39976%208.65576C7.60609%208.65576%207.78176%208.72818%207.92676%208.87301L11.9998%2012.9463L16.0728%208.87301C16.2113%208.73468%2016.3853%208.66385%2016.595%208.66051C16.8045%208.65735%2016.9818%208.72818%2017.1268%208.87301C17.2716%209.01801%2017.344%209.19368%2017.344%209.40001C17.344%209.60635%2017.2716%209.78201%2017.1268%209.92701L12.6325%2014.4213C12.5388%2014.5148%2012.4401%2014.5808%2012.3363%2014.6193C12.2324%2014.6578%2012.1203%2014.677%2011.9998%2014.677Z%22%2F%3E%3C%2Fsvg%3E')]
398
+ dark:bg-[url('data:image/svg+xml,%3Csvg%20viewBox%3D%220%200%2024%2024%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill%3D%22%23B9B9B9%22%20d%3D%22M11.9998%2014.677C11.8793%2014.677%2011.7671%2014.6578%2011.6633%2014.6193C11.5594%2014.5808%2011.4607%2014.5148%2011.367%2014.4213L6.87276%209.92701C6.73442%209.78851%206.66359%209.61443%206.66026%209.40476C6.65709%209.19526%206.72792%209.01801%206.87276%208.87301C7.01776%208.72818%207.19342%208.65576%207.39976%208.65576C7.60609%208.65576%207.78176%208.72818%207.92676%208.87301L11.9998%2012.9463L16.0728%208.87301C16.2113%208.73468%2016.3853%208.66385%2016.595%208.66051C16.8045%208.65735%2016.9818%208.72818%2017.1268%208.87301C17.2716%209.01801%2017.344%209.19368%2017.344%209.40001C17.344%209.60635%2017.2716%209.78201%2017.1268%209.92701L12.6325%2014.4213C12.5388%2014.5148%2012.4401%2014.5808%2012.3363%2014.6193C12.2324%2014.6578%2012.1203%2014.677%2011.9998%2014.677Z%22%2F%3E%3C%2Fsvg%3E')];
399
+ background-position: right 0.5rem center;
400
+ background-size: 20px;
401
+ }
402
+
403
+ /* Add to the dropdown styles */
404
+ @utility dropdown-option {
405
+ @apply px-3 py-2 w-full text-left rounded-md hover:bg-background-surface-sunken;
406
+
407
+ /* Selected state (keyboard navigation) */
408
+ .is-selected & {
409
+ @apply bg-background-surface-sunken;
410
+ }
411
+ }
@@ -0,0 +1,86 @@
1
+ /*----------------------------*/
2
+ /* FORM */
3
+ /*----------------------------*/
4
+
5
+ .form-input {
6
+ @apply
7
+ items-center
8
+ px-4
9
+ py-2
10
+ w-full
11
+ rounded-full
12
+ border
13
+ transition-colors
14
+ cursor-pointer
15
+ bg-background-surface
16
+ border-line-default
17
+ focus:outline-hidden
18
+ focus:ring-0
19
+ disabled:cursor-not-allowed
20
+ disabled:hover:border-line-default
21
+ [&svg]:fill-text-tertiary
22
+ include-border-secondary
23
+ outline-2
24
+ outline-offset-2
25
+ outline-line-brand/0
26
+ ;
27
+ }
28
+
29
+ .input-group > input,
30
+ .form-input {
31
+ @apply
32
+ text-sm
33
+ outline-hidden
34
+ min-h-11
35
+ ;
36
+ }
37
+
38
+ .input-group {
39
+ @apply
40
+ flex
41
+ items-center
42
+ rounded-full
43
+ include-border-secondary
44
+ *:relative
45
+ [&>*:not(input)]:z-10
46
+ [&>input]:z-0
47
+ [&>input]:bg-background-surface/0
48
+ [&>input]:border-none
49
+ [&>input]:flex-1
50
+ [&>input]:min-h-11
51
+ [&>input:first-child]:pl-4
52
+ [&>input:first-child]:rounded-s-full
53
+ [&>input:last-child]:pr-4
54
+ [&>input:last-child]:rounded-e-full
55
+ [&>input:focus]:ring-0
56
+ [&>.input-icon]:absolute
57
+ [&>.input-icon]:w-6
58
+ [&>.input-icon]:h-6
59
+ [&>.input-icon]:top-1/2
60
+ [&>.input-icon]:transform
61
+ [&>.input-icon]:-translate-y-1/2
62
+ [&>.input-icon:first-child]:left-3
63
+ [&>.input-icon:last-child]:right-3
64
+ [&>.input-icon:first-child+input]:pl-12
65
+ ;
66
+
67
+ &:has(input:focus-visible) {
68
+ @apply
69
+ border-line-focus
70
+ ;
71
+
72
+ > input {
73
+ @apply
74
+ ring-0
75
+ outline-hidden
76
+ ;
77
+ }
78
+ }
79
+ &:has(input:focus-within) {
80
+ @apply
81
+ outline-line-brand
82
+ interactive-base
83
+ ;
84
+ }
85
+
86
+ }
@@ -0,0 +1,66 @@
1
+ @import "tailwindcss";
2
+ @import "./theme.css";
3
+
4
+ @import "./colors.css";
5
+ @import "./shared.css";
6
+
7
+ @import "./ai.css";
8
+ @import "./animation.css";
9
+ @import "./avatar.css";
10
+ @import "./background-ai.css";
11
+ @import "./banner.css";
12
+ @import "./breadcrumb.css";
13
+ @import "./button.css";
14
+ @import "./badge.css";
15
+ @import "./card.css";
16
+ @import "./chart-pie.css";
17
+ @import "./chart-stacked.css";
18
+ @import "./chat.css";
19
+ @import "./checkmark.css";
20
+ @import "./code.css";
21
+ @import "./collapsible.css";
22
+ @import "./countdown.css";
23
+ @import "./datepicker.css";
24
+ @import "./divider.css";
25
+ @import "./drawer.css";
26
+ @import "./empty-state.css";
27
+ @import "./fieldset.css";
28
+ @import "./field.css";
29
+ @import "./dropdown.css";
30
+ @import "./form-shared.css";
31
+ @import "./form-checkbox-radio-toggle.css";
32
+ @import "./form-fileupload.css";
33
+ @import "./form-rangeslider.css";
34
+ @import "./form-text-select.css";
35
+ @import "./combobox.css";
36
+ @import "./command.css";
37
+ @import "./input-group.css";
38
+ @import "./join.css";
39
+ @import "./key-value.css";
40
+ @import "./kbd.css";
41
+ @import "./link.css";
42
+ @import "./logotype.css";
43
+ @import "./loader.css";
44
+ @import "./menu.css";
45
+ @import "./modal.css";
46
+ @import "./navbar.css";
47
+ @import "./pagination.css";
48
+ @import "./panel.css";
49
+ @import "./popover.css";
50
+ @import "./progress.css";
51
+ @import "./scrollbar.css";
52
+ @import "./shadow.css";
53
+ @import "./skeleton.css";
54
+ @import "./state.css";
55
+ @import "./stepper.css";
56
+ @import "./steps.css";
57
+ @import "./surface.css";
58
+ @import "./tab.css";
59
+ @import "./table.css";
60
+ @import "./timeline.css";
61
+ @import "./toast.css";
62
+ @import "./tooltip.css";
63
+ @import "./typography.css";
64
+ @import "./utility.css";
65
+
66
+ @import "./package-quill.css";
@@ -0,0 +1,63 @@
1
+ /*----------------------------*/
2
+ /* INPUT GROUP */
3
+ /*----------------------------*/
4
+
5
+ @utility input-group {
6
+ @apply flex overflow-hidden rounded-(--input-text-select-border-radius) border border-line-highlight bg-background-surface;
7
+
8
+ &:has(> :where(input, select, textarea, .input-control, .input-group-control):focus-within) {
9
+ @apply border-line-focus;
10
+ }
11
+
12
+ &:has(> :where(input, select, textarea, .input-control, .input-group-control):hover) {
13
+ @apply border-line-strong;
14
+ }
15
+
16
+ > :where(input, select, textarea, .input-control, .input-group-control) {
17
+ @apply flex-1 min-w-0;
18
+ }
19
+
20
+ > :where(input, select, textarea) {
21
+ @apply w-full rounded-none border-0 bg-transparent;
22
+ }
23
+
24
+ > .input-group-control > :where(input, select, textarea, .input-control) {
25
+ @apply rounded-none border-0;
26
+ }
27
+
28
+ > :where(:not(input):not(select):not(textarea):not(.input-control):not(.input-group-control), .input-group-addon) {
29
+ @apply inline-flex gap-2 items-center px-3 text-sm text-text-tertiary bg-background-surface-elevated border-line-highlight;
30
+
31
+ &:first-child {
32
+ @apply border-r;
33
+ }
34
+
35
+ &:last-child {
36
+ @apply border-l;
37
+ }
38
+ }
39
+ }
40
+
41
+ /* Compatibility aliases */
42
+ @utility input-group-addon {
43
+ @apply inline-flex gap-2 items-center px-3 text-sm text-text-tertiary bg-background-surface-elevated border-line-highlight;
44
+
45
+ &:first-child {
46
+ @apply border-r;
47
+ }
48
+
49
+ &:last-child {
50
+ @apply border-l;
51
+ }
52
+ }
53
+
54
+ @utility input-group-control {
55
+ @apply flex-1 min-w-0;
56
+
57
+ > input,
58
+ > select,
59
+ > textarea,
60
+ > .input-control {
61
+ @apply rounded-none border-0;
62
+ }
63
+ }