@becket-ui/tokens 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 (179) hide show
  1. package/LICENSE +21 -0
  2. package/dist/preset.d.ts +7 -0
  3. package/dist/preset.js +1846 -0
  4. package/dist/preset.js.map +1 -0
  5. package/index.css +3033 -0
  6. package/index.d.ts +10 -0
  7. package/index.mjs +13 -0
  8. package/package.json +108 -0
  9. package/styled-system/css/conditions.mjs +36 -0
  10. package/styled-system/css/css.d.ts +22 -0
  11. package/styled-system/css/css.mjs +45 -0
  12. package/styled-system/css/cva.d.ts +6 -0
  13. package/styled-system/css/cva.mjs +87 -0
  14. package/styled-system/css/cx.d.ts +5 -0
  15. package/styled-system/css/cx.mjs +15 -0
  16. package/styled-system/css/index.d.ts +5 -0
  17. package/styled-system/css/index.mjs +4 -0
  18. package/styled-system/css/sva.d.ts +4 -0
  19. package/styled-system/css/sva.mjs +46 -0
  20. package/styled-system/helpers.mjs +328 -0
  21. package/styled-system/jsx/aspect-ratio.d.ts +10 -0
  22. package/styled-system/jsx/aspect-ratio.mjs +14 -0
  23. package/styled-system/jsx/bleed.d.ts +10 -0
  24. package/styled-system/jsx/bleed.mjs +14 -0
  25. package/styled-system/jsx/box.d.ts +10 -0
  26. package/styled-system/jsx/box.mjs +14 -0
  27. package/styled-system/jsx/center.d.ts +10 -0
  28. package/styled-system/jsx/center.mjs +14 -0
  29. package/styled-system/jsx/circle.d.ts +10 -0
  30. package/styled-system/jsx/circle.mjs +14 -0
  31. package/styled-system/jsx/container.d.ts +10 -0
  32. package/styled-system/jsx/container.mjs +14 -0
  33. package/styled-system/jsx/cq.d.ts +10 -0
  34. package/styled-system/jsx/cq.mjs +14 -0
  35. package/styled-system/jsx/create-style-context.d.ts +54 -0
  36. package/styled-system/jsx/create-style-context.mjs +121 -0
  37. package/styled-system/jsx/divider.d.ts +10 -0
  38. package/styled-system/jsx/divider.mjs +14 -0
  39. package/styled-system/jsx/factory-helper.mjs +22 -0
  40. package/styled-system/jsx/factory.d.ts +3 -0
  41. package/styled-system/jsx/factory.mjs +89 -0
  42. package/styled-system/jsx/flex.d.ts +10 -0
  43. package/styled-system/jsx/flex.mjs +14 -0
  44. package/styled-system/jsx/float.d.ts +10 -0
  45. package/styled-system/jsx/float.mjs +14 -0
  46. package/styled-system/jsx/grid-item.d.ts +10 -0
  47. package/styled-system/jsx/grid-item.mjs +14 -0
  48. package/styled-system/jsx/grid.d.ts +10 -0
  49. package/styled-system/jsx/grid.mjs +14 -0
  50. package/styled-system/jsx/hstack.d.ts +10 -0
  51. package/styled-system/jsx/hstack.mjs +14 -0
  52. package/styled-system/jsx/index.d.ts +25 -0
  53. package/styled-system/jsx/index.mjs +23 -0
  54. package/styled-system/jsx/is-valid-prop.d.ts +11 -0
  55. package/styled-system/jsx/is-valid-prop.mjs +17 -0
  56. package/styled-system/jsx/link-overlay.d.ts +10 -0
  57. package/styled-system/jsx/link-overlay.mjs +14 -0
  58. package/styled-system/jsx/spacer.d.ts +10 -0
  59. package/styled-system/jsx/spacer.mjs +14 -0
  60. package/styled-system/jsx/square.d.ts +10 -0
  61. package/styled-system/jsx/square.mjs +14 -0
  62. package/styled-system/jsx/stack.d.ts +10 -0
  63. package/styled-system/jsx/stack.mjs +14 -0
  64. package/styled-system/jsx/visually-hidden.d.ts +10 -0
  65. package/styled-system/jsx/visually-hidden.mjs +14 -0
  66. package/styled-system/jsx/vstack.d.ts +10 -0
  67. package/styled-system/jsx/vstack.mjs +14 -0
  68. package/styled-system/jsx/wrap.d.ts +10 -0
  69. package/styled-system/jsx/wrap.mjs +14 -0
  70. package/styled-system/patterns/aspect-ratio.d.ts +20 -0
  71. package/styled-system/patterns/aspect-ratio.mjs +38 -0
  72. package/styled-system/patterns/bleed.d.ts +21 -0
  73. package/styled-system/patterns/bleed.mjs +24 -0
  74. package/styled-system/patterns/box.d.ts +20 -0
  75. package/styled-system/patterns/box.mjs +15 -0
  76. package/styled-system/patterns/center.d.ts +20 -0
  77. package/styled-system/patterns/center.mjs +21 -0
  78. package/styled-system/patterns/circle.d.ts +20 -0
  79. package/styled-system/patterns/circle.mjs +25 -0
  80. package/styled-system/patterns/container.d.ts +20 -0
  81. package/styled-system/patterns/container.mjs +21 -0
  82. package/styled-system/patterns/cq.d.ts +21 -0
  83. package/styled-system/patterns/cq.mjs +21 -0
  84. package/styled-system/patterns/divider.d.ts +22 -0
  85. package/styled-system/patterns/divider.mjs +25 -0
  86. package/styled-system/patterns/flex.d.ts +26 -0
  87. package/styled-system/patterns/flex.mjs +26 -0
  88. package/styled-system/patterns/float.d.ts +23 -0
  89. package/styled-system/patterns/float.mjs +52 -0
  90. package/styled-system/patterns/grid-item.d.ts +25 -0
  91. package/styled-system/patterns/grid-item.mjs +25 -0
  92. package/styled-system/patterns/grid.d.ts +24 -0
  93. package/styled-system/patterns/grid.mjs +27 -0
  94. package/styled-system/patterns/hstack.d.ts +21 -0
  95. package/styled-system/patterns/hstack.mjs +24 -0
  96. package/styled-system/patterns/index.d.ts +21 -0
  97. package/styled-system/patterns/index.mjs +20 -0
  98. package/styled-system/patterns/link-overlay.d.ts +20 -0
  99. package/styled-system/patterns/link-overlay.mjs +24 -0
  100. package/styled-system/patterns/spacer.d.ts +20 -0
  101. package/styled-system/patterns/spacer.mjs +25 -0
  102. package/styled-system/patterns/square.d.ts +20 -0
  103. package/styled-system/patterns/square.mjs +24 -0
  104. package/styled-system/patterns/stack.d.ts +23 -0
  105. package/styled-system/patterns/stack.mjs +24 -0
  106. package/styled-system/patterns/visually-hidden.d.ts +20 -0
  107. package/styled-system/patterns/visually-hidden.mjs +18 -0
  108. package/styled-system/patterns/vstack.d.ts +21 -0
  109. package/styled-system/patterns/vstack.mjs +24 -0
  110. package/styled-system/patterns/wrap.d.ts +24 -0
  111. package/styled-system/patterns/wrap.mjs +25 -0
  112. package/styled-system/recipes/badge.d.ts +48 -0
  113. package/styled-system/recipes/badge.mjs +91 -0
  114. package/styled-system/recipes/button.d.ts +52 -0
  115. package/styled-system/recipes/button.mjs +122 -0
  116. package/styled-system/recipes/card.d.ts +44 -0
  117. package/styled-system/recipes/card.mjs +76 -0
  118. package/styled-system/recipes/checkbox.d.ts +36 -0
  119. package/styled-system/recipes/checkbox.mjs +62 -0
  120. package/styled-system/recipes/create-recipe.mjs +82 -0
  121. package/styled-system/recipes/dialog.d.ts +33 -0
  122. package/styled-system/recipes/dialog.mjs +53 -0
  123. package/styled-system/recipes/drawer.d.ts +36 -0
  124. package/styled-system/recipes/drawer.mjs +62 -0
  125. package/styled-system/recipes/field.d.ts +40 -0
  126. package/styled-system/recipes/field.mjs +61 -0
  127. package/styled-system/recipes/heading.d.ts +40 -0
  128. package/styled-system/recipes/heading.mjs +54 -0
  129. package/styled-system/recipes/hide.d.ts +38 -0
  130. package/styled-system/recipes/hide.mjs +246 -0
  131. package/styled-system/recipes/index.d.ts +23 -0
  132. package/styled-system/recipes/index.mjs +22 -0
  133. package/styled-system/recipes/link.d.ts +40 -0
  134. package/styled-system/recipes/link.mjs +36 -0
  135. package/styled-system/recipes/menu.d.ts +33 -0
  136. package/styled-system/recipes/menu.mjs +45 -0
  137. package/styled-system/recipes/radio.d.ts +36 -0
  138. package/styled-system/recipes/radio.mjs +70 -0
  139. package/styled-system/recipes/select-recipe.d.ts +40 -0
  140. package/styled-system/recipes/select-recipe.mjs +37 -0
  141. package/styled-system/recipes/separator.d.ts +36 -0
  142. package/styled-system/recipes/separator.mjs +31 -0
  143. package/styled-system/recipes/spinner.d.ts +36 -0
  144. package/styled-system/recipes/spinner.mjs +32 -0
  145. package/styled-system/recipes/switch-recipe.d.ts +40 -0
  146. package/styled-system/recipes/switch-recipe.mjs +93 -0
  147. package/styled-system/recipes/table.d.ts +36 -0
  148. package/styled-system/recipes/table.mjs +70 -0
  149. package/styled-system/recipes/tabs.d.ts +33 -0
  150. package/styled-system/recipes/tabs.mjs +45 -0
  151. package/styled-system/recipes/tag.d.ts +48 -0
  152. package/styled-system/recipes/tag.mjs +89 -0
  153. package/styled-system/recipes/text-field-recipe.d.ts +40 -0
  154. package/styled-system/recipes/text-field-recipe.mjs +37 -0
  155. package/styled-system/recipes/textarea-recipe.d.ts +40 -0
  156. package/styled-system/recipes/textarea-recipe.mjs +37 -0
  157. package/styled-system/recipes/tooltip.d.ts +36 -0
  158. package/styled-system/recipes/tooltip.mjs +33 -0
  159. package/styled-system/styles.css +2986 -0
  160. package/styled-system/tokens/index.d.ts +9 -0
  161. package/styled-system/tokens/index.mjs +2128 -0
  162. package/styled-system/tokens/tokens.d.ts +63 -0
  163. package/styled-system/types/composition.d.ts +227 -0
  164. package/styled-system/types/conditions.d.ts +310 -0
  165. package/styled-system/types/csstype.d.ts +22570 -0
  166. package/styled-system/types/global.d.ts +20 -0
  167. package/styled-system/types/index.d.ts +8 -0
  168. package/styled-system/types/jsx.d.ts +69 -0
  169. package/styled-system/types/parts.d.ts +8 -0
  170. package/styled-system/types/pattern.d.ts +78 -0
  171. package/styled-system/types/prop-type.d.ts +251 -0
  172. package/styled-system/types/recipe.d.ts +181 -0
  173. package/styled-system/types/selectors.d.ts +59 -0
  174. package/styled-system/types/static-css.d.ts +56 -0
  175. package/styled-system/types/style-props.d.ts +8089 -0
  176. package/styled-system/types/system-types.d.ts +151 -0
  177. package/theme/index.d.ts +56 -0
  178. package/theme/index.mjs +168 -0
  179. package/theme.example.css +68 -0
