@discourser/design-system 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 (144) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +213 -0
  3. package/dist/index.cjs +1250 -0
  4. package/dist/index.cjs.map +1 -0
  5. package/dist/index.d.cts +456 -0
  6. package/dist/index.d.ts +456 -0
  7. package/dist/index.js +1234 -0
  8. package/dist/index.js.map +1 -0
  9. package/package.json +123 -0
  10. package/styled-system/css/conditions.mjs +36 -0
  11. package/styled-system/css/css.d.ts +22 -0
  12. package/styled-system/css/css.mjs +45 -0
  13. package/styled-system/css/cva.d.ts +6 -0
  14. package/styled-system/css/cva.mjs +87 -0
  15. package/styled-system/css/cx.d.ts +5 -0
  16. package/styled-system/css/cx.mjs +15 -0
  17. package/styled-system/css/index.d.ts +5 -0
  18. package/styled-system/css/index.mjs +4 -0
  19. package/styled-system/css/sva.d.ts +4 -0
  20. package/styled-system/css/sva.mjs +41 -0
  21. package/styled-system/helpers.mjs +336 -0
  22. package/styled-system/jsx/aspect-ratio.d.ts +10 -0
  23. package/styled-system/jsx/aspect-ratio.mjs +14 -0
  24. package/styled-system/jsx/bleed.d.ts +10 -0
  25. package/styled-system/jsx/bleed.mjs +14 -0
  26. package/styled-system/jsx/box.d.ts +10 -0
  27. package/styled-system/jsx/box.mjs +14 -0
  28. package/styled-system/jsx/center.d.ts +10 -0
  29. package/styled-system/jsx/center.mjs +14 -0
  30. package/styled-system/jsx/circle.d.ts +10 -0
  31. package/styled-system/jsx/circle.mjs +14 -0
  32. package/styled-system/jsx/container.d.ts +10 -0
  33. package/styled-system/jsx/container.mjs +14 -0
  34. package/styled-system/jsx/cq.d.ts +10 -0
  35. package/styled-system/jsx/cq.mjs +14 -0
  36. package/styled-system/jsx/divider.d.ts +10 -0
  37. package/styled-system/jsx/divider.mjs +14 -0
  38. package/styled-system/jsx/factory-helper.mjs +22 -0
  39. package/styled-system/jsx/factory.d.ts +3 -0
  40. package/styled-system/jsx/factory.mjs +80 -0
  41. package/styled-system/jsx/flex.d.ts +10 -0
  42. package/styled-system/jsx/flex.mjs +14 -0
  43. package/styled-system/jsx/float.d.ts +10 -0
  44. package/styled-system/jsx/float.mjs +14 -0
  45. package/styled-system/jsx/grid-item.d.ts +10 -0
  46. package/styled-system/jsx/grid-item.mjs +14 -0
  47. package/styled-system/jsx/grid.d.ts +10 -0
  48. package/styled-system/jsx/grid.mjs +14 -0
  49. package/styled-system/jsx/hstack.d.ts +10 -0
  50. package/styled-system/jsx/hstack.mjs +14 -0
  51. package/styled-system/jsx/index.d.ts +24 -0
  52. package/styled-system/jsx/index.mjs +22 -0
  53. package/styled-system/jsx/is-valid-prop.d.ts +11 -0
  54. package/styled-system/jsx/is-valid-prop.mjs +17 -0
  55. package/styled-system/jsx/link-overlay.d.ts +10 -0
  56. package/styled-system/jsx/link-overlay.mjs +14 -0
  57. package/styled-system/jsx/spacer.d.ts +10 -0
  58. package/styled-system/jsx/spacer.mjs +14 -0
  59. package/styled-system/jsx/square.d.ts +10 -0
  60. package/styled-system/jsx/square.mjs +14 -0
  61. package/styled-system/jsx/stack.d.ts +10 -0
  62. package/styled-system/jsx/stack.mjs +14 -0
  63. package/styled-system/jsx/visually-hidden.d.ts +10 -0
  64. package/styled-system/jsx/visually-hidden.mjs +14 -0
  65. package/styled-system/jsx/vstack.d.ts +10 -0
  66. package/styled-system/jsx/vstack.mjs +14 -0
  67. package/styled-system/jsx/wrap.d.ts +10 -0
  68. package/styled-system/jsx/wrap.mjs +14 -0
  69. package/styled-system/patterns/aspect-ratio.d.ts +21 -0
  70. package/styled-system/patterns/aspect-ratio.mjs +38 -0
  71. package/styled-system/patterns/bleed.d.ts +22 -0
  72. package/styled-system/patterns/bleed.mjs +24 -0
  73. package/styled-system/patterns/box.d.ts +21 -0
  74. package/styled-system/patterns/box.mjs +15 -0
  75. package/styled-system/patterns/center.d.ts +21 -0
  76. package/styled-system/patterns/center.mjs +21 -0
  77. package/styled-system/patterns/circle.d.ts +21 -0
  78. package/styled-system/patterns/circle.mjs +25 -0
  79. package/styled-system/patterns/container.d.ts +21 -0
  80. package/styled-system/patterns/container.mjs +21 -0
  81. package/styled-system/patterns/cq.d.ts +22 -0
  82. package/styled-system/patterns/cq.mjs +21 -0
  83. package/styled-system/patterns/divider.d.ts +23 -0
  84. package/styled-system/patterns/divider.mjs +25 -0
  85. package/styled-system/patterns/flex.d.ts +27 -0
  86. package/styled-system/patterns/flex.mjs +26 -0
  87. package/styled-system/patterns/float.d.ts +24 -0
  88. package/styled-system/patterns/float.mjs +52 -0
  89. package/styled-system/patterns/grid-item.d.ts +26 -0
  90. package/styled-system/patterns/grid-item.mjs +25 -0
  91. package/styled-system/patterns/grid.d.ts +25 -0
  92. package/styled-system/patterns/grid.mjs +27 -0
  93. package/styled-system/patterns/hstack.d.ts +22 -0
  94. package/styled-system/patterns/hstack.mjs +24 -0
  95. package/styled-system/patterns/index.d.ts +21 -0
  96. package/styled-system/patterns/index.mjs +20 -0
  97. package/styled-system/patterns/link-overlay.d.ts +21 -0
  98. package/styled-system/patterns/link-overlay.mjs +24 -0
  99. package/styled-system/patterns/spacer.d.ts +21 -0
  100. package/styled-system/patterns/spacer.mjs +21 -0
  101. package/styled-system/patterns/square.d.ts +21 -0
  102. package/styled-system/patterns/square.mjs +24 -0
  103. package/styled-system/patterns/stack.d.ts +24 -0
  104. package/styled-system/patterns/stack.mjs +24 -0
  105. package/styled-system/patterns/visually-hidden.d.ts +21 -0
  106. package/styled-system/patterns/visually-hidden.mjs +18 -0
  107. package/styled-system/patterns/vstack.d.ts +22 -0
  108. package/styled-system/patterns/vstack.mjs +24 -0
  109. package/styled-system/patterns/wrap.d.ts +25 -0
  110. package/styled-system/patterns/wrap.mjs +25 -0
  111. package/styled-system/recipes/button.d.ts +39 -0
  112. package/styled-system/recipes/button.mjs +40 -0
  113. package/styled-system/recipes/card.d.ts +39 -0
  114. package/styled-system/recipes/card.mjs +36 -0
  115. package/styled-system/recipes/create-recipe.mjs +82 -0
  116. package/styled-system/recipes/dialog.d.ts +35 -0
  117. package/styled-system/recipes/dialog.mjs +63 -0
  118. package/styled-system/recipes/icon-button.d.ts +39 -0
  119. package/styled-system/recipes/icon-button.mjs +39 -0
  120. package/styled-system/recipes/index.d.ts +7 -0
  121. package/styled-system/recipes/index.mjs +6 -0
  122. package/styled-system/recipes/input.d.ts +40 -0
  123. package/styled-system/recipes/input.mjs +40 -0
  124. package/styled-system/recipes/switch-control.d.ts +35 -0
  125. package/styled-system/recipes/switch-control.mjs +53 -0
  126. package/styled-system/recipes/switch.d.ts +35 -0
  127. package/styled-system/recipes/switch.mjs +53 -0
  128. package/styled-system/tokens/index.d.ts +9 -0
  129. package/styled-system/tokens/index.mjs +924 -0
  130. package/styled-system/tokens/tokens.d.ts +48 -0
  131. package/styled-system/types/composition.d.ts +164 -0
  132. package/styled-system/types/conditions.d.ts +306 -0
  133. package/styled-system/types/csstype.d.ts +21298 -0
  134. package/styled-system/types/global.d.ts +20 -0
  135. package/styled-system/types/index.d.ts +8 -0
  136. package/styled-system/types/jsx.d.ts +52 -0
  137. package/styled-system/types/parts.d.ts +8 -0
  138. package/styled-system/types/pattern.d.ts +78 -0
  139. package/styled-system/types/prop-type.d.ts +224 -0
  140. package/styled-system/types/recipe.d.ts +181 -0
  141. package/styled-system/types/selectors.d.ts +59 -0
  142. package/styled-system/types/static-css.d.ts +56 -0
  143. package/styled-system/types/style-props.d.ts +7468 -0
  144. package/styled-system/types/system-types.d.ts +109 -0