package/dist/preset.js ADDED
@@ -0,0 +1,1846 @@
1
+ // preset/index.ts
2
+ import { definePreset } from "@pandacss/dev";
3
+
4
+ // recipes/button.recipe.ts
5
+ import { defineRecipe } from "@pandacss/dev";
6
+
7
+ // recipes/gradientStyles.ts
8
+ var filledGradient = (image) => ({
9
+ borderWidth: "0px",
10
+ borderStyle: "solid",
11
+ borderColor: "transparent",
12
+ backgroundColor: "transparent",
13
+ backgroundImage: image,
14
+ backgroundOrigin: "border-box",
15
+ backgroundClip: "border-box",
16
+ backgroundRepeat: "no-repeat",
17
+ backgroundSize: "100% 100%"
18
+ });
19
+ var outlineGradient = (image) => ({
20
+ borderWidth: "2px",
21
+ borderStyle: "solid",
22
+ borderColor: "transparent",
23
+ backgroundImage: `linear-gradient({colors.background}, {colors.background}), ${image}`,
24
+ backgroundOrigin: "border-box",
25
+ backgroundClip: "padding-box, border-box"
26
+ });
27
+
28
+ // recipes/density.ts
29
+ var buttonSizeStyles = {
30
+ sm: {
31
+ fontSize: "sm",
32
+ paddingInline: "var(--beckui-button-px-sm)",
33
+ paddingBlock: "var(--beckui-button-py-sm)"
34
+ },
35
+ md: {
36
+ fontSize: "md",
37
+ paddingInline: "var(--beckui-button-px-md)",
38
+ paddingBlock: "var(--beckui-button-py-md)"
39
+ }
40
+ };
41
+ var fieldSizeStyles = {
42
+ sm: {
43
+ fontSize: "sm",
44
+ paddingInline: "var(--beckui-field-px-sm)",
45
+ paddingBlock: "var(--beckui-field-py-sm)"
46
+ },
47
+ md: {
48
+ fontSize: "md",
49
+ paddingInline: "var(--beckui-field-px-md)",
50
+ paddingBlock: "var(--beckui-field-py-md)"
51
+ },
52
+ lg: {
53
+ fontSize: "lg",
54
+ paddingInline: "var(--beckui-field-px-lg)",
55
+ paddingBlock: "var(--beckui-field-py-lg)"
56
+ }
57
+ };
58
+ var tagSizeStyles = {
59
+ sm: {
60
+ fontSize: "xs",
61
+ paddingInline: "var(--beckui-tag-px-sm)",
62
+ paddingBlock: "var(--beckui-tag-py-sm)"
63
+ },
64
+ md: {
65
+ fontSize: "sm",
66
+ paddingInline: "var(--beckui-tag-px-md)",
67
+ paddingBlock: "var(--beckui-tag-py-md)"
68
+ },
69
+ lg: {
70
+ fontSize: "md",
71
+ paddingInline: "var(--beckui-tag-px-lg)",
72
+ paddingBlock: "var(--beckui-tag-py-lg)"
73
+ }
74
+ };
75
+
76
+ // recipes/button.recipe.ts
77
+ var button = defineRecipe({
78
+ className: "button",
79
+ description: "The styles for the Button component",
80
+ base: {
81
+ display: "inline-flex",
82
+ alignItems: "center",
83
+ justifyContent: "center",
84
+ cursor: "pointer",
85
+ fontWeight: "bold",
86
+ paddingInline: "var(--beckui-button-px-md)",
87
+ paddingBlock: "var(--beckui-button-py-md)",
88
+ transition: "all 0.2s",
89
+ width: "field",
90
+ maxWidth: "100%",
91
+ boxSizing: "border-box",
92
+ _focus: { outline: "none", boxShadow: "outline" },
93
+ _disabled: { opacity: 0.6, cursor: "not-allowed" }
94
+ },
95
+ variants: {
96
+ visual: {
97
+ primary: {
98
+ backgroundColor: "primary",
99
+ color: "neutral.50",
100
+ _hover: { backgroundColor: "primaryHover" }
101
+ },
102
+ secondary: {
103
+ backgroundColor: "secondary",
104
+ color: "neutral.50",
105
+ _hover: {
106
+ backgroundColor: "secondary"
107
+ }
108
+ },
109
+ neutral: {
110
+ backgroundColor: "neutral.600",
111
+ color: "text",
112
+ _hover: {
113
+ backgroundColor: "neutral.500"
114
+ },
115
+ _light: {
116
+ backgroundColor: "neutral.200",
117
+ _hover: {
118
+ backgroundColor: "neutral.300"
119
+ }
120
+ }
121
+ },
122
+ outline: {
123
+ borderWidth: "2px",
124
+ borderStyle: "solid",
125
+ borderColor: "secondary",
126
+ color: "secondary",
127
+ backgroundColor: "transparent",
128
+ _hover: { backgroundColor: "neutral.800" },
129
+ _light: {
130
+ _hover: { backgroundColor: "neutral.100" }
131
+ }
132
+ }
133
+ },
134
+ size: buttonSizeStyles,
135
+ borderRadius: {
136
+ none: { borderRadius: "none" },
137
+ sm: { borderRadius: "sm" },
138
+ md: { borderRadius: "md" },
139
+ lg: { borderRadius: "lg" },
140
+ xl: { borderRadius: "xl" },
141
+ full: { borderRadius: "full" }
142
+ },
143
+ withGradient: {
144
+ false: {},
145
+ true: {}
146
+ },
147
+ fullWidth: {
148
+ true: { width: "100%" },
149
+ false: { width: "field", maxWidth: "100%" }
150
+ }
151
+ },
152
+ compoundVariants: [
153
+ {
154
+ visual: "primary",
155
+ withGradient: true,
156
+ css: {
157
+ ...filledGradient("{gradients.primary}"),
158
+ color: "neutral.50",
159
+ _hover: {
160
+ backgroundImage: "{gradients.primaryHover}"
161
+ }
162
+ }
163
+ },
164
+ {
165
+ visual: "secondary",
166
+ withGradient: true,
167
+ css: {
168
+ ...filledGradient("{gradients.secondary}"),
169
+ color: "neutral.50"
170
+ }
171
+ },
172
+ {
173
+ visual: "neutral",
174
+ withGradient: true,
175
+ css: {
176
+ ...filledGradient("{gradients.neutral}"),
177
+ color: "text"
178
+ }
179
+ },
180
+ {
181
+ visual: "outline",
182
+ withGradient: true,
183
+ css: {
184
+ ...outlineGradient("{gradients.primary}"),
185
+ color: "secondary"
186
+ }
187
+ }
188
+ ],
189
+ defaultVariants: {
190
+ visual: "outline",
191
+ size: "md",
192
+ borderRadius: "md",
193
+ withGradient: false,
194
+ fullWidth: false
195
+ }
196
+ });
197
+
198
+ // recipes/heading.recipe.ts
199
+ import { defineRecipe as defineRecipe2 } from "@pandacss/dev";
200
+ var heading = defineRecipe2({
201
+ className: "heading",
202
+ description: "The styles for the Heading component",
203
+ base: {
204
+ fontFamily: "sans",
205
+ fontWeight: "bold",
206
+ color: "text",
207
+ lineHeight: "tight"
208
+ },
209
+ variants: {
210
+ size: {
211
+ sm: { fontSize: "sm" },
212
+ md: { fontSize: "md" },
213
+ lg: { fontSize: "lg" },
214
+ xl: { fontSize: "xl" },
215
+ "2xl": { fontSize: "2xl" },
216
+ "3xl": { fontSize: "3xl" },
217
+ "4xl": { fontSize: "4xl" },
218
+ "5xl": { fontSize: "5xl" },
219
+ "6xl": { fontSize: "6xl" }
220
+ },
221
+ withGradient: {
222
+ false: {},
223
+ true: {}
224
+ }
225
+ },
226
+ compoundVariants: [
227
+ {
228
+ withGradient: true,
229
+ css: {
230
+ display: "inline",
231
+ color: "transparent",
232
+ backgroundImage: "{gradients.primary}",
233
+ backgroundClip: "text",
234
+ WebkitBackgroundClip: "text"
235
+ }
236
+ }
237
+ ],
238
+ defaultVariants: {
239
+ size: "xl",
240
+ withGradient: false
241
+ }
242
+ });
243
+
244
+ // recipes/tag.recipe.ts
245
+ import { defineRecipe as defineRecipe3 } from "@pandacss/dev";
246
+ var tag = defineRecipe3({
247
+ className: "tag",
248
+ description: "Non-interactive metadata chip (Tag)",
249
+ base: {
250
+ display: "inline-flex",
251
+ alignItems: "center",
252
+ justifyContent: "center",
253
+ maxWidth: "100%",
254
+ whiteSpace: "nowrap",
255
+ overflow: "hidden",
256
+ textOverflow: "ellipsis",
257
+ fontWeight: "medium",
258
+ lineHeight: "tight",
259
+ borderWidth: "1px",
260
+ borderStyle: "solid",
261
+ borderColor: "var(--mav-label-border, transparent)",
262
+ bg: "var(--mav-label-bg, transparent)",
263
+ color: "var(--mav-label-color, inherit)",
264
+ verticalAlign: "middle",
265
+ userSelect: "none"
266
+ },
267
+ variants: {
268
+ size: tagSizeStyles,
269
+ visual: {
270
+ primary: {},
271
+ secondary: {},
272
+ neutral: {},
273
+ outline: {}
274
+ },
275
+ borderRadius: {
276
+ none: { borderRadius: "none" },
277
+ sm: { borderRadius: "sm" },
278
+ md: { borderRadius: "md" },
279
+ lg: { borderRadius: "lg" },
280
+ xl: { borderRadius: "xl" },
281
+ full: { borderRadius: "full" }
282
+ },
283
+ withGradient: {
284
+ false: {},
285
+ true: {}
286
+ }
287
+ },
288
+ compoundVariants: [
289
+ {
290
+ withGradient: true,
291
+ css: {
292
+ ...filledGradient("var(--mav-label-gradient, {gradients.primary})")
293
+ }
294
+ },
295
+ {
296
+ visual: "outline",
297
+ withGradient: true,
298
+ css: {
299
+ ...outlineGradient("var(--mav-label-gradient, {gradients.primary})"),
300
+ color: "var(--mav-label-color, {colors.secondary})"
301
+ }
302
+ },
303
+ {
304
+ visual: "neutral",
305
+ css: {
306
+ _light: {
307
+ bg: "var(--mav-label-bg, {colors.neutral.100})"
308
+ }
309
+ }
310
+ }
311
+ ],
312
+ defaultVariants: {
313
+ size: "md",
314
+ visual: "neutral",
315
+ borderRadius: "full",
316
+ withGradient: false
317
+ }
318
+ });
319
+
320
+ // recipes/badge.recipe.ts
321
+ import { defineRecipe as defineRecipe4 } from "@pandacss/dev";
322
+ var badge = defineRecipe4({
323
+ className: "badge",
324
+ description: "Non-interactive status chip (Badge)",
325
+ base: {
326
+ display: "inline-flex",
327
+ alignItems: "center",
328
+ justifyContent: "center",
329
+ maxWidth: "100%",
330
+ whiteSpace: "nowrap",
331
+ overflow: "hidden",
332
+ textOverflow: "ellipsis",
333
+ fontWeight: "bold",
334
+ letterSpacing: "0.02em",
335
+ lineHeight: "tight",
336
+ borderWidth: "1px",
337
+ borderStyle: "solid",
338
+ borderColor: "var(--mav-label-border, transparent)",
339
+ bg: "var(--mav-label-bg, transparent)",
340
+ color: "var(--mav-label-color, inherit)",
341
+ verticalAlign: "middle",
342
+ userSelect: "none",
343
+ textTransform: "uppercase"
344
+ },
345
+ variants: {
346
+ size: {
347
+ sm: { fontSize: "xs", px: "2", py: "1" },
348
+ md: { fontSize: "xs", px: "3", py: "1" },
349
+ lg: { fontSize: "sm", px: "3", py: "2" }
350
+ },
351
+ visual: {
352
+ primary: {},
353
+ secondary: {},
354
+ neutral: {},
355
+ outline: {}
356
+ },
357
+ borderRadius: {
358
+ none: { borderRadius: "none" },
359
+ sm: { borderRadius: "sm" },
360
+ md: { borderRadius: "md" },
361
+ lg: { borderRadius: "lg" },
362
+ xl: { borderRadius: "xl" },
363
+ full: { borderRadius: "full" }
364
+ },
365
+ withGradient: {
366
+ false: {},
367
+ true: {}
368
+ }
369
+ },
370
+ compoundVariants: [
371
+ {
372
+ withGradient: true,
373
+ css: {
374
+ ...filledGradient("var(--mav-label-gradient, {gradients.primary})"),
375
+ color: "var(--mav-label-color, {colors.text})"
376
+ }
377
+ },
378
+ {
379
+ visual: "outline",
380
+ withGradient: true,
381
+ css: {
382
+ ...outlineGradient("var(--mav-label-gradient, {gradients.primary})"),
383
+ color: "var(--mav-label-color, {colors.secondary})",
384
+ textTransform: "uppercase"
385
+ }
386
+ },
387
+ {
388
+ visual: "neutral",
389
+ css: {
390
+ _light: {
391
+ bg: "var(--mav-label-bg, {colors.neutral.100})"
392
+ }
393
+ }
394
+ }
395
+ ],
396
+ defaultVariants: {
397
+ size: "md",
398
+ visual: "neutral",
399
+ borderRadius: "full",
400
+ withGradient: false
401
+ }
402
+ });
403
+
404
+ // recipes/card.slot-recipe.ts
405
+ import { defineSlotRecipe } from "@pandacss/dev";
406
+ var card = defineSlotRecipe({
407
+ className: "card",
408
+ description: "Card container with header, body, and footer slots",
409
+ slots: ["root", "header", "body", "footer", "title", "description"],
410
+ base: {
411
+ root: {
412
+ display: "flex",
413
+ flexDirection: "column",
414
+ width: "fit-content",
415
+ maxWidth: "100%",
416
+ borderRadius: "md",
417
+ overflow: "hidden"
418
+ },
419
+ header: {
420
+ display: "flex",
421
+ alignItems: "center",
422
+ justifyContent: "space-between",
423
+ gap: "sm",
424
+ flexWrap: "wrap",
425
+ width: "100%"
426
+ },
427
+ body: {
428
+ display: "flex",
429
+ flexDirection: "column",
430
+ width: "100%",
431
+ flex: 1
432
+ },
433
+ footer: {
434
+ display: "flex",
435
+ alignItems: "center",
436
+ gap: "sm",
437
+ width: "100%"
438
+ },
439
+ title: {
440
+ fontFamily: "sans",
441
+ fontWeight: "bold",
442
+ color: "text",
443
+ lineHeight: "tight"
444
+ },
445
+ description: {
446
+ fontFamily: "sans",
447
+ color: "muted",
448
+ lineHeight: "normal",
449
+ fontSize: "sm"
450
+ }
451
+ },
452
+ variants: {
453
+ size: {
454
+ sm: {
455
+ root: { gap: "sm", p: "sm" },
456
+ header: { gap: "1" },
457
+ title: { fontSize: "sm" },
458
+ description: { fontSize: "xs" }
459
+ },
460
+ md: {
461
+ root: { gap: "md", p: "md" },
462
+ header: { gap: "sm" },
463
+ title: { fontSize: "md" },
464
+ description: { fontSize: "sm" }
465
+ },
466
+ lg: {
467
+ root: { gap: "lg", p: "lg" },
468
+ header: { gap: "md" },
469
+ title: { fontSize: "lg" },
470
+ description: { fontSize: "md" }
471
+ }
472
+ },
473
+ visual: {
474
+ outline: {
475
+ root: {
476
+ borderWidth: "1px",
477
+ borderStyle: "solid",
478
+ borderColor: "border",
479
+ bg: "transparent"
480
+ }
481
+ },
482
+ subtle: {
483
+ root: {
484
+ borderWidth: "1px",
485
+ borderStyle: "solid",
486
+ borderColor: "neutral.700",
487
+ bg: "neutral.800",
488
+ _light: {
489
+ borderColor: "border",
490
+ bg: "neutral.50"
491
+ }
492
+ }
493
+ },
494
+ elevated: {
495
+ root: {
496
+ borderWidth: "1px",
497
+ borderStyle: "solid",
498
+ borderColor: "neutral.700",
499
+ bg: "neutral.800",
500
+ boxShadow: "elevated",
501
+ _light: {
502
+ borderColor: "border",
503
+ bg: "white",
504
+ boxShadow: "md"
505
+ }
506
+ }
507
+ }
508
+ },
509
+ fullWidth: {
510
+ true: {
511
+ root: { width: "100%" }
512
+ },
513
+ false: {
514
+ root: { width: "fit-content", maxWidth: "100%" }
515
+ }
516
+ }
517
+ },
518
+ defaultVariants: {
519
+ size: "md",
520
+ visual: "subtle",
521
+ fullWidth: false
522
+ }
523
+ });
524
+
525
+ // recipes/switch.recipe.ts
526
+ import { defineSlotRecipe as defineSlotRecipe2 } from "@pandacss/dev";
527
+ var switchRecipe = defineSlotRecipe2({
528
+ className: "switch",
529
+ description: "Accessible switch control with track and thumb slots",
530
+ slots: ["root", "track", "thumb", "wrap", "label"],
531
+ base: {
532
+ wrap: {
533
+ display: "inline-flex",
534
+ alignItems: "center",
535
+ gap: "sm"
536
+ },
537
+ label: {
538
+ fontFamily: "sans",
539
+ fontSize: "md",
540
+ color: "text",
541
+ cursor: "pointer"
542
+ },
543
+ root: {
544
+ display: "inline-flex",
545
+ alignItems: "center",
546
+ flexShrink: 0,
547
+ cursor: "pointer",
548
+ border: "none",
549
+ padding: 0,
550
+ background: "transparent",
551
+ _focusVisible: {
552
+ outline: "none",
553
+ boxShadow: "outline"
554
+ },
555
+ _disabled: {
556
+ opacity: 0.6,
557
+ cursor: "not-allowed"
558
+ }
559
+ },
560
+ track: {
561
+ position: "relative",
562
+ display: "inline-flex",
563
+ alignItems: "center",
564
+ borderRadius: "full",
565
+ bg: "neutral.600",
566
+ transition: "background 0.15s ease",
567
+ _light: {
568
+ bg: "neutral.300"
569
+ }
570
+ },
571
+ thumb: {
572
+ position: "absolute",
573
+ borderRadius: "full",
574
+ bg: "white",
575
+ boxShadow: "sm",
576
+ transition: "transform 0.15s ease"
577
+ }
578
+ },
579
+ variants: {
580
+ size: {
581
+ sm: {
582
+ root: { height: "1.25rem" },
583
+ track: { width: "2rem", height: "1.25rem" },
584
+ thumb: { width: "0.875rem", height: "0.875rem", left: "0.1875rem" }
585
+ },
586
+ md: {
587
+ root: { height: "1.5rem" },
588
+ track: { width: "2.75rem", height: "1.5rem" },
589
+ thumb: { width: "1.125rem", height: "1.125rem", left: "0.1875rem" }
590
+ },
591
+ lg: {
592
+ root: { height: "1.75rem" },
593
+ track: { width: "3.25rem", height: "1.75rem" },
594
+ thumb: { width: "1.375rem", height: "1.375rem", left: "0.1875rem" }
595
+ }
596
+ },
597
+ checked: {
598
+ true: {
599
+ track: {
600
+ bg: "primary"
601
+ }
602
+ },
603
+ false: {}
604
+ }
605
+ },
606
+ compoundVariants: [
607
+ {
608
+ size: "sm",
609
+ checked: true,
610
+ css: {
611
+ thumb: { transform: "translateX(0.75rem)" }
612
+ }
613
+ },
614
+ {
615
+ size: "md",
616
+ checked: true,
617
+ css: {
618
+ thumb: { transform: "translateX(1.25rem)" }
619
+ }
620
+ },
621
+ {
622
+ size: "lg",
623
+ checked: true,
624
+ css: {
625
+ thumb: { transform: "translateX(1.5rem)" }
626
+ }
627
+ }
628
+ ],
629
+ defaultVariants: {
630
+ size: "md",
631
+ checked: false
632
+ }
633
+ });
634
+
635
+ // recipes/field.slot-recipe.ts
636
+ import { defineSlotRecipe as defineSlotRecipe3 } from "@pandacss/dev";
637
+ var field = defineSlotRecipe3({
638
+ className: "field",
639
+ description: "Field composition: label, helper, and error around a control",
640
+ slots: ["root", "label", "helper", "error"],
641
+ base: {
642
+ root: {
643
+ display: "flex",
644
+ flexDirection: "column",
645
+ gap: "1",
646
+ width: "field",
647
+ maxWidth: "100%",
648
+ minWidth: 0
649
+ },
650
+ label: {
651
+ fontSize: "sm",
652
+ fontWeight: "medium",
653
+ color: "text"
654
+ },
655
+ helper: {
656
+ fontSize: "xs",
657
+ color: "muted"
658
+ },
659
+ error: {
660
+ fontSize: "xs",
661
+ color: "danger"
662
+ }
663
+ },
664
+ variants: {
665
+ size: {
666
+ sm: {
667
+ label: { fontSize: "xs" },
668
+ helper: { fontSize: "xs" },
669
+ error: { fontSize: "xs" }
670
+ },
671
+ md: {
672
+ label: { fontSize: "sm" },
673
+ helper: { fontSize: "xs" },
674
+ error: { fontSize: "xs" }
675
+ },
676
+ lg: {
677
+ label: { fontSize: "md" },
678
+ helper: { fontSize: "sm" },
679
+ error: { fontSize: "sm" }
680
+ }
681
+ },
682
+ fullWidth: {
683
+ true: {
684
+ root: { width: "100%" }
685
+ },
686
+ false: {
687
+ root: { width: "field", maxWidth: "100%" }
688
+ }
689
+ }
690
+ },
691
+ defaultVariants: {
692
+ size: "md",
693
+ fullWidth: false
694
+ }
695
+ });
696
+
697
+ // recipes/text-field.recipe.ts
698
+ import { defineRecipe as defineRecipe5 } from "@pandacss/dev";
699
+
700
+ // recipes/controlStyles.ts
701
+ var controlChrome = {
702
+ width: "100%",
703
+ fontFamily: "sans",
704
+ color: "text",
705
+ backgroundColor: "surface",
706
+ borderWidth: "1px",
707
+ borderStyle: "solid",
708
+ borderColor: "neutral.500",
709
+ borderRadius: "md",
710
+ outline: "none",
711
+ transition: "border-color 0.15s ease, box-shadow 0.15s ease",
712
+ _placeholder: { color: "muted" },
713
+ _focusVisible: {
714
+ borderColor: "primary",
715
+ boxShadow: "0 0 0 2px color-mix(in srgb, {colors.primary} 45%, transparent)"
716
+ },
717
+ _disabled: {
718
+ opacity: 0.6,
719
+ cursor: "not-allowed"
720
+ },
721
+ _light: {
722
+ borderColor: "neutral.400",
723
+ _focusVisible: {
724
+ borderColor: "primary",
725
+ boxShadow: "0 0 0 2px color-mix(in srgb, {colors.primary} 35%, transparent)"
726
+ }
727
+ }
728
+ };
729
+ var controlSizeVariants = fieldSizeStyles;
730
+ var controlInvalidVariants = {
731
+ true: {
732
+ borderColor: "danger",
733
+ _focusVisible: {
734
+ borderColor: "danger",
735
+ boxShadow: "outline"
736
+ }
737
+ },
738
+ false: {}
739
+ };
740
+
741
+ // recipes/text-field.recipe.ts
742
+ var textFieldRecipe = defineRecipe5({
743
+ className: "textField",
744
+ description: "Styles for the TextField / FieldControl input",
745
+ base: controlChrome,
746
+ variants: {
747
+ size: controlSizeVariants,
748
+ invalid: controlInvalidVariants
749
+ },
750
+ defaultVariants: {
751
+ size: "md",
752
+ invalid: false
753
+ }
754
+ });
755
+
756
+ // recipes/checkbox.recipe.ts
757
+ import { defineSlotRecipe as defineSlotRecipe4 } from "@pandacss/dev";
758
+ var checkMark = `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.2 6.6 11.2 12.5 4.8' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")`;
759
+ var checkbox = defineSlotRecipe4({
760
+ className: "checkbox",
761
+ description: "Native checkbox with visible control, label, and optional description",
762
+ slots: ["root", "control", "indicator", "text", "label", "description"],
763
+ base: {
764
+ root: {
765
+ position: "relative",
766
+ display: "inline-flex",
767
+ alignItems: "flex-start",
768
+ gap: "sm",
769
+ cursor: "pointer",
770
+ color: "text",
771
+ _disabled: { opacity: 0.6, cursor: "not-allowed" }
772
+ },
773
+ control: {
774
+ position: "absolute",
775
+ width: "1px",
776
+ height: "1px",
777
+ padding: 0,
778
+ margin: "-1px",
779
+ overflow: "hidden",
780
+ clip: "rect(0, 0, 0, 0)",
781
+ whiteSpace: "nowrap",
782
+ borderWidth: 0,
783
+ _checked: {
784
+ "& + *": {
785
+ backgroundColor: "primary",
786
+ borderColor: "primary",
787
+ backgroundImage: checkMark
788
+ }
789
+ },
790
+ _focusVisible: {
791
+ "& + *": {
792
+ boxShadow: "outline"
793
+ }
794
+ }
795
+ },
796
+ indicator: {
797
+ flexShrink: 0,
798
+ boxSizing: "border-box",
799
+ borderWidth: "2px",
800
+ borderStyle: "solid",
801
+ borderColor: "neutral.400",
802
+ borderRadius: "sm",
803
+ backgroundColor: "neutral.800",
804
+ backgroundRepeat: "no-repeat",
805
+ backgroundPosition: "center",
806
+ backgroundSize: "80%",
807
+ pointerEvents: "none",
808
+ _light: {
809
+ backgroundColor: "white",
810
+ borderColor: "neutral.500"
811
+ }
812
+ },
813
+ text: {
814
+ display: "flex",
815
+ flexDirection: "column",
816
+ gap: "1",
817
+ minWidth: 0
818
+ },
819
+ label: {
820
+ display: "inline-flex",
821
+ alignItems: "center",
822
+ fontFamily: "sans",
823
+ fontWeight: "medium",
824
+ lineHeight: "1"
825
+ },
826
+ description: {
827
+ fontFamily: "sans",
828
+ color: "muted",
829
+ lineHeight: "tight"
830
+ }
831
+ },
832
+ variants: {
833
+ size: {
834
+ sm: {
835
+ indicator: { width: "1rem", height: "1rem" },
836
+ label: { fontSize: "sm", minHeight: "1rem" },
837
+ description: { fontSize: "xs" }
838
+ },
839
+ md: {
840
+ indicator: { width: "1.25rem", height: "1.25rem" },
841
+ label: { fontSize: "md", minHeight: "1.25rem" },
842
+ description: { fontSize: "sm" }
843
+ }
844
+ }
845
+ },
846
+ defaultVariants: {
847
+ size: "md"
848
+ }
849
+ });
850
+
851
+ // recipes/radio.recipe.ts
852
+ import { defineSlotRecipe as defineSlotRecipe5 } from "@pandacss/dev";
853
+ var radioDot = "radial-gradient(circle, {colors.white} 32%, transparent 34%)";
854
+ var radio = defineSlotRecipe5({
855
+ className: "radio",
856
+ description: "Native radio with visible control, label, optional description, and group",
857
+ slots: ["group", "legend", "root", "control", "indicator", "text", "label", "description"],
858
+ base: {
859
+ group: {
860
+ display: "flex",
861
+ flexDirection: "column",
862
+ alignItems: "flex-start",
863
+ gap: "sm",
864
+ margin: 0,
865
+ padding: 0,
866
+ minWidth: 0,
867
+ borderWidth: 0
868
+ },
869
+ legend: {
870
+ padding: 0,
871
+ marginBottom: "1",
872
+ fontFamily: "sans",
873
+ fontWeight: "medium",
874
+ lineHeight: "tight",
875
+ color: "text"
876
+ },
877
+ root: {
878
+ position: "relative",
879
+ display: "inline-flex",
880
+ alignItems: "flex-start",
881
+ gap: "sm",
882
+ cursor: "pointer",
883
+ color: "text",
884
+ _disabled: { opacity: 0.6, cursor: "not-allowed" }
885
+ },
886
+ control: {
887
+ position: "absolute",
888
+ width: "1px",
889
+ height: "1px",
890
+ padding: 0,
891
+ margin: "-1px",
892
+ overflow: "hidden",
893
+ clip: "rect(0, 0, 0, 0)",
894
+ whiteSpace: "nowrap",
895
+ borderWidth: 0,
896
+ _checked: {
897
+ "& + *": {
898
+ backgroundColor: "primary",
899
+ borderColor: "primary",
900
+ backgroundImage: radioDot
901
+ }
902
+ },
903
+ _focusVisible: {
904
+ "& + *": {
905
+ boxShadow: "outline"
906
+ }
907
+ },
908
+ _invalid: {
909
+ "& + *": {
910
+ borderColor: "danger"
911
+ }
912
+ }
913
+ },
914
+ indicator: {
915
+ flexShrink: 0,
916
+ boxSizing: "border-box",
917
+ borderWidth: "2px",
918
+ borderStyle: "solid",
919
+ borderColor: "neutral.400",
920
+ borderRadius: "full",
921
+ backgroundColor: "neutral.800",
922
+ backgroundRepeat: "no-repeat",
923
+ backgroundPosition: "center",
924
+ pointerEvents: "none",
925
+ _light: {
926
+ backgroundColor: "white",
927
+ borderColor: "neutral.500"
928
+ }
929
+ },
930
+ text: {
931
+ display: "flex",
932
+ flexDirection: "column",
933
+ gap: "1",
934
+ minWidth: 0
935
+ },
936
+ label: {
937
+ display: "inline-flex",
938
+ alignItems: "center",
939
+ fontFamily: "sans",
940
+ fontWeight: "medium",
941
+ lineHeight: "1"
942
+ },
943
+ description: {
944
+ fontFamily: "sans",
945
+ color: "muted",
946
+ lineHeight: "tight"
947
+ }
948
+ },
949
+ variants: {
950
+ size: {
951
+ sm: {
952
+ indicator: { width: "1rem", height: "1rem" },
953
+ label: { fontSize: "sm", minHeight: "1rem" },
954
+ description: { fontSize: "xs" },
955
+ legend: { fontSize: "sm" }
956
+ },
957
+ md: {
958
+ indicator: { width: "1.25rem", height: "1.25rem" },
959
+ label: { fontSize: "md", minHeight: "1.25rem" },
960
+ description: { fontSize: "sm" },
961
+ legend: { fontSize: "md" }
962
+ }
963
+ }
964
+ },
965
+ defaultVariants: {
966
+ size: "md"
967
+ }
968
+ });
969
+
970
+ // recipes/select.recipe.ts
971
+ import { defineRecipe as defineRecipe6 } from "@pandacss/dev";
972
+ var chevron = `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6.5 8 10.5 12 6.5' stroke='%23a1a1aa' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")`;
973
+ var selectRecipe = defineRecipe6({
974
+ className: "select",
975
+ description: "Native select. Label / helper / error live on Field.",
976
+ base: {
977
+ ...controlChrome,
978
+ appearance: "none",
979
+ cursor: "pointer",
980
+ backgroundImage: chevron,
981
+ backgroundRepeat: "no-repeat",
982
+ backgroundPosition: "right 0.6rem center",
983
+ backgroundSize: "1rem",
984
+ paddingRight: "8"
985
+ },
986
+ variants: {
987
+ size: controlSizeVariants,
988
+ invalid: controlInvalidVariants
989
+ },
990
+ defaultVariants: {
991
+ size: "md",
992
+ invalid: false
993
+ }
994
+ });
995
+
996
+ // recipes/textarea.recipe.ts
997
+ import { defineRecipe as defineRecipe7 } from "@pandacss/dev";
998
+ var textareaRecipe = defineRecipe7({
999
+ className: "textarea",
1000
+ description: "Native textarea. Label / helper / error live on Field.",
1001
+ base: {
1002
+ ...controlChrome,
1003
+ boxSizing: "border-box",
1004
+ resize: "vertical",
1005
+ lineHeight: "normal"
1006
+ },
1007
+ variants: {
1008
+ size: {
1009
+ sm: { ...controlSizeVariants.sm, height: "5rem", minHeight: "5rem" },
1010
+ md: { ...controlSizeVariants.md, height: "8rem", minHeight: "8rem" },
1011
+ lg: { ...controlSizeVariants.lg, height: "13rem", minHeight: "13rem" }
1012
+ },
1013
+ invalid: controlInvalidVariants
1014
+ },
1015
+ defaultVariants: {
1016
+ size: "md",
1017
+ invalid: false
1018
+ }
1019
+ });
1020
+
1021
+ // recipes/dialog.slot-recipe.ts
1022
+ import { defineSlotRecipe as defineSlotRecipe6 } from "@pandacss/dev";
1023
+ var dialog = defineSlotRecipe6({
1024
+ className: "dialog",
1025
+ description: "Native dialog overlay with header, body, and footer slots",
1026
+ slots: ["root", "header", "body", "footer", "title", "close"],
1027
+ base: {
1028
+ root: {
1029
+ // Panda preflight sets margin: 0, which removes UA dialog centering.
1030
+ position: "fixed",
1031
+ inset: "0",
1032
+ margin: "auto",
1033
+ height: "fit-content",
1034
+ width: "calc(100% - 2rem)",
1035
+ maxWidth: "28rem",
1036
+ maxHeight: "calc(100% - 2rem)",
1037
+ overflow: "auto",
1038
+ p: "md",
1039
+ borderWidth: "1px",
1040
+ borderStyle: "solid",
1041
+ borderColor: "neutral.700",
1042
+ borderRadius: "lg",
1043
+ backgroundColor: "surface",
1044
+ color: "text",
1045
+ boxShadow: "elevated",
1046
+ _light: {
1047
+ borderColor: "border",
1048
+ boxShadow: "lg"
1049
+ },
1050
+ "&::backdrop": {
1051
+ backgroundColor: "oklch(0% 0 0 / 0.55)"
1052
+ }
1053
+ },
1054
+ header: {
1055
+ display: "flex",
1056
+ alignItems: "flex-start",
1057
+ justifyContent: "space-between",
1058
+ gap: "sm",
1059
+ mb: "md"
1060
+ },
1061
+ title: {
1062
+ fontFamily: "sans",
1063
+ fontWeight: "bold",
1064
+ fontSize: "lg",
1065
+ lineHeight: "tight",
1066
+ m: 0
1067
+ },
1068
+ body: {
1069
+ fontFamily: "sans",
1070
+ fontSize: "md",
1071
+ lineHeight: "normal"
1072
+ },
1073
+ footer: {
1074
+ display: "flex",
1075
+ flexWrap: "wrap",
1076
+ justifyContent: "flex-end",
1077
+ alignItems: "center",
1078
+ gap: "sm",
1079
+ mt: "md",
1080
+ "& > *": {
1081
+ width: "auto",
1082
+ flex: "0 1 auto"
1083
+ }
1084
+ },
1085
+ close: {
1086
+ appearance: "none",
1087
+ border: "none",
1088
+ background: "transparent",
1089
+ color: "muted",
1090
+ cursor: "pointer",
1091
+ fontSize: "xl",
1092
+ lineHeight: "1",
1093
+ display: "inline-flex",
1094
+ alignItems: "center",
1095
+ justifyContent: "center",
1096
+ minW: "24px",
1097
+ minH: "24px",
1098
+ p: "1",
1099
+ borderRadius: "sm",
1100
+ _hover: { color: "text" },
1101
+ _focusVisible: {
1102
+ outline: "none",
1103
+ boxShadow: "outline"
1104
+ }
1105
+ }
1106
+ }
1107
+ });
1108
+
1109
+ // recipes/drawer.slot-recipe.ts
1110
+ import { defineSlotRecipe as defineSlotRecipe7 } from "@pandacss/dev";
1111
+ var drawer = defineSlotRecipe7({
1112
+ className: "drawer",
1113
+ description: "Side overlay built on native dialog",
1114
+ slots: ["root", "header", "body", "footer", "title", "close"],
1115
+ base: {
1116
+ root: {
1117
+ maxHeight: "100%",
1118
+ height: "100%",
1119
+ overflow: "auto",
1120
+ p: "md",
1121
+ borderWidth: "0",
1122
+ backgroundColor: "surface",
1123
+ color: "text",
1124
+ boxShadow: "elevated",
1125
+ _light: {
1126
+ boxShadow: "lg"
1127
+ },
1128
+ "&::backdrop": {
1129
+ backgroundColor: "oklch(0% 0 0 / 0.55)"
1130
+ }
1131
+ },
1132
+ header: {
1133
+ display: "flex",
1134
+ alignItems: "flex-start",
1135
+ justifyContent: "space-between",
1136
+ gap: "sm",
1137
+ mb: "md"
1138
+ },
1139
+ title: {
1140
+ fontFamily: "sans",
1141
+ fontWeight: "bold",
1142
+ fontSize: "lg",
1143
+ lineHeight: "tight",
1144
+ m: 0
1145
+ },
1146
+ body: {
1147
+ fontFamily: "sans",
1148
+ fontSize: "md",
1149
+ lineHeight: "normal"
1150
+ },
1151
+ footer: {
1152
+ display: "flex",
1153
+ flexWrap: "wrap",
1154
+ justifyContent: "flex-end",
1155
+ alignItems: "center",
1156
+ gap: "sm",
1157
+ mt: "md",
1158
+ "& > *": {
1159
+ width: "auto",
1160
+ flex: "0 1 auto"
1161
+ }
1162
+ },
1163
+ close: {
1164
+ appearance: "none",
1165
+ border: "none",
1166
+ background: "transparent",
1167
+ color: "muted",
1168
+ cursor: "pointer",
1169
+ fontSize: "xl",
1170
+ lineHeight: "1",
1171
+ display: "inline-flex",
1172
+ alignItems: "center",
1173
+ justifyContent: "center",
1174
+ minW: "24px",
1175
+ minH: "24px",
1176
+ p: "1",
1177
+ borderRadius: "sm",
1178
+ _hover: { color: "text" },
1179
+ _focusVisible: {
1180
+ outline: "none",
1181
+ boxShadow: "outline"
1182
+ }
1183
+ }
1184
+ },
1185
+ variants: {
1186
+ placement: {
1187
+ start: {
1188
+ root: {
1189
+ width: "20rem",
1190
+ maxWidth: "100%",
1191
+ margin: "0 auto 0 0",
1192
+ height: "100%",
1193
+ maxHeight: "100%"
1194
+ }
1195
+ },
1196
+ end: {
1197
+ root: {
1198
+ width: "20rem",
1199
+ maxWidth: "100%",
1200
+ margin: "0 0 0 auto",
1201
+ height: "100%",
1202
+ maxHeight: "100%"
1203
+ }
1204
+ }
1205
+ }
1206
+ },
1207
+ defaultVariants: {
1208
+ placement: "end"
1209
+ }
1210
+ });
1211
+
1212
+ // recipes/menu.slot-recipe.ts
1213
+ import { defineSlotRecipe as defineSlotRecipe8 } from "@pandacss/dev";
1214
+ var menu = defineSlotRecipe8({
1215
+ className: "menu",
1216
+ description: "Disclosure menu using details/summary",
1217
+ slots: ["root", "trigger", "content", "item"],
1218
+ base: {
1219
+ root: {
1220
+ display: "inline-block",
1221
+ position: "relative"
1222
+ },
1223
+ trigger: {
1224
+ listStyle: "none",
1225
+ cursor: "pointer",
1226
+ fontFamily: "sans",
1227
+ fontWeight: "medium",
1228
+ fontSize: "sm",
1229
+ px: 3,
1230
+ py: 2,
1231
+ borderWidth: "1px",
1232
+ borderStyle: "solid",
1233
+ borderColor: "neutral.500",
1234
+ borderRadius: "md",
1235
+ backgroundColor: "surface",
1236
+ color: "text",
1237
+ _light: {
1238
+ borderColor: "neutral.400"
1239
+ },
1240
+ _focusVisible: {
1241
+ outline: "none",
1242
+ boxShadow: "outline"
1243
+ },
1244
+ "&::-webkit-details-marker": { display: "none" },
1245
+ "&::marker": { content: '""' }
1246
+ },
1247
+ content: {
1248
+ position: "absolute",
1249
+ zIndex: 20,
1250
+ mt: "1",
1251
+ minWidth: "10rem",
1252
+ p: "1",
1253
+ borderWidth: "1px",
1254
+ borderStyle: "solid",
1255
+ borderColor: "neutral.700",
1256
+ borderRadius: "md",
1257
+ backgroundColor: "surface",
1258
+ boxShadow: "elevated",
1259
+ _light: {
1260
+ borderColor: "border",
1261
+ boxShadow: "md"
1262
+ }
1263
+ },
1264
+ item: {
1265
+ display: "block",
1266
+ width: "100%",
1267
+ textAlign: "left",
1268
+ appearance: "none",
1269
+ border: "none",
1270
+ background: "transparent",
1271
+ color: "text",
1272
+ fontFamily: "sans",
1273
+ fontSize: "sm",
1274
+ px: 3,
1275
+ py: 2,
1276
+ borderRadius: "sm",
1277
+ cursor: "pointer",
1278
+ _hover: { backgroundColor: "neutral.700" },
1279
+ _light: {
1280
+ _hover: { backgroundColor: "neutral.100" }
1281
+ },
1282
+ _focusVisible: {
1283
+ outline: "none",
1284
+ boxShadow: "outline"
1285
+ },
1286
+ _disabled: {
1287
+ opacity: 0.6,
1288
+ cursor: "not-allowed"
1289
+ }
1290
+ }
1291
+ }
1292
+ });
1293
+
1294
+ // recipes/tabs.slot-recipe.ts
1295
+ import { defineSlotRecipe as defineSlotRecipe9 } from "@pandacss/dev";
1296
+ var tabs = defineSlotRecipe9({
1297
+ className: "tabs",
1298
+ description: "ARIA tabs with list, tab, and panel slots",
1299
+ slots: ["root", "list", "tab", "panel"],
1300
+ base: {
1301
+ root: {
1302
+ display: "flex",
1303
+ flexDirection: "column",
1304
+ gap: "md"
1305
+ },
1306
+ list: {
1307
+ display: "flex",
1308
+ gap: "1",
1309
+ borderBottomWidth: "1px",
1310
+ borderBottomStyle: "solid",
1311
+ borderColor: "neutral.700",
1312
+ _light: { borderColor: "border" }
1313
+ },
1314
+ tab: {
1315
+ appearance: "none",
1316
+ border: "none",
1317
+ background: "transparent",
1318
+ color: "muted",
1319
+ fontFamily: "sans",
1320
+ fontWeight: "medium",
1321
+ fontSize: "sm",
1322
+ px: 3,
1323
+ py: 2,
1324
+ cursor: "pointer",
1325
+ borderBottomWidth: "2px",
1326
+ borderBottomStyle: "solid",
1327
+ borderBottomColor: "transparent",
1328
+ mb: "-1px",
1329
+ _hover: { color: "text" },
1330
+ '&[aria-selected="true"]': {
1331
+ color: "text",
1332
+ borderBottomColor: "primary"
1333
+ },
1334
+ _focusVisible: {
1335
+ outline: "none",
1336
+ boxShadow: "outline"
1337
+ },
1338
+ _disabled: {
1339
+ opacity: 0.6,
1340
+ cursor: "not-allowed"
1341
+ }
1342
+ },
1343
+ panel: {
1344
+ fontFamily: "sans",
1345
+ fontSize: "md",
1346
+ color: "text",
1347
+ _focusVisible: {
1348
+ outline: "none",
1349
+ boxShadow: "outline"
1350
+ }
1351
+ }
1352
+ }
1353
+ });
1354
+
1355
+ // recipes/table.slot-recipe.ts
1356
+ import { defineSlotRecipe as defineSlotRecipe10 } from "@pandacss/dev";
1357
+ var table = defineSlotRecipe10({
1358
+ className: "table",
1359
+ description: "Semantic table slots",
1360
+ slots: ["root", "caption", "thead", "tbody", "tfoot", "tr", "th", "td"],
1361
+ base: {
1362
+ root: {
1363
+ width: "100%",
1364
+ borderCollapse: "collapse",
1365
+ fontFamily: "sans",
1366
+ fontSize: "sm",
1367
+ color: "text"
1368
+ },
1369
+ caption: {
1370
+ captionSide: "bottom",
1371
+ pt: "sm",
1372
+ color: "muted",
1373
+ fontSize: "xs",
1374
+ textAlign: "left"
1375
+ },
1376
+ thead: {
1377
+ borderBottomWidth: "1px",
1378
+ borderBottomStyle: "solid",
1379
+ borderColor: "neutral.600",
1380
+ _light: { borderColor: "border" }
1381
+ },
1382
+ tbody: {},
1383
+ tfoot: {
1384
+ borderTopWidth: "1px",
1385
+ borderTopStyle: "solid",
1386
+ borderColor: "neutral.600",
1387
+ _light: { borderColor: "border" }
1388
+ },
1389
+ tr: {
1390
+ borderBottomWidth: "1px",
1391
+ borderBottomStyle: "solid",
1392
+ borderColor: "neutral.700",
1393
+ _light: { borderColor: "neutral.200" }
1394
+ },
1395
+ th: {
1396
+ textAlign: "left",
1397
+ fontWeight: "medium",
1398
+ px: 3,
1399
+ py: 2
1400
+ },
1401
+ td: {
1402
+ px: 3,
1403
+ py: 2
1404
+ }
1405
+ },
1406
+ variants: {
1407
+ size: {
1408
+ sm: {
1409
+ root: { fontSize: "xs" },
1410
+ th: { px: 2, py: 1 },
1411
+ td: { px: 2, py: 1 }
1412
+ },
1413
+ md: {
1414
+ root: { fontSize: "sm" }
1415
+ }
1416
+ }
1417
+ },
1418
+ defaultVariants: {
1419
+ size: "md"
1420
+ }
1421
+ });
1422
+
1423
+ // recipes/spinner.recipe.ts
1424
+ import { defineRecipe as defineRecipe8 } from "@pandacss/dev";
1425
+ var spinner = defineRecipe8({
1426
+ className: "spinner",
1427
+ description: "Pure CSS loading spinner",
1428
+ base: {
1429
+ display: "inline-block",
1430
+ boxSizing: "border-box",
1431
+ flexShrink: 0,
1432
+ verticalAlign: "middle",
1433
+ borderWidth: "2px",
1434
+ borderStyle: "solid",
1435
+ borderColor: "neutral.600",
1436
+ borderTopColor: "primary",
1437
+ borderRadius: "full",
1438
+ animationName: "spin",
1439
+ animationDuration: "0.7s",
1440
+ animationTimingFunction: "linear",
1441
+ animationIterationCount: "infinite",
1442
+ _light: {
1443
+ borderColor: "neutral.300",
1444
+ borderTopColor: "primary"
1445
+ }
1446
+ },
1447
+ variants: {
1448
+ size: {
1449
+ sm: { width: "1rem", height: "1rem" },
1450
+ md: { width: "1.5rem", height: "1.5rem" },
1451
+ lg: { width: "2rem", height: "2rem" }
1452
+ }
1453
+ },
1454
+ defaultVariants: {
1455
+ size: "md"
1456
+ }
1457
+ });
1458
+
1459
+ // recipes/link.recipe.ts
1460
+ import { defineRecipe as defineRecipe9 } from "@pandacss/dev";
1461
+ var link = defineRecipe9({
1462
+ className: "link",
1463
+ description: "Inline link",
1464
+ base: {
1465
+ color: "primary",
1466
+ textDecoration: "underline",
1467
+ textUnderlineOffset: "0.15em",
1468
+ cursor: "pointer",
1469
+ _hover: { color: "primaryHover" },
1470
+ _focusVisible: {
1471
+ outline: "none",
1472
+ boxShadow: "outline",
1473
+ borderRadius: "sm"
1474
+ }
1475
+ },
1476
+ variants: {
1477
+ visual: {
1478
+ default: {},
1479
+ muted: {
1480
+ color: "muted",
1481
+ textDecoration: "none",
1482
+ _hover: { color: "text", textDecoration: "underline" }
1483
+ }
1484
+ },
1485
+ visited: {
1486
+ true: {
1487
+ _visited: { color: "secondary" }
1488
+ },
1489
+ false: {}
1490
+ }
1491
+ },
1492
+ defaultVariants: {
1493
+ visual: "default",
1494
+ visited: false
1495
+ }
1496
+ });
1497
+
1498
+ // recipes/separator.recipe.ts
1499
+ import { defineRecipe as defineRecipe10 } from "@pandacss/dev";
1500
+ var separator = defineRecipe10({
1501
+ className: "separator",
1502
+ description: "Horizontal or vertical rule",
1503
+ base: {
1504
+ border: "none",
1505
+ margin: 0,
1506
+ backgroundColor: "neutral.700",
1507
+ _light: { backgroundColor: "border" },
1508
+ flexShrink: 0
1509
+ },
1510
+ variants: {
1511
+ orientation: {
1512
+ horizontal: {
1513
+ width: "100%",
1514
+ height: "1px"
1515
+ },
1516
+ vertical: {
1517
+ width: "1px",
1518
+ height: "auto",
1519
+ alignSelf: "stretch",
1520
+ minHeight: "1em"
1521
+ }
1522
+ }
1523
+ },
1524
+ defaultVariants: {
1525
+ orientation: "horizontal"
1526
+ }
1527
+ });
1528
+
1529
+ // recipes/tooltip.recipe.ts
1530
+ import { defineRecipe as defineRecipe11 } from "@pandacss/dev";
1531
+ var tooltip = defineRecipe11({
1532
+ className: "tooltip",
1533
+ description: "Tooltip content bubble",
1534
+ base: {
1535
+ position: "fixed",
1536
+ zIndex: 1e3,
1537
+ maxWidth: "16rem",
1538
+ px: "2",
1539
+ py: "1",
1540
+ borderRadius: "md",
1541
+ borderWidth: "1px",
1542
+ borderStyle: "solid",
1543
+ borderColor: "border",
1544
+ bg: "surface",
1545
+ color: "text",
1546
+ fontSize: "xs",
1547
+ fontWeight: "medium",
1548
+ lineHeight: "tight",
1549
+ boxShadow: "md",
1550
+ pointerEvents: "none",
1551
+ whiteSpace: "normal",
1552
+ textAlign: "left",
1553
+ _light: {
1554
+ bg: "neutral.100",
1555
+ borderColor: "neutral.300"
1556
+ }
1557
+ },
1558
+ variants: {
1559
+ placement: {
1560
+ top: {},
1561
+ bottom: {},
1562
+ left: {},
1563
+ right: {}
1564
+ }
1565
+ },
1566
+ defaultVariants: {
1567
+ placement: "top"
1568
+ }
1569
+ });
1570
+
1571
+ // recipes/hide.recipe.ts
1572
+ import { defineRecipe as defineRecipe12 } from "@pandacss/dev";
1573
+ var BREAKPOINTS = ["sm", "md", "lg", "xl", "2xl"];
1574
+ var breakpointVariants = {
1575
+ sm: {},
1576
+ md: {},
1577
+ lg: {},
1578
+ xl: {},
1579
+ "2xl": {}
1580
+ };
1581
+ var hide = defineRecipe12({
1582
+ className: "hide",
1583
+ description: "Hide children below or from a breakpoint (CSS media queries)",
1584
+ variants: {
1585
+ below: breakpointVariants,
1586
+ from: breakpointVariants,
1587
+ asContents: {
1588
+ true: {},
1589
+ false: {}
1590
+ }
1591
+ },
1592
+ compoundVariants: BREAKPOINTS.flatMap((bp) => [
1593
+ {
1594
+ below: bp,
1595
+ asContents: true,
1596
+ css: { display: { base: "none", [bp]: "contents" } }
1597
+ },
1598
+ {
1599
+ below: bp,
1600
+ asContents: false,
1601
+ css: { display: { base: "none", [bp]: "block" } }
1602
+ },
1603
+ {
1604
+ from: bp,
1605
+ asContents: true,
1606
+ css: { display: { base: "contents", [bp]: "none" } }
1607
+ },
1608
+ {
1609
+ from: bp,
1610
+ asContents: false,
1611
+ css: { display: { base: "block", [bp]: "none" } }
1612
+ }
1613
+ ]),
1614
+ defaultVariants: {
1615
+ asContents: true
1616
+ }
1617
+ });
1618
+
1619
+ // preset/theme-tokens.ts
1620
+ var colors = {
1621
+ brand: {
1622
+ becketYellow: { value: "oklch(0.75 0.15 78)" },
1623
+ hiveSage: { value: "oklch(0.70 0.13 125)" },
1624
+ combAmber: { value: "oklch(0.60 0.16 48)" }
1625
+ },
1626
+ primary: { value: "{colors.brand.becketYellow}" },
1627
+ secondary: { value: "{colors.brand.hiveSage}" },
1628
+ tertiary: { value: "{colors.brand.combAmber}" },
1629
+ primaryHover: {
1630
+ value: "color-mix(in oklch, {colors.primary} 88%, white)"
1631
+ },
1632
+ neutral: {
1633
+ 50: { value: "oklch(0.96 0.012 78)" },
1634
+ 100: { value: "oklch(0.94 0.012 78)" },
1635
+ 200: { value: "oklch(0.89 0.012 75)" },
1636
+ 300: { value: "oklch(0.84 0.012 72)" },
1637
+ 400: { value: "oklch(0.75 0.012 70)" },
1638
+ 500: { value: "oklch(0.65 0.012 65)" },
1639
+ 600: { value: "oklch(0.55 0.014 62)" },
1640
+ 700: { value: "oklch(0.45 0.014 60)" },
1641
+ 800: { value: "oklch(0.35 0.015 60)" },
1642
+ 900: { value: "oklch(0.22 0.015 60)" }
1643
+ },
1644
+ black: { value: "oklch(20% 0 0)" },
1645
+ white: { value: "oklch(99% 0 0)" },
1646
+ border: { value: "{colors.neutral.200}" },
1647
+ danger: { value: "oklch(0.62 0.20 25)" },
1648
+ warning: { value: "oklch(0.78 0.14 95)" },
1649
+ success: { value: "oklch(0.68 0.16 145)" },
1650
+ /** @deprecated Prefer semantic `text` / `background`. Kept as CSS-var aliases. */
1651
+ lightBackground: { value: "{colors.neutral.50}" },
1652
+ lightText: { value: "{colors.neutral.900}" }
1653
+ };
1654
+ var semanticColors = {
1655
+ background: {
1656
+ value: {
1657
+ base: "{colors.neutral.900}",
1658
+ _light: "{colors.neutral.50}"
1659
+ }
1660
+ },
1661
+ text: {
1662
+ value: {
1663
+ base: "{colors.neutral.50}",
1664
+ _light: "{colors.neutral.900}"
1665
+ }
1666
+ },
1667
+ muted: {
1668
+ value: {
1669
+ base: "{colors.neutral.300}",
1670
+ _light: "{colors.neutral.600}"
1671
+ }
1672
+ },
1673
+ /** Overlay / control fill (dialog, field, menu). Cards keep their own surfaces. */
1674
+ surface: {
1675
+ value: {
1676
+ base: "{colors.neutral.800}",
1677
+ _light: "{colors.white}"
1678
+ }
1679
+ }
1680
+ };
1681
+ var spacing = {
1682
+ 0: { value: "0rem" },
1683
+ 1: { value: "0.25rem" },
1684
+ 2: { value: "0.5rem" },
1685
+ 3: { value: "0.75rem" },
1686
+ 5: { value: "1.25rem" },
1687
+ 8: { value: "2rem" },
1688
+ 13: { value: "3.25rem" },
1689
+ 21: { value: "5.25rem" },
1690
+ 34: { value: "8.5rem" },
1691
+ xs: { value: "{spacing.1}" },
1692
+ sm: { value: "{spacing.2}" },
1693
+ md: { value: "{spacing.3}" },
1694
+ lg: { value: "{spacing.5}" },
1695
+ xl: { value: "{spacing.8}" },
1696
+ "2xs": { value: "{spacing.13}" }
1697
+ };
1698
+ var sizes = {
1699
+ 0: { value: "0rem" },
1700
+ 1: { value: "0.25rem" },
1701
+ 2: { value: "0.5rem" },
1702
+ 3: { value: "0.75rem" },
1703
+ 5: { value: "1.25rem" },
1704
+ 8: { value: "2rem" },
1705
+ 13: { value: "3.25rem" },
1706
+ 21: { value: "5.25rem" },
1707
+ 34: { value: "8.5rem" },
1708
+ 55: { value: "13.75rem" },
1709
+ /** Default form-control width (~200px at 16px root). */
1710
+ field: { value: "12.5rem" }
1711
+ };
1712
+ var radii = {
1713
+ none: { value: "0px" },
1714
+ sm: { value: "4px" },
1715
+ md: { value: "8px" },
1716
+ lg: { value: "12px" },
1717
+ xl: { value: "20px" },
1718
+ full: { value: "9999px" }
1719
+ };
1720
+ var fonts = {
1721
+ sans: { value: "'Inter', 'Roboto', 'Helvetica Neue', Arial, sans-serif" },
1722
+ mono: { value: "'JetBrains Mono', 'Menlo', 'Consolas', 'monospace'" }
1723
+ };
1724
+ var fontSizes = {
1725
+ xs: { value: "0.75rem" },
1726
+ sm: { value: "0.875rem" },
1727
+ md: { value: "1rem" },
1728
+ lg: { value: "1.25rem" },
1729
+ xl: { value: "1.5rem" },
1730
+ "2xl": { value: "2rem" },
1731
+ "3xl": { value: "3rem" },
1732
+ "4xl": { value: "3.75rem" },
1733
+ "5xl": { value: "4.5rem" },
1734
+ "6xl": { value: "6rem" }
1735
+ };
1736
+ var fontWeights = {
1737
+ normal: { value: "400" },
1738
+ medium: { value: "500" },
1739
+ bold: { value: "700" }
1740
+ };
1741
+ var lineHeights = {
1742
+ normal: { value: "1.5" },
1743
+ tight: { value: "1.25" },
1744
+ loose: { value: "1.75" }
1745
+ };
1746
+ var shadows = {
1747
+ sm: { value: "0 1px 3px 0 oklch(0% 0 0 / 0.08)" },
1748
+ md: { value: "0 3px 6px 0 oklch(0% 0 0 / 0.12)" },
1749
+ lg: { value: "0 8px 16px 0 oklch(0% 0 0 / 0.16)" },
1750
+ /** Readable on dark surfaces (black sm/md/lg wash out). */
1751
+ elevated: {
1752
+ value: "0 12px 32px oklch(0% 0 0 / 0.55), 0 0 0 1px oklch(100% 0 0 / 0.08)"
1753
+ },
1754
+ outline: {
1755
+ value: "0 0 0 2px color-mix(in srgb, {colors.primary} 45%, transparent)"
1756
+ }
1757
+ };
1758
+ var gradients = {
1759
+ primary: {
1760
+ value: "linear-gradient(to right, {colors.primary}, {colors.tertiary})"
1761
+ },
1762
+ primaryHover: {
1763
+ value: "linear-gradient(to right, {colors.primaryHover}, {colors.tertiary})"
1764
+ },
1765
+ secondary: {
1766
+ value: "linear-gradient(to right, {colors.primary}, {colors.secondary})"
1767
+ },
1768
+ neutral: {
1769
+ value: "linear-gradient(to right, {colors.neutral.100}, {colors.neutral.200})"
1770
+ }
1771
+ };
1772
+ var keyframes = {
1773
+ spin: {
1774
+ from: { transform: "rotate(0deg)" },
1775
+ to: { transform: "rotate(360deg)" }
1776
+ }
1777
+ };
1778
+ var breakpoints = {
1779
+ sm: "30rem",
1780
+ md: "48rem",
1781
+ lg: "62rem",
1782
+ xl: "80rem",
1783
+ "2xl": "96rem"
1784
+ };
1785
+
1786
+ // preset/index.ts
1787
+ var BECKET_PREFIX = "beckui-";
1788
+ var becketPreset = definePreset({
1789
+ name: "@becket-ui/tokens",
1790
+ conditions: {
1791
+ extend: {
1792
+ light: "[data-theme='light'] &",
1793
+ dark: "[data-theme='dark'] &"
1794
+ }
1795
+ },
1796
+ theme: {
1797
+ extend: {
1798
+ tokens: {
1799
+ colors,
1800
+ gradients,
1801
+ spacing,
1802
+ sizes,
1803
+ radii,
1804
+ fonts,
1805
+ fontSizes,
1806
+ fontWeights,
1807
+ lineHeights,
1808
+ shadows
1809
+ },
1810
+ semanticTokens: {
1811
+ colors: semanticColors
1812
+ },
1813
+ keyframes,
1814
+ breakpoints,
1815
+ recipes: {
1816
+ button,
1817
+ heading,
1818
+ hide,
1819
+ tag,
1820
+ badge,
1821
+ card,
1822
+ field,
1823
+ switchRecipe,
1824
+ textFieldRecipe,
1825
+ checkbox,
1826
+ radio,
1827
+ selectRecipe,
1828
+ textareaRecipe,
1829
+ dialog,
1830
+ drawer,
1831
+ menu,
1832
+ tabs,
1833
+ table,
1834
+ spinner,
1835
+ link,
1836
+ separator,
1837
+ tooltip
1838
+ }
1839
+ }
1840
+ }
1841
+ });
1842
+ export {
1843
+ BECKET_PREFIX,
1844
+ becketPreset
1845
+ };
1846
+ //# sourceMappingURL=preset.js.map