package/dist/index.cjs ADDED
@@ -0,0 +1,1250 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var recipes = require('styled-system/recipes');
5
+ var clsx = require('clsx');
6
+ var jsxRuntime = require('react/jsx-runtime');
7
+ var field = require('@ark-ui/react/field');
8
+ var dialog = require('@ark-ui/react/dialog');
9
+ var portal = require('@ark-ui/react/portal');
10
+ var _switch = require('@ark-ui/react/switch');
11
+
12
+ function cn(...inputs) {
13
+ return clsx.clsx(inputs);
14
+ }
15
+ var Button = react.forwardRef(
16
+ ({ children, variant, size, leftIcon, rightIcon, className, ...props }, ref) => {
17
+ return /* @__PURE__ */ jsxRuntime.jsxs(
18
+ "button",
19
+ {
20
+ ref,
21
+ className: cn(recipes.button({ variant, size }), className),
22
+ ...props,
23
+ children: [
24
+ leftIcon,
25
+ children,
26
+ rightIcon
27
+ ]
28
+ }
29
+ );
30
+ }
31
+ );
32
+ Button.displayName = "Button";
33
+ var Card = react.forwardRef(
34
+ ({ children, variant, interactive, className, ...props }, ref) => {
35
+ return /* @__PURE__ */ jsxRuntime.jsx(
36
+ "div",
37
+ {
38
+ ref,
39
+ className: cn(recipes.card({ variant, interactive }), className),
40
+ ...props,
41
+ children
42
+ }
43
+ );
44
+ }
45
+ );
46
+ Card.displayName = "Card";
47
+ var IconButton = react.forwardRef(
48
+ ({ children, variant, size, className, ...props }, ref) => {
49
+ return /* @__PURE__ */ jsxRuntime.jsx(
50
+ "button",
51
+ {
52
+ ref,
53
+ className: cn(recipes.iconButton({ variant, size }), className),
54
+ ...props,
55
+ children
56
+ }
57
+ );
58
+ }
59
+ );
60
+ IconButton.displayName = "IconButton";
61
+ var Input = react.forwardRef(
62
+ ({ label, helperText, errorText, variant, size, state, className, ...props }, ref) => {
63
+ const hasError = !!errorText || state === "error";
64
+ return /* @__PURE__ */ jsxRuntime.jsxs(field.Field.Root, { invalid: hasError, children: [
65
+ label && /* @__PURE__ */ jsxRuntime.jsx(field.Field.Label, { children: label }),
66
+ /* @__PURE__ */ jsxRuntime.jsx(
67
+ field.Field.Input,
68
+ {
69
+ ref,
70
+ className: cn(
71
+ recipes.input({ variant, size, state: hasError ? "error" : state }),
72
+ className
73
+ ),
74
+ ...props
75
+ }
76
+ ),
77
+ helperText && !hasError && /* @__PURE__ */ jsxRuntime.jsx(field.Field.HelperText, { children: helperText }),
78
+ errorText && /* @__PURE__ */ jsxRuntime.jsx(field.Field.ErrorText, { children: errorText })
79
+ ] });
80
+ }
81
+ );
82
+ Input.displayName = "Input";
83
+ var Dialog = react.forwardRef(
84
+ ({
85
+ open,
86
+ onOpenChange,
87
+ title,
88
+ description,
89
+ children,
90
+ size,
91
+ showCloseButton = true,
92
+ closeLabel = "Close"
93
+ }, ref) => {
94
+ const classes = recipes.dialog({ size });
95
+ return /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(portal.Portal, { children: [
96
+ /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Backdrop, { className: classes.backdrop }),
97
+ /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Positioner, { className: classes.positioner, children: /* @__PURE__ */ jsxRuntime.jsxs(dialog.Dialog.Content, { ref, className: classes.content, children: [
98
+ title && /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Title, { className: classes.title, children: title }),
99
+ description && /* @__PURE__ */ jsxRuntime.jsx(dialog.Dialog.Description, { className: classes.description, children: description }),
100
+ children && /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.description, children }),
101
+ showCloseButton && /* @__PURE__ */ jsxRuntime.jsx(
102
+ dialog.Dialog.CloseTrigger,
103
+ {
104
+ className: classes.closeTrigger,
105
+ "aria-label": closeLabel,
106
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
107
+ "svg",
108
+ {
109
+ width: "24",
110
+ height: "24",
111
+ viewBox: "0 0 24 24",
112
+ fill: "none",
113
+ stroke: "currentColor",
114
+ strokeWidth: "2",
115
+ strokeLinecap: "round",
116
+ strokeLinejoin: "round",
117
+ children: [
118
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
119
+ /* @__PURE__ */ jsxRuntime.jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
120
+ ]
121
+ }
122
+ )
123
+ }
124
+ )
125
+ ] }) })
126
+ ] }) });
127
+ }
128
+ );
129
+ Dialog.displayName = "Dialog";
130
+ var Switch = react.forwardRef(
131
+ ({
132
+ label,
133
+ checked,
134
+ defaultChecked,
135
+ onCheckedChange,
136
+ disabled,
137
+ name,
138
+ value,
139
+ required,
140
+ size
141
+ }, ref) => {
142
+ const classes = recipes.switchControl({ size });
143
+ return /* @__PURE__ */ jsxRuntime.jsxs(
144
+ _switch.Switch.Root,
145
+ {
146
+ checked,
147
+ defaultChecked,
148
+ onCheckedChange,
149
+ disabled,
150
+ name,
151
+ value,
152
+ required,
153
+ className: classes.root,
154
+ children: [
155
+ /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Control, { className: classes.control, children: /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Thumb, { className: classes.thumb }) }),
156
+ /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.HiddenInput, { ref }),
157
+ label && /* @__PURE__ */ jsxRuntime.jsx(_switch.Switch.Label, { className: classes.label, children: label })
158
+ ]
159
+ }
160
+ );
161
+ }
162
+ );
163
+ Switch.displayName = "Switch";
164
+
165
+ // node_modules/.pnpm/@pandacss+dev@0.52.0_jsdom@27.4.0_typescript@5.9.3/node_modules/@pandacss/dev/dist/index.mjs
166
+ function defineRecipe(config) {
167
+ return config;
168
+ }
169
+ function defineSlotRecipe(config) {
170
+ return config;
171
+ }
172
+
173
+ // src/recipes/button.recipe.ts
174
+ var buttonRecipe = defineRecipe({
175
+ className: "button",
176
+ description: "Material Design 3 button component",
177
+ base: {
178
+ display: "inline-flex",
179
+ alignItems: "center",
180
+ justifyContent: "center",
181
+ gap: "sm",
182
+ fontFamily: "body",
183
+ fontWeight: "500",
184
+ borderRadius: "full",
185
+ cursor: "pointer",
186
+ transition: "all",
187
+ transitionDuration: "fast",
188
+ transitionTimingFunction: "standard",
189
+ outline: "none",
190
+ border: "none",
191
+ textDecoration: "none",
192
+ _disabled: {
193
+ opacity: 0.38,
194
+ cursor: "not-allowed",
195
+ pointerEvents: "none"
196
+ },
197
+ _focusVisible: {
198
+ outline: "2px solid",
199
+ outlineColor: "primary",
200
+ outlineOffset: "2px"
201
+ }
202
+ },
203
+ variants: {
204
+ variant: {
205
+ filled: {
206
+ bg: "primary",
207
+ color: "onPrimary",
208
+ _hover: {
209
+ opacity: 0.92,
210
+ shadow: "level1"
211
+ },
212
+ _active: {
213
+ opacity: 0.88
214
+ }
215
+ },
216
+ outlined: {
217
+ bg: "transparent",
218
+ color: "primary",
219
+ borderWidth: "1px",
220
+ borderStyle: "solid",
221
+ borderColor: "outline",
222
+ _hover: {
223
+ bg: "primary",
224
+ bgOpacity: 0.08
225
+ },
226
+ _active: {
227
+ bg: "primary",
228
+ bgOpacity: 0.12
229
+ }
230
+ },
231
+ text: {
232
+ bg: "transparent",
233
+ color: "primary",
234
+ _hover: {
235
+ bg: "primary",
236
+ bgOpacity: 0.08
237
+ },
238
+ _active: {
239
+ bg: "primary",
240
+ bgOpacity: 0.12
241
+ }
242
+ },
243
+ elevated: {
244
+ bg: "surfaceContainerLow",
245
+ color: "primary",
246
+ shadow: "level1",
247
+ _hover: {
248
+ shadow: "level2",
249
+ bg: "surfaceContainerLow"
250
+ },
251
+ _active: {
252
+ shadow: "level1"
253
+ }
254
+ },
255
+ tonal: {
256
+ bg: "secondaryContainer",
257
+ color: "onSecondaryContainer",
258
+ _hover: {
259
+ shadow: "level1"
260
+ },
261
+ _active: {
262
+ shadow: "none"
263
+ }
264
+ }
265
+ },
266
+ size: {
267
+ sm: {
268
+ height: "32px",
269
+ px: "md",
270
+ fontSize: "labelMedium",
271
+ lineHeight: "labelMedium"
272
+ },
273
+ md: {
274
+ height: "40px",
275
+ px: "lg",
276
+ fontSize: "labelLarge",
277
+ lineHeight: "labelLarge"
278
+ },
279
+ lg: {
280
+ height: "48px",
281
+ px: "xl",
282
+ fontSize: "labelLarge",
283
+ lineHeight: "labelLarge"
284
+ }
285
+ }
286
+ },
287
+ defaultVariants: {
288
+ variant: "filled",
289
+ size: "md"
290
+ }
291
+ });
292
+
293
+ // src/recipes/card.recipe.ts
294
+ var cardRecipe = defineRecipe({
295
+ className: "card",
296
+ description: "Material Design 3 card component",
297
+ base: {
298
+ display: "flex",
299
+ flexDirection: "column",
300
+ borderRadius: "medium",
301
+ overflow: "hidden",
302
+ transition: "all",
303
+ transitionDuration: "fast",
304
+ transitionTimingFunction: "standard"
305
+ },
306
+ variants: {
307
+ variant: {
308
+ elevated: {
309
+ bg: "surfaceContainerLow",
310
+ shadow: "level1",
311
+ _hover: {
312
+ shadow: "level2"
313
+ }
314
+ },
315
+ filled: {
316
+ bg: "surfaceContainerHighest"
317
+ },
318
+ outlined: {
319
+ bg: "surface",
320
+ borderWidth: "1px",
321
+ borderStyle: "solid",
322
+ borderColor: "outlineVariant"
323
+ }
324
+ },
325
+ interactive: {
326
+ true: {
327
+ cursor: "pointer",
328
+ _hover: {
329
+ opacity: 0.96
330
+ },
331
+ _active: {
332
+ opacity: 0.92
333
+ }
334
+ }
335
+ }
336
+ },
337
+ defaultVariants: {
338
+ variant: "elevated",
339
+ interactive: false
340
+ }
341
+ });
342
+
343
+ // src/recipes/icon-button.recipe.ts
344
+ var iconButtonRecipe = defineRecipe({
345
+ className: "icon-button",
346
+ description: "Material Design 3 icon button component",
347
+ base: {
348
+ display: "inline-flex",
349
+ alignItems: "center",
350
+ justifyContent: "center",
351
+ borderRadius: "full",
352
+ cursor: "pointer",
353
+ transition: "all",
354
+ transitionDuration: "fast",
355
+ transitionTimingFunction: "standard",
356
+ outline: "none",
357
+ border: "none",
358
+ p: "0",
359
+ _disabled: {
360
+ opacity: 0.38,
361
+ cursor: "not-allowed",
362
+ pointerEvents: "none"
363
+ },
364
+ _focusVisible: {
365
+ outline: "2px solid",
366
+ outlineColor: "primary",
367
+ outlineOffset: "2px"
368
+ }
369
+ },
370
+ variants: {
371
+ variant: {
372
+ standard: {
373
+ bg: "transparent",
374
+ color: "onSurfaceVariant",
375
+ _hover: {
376
+ bg: "onSurfaceVariant",
377
+ bgOpacity: 0.08
378
+ }
379
+ },
380
+ filled: {
381
+ bg: "primary",
382
+ color: "onPrimary",
383
+ _hover: {
384
+ opacity: 0.92
385
+ }
386
+ },
387
+ tonal: {
388
+ bg: "secondaryContainer",
389
+ color: "onSecondaryContainer",
390
+ _hover: {
391
+ opacity: 0.92
392
+ }
393
+ },
394
+ outlined: {
395
+ bg: "transparent",
396
+ color: "onSurfaceVariant",
397
+ borderWidth: "1px",
398
+ borderStyle: "solid",
399
+ borderColor: "outline",
400
+ _hover: {
401
+ bg: "onSurfaceVariant",
402
+ bgOpacity: 0.08
403
+ }
404
+ }
405
+ },
406
+ size: {
407
+ sm: {
408
+ width: "32px",
409
+ height: "32px",
410
+ "& svg": {
411
+ width: "18px",
412
+ height: "18px"
413
+ }
414
+ },
415
+ md: {
416
+ width: "40px",
417
+ height: "40px",
418
+ "& svg": {
419
+ width: "24px",
420
+ height: "24px"
421
+ }
422
+ },
423
+ lg: {
424
+ width: "48px",
425
+ height: "48px",
426
+ "& svg": {
427
+ width: "24px",
428
+ height: "24px"
429
+ }
430
+ }
431
+ }
432
+ },
433
+ defaultVariants: {
434
+ variant: "standard",
435
+ size: "md"
436
+ }
437
+ });
438
+
439
+ // src/recipes/input.recipe.ts
440
+ var inputRecipe = defineRecipe({
441
+ className: "input",
442
+ description: "Material Design 3 text field component",
443
+ base: {
444
+ width: "100%",
445
+ fontFamily: "body",
446
+ fontSize: "bodyLarge",
447
+ lineHeight: "bodyLarge",
448
+ color: "onSurface",
449
+ bg: "transparent",
450
+ borderRadius: "extraSmall",
451
+ px: "md",
452
+ transition: "all",
453
+ transitionDuration: "fast",
454
+ outline: "none",
455
+ _placeholder: {
456
+ color: "onSurfaceVariant",
457
+ opacity: 0.6
458
+ },
459
+ _focus: {
460
+ outline: "none"
461
+ },
462
+ _disabled: {
463
+ opacity: 0.38,
464
+ cursor: "not-allowed"
465
+ }
466
+ },
467
+ variants: {
468
+ variant: {
469
+ filled: {
470
+ bg: "surfaceContainerHighest",
471
+ borderBottomWidth: "1px",
472
+ borderBottomStyle: "solid",
473
+ borderBottomColor: "onSurfaceVariant",
474
+ borderTopLeftRadius: "extraSmall",
475
+ borderTopRightRadius: "extraSmall",
476
+ borderBottomLeftRadius: "0",
477
+ borderBottomRightRadius: "0",
478
+ _hover: {
479
+ bg: "surfaceContainerHigh"
480
+ },
481
+ _focus: {
482
+ borderBottomWidth: "2px",
483
+ borderBottomColor: "primary"
484
+ }
485
+ },
486
+ outlined: {
487
+ bg: "transparent",
488
+ borderWidth: "1px",
489
+ borderStyle: "solid",
490
+ borderColor: "outline",
491
+ _hover: {
492
+ borderColor: "onSurface"
493
+ },
494
+ _focus: {
495
+ borderWidth: "2px",
496
+ borderColor: "primary"
497
+ }
498
+ }
499
+ },
500
+ size: {
501
+ sm: {
502
+ height: "40px",
503
+ fontSize: "bodySmall",
504
+ lineHeight: "bodySmall"
505
+ },
506
+ md: {
507
+ height: "56px",
508
+ fontSize: "bodyLarge",
509
+ lineHeight: "bodyLarge"
510
+ }
511
+ },
512
+ state: {
513
+ error: {
514
+ borderColor: "error",
515
+ _focus: {
516
+ borderColor: "error"
517
+ }
518
+ },
519
+ disabled: {
520
+ opacity: 0.38,
521
+ cursor: "not-allowed",
522
+ pointerEvents: "none"
523
+ }
524
+ }
525
+ },
526
+ defaultVariants: {
527
+ variant: "outlined",
528
+ size: "md"
529
+ }
530
+ });
531
+
532
+ // src/recipes/dialog.recipe.ts
533
+ var dialogRecipe = defineSlotRecipe({
534
+ className: "dialog",
535
+ description: "Material Design 3 dialog component",
536
+ slots: ["backdrop", "positioner", "content", "title", "description", "closeTrigger"],
537
+ base: {
538
+ backdrop: {
539
+ position: "fixed",
540
+ inset: "0",
541
+ bg: "scrim",
542
+ opacity: 0.4,
543
+ zIndex: "modal",
544
+ animation: "fadeIn",
545
+ _open: {
546
+ animation: "fadeIn"
547
+ },
548
+ _closed: {
549
+ animation: "fadeOut"
550
+ }
551
+ },
552
+ positioner: {
553
+ position: "fixed",
554
+ inset: "0",
555
+ display: "flex",
556
+ alignItems: "center",
557
+ justifyContent: "center",
558
+ zIndex: "modal",
559
+ p: "lg"
560
+ },
561
+ content: {
562
+ position: "relative",
563
+ bg: "surfaceContainerHigh",
564
+ color: "onSurface",
565
+ borderRadius: "extraLarge",
566
+ boxShadow: "level3",
567
+ display: "flex",
568
+ flexDirection: "column",
569
+ maxWidth: "90vw",
570
+ maxHeight: "90vh",
571
+ overflow: "hidden",
572
+ animation: "scaleIn",
573
+ _open: {
574
+ animation: "scaleIn"
575
+ },
576
+ _closed: {
577
+ animation: "scaleOut"
578
+ }
579
+ },
580
+ title: {
581
+ fontFamily: "headline",
582
+ fontSize: "headlineSmall",
583
+ fontWeight: "regular",
584
+ color: "onSurface",
585
+ px: "xl",
586
+ pt: "xl",
587
+ pb: "md"
588
+ },
589
+ description: {
590
+ fontFamily: "body",
591
+ fontSize: "bodyMedium",
592
+ color: "onSurfaceVariant",
593
+ px: "xl",
594
+ pb: "xl",
595
+ flex: "1",
596
+ overflow: "auto"
597
+ },
598
+ closeTrigger: {
599
+ position: "absolute",
600
+ top: "md",
601
+ right: "md",
602
+ display: "flex",
603
+ alignItems: "center",
604
+ justifyContent: "center",
605
+ width: "40px",
606
+ height: "40px",
607
+ borderRadius: "full",
608
+ cursor: "pointer",
609
+ color: "onSurfaceVariant",
610
+ bg: "transparent",
611
+ border: "none",
612
+ transition: "all",
613
+ transitionDuration: "fast",
614
+ _hover: {
615
+ bg: "surfaceContainerHighest"
616
+ },
617
+ _focus: {
618
+ outline: "none",
619
+ bg: "surfaceContainerHighest"
620
+ }
621
+ }
622
+ },
623
+ variants: {
624
+ size: {
625
+ sm: {
626
+ content: {
627
+ width: "280px",
628
+ minHeight: "140px"
629
+ }
630
+ },
631
+ md: {
632
+ content: {
633
+ width: "560px",
634
+ minHeight: "200px"
635
+ }
636
+ },
637
+ lg: {
638
+ content: {
639
+ width: "800px",
640
+ minHeight: "300px"
641
+ }
642
+ },
643
+ fullscreen: {
644
+ content: {
645
+ width: "100vw",
646
+ height: "100vh",
647
+ maxWidth: "100vw",
648
+ maxHeight: "100vh",
649
+ borderRadius: "none"
650
+ },
651
+ positioner: {
652
+ p: "0"
653
+ }
654
+ }
655
+ }
656
+ },
657
+ defaultVariants: {
658
+ size: "md"
659
+ }
660
+ });
661
+
662
+ // src/recipes/switch.recipe.ts
663
+ var switchRecipe = defineSlotRecipe({
664
+ className: "switchControl",
665
+ description: "Material Design 3 switch component",
666
+ slots: ["root", "control", "thumb", "label"],
667
+ base: {
668
+ root: {
669
+ display: "inline-flex",
670
+ alignItems: "center",
671
+ gap: "sm",
672
+ cursor: "pointer",
673
+ userSelect: "none",
674
+ _disabled: {
675
+ cursor: "not-allowed",
676
+ opacity: 0.38
677
+ }
678
+ },
679
+ control: {
680
+ position: "relative",
681
+ display: "inline-flex",
682
+ alignItems: "center",
683
+ width: "52px",
684
+ height: "32px",
685
+ borderRadius: "full",
686
+ bg: "surfaceContainerHighest",
687
+ border: "2px solid",
688
+ borderColor: "outline",
689
+ transition: "all",
690
+ transitionDuration: "fast",
691
+ flexShrink: 0,
692
+ _checked: {
693
+ bg: "primary",
694
+ borderColor: "primary"
695
+ },
696
+ _disabled: {
697
+ bg: "surfaceVariant",
698
+ borderColor: "onSurface",
699
+ opacity: 0.12
700
+ }
701
+ },
702
+ thumb: {
703
+ position: "absolute",
704
+ left: "4px",
705
+ width: "16px",
706
+ height: "16px",
707
+ borderRadius: "full",
708
+ bg: "outline",
709
+ transition: "all",
710
+ transitionDuration: "fast",
711
+ _checked: {
712
+ left: "28px",
713
+ width: "24px",
714
+ height: "24px",
715
+ bg: "onPrimary"
716
+ },
717
+ _disabled: {
718
+ bg: "onSurface",
719
+ opacity: 0.38
720
+ }
721
+ },
722
+ label: {
723
+ fontFamily: "body",
724
+ fontSize: "bodyMedium",
725
+ color: "onSurface",
726
+ userSelect: "none",
727
+ _disabled: {
728
+ opacity: 0.38
729
+ }
730
+ }
731
+ },
732
+ variants: {
733
+ size: {
734
+ sm: {
735
+ control: {
736
+ width: "44px",
737
+ height: "24px"
738
+ },
739
+ thumb: {
740
+ width: "12px",
741
+ height: "12px",
742
+ left: "4px",
743
+ _checked: {
744
+ left: "24px",
745
+ width: "16px",
746
+ height: "16px"
747
+ }
748
+ },
749
+ label: {
750
+ fontSize: "bodySmall"
751
+ }
752
+ },
753
+ md: {
754
+ control: {
755
+ width: "52px",
756
+ height: "32px"
757
+ },
758
+ thumb: {
759
+ width: "16px",
760
+ height: "16px",
761
+ left: "4px",
762
+ _checked: {
763
+ left: "28px",
764
+ width: "24px",
765
+ height: "24px"
766
+ }
767
+ },
768
+ label: {
769
+ fontSize: "bodyMedium"
770
+ }
771
+ }
772
+ }
773
+ },
774
+ defaultVariants: {
775
+ size: "md"
776
+ }
777
+ });
778
+
779
+ // src/languages/material3.language.ts
780
+ var material3Language = {
781
+ name: "material3",
782
+ version: "1.0.0",
783
+ colors: {
784
+ // From Material Theme Builder export
785
+ primary: {
786
+ 0: "#000000",
787
+ 10: "#102000",
788
+ 20: "#1F3700",
789
+ 30: "#2F4F00",
790
+ 40: "#3F6900",
791
+ 50: "#518500",
792
+ 60: "#64A104",
793
+ 70: "#7DBD2A",
794
+ 80: "#97D945",
795
+ 90: "#B2F65F",
796
+ 95: "#D2FF9B",
797
+ 99: "#F9FFE9",
798
+ 100: "#FFFFFF"
799
+ },
800
+ secondary: {
801
+ 0: "#000000",
802
+ 10: "#121F04",
803
+ 20: "#263515",
804
+ 30: "#3C4C2A",
805
+ 40: "#54643F",
806
+ 50: "#6C7D56",
807
+ 60: "#85976E",
808
+ 70: "#A0B187",
809
+ 80: "#BBCDA1",
810
+ 90: "#D7E9BB",
811
+ 95: "#E5F7C9",
812
+ 99: "#F9FFE9",
813
+ 100: "#FFFFFF"
814
+ },
815
+ tertiary: {
816
+ 0: "#000000",
817
+ 10: "#00201E",
818
+ 20: "#003735",
819
+ 30: "#00504C",
820
+ 40: "#046A66",
821
+ 50: "#30837F",
822
+ 60: "#4D9D98",
823
+ 70: "#69B8B3",
824
+ 80: "#85D4CF",
825
+ 90: "#A1F1EB",
826
+ 95: "#B0FFF9",
827
+ 99: "#F2FFFD",
828
+ 100: "#FFFFFF"
829
+ },
830
+ neutral: {
831
+ 0: "#000000",
832
+ 10: "#1B1C18",
833
+ 20: "#30312C",
834
+ 30: "#464742",
835
+ 40: "#5E5F59",
836
+ 50: "#777771",
837
+ 60: "#91918B",
838
+ 70: "#ABACA5",
839
+ 80: "#C7C7C0",
840
+ 90: "#E3E3DB",
841
+ 95: "#F2F1E9",
842
+ 99: "#FDFCF5",
843
+ 100: "#FFFFFF"
844
+ },
845
+ neutralVariant: {
846
+ 0: "#000000",
847
+ 10: "#191D14",
848
+ 20: "#2E3228",
849
+ 30: "#44483D",
850
+ 40: "#5C6054",
851
+ 50: "#75796C",
852
+ 60: "#8F9285",
853
+ 70: "#A9AD9F",
854
+ 80: "#C5C8BA",
855
+ 90: "#E1E4D5",
856
+ 95: "#EFF2E3",
857
+ 99: "#FBFEEE",
858
+ 100: "#FFFFFF"
859
+ },
860
+ error: {
861
+ 0: "#000000",
862
+ 10: "#410E0B",
863
+ 20: "#601410",
864
+ 30: "#8C1D18",
865
+ 40: "#B3261E",
866
+ 50: "#DC362E",
867
+ 60: "#E46962",
868
+ 70: "#EC928E",
869
+ 80: "#F2B8B5",
870
+ 90: "#F9DEDC",
871
+ 95: "#FCEEEE",
872
+ 99: "#FFFBF9",
873
+ 100: "#FFFFFF"
874
+ }
875
+ },
876
+ semantic: {
877
+ // Light theme from Material Theme Builder
878
+ primary: "#4C662B",
879
+ onPrimary: "#FFFFFF",
880
+ primaryContainer: "#CDEDA3",
881
+ onPrimaryContainer: "#354E16",
882
+ secondary: "#586249",
883
+ onSecondary: "#FFFFFF",
884
+ secondaryContainer: "#DCE7C8",
885
+ onSecondaryContainer: "#404A33",
886
+ tertiary: "#386663",
887
+ onTertiary: "#FFFFFF",
888
+ tertiaryContainer: "#BCECE7",
889
+ onTertiaryContainer: "#1F4E4B",
890
+ error: "#BA1A1A",
891
+ onError: "#FFFFFF",
892
+ errorContainer: "#FFDAD6",
893
+ onErrorContainer: "#93000A",
894
+ surface: "#F9FAEF",
895
+ onSurface: "#1A1C16",
896
+ surfaceVariant: "#E1E4D5",
897
+ onSurfaceVariant: "#44483D",
898
+ surfaceContainerLowest: "#FFFFFF",
899
+ surfaceContainerLow: "#F3F4E9",
900
+ surfaceContainer: "#EEEFE3",
901
+ surfaceContainerHigh: "#E8E9DE",
902
+ surfaceContainerHighest: "#E2E3D8",
903
+ outline: "#75796C",
904
+ outlineVariant: "#C5C8BA",
905
+ inverseSurface: "#2F312A",
906
+ inverseOnSurface: "#F1F2E6",
907
+ inversePrimary: "#B1D18A",
908
+ background: "#F9FAEF",
909
+ onBackground: "#1A1C16",
910
+ scrim: "#000000",
911
+ shadow: "#000000"
912
+ },
913
+ // Dark theme semantic colors (for reference/dark mode implementation)
914
+ semanticDark: {
915
+ primary: "#B1D18A",
916
+ onPrimary: "#1F3701",
917
+ primaryContainer: "#354E16",
918
+ onPrimaryContainer: "#CDEDA3",
919
+ secondary: "#BFCBAD",
920
+ onSecondary: "#2A331E",
921
+ secondaryContainer: "#404A33",
922
+ onSecondaryContainer: "#DCE7C8",
923
+ tertiary: "#A0D0CB",
924
+ onTertiary: "#003735",
925
+ tertiaryContainer: "#1F4E4B",
926
+ onTertiaryContainer: "#BCECE7",
927
+ error: "#FFB4AB",
928
+ onError: "#690005",
929
+ errorContainer: "#93000A",
930
+ onErrorContainer: "#FFDAD6",
931
+ surface: "#12140E",
932
+ onSurface: "#E2E3D8",
933
+ surfaceVariant: "#44483D",
934
+ onSurfaceVariant: "#C5C8BA",
935
+ surfaceContainerLowest: "#0C0F09",
936
+ surfaceContainerLow: "#1A1C16",
937
+ surfaceContainer: "#1E201A",
938
+ surfaceContainerHigh: "#282B24",
939
+ surfaceContainerHighest: "#33362E",
940
+ outline: "#8F9285",
941
+ outlineVariant: "#44483D",
942
+ inverseSurface: "#E2E3D8",
943
+ inverseOnSurface: "#2F312A",
944
+ inversePrimary: "#4C662B",
945
+ background: "#12140E",
946
+ onBackground: "#E2E3D8",
947
+ scrim: "#000000",
948
+ shadow: "#000000"
949
+ },
950
+ typography: {
951
+ fonts: {
952
+ display: 'Georgia, "Times New Roman", serif',
953
+ body: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif',
954
+ mono: '"JetBrains Mono", "Fira Code", Consolas, monospace'
955
+ },
956
+ scale: {
957
+ displayLarge: {
958
+ fontSize: "57px",
959
+ lineHeight: "64px",
960
+ fontWeight: "400",
961
+ letterSpacing: "-0.25px",
962
+ fontFamily: "display"
963
+ },
964
+ displayMedium: {
965
+ fontSize: "45px",
966
+ lineHeight: "52px",
967
+ fontWeight: "400",
968
+ letterSpacing: "0px",
969
+ fontFamily: "display"
970
+ },
971
+ displaySmall: {
972
+ fontSize: "36px",
973
+ lineHeight: "44px",
974
+ fontWeight: "400",
975
+ letterSpacing: "0px",
976
+ fontFamily: "display"
977
+ },
978
+ headlineLarge: {
979
+ fontSize: "32px",
980
+ lineHeight: "40px",
981
+ fontWeight: "400",
982
+ letterSpacing: "0px",
983
+ fontFamily: "display"
984
+ },
985
+ headlineMedium: {
986
+ fontSize: "28px",
987
+ lineHeight: "36px",
988
+ fontWeight: "400",
989
+ letterSpacing: "0px",
990
+ fontFamily: "display"
991
+ },
992
+ headlineSmall: {
993
+ fontSize: "24px",
994
+ lineHeight: "32px",
995
+ fontWeight: "400",
996
+ letterSpacing: "0px",
997
+ fontFamily: "display"
998
+ },
999
+ titleLarge: {
1000
+ fontSize: "22px",
1001
+ lineHeight: "28px",
1002
+ fontWeight: "500",
1003
+ letterSpacing: "0px",
1004
+ fontFamily: "body"
1005
+ },
1006
+ titleMedium: {
1007
+ fontSize: "16px",
1008
+ lineHeight: "24px",
1009
+ fontWeight: "500",
1010
+ letterSpacing: "0.15px",
1011
+ fontFamily: "body"
1012
+ },
1013
+ titleSmall: {
1014
+ fontSize: "14px",
1015
+ lineHeight: "20px",
1016
+ fontWeight: "500",
1017
+ letterSpacing: "0.1px",
1018
+ fontFamily: "body"
1019
+ },
1020
+ bodyLarge: {
1021
+ fontSize: "16px",
1022
+ lineHeight: "24px",
1023
+ fontWeight: "400",
1024
+ letterSpacing: "0.5px",
1025
+ fontFamily: "body"
1026
+ },
1027
+ bodyMedium: {
1028
+ fontSize: "14px",
1029
+ lineHeight: "20px",
1030
+ fontWeight: "400",
1031
+ letterSpacing: "0.25px",
1032
+ fontFamily: "body"
1033
+ },
1034
+ bodySmall: {
1035
+ fontSize: "12px",
1036
+ lineHeight: "16px",
1037
+ fontWeight: "400",
1038
+ letterSpacing: "0.4px",
1039
+ fontFamily: "body"
1040
+ },
1041
+ labelLarge: {
1042
+ fontSize: "14px",
1043
+ lineHeight: "20px",
1044
+ fontWeight: "500",
1045
+ letterSpacing: "0.1px",
1046
+ fontFamily: "body"
1047
+ },
1048
+ labelMedium: {
1049
+ fontSize: "12px",
1050
+ lineHeight: "16px",
1051
+ fontWeight: "500",
1052
+ letterSpacing: "0.5px",
1053
+ fontFamily: "body"
1054
+ },
1055
+ labelSmall: {
1056
+ fontSize: "11px",
1057
+ lineHeight: "16px",
1058
+ fontWeight: "500",
1059
+ letterSpacing: "0.5px",
1060
+ fontFamily: "body"
1061
+ }
1062
+ }
1063
+ },
1064
+ spacing: {
1065
+ none: "0px",
1066
+ xxs: "2px",
1067
+ xs: "4px",
1068
+ sm: "8px",
1069
+ md: "16px",
1070
+ lg: "24px",
1071
+ xl: "32px",
1072
+ xxl: "48px",
1073
+ xxxl: "64px"
1074
+ },
1075
+ shape: {
1076
+ radii: {
1077
+ none: "0px",
1078
+ extraSmall: "4px",
1079
+ small: "8px",
1080
+ medium: "12px",
1081
+ large: "16px",
1082
+ extraLarge: "28px",
1083
+ full: "9999px"
1084
+ },
1085
+ style: "rounded"
1086
+ },
1087
+ elevation: {
1088
+ levels: {
1089
+ level0: "none",
1090
+ level1: "0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15)",
1091
+ level2: "0px 1px 2px rgba(0, 0, 0, 0.3), 0px 2px 6px 2px rgba(0, 0, 0, 0.15)",
1092
+ level3: "0px 4px 8px 3px rgba(0, 0, 0, 0.15), 0px 1px 3px rgba(0, 0, 0, 0.3)",
1093
+ level4: "0px 6px 10px 4px rgba(0, 0, 0, 0.15), 0px 2px 3px rgba(0, 0, 0, 0.3)",
1094
+ level5: "0px 8px 12px 6px rgba(0, 0, 0, 0.15), 0px 4px 4px rgba(0, 0, 0, 0.3)"
1095
+ },
1096
+ style: "shadow"
1097
+ },
1098
+ motion: {
1099
+ durations: {
1100
+ instant: "0ms",
1101
+ fast: "100ms",
1102
+ normal: "200ms",
1103
+ slow: "300ms",
1104
+ slower: "500ms"
1105
+ },
1106
+ easings: {
1107
+ standard: "cubic-bezier(0.2, 0, 0, 1)",
1108
+ standardDecelerate: "cubic-bezier(0, 0, 0, 1)",
1109
+ standardAccelerate: "cubic-bezier(0.3, 0, 1, 1)",
1110
+ emphasized: "cubic-bezier(0.2, 0, 0, 1)",
1111
+ emphasizedDecelerate: "cubic-bezier(0.05, 0.7, 0.1, 1)",
1112
+ emphasizedAccelerate: "cubic-bezier(0.3, 0, 0.8, 0.15)"
1113
+ },
1114
+ style: "expressive"
1115
+ }
1116
+ };
1117
+
1118
+ // src/languages/transform.ts
1119
+ function transformToPandaTheme(language) {
1120
+ return {
1121
+ tokens: transformTokens(language),
1122
+ semanticTokens: transformSemanticTokens(language),
1123
+ textStyles: transformTextStyles(language)
1124
+ };
1125
+ }
1126
+ function transformTokens(language) {
1127
+ return {
1128
+ colors: transformColorPalettes(language.colors),
1129
+ fonts: {
1130
+ display: { value: language.typography.fonts.display },
1131
+ body: { value: language.typography.fonts.body },
1132
+ mono: { value: language.typography.fonts.mono }
1133
+ },
1134
+ fontSizes: extractFontSizes(language.typography.scale),
1135
+ lineHeights: extractLineHeights(language.typography.scale),
1136
+ fontWeights: extractFontWeights(language.typography.scale),
1137
+ letterSpacings: extractLetterSpacings(language.typography.scale),
1138
+ spacing: objectToTokens(language.spacing),
1139
+ radii: objectToTokens(language.shape.radii),
1140
+ shadows: objectToTokens(language.elevation.levels),
1141
+ durations: objectToTokens(language.motion.durations),
1142
+ easings: objectToTokens(language.motion.easings)
1143
+ };
1144
+ }
1145
+ function transformSemanticTokens(language) {
1146
+ const light = language.semantic;
1147
+ const dark = language.semanticDark || light;
1148
+ return {
1149
+ colors: Object.fromEntries(
1150
+ Object.entries(light).map(([key, lightValue]) => [
1151
+ key,
1152
+ {
1153
+ value: {
1154
+ base: lightValue,
1155
+ _dark: dark[key] || lightValue
1156
+ }
1157
+ }
1158
+ ])
1159
+ )
1160
+ };
1161
+ }
1162
+ function transformTextStyles(language) {
1163
+ const scale = language.typography.scale;
1164
+ return Object.fromEntries(
1165
+ Object.entries(scale).map(([name, style]) => [
1166
+ name,
1167
+ {
1168
+ value: {
1169
+ fontFamily: style.fontFamily || "body",
1170
+ fontSize: style.fontSize,
1171
+ lineHeight: style.lineHeight,
1172
+ fontWeight: style.fontWeight,
1173
+ letterSpacing: style.letterSpacing
1174
+ }
1175
+ }
1176
+ ])
1177
+ );
1178
+ }
1179
+ function transformColorPalettes(palettes) {
1180
+ return Object.fromEntries(
1181
+ Object.entries(palettes).map(([name, palette]) => [
1182
+ name,
1183
+ Object.fromEntries(
1184
+ Object.entries(palette).map(([tone, value]) => [
1185
+ tone,
1186
+ { value }
1187
+ ])
1188
+ )
1189
+ ])
1190
+ );
1191
+ }
1192
+ function objectToTokens(obj) {
1193
+ return Object.fromEntries(
1194
+ Object.entries(obj).map(([key, value]) => [key, { value }])
1195
+ );
1196
+ }
1197
+ function extractFontSizes(scale) {
1198
+ return Object.fromEntries(
1199
+ Object.entries(scale).map(([name, style]) => [
1200
+ name,
1201
+ { value: style.fontSize }
1202
+ ])
1203
+ );
1204
+ }
1205
+ function extractLineHeights(scale) {
1206
+ return Object.fromEntries(
1207
+ Object.entries(scale).map(([name, style]) => [
1208
+ name,
1209
+ { value: style.lineHeight }
1210
+ ])
1211
+ );
1212
+ }
1213
+ function extractFontWeights(scale) {
1214
+ const weights = /* @__PURE__ */ new Map();
1215
+ Object.values(scale).forEach((style) => {
1216
+ weights.set(style.fontWeight, style.fontWeight);
1217
+ });
1218
+ return Object.fromEntries(
1219
+ Array.from(weights.entries()).map(([key, value]) => [
1220
+ key,
1221
+ { value }
1222
+ ])
1223
+ );
1224
+ }
1225
+ function extractLetterSpacings(scale) {
1226
+ return Object.fromEntries(
1227
+ Object.entries(scale).map(([name, style]) => [
1228
+ name,
1229
+ { value: style.letterSpacing }
1230
+ ])
1231
+ );
1232
+ }
1233
+
1234
+ exports.Button = Button;
1235
+ exports.Card = Card;
1236
+ exports.Dialog = Dialog;
1237
+ exports.IconButton = IconButton;
1238
+ exports.Input = Input;
1239
+ exports.Switch = Switch;
1240
+ exports.activeLanguage = material3Language;
1241
+ exports.buttonRecipe = buttonRecipe;
1242
+ exports.cardRecipe = cardRecipe;
1243
+ exports.cn = cn;
1244
+ exports.dialogRecipe = dialogRecipe;
1245
+ exports.iconButtonRecipe = iconButtonRecipe;
1246
+ exports.inputRecipe = inputRecipe;
1247
+ exports.switchRecipe = switchRecipe;
1248
+ exports.transformToPandaTheme = transformToPandaTheme;
1249
+ //# sourceMappingURL=index.cjs.map
1250
+ //# sourceMappingURL=index.cjs.map