@sanity-labs/ui-poc 0.0.1-alpha.10 → 0.0.1-alpha.11

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 (38) hide show
  1. package/dist/_chunks-es/LazyRefractor.js +9 -0
  2. package/dist/_chunks-es/LazyRefractor.js.map +1 -0
  3. package/dist/index.d.ts +62 -5
  4. package/dist/index.js +123 -36
  5. package/dist/index.js.map +1 -1
  6. package/dist/styles.css +1 -8931
  7. package/package.json +26 -21
  8. package/src/components/code/Code.tsx +37 -0
  9. package/src/components/code/LazyRefractor.tsx +9 -0
  10. package/src/components/code/code.css +36 -0
  11. package/src/components/code/code.props.ts +35 -0
  12. package/src/components/container/Container.tsx +25 -0
  13. package/src/components/container/container.css +4 -0
  14. package/src/components/container/container.props.ts +24 -0
  15. package/src/components/heading/heading.props.ts +2 -1
  16. package/src/components/icon/Icon.tsx +18 -0
  17. package/src/components/icon/icon.css +17 -0
  18. package/src/components/icon/icon.props.ts +29 -0
  19. package/src/components/index.css +3 -0
  20. package/src/components/text/text.props.ts +3 -4
  21. package/src/css/classes/local/text-trim.css +6 -0
  22. package/src/css/classes/system/container.css +6 -6
  23. package/src/css/classes/system/margin.css +0 -7
  24. package/src/css/classes/system/padding.css +0 -7
  25. package/src/css/global/reset.css +4 -0
  26. package/src/index.css +10 -2
  27. package/src/index.ts +3 -0
  28. package/src/props/border.ts +5 -5
  29. package/src/props/typography.ts +2 -2
  30. package/src/types/Code.ts +5 -0
  31. package/src/types/Container.ts +2 -0
  32. package/src/types/Icon.ts +2 -0
  33. package/src/types/PropDef.ts +22 -5
  34. package/src/types/Responsive.ts +0 -1
  35. package/src/utils/getProps.test.ts +1 -1
  36. package/src/utils/getProps.ts +2 -2
  37. package/dist/components.css +0 -38
  38. package/dist/utilities.css +0 -9659
@@ -0,0 +1,9 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { hasLanguage, Refractor } from "react-refractor";
3
+ function LazyRefractor({ language, value }) {
4
+ return hasLanguage(language) ? /* @__PURE__ */ jsx(Refractor, { inline: !0, language, value }) : /* @__PURE__ */ jsx("code", { children: value });
5
+ }
6
+ export {
7
+ LazyRefractor as default
8
+ };
9
+ //# sourceMappingURL=LazyRefractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LazyRefractor.js","sources":["../../src/components/code/LazyRefractor.tsx"],"sourcesContent":["import {hasLanguage, Refractor, type RefractorProps} from 'react-refractor'\n\nexport default function LazyRefractor({language, value}: RefractorProps) {\n if (!hasLanguage(language)) {\n return <code>{value}</code>\n }\n\n return <Refractor inline language={language} value={value} />\n}\n"],"names":[],"mappings":";;AAEA,SAAwB,cAAc,EAAC,UAAU,SAAwB;AACvE,SAAK,YAAY,QAAQ,IAIlB,oBAAC,WAAA,EAAU,QAAM,IAAC,UAAoB,MAAA,CAAc,IAHlD,oBAAC,QAAA,EAAM,UAAA,OAAM;AAIxB;"}
package/dist/index.d.ts CHANGED
@@ -49,6 +49,49 @@ declare interface CardProps<T extends React.ElementType> extends MarginProps, To
49
49
  density?: Responsive<Density>
50
50
  }
51
51
 
52
+ /** @public */
53
+ export declare function Code<T extends React.ElementType = 'pre'>({
54
+ size,
55
+ ...props
56
+ }: CodeProps & Omit<React.ComponentPropsWithRef<T>, keyof CodeProps>): JSX.Element
57
+
58
+ declare const CODE_SIZE: readonly [0, 1, 2, 3, 4]
59
+
60
+ declare const CODE_TAG: readonly ['pre', 'span']
61
+
62
+ /** @public */
63
+ declare interface CodeProps
64
+ extends React.ComponentProps<'pre'>, Omit<TypographyProps, 'align' | 'lineClamp' | 'tone'> {
65
+ /** Element to render */
66
+ as?: CodeTag
67
+ /** Refractor language for syntax highlighting */
68
+ language?: string
69
+ /** CSS **font-size** property */
70
+ size?: Responsive<CodeSize>
71
+ }
72
+
73
+ declare type CodeSize = (typeof CODE_SIZE)[number]
74
+
75
+ declare type CodeTag = (typeof CODE_TAG)[number]
76
+
77
+ /** @public */
78
+ export declare function Container<T extends React_2.ElementType = 'div'>({
79
+ marginX,
80
+ ...props
81
+ }: ContainerProps<T> & Omit<React_2.ComponentPropsWithRef<T>, keyof ContainerProps<T>>): JSX.Element
82
+
83
+ declare const CONTAINER_SIZE: readonly [0, 1, 2, 3, 4, 5]
84
+
85
+ /** @public */
86
+ declare interface ContainerProps<T extends React.ElementType> extends LayoutProps {
87
+ /** Element to render */
88
+ as?: T
89
+ /** CSS **max-width** property */
90
+ contentSize?: Responsive<ContainerSize>
91
+ }
92
+
93
+ declare type ContainerSize = (typeof CONTAINER_SIZE)[number]
94
+
52
95
  declare const DENSITY: readonly ['compact', 'regular', 'loose']
53
96
 
54
97
  declare type Density = (typeof DENSITY)[number]
@@ -190,7 +233,7 @@ declare interface HeadingProps extends TypographyProps {
190
233
  /** Element to render */
191
234
  as?: HeadingTag
192
235
  /** CSS **font-size** property */
193
- size?: HeadingSize
236
+ size?: Responsive<HeadingSize>
194
237
  }
195
238
 
196
239
  declare type HeadingSize = (typeof HEADING_SIZE)[number]
@@ -206,6 +249,23 @@ declare type HeightProps = {
206
249
  maxHeight?: Responsive<string>
207
250
  }
208
251
 
252
+ /** @public */
253
+ export declare function Icon({icon: Component, size, ...props}: IconProps): JSX.Element
254
+
255
+ declare const ICON_SIZE: readonly [0, 1, 2, 3, 4]
256
+
257
+ /** @public */
258
+ declare interface IconProps extends React_2.ComponentProps<'svg'>, MarginProps, ToneProps {
259
+ /** Icon to render */
260
+ icon: React_2.ComponentType<React_2.SVGProps<SVGSVGElement>>
261
+ /** CSS **font-size** property */
262
+ size?: Responsive<IconSize>
263
+ /** CSS **color** property */
264
+ muted?: TypographyProps['muted']
265
+ }
266
+
267
+ declare type IconSize = (typeof ICON_SIZE)[number]
268
+
209
269
  declare const JUSTIFY_CONTENT: readonly [
210
270
  'flex-start',
211
271
  'flex-end',
@@ -323,9 +383,6 @@ declare type Responsive<T> =
323
383
  | ([T | undefined, ...(T | undefined)[]] & {
324
384
  length: 6
325
385
  })
326
- | ([T | undefined, ...(T | undefined)[]] & {
327
- length: 7
328
- })
329
386
 
330
387
  declare type ShadowProps = {
331
388
  /** CSS **box-shadow** property */
@@ -358,7 +415,7 @@ declare interface TextProps<T extends React.ElementType> extends TypographyProps
358
415
  /** Element to render */
359
416
  as?: T
360
417
  /** CSS **font-size** property */
361
- size?: TextSize
418
+ size?: Responsive<TextSize>
362
419
  }
363
420
 
364
421
  declare type TextSize = (typeof TEXT_SIZE)[number]
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import classNames from "classnames";
3
- const PREFIX = "sui", BREAKPOINTS_LENGTH = 7;
3
+ import { lazy, Suspense } from "react";
4
+ const PREFIX = "sui", BREAKPOINTS_LENGTH = 6;
4
5
  function getProps(componentProps, propDefs) {
5
6
  const { allComponentProps, allPropDefs } = flattenCompositeProps(componentProps, propDefs), restProps = {};
6
7
  let className = componentProps?.className || "", style = componentProps?.style || {};
@@ -19,7 +20,7 @@ function getProps(componentProps, propDefs) {
19
20
  return { ...restProps, className, style };
20
21
  }
21
22
  function getClassName(propValue, propDef, bp) {
22
- return propDef.type === "union" && propDef.values?.includes(propValue) ? `${PREFIX}-${propDef.className}${typeof propValue == "string" ? `-${propValue}` : propValue}${bp ? `-bp-${bp}` : ""}` : propDef.type === "string" || propDef.type === "number" ? `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ""}` : propDef.type === "boolean" ? `${PREFIX}-${propValue ? propDef.className : propDef.inverse}${bp ? `-bp-${bp}` : ""}` : "";
23
+ return propDef.type === "union" && propDef.values?.includes(propValue) ? `${PREFIX}-${propDef.className}${typeof propValue == "string" ? `-${propValue}` : propValue}${bp ? `-bp-${bp}` : ""}` : propDef.type === "string" || propDef.type === "number" ? `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ""}` : propDef.type === "boolean" ? `${PREFIX}-${propValue ? propDef.className : propDef.inverseClassName}${bp ? `-bp-${bp}` : ""}` : "";
23
24
  }
24
25
  function getStyle(propValue, propDef, bp) {
25
26
  return propDef.type === "string" || propDef.type === "number" ? {
@@ -58,27 +59,27 @@ const RADIUS = [0, 1, 2, 3, 4, 5, 6, "full"], borderProps = {
58
59
  border: {
59
60
  type: "boolean",
60
61
  className: "border",
61
- inverse: "border-none"
62
+ inverseClassName: "border-none"
62
63
  },
63
64
  borderTop: {
64
65
  type: "boolean",
65
66
  className: "border-top",
66
- inverse: "border-top-none"
67
+ inverseClassName: "border-top-none"
67
68
  },
68
69
  borderRight: {
69
70
  type: "boolean",
70
71
  className: "border-right",
71
- inverse: "border-right-none"
72
+ inverseClassName: "border-right-none"
72
73
  },
73
74
  borderBottom: {
74
75
  type: "boolean",
75
76
  className: "border-bottom",
76
- inverse: "border-bottom-none"
77
+ inverseClassName: "border-bottom-none"
77
78
  },
78
79
  borderLeft: {
79
80
  type: "boolean",
80
81
  className: "border-left",
81
- inverse: "border-left-none"
82
+ inverseClassName: "border-left-none"
82
83
  },
83
84
  radius: {
84
85
  type: "union",
@@ -386,6 +387,95 @@ function Card({
386
387
  }
387
388
  );
388
389
  }
390
+ const FONT_WEIGHT = ["regular", "medium", "semibold", "bold"], TEXT_ALIGN = ["left", "center", "right", "justify"], typographyProps = {
391
+ align: {
392
+ type: "union",
393
+ className: "text",
394
+ values: TEXT_ALIGN
395
+ },
396
+ lineClamp: {
397
+ type: "number",
398
+ className: "line-clamp",
399
+ variable: "--line-clamp"
400
+ },
401
+ muted: {
402
+ type: "boolean",
403
+ className: "text-muted",
404
+ inverseClassName: "text-default"
405
+ },
406
+ trim: {
407
+ type: "boolean",
408
+ className: "text-trim",
409
+ inverseClassName: "text-trim-none"
410
+ },
411
+ weight: {
412
+ type: "union",
413
+ className: "weight",
414
+ values: FONT_WEIGHT
415
+ },
416
+ ...marginProps,
417
+ ...toneProps
418
+ }, CODE_TAG = ["pre", "span"], CODE_SIZE = [0, 1, 2, 3, 4], codeProps = {
419
+ as: {
420
+ type: "union",
421
+ values: CODE_TAG
422
+ },
423
+ language: {
424
+ type: "string"
425
+ },
426
+ size: {
427
+ type: "union",
428
+ className: "text-code",
429
+ values: CODE_SIZE
430
+ },
431
+ muted: typographyProps.muted,
432
+ trim: typographyProps.trim,
433
+ weight: typographyProps.weight,
434
+ ...marginProps
435
+ }, LazyRefractor = lazy(() => import("./_chunks-es/LazyRefractor.js"));
436
+ function Code({
437
+ size = 2,
438
+ ...props
439
+ }) {
440
+ const { as, children, className, language, style, ...rest } = getProps({ size, ...props }, codeProps), Component = as || "pre";
441
+ return language ? /* @__PURE__ */ jsx(Component, { className: classNames("sui-Code", className), style, "data-ui": "Code", ...rest, children: /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx("code", { children }), children: /* @__PURE__ */ jsx(LazyRefractor, { language, value: children }) }) }) : /* @__PURE__ */ jsx(
442
+ Component,
443
+ {
444
+ className: classNames("sui-Code", className),
445
+ style,
446
+ "data-ui": "Code",
447
+ ...rest,
448
+ children: /* @__PURE__ */ jsx("code", { children })
449
+ }
450
+ );
451
+ }
452
+ const CONTAINER_SIZE = [0, 1, 2, 3, 4, 5], containerProps = {
453
+ as: {
454
+ type: "string"
455
+ },
456
+ contentSize: {
457
+ type: "union",
458
+ className: "container",
459
+ values: CONTAINER_SIZE
460
+ },
461
+ ...layoutProps
462
+ };
463
+ function Container({
464
+ marginX = "auto",
465
+ ...props
466
+ }) {
467
+ const { as, children, className, style, ...rest } = getProps({ marginX, ...props }, containerProps);
468
+ return /* @__PURE__ */ jsx(
469
+ as || "div",
470
+ {
471
+ className: classNames("sui-Container", className),
472
+ style,
473
+ "data-ui": "Container",
474
+ ...rest,
475
+ children
476
+ }
477
+ );
478
+ }
389
479
  const dividerProps = {
390
480
  ...marginProps
391
481
  };
@@ -511,35 +601,7 @@ function Grid({
511
601
  const { as, children, className, style, ...rest } = getProps({ display, ...props }, gridProps);
512
602
  return /* @__PURE__ */ jsx(as || "div", { className: classNames("sui-Grid", className), style, "data-ui": "Grid", ...rest, children });
513
603
  }
514
- const FONT_WEIGHT = ["regular", "medium", "semibold", "bold"], TEXT_ALIGN = ["left", "center", "right", "justify"], typographyProps = {
515
- align: {
516
- type: "union",
517
- className: "text",
518
- values: TEXT_ALIGN
519
- },
520
- lineClamp: {
521
- type: "number",
522
- className: "line-clamp",
523
- variable: "--line-clamp"
524
- },
525
- muted: {
526
- type: "boolean",
527
- className: "text-muted",
528
- inverse: "text-default"
529
- },
530
- trim: {
531
- type: "boolean",
532
- className: "text-trim",
533
- inverse: "text-trim-none"
534
- },
535
- weight: {
536
- type: "union",
537
- className: "weight",
538
- values: FONT_WEIGHT
539
- },
540
- ...marginProps,
541
- ...toneProps
542
- }, HEADING_TAG = ["h1", "h2", "h3", "h4", "h5", "h6"], HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], headingProps = {
604
+ const HEADING_TAG = ["h1", "h2", "h3", "h4", "h5", "h6"], HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], headingProps = {
543
605
  as: {
544
606
  type: "union",
545
607
  values: HEADING_TAG
@@ -577,6 +639,28 @@ function Heading({
577
639
  }
578
640
  );
579
641
  }
642
+ const ICON_SIZE = [0, 1, 2, 3, 4], iconProps = {
643
+ size: {
644
+ type: "union",
645
+ className: "icon-body",
646
+ values: ICON_SIZE
647
+ },
648
+ muted: typographyProps.muted,
649
+ ...toneProps,
650
+ ...marginProps
651
+ };
652
+ function Icon({ icon: Component, size = 2, ...props }) {
653
+ const { className, style, ...rest } = getProps({ size, ...props }, iconProps);
654
+ return /* @__PURE__ */ jsx(
655
+ Component,
656
+ {
657
+ className: classNames("sui-Icon", className),
658
+ "data-ui": "Icon",
659
+ style,
660
+ ...rest
661
+ }
662
+ );
663
+ }
580
664
  const TEXT_SIZE = [0, 1, 2, 3, 4], textProps = {
581
665
  as: {
582
666
  type: "string"
@@ -607,10 +691,13 @@ function Text({
607
691
  export {
608
692
  Box,
609
693
  Card,
694
+ Code,
695
+ Container,
610
696
  Divider,
611
697
  Flex,
612
698
  Grid,
613
699
  Heading,
700
+ Icon,
614
701
  Text
615
702
  };
616
703
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/utils/getProps.ts","../src/types/Radius.ts","../src/props/border.ts","../src/props/flexChild.ts","../src/props/gridChild.ts","../src/props/height.ts","../src/types/Space.ts","../src/props/margin.ts","../src/types/Overflow.ts","../src/props/overflow.ts","../src/props/padding.ts","../src/types/Position.ts","../src/props/position.ts","../src/types/Shadow.ts","../src/props/shadow.ts","../src/types/Tone.ts","../src/props/tone.ts","../src/props/width.ts","../src/props/zIndex.ts","../src/props/layout.ts","../src/types/Display.ts","../src/components/box/box.props.ts","../src/components/box/Box.tsx","../src/types/Density.ts","../src/components/card/card.props.ts","../src/components/card/Card.tsx","../src/components/divider/divider.props.tsx","../src/components/divider/Divider.tsx","../src/types/Flex.ts","../src/props/flexParent.ts","../src/props/gap.ts","../src/components/flex/flex.props.ts","../src/components/flex/Flex.tsx","../src/types/Grid.ts","../src/props/gridParent.ts","../src/components/grid/grid.props.ts","../src/components/grid/Grid.tsx","../src/types/FontWeight.ts","../src/types/TextAlign.ts","../src/props/typography.ts","../src/types/Heading.ts","../src/components/heading/heading.props.ts","../src/components/heading/Heading.tsx","../src/components/text/text.props.ts","../src/components/text/Text.tsx"],"sourcesContent":["import classNames from 'classnames'\n\nimport {type PropDef} from '../types/PropDef'\n\nconst PREFIX = 'sui'\nconst BREAKPOINTS_LENGTH = 7\n\ninterface ComponentProps {\n className?: string | undefined\n style?: React.CSSProperties | undefined\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n [key: string]: any\n}\n\nexport function getProps(\n componentProps?: ComponentProps,\n propDefs?: Record<string, PropDef>,\n): ComponentProps {\n const {allComponentProps, allPropDefs} = flattenCompositeProps(componentProps, propDefs)\n const restProps: ComponentProps = {}\n let className = componentProps?.className || ''\n let style = componentProps?.style || {}\n\n for (const key in allComponentProps) {\n const propDef = allPropDefs?.[key]\n const propValue = allComponentProps[key]\n\n if (!propDef || !('className' in propDef) || !propDef.className) {\n restProps[key] = propValue\n continue\n }\n\n if (Array.isArray(propValue)) {\n for (let i = 0, len = Math.min(propValue.length, BREAKPOINTS_LENGTH); i < len; i++) {\n className = classNames(className, getClassName(propValue[i], propDef, i))\n style = {...style, ...getStyle(propValue[i], propDef, i)}\n }\n } else {\n className = classNames(className, getClassName(propValue, propDef))\n style = {...style, ...getStyle(propValue, propDef)}\n }\n }\n\n return {...restProps, className, style}\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getClassName(propValue: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'union' && propDef.values?.includes(propValue)) {\n /* Note: This may need updating depending on the final CSS classname formatting */\n return `${PREFIX}-${propDef.className}${typeof propValue === 'string' ? `-${propValue}` : propValue}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (propDef.type === 'string' || propDef.type === 'number') {\n return `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (propDef.type === 'boolean') {\n return `${PREFIX}-${propValue ? propDef.className : propDef.inverse}${bp ? `-bp-${bp}` : ''}`\n }\n\n return ''\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getStyle(propValue: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'string' || propDef.type === 'number') {\n return {\n [`${propDef.variable}${bp ? `-bp-${bp}` : ''}`]: propValue,\n }\n }\n\n return {}\n}\n\nexport function flattenCompositeProps(\n componentProps?: ComponentProps,\n propDefs?: Record<string, PropDef>,\n) {\n const props = {\n allComponentProps: {} as ComponentProps,\n allPropDefs: {} as Record<string, PropDef>,\n }\n\n for (const key in componentProps) {\n if (propDefs?.[key] && propDefs?.[key].type === 'composite') {\n for (const compositeKey in propDefs?.[key].composition) {\n const compositeValue = getCompositeValue(componentProps[key], propDefs[key], compositeKey)\n\n props.allComponentProps[compositeKey] = compositeValue\n props.allPropDefs[compositeKey] = propDefs[key].composition[compositeKey]\n ?.propDef as PropDef\n }\n } else {\n props.allComponentProps[key] = componentProps[key]\n props.allPropDefs[key] = propDefs?.[key] as PropDef\n }\n }\n\n return props\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getCompositeValue(propValue: any, propDef: PropDef, key: string) {\n if (!('composition' in propDef)) {\n return\n }\n\n const mapping = propDef.composition[key]?.['mapping']\n let compositeValue\n\n if (Array.isArray(propValue)) {\n compositeValue = []\n\n for (let i = 0, len = propValue.length; i < len; i++) {\n compositeValue[i] = mapping?.[propValue[i]]\n }\n } else {\n compositeValue = mapping?.[propValue]\n }\n\n return compositeValue\n}\n","export const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full'] as const\nexport type Radius = (typeof RADIUS)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {RADIUS, type Radius} from '../types/Radius'\nimport {type Responsive} from '../types/Responsive'\n\nexport type BorderProps = {\n /** CSS **border** property */\n border?: Responsive<boolean>\n /** CSS **border-top** property */\n borderTop?: Responsive<boolean>\n /** CSS **border-right** property */\n borderRight?: Responsive<boolean>\n /** CSS **border-bottom** property */\n borderBottom?: Responsive<boolean>\n /** CSS **border-left** property */\n borderLeft?: Responsive<boolean>\n /** CSS **border-radius** property */\n radius?: Responsive<Radius>\n}\n\nexport const borderProps: Record<string, PropDef> = {\n border: {\n type: 'boolean',\n className: 'border',\n inverse: 'border-none',\n },\n borderTop: {\n type: 'boolean',\n className: 'border-top',\n inverse: 'border-top-none',\n },\n borderRight: {\n type: 'boolean',\n className: 'border-right',\n inverse: 'border-right-none',\n },\n borderBottom: {\n type: 'boolean',\n className: 'border-bottom',\n inverse: 'border-bottom-none',\n },\n borderLeft: {\n type: 'boolean',\n className: 'border-left',\n inverse: 'border-left-none',\n },\n radius: {\n type: 'union',\n className: 'radius',\n values: RADIUS,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type FlexChildProps = {\n /** CSS **flex-basis** property */\n flexBasis?: Responsive<string>\n /** CSS **flex-grow** property */\n flexGrow?: Responsive<number>\n /** CSS **flex-shrink** property */\n flexShrink?: Responsive<number>\n}\n\nexport const flexChildProps: Record<string, PropDef> = {\n flexBasis: {\n type: 'string',\n className: 'flex-basis',\n variable: '--flex-basis',\n },\n flexGrow: {\n type: 'number',\n className: 'flex-grow',\n variable: '--flex-grow',\n },\n flexShrink: {\n type: 'number',\n className: 'flex-shrink',\n variable: '--flex-shrink',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type GridChildProps = {\n /** CSS **grid-column** property */\n gridColumn?: Responsive<string>\n /** CSS **grid-column-start** property */\n gridColumnStart?: Responsive<string>\n /** CSS **grid-column-end** property */\n gridColumnEnd?: Responsive<string>\n /** CSS **grid-row** property */\n gridRow?: Responsive<string>\n /** CSS **grid-row-start** property */\n gridRowStart?: Responsive<string>\n /** CSS **grid-row-end** property */\n gridRowEnd?: Responsive<string>\n}\n\nexport const gridChildProps: Record<string, PropDef> = {\n gridColumn: {\n type: 'string',\n className: 'grid-column',\n variable: '--grid-column',\n },\n gridColumnStart: {\n type: 'string',\n className: 'grid-column-start',\n variable: '--grid-column-start',\n },\n gridColumnEnd: {\n type: 'string',\n className: 'grid-column-end',\n variable: '--grid-column-end',\n },\n gridRow: {\n type: 'string',\n className: 'grid-row',\n variable: '--grid-row',\n },\n gridRowStart: {\n type: 'string',\n className: 'grid-row-start',\n variable: '--grid-row-start',\n },\n gridRowEnd: {\n type: 'string',\n className: 'grid-row-end',\n variable: '--grid-row-end',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type HeightProps = {\n /** CSS **height** property */\n height?: Responsive<string>\n /** CSS **min-height** property */\n minHeight?: Responsive<string>\n /** CSS **max-height** property */\n maxHeight?: Responsive<string>\n}\n\nexport const heightProps: Record<string, PropDef> = {\n height: {\n type: 'string',\n className: 'height',\n variable: '--height',\n },\n minHeight: {\n type: 'string',\n className: 'min-height',\n variable: '--min-height',\n },\n maxHeight: {\n type: 'string',\n className: 'max-height',\n variable: '--max-height',\n },\n}\n","export const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\nexport type Space = (typeof SPACE)[number]\n\nexport const SPACE_AUTO = [...SPACE, 'auto'] as const\nexport type SpaceAuto = (typeof SPACE_AUTO)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_AUTO, type SpaceAuto} from '../types/Space'\n\nexport type MarginProps = {\n /** CSS **margin** property */\n margin?: Responsive<SpaceAuto>\n /** CSS **margin-left** and **margin-right** properties */\n marginX?: Responsive<SpaceAuto>\n /** CSS **margin-top** and **margin-bottom** properties */\n marginY?: Responsive<SpaceAuto>\n /** CSS **margin-top** property */\n marginTop?: Responsive<SpaceAuto>\n /** CSS **margin-right** property */\n marginRight?: Responsive<SpaceAuto>\n /** CSS **margin-bottom** property */\n marginBottom?: Responsive<SpaceAuto>\n /** CSS **margin-left** property */\n marginLeft?: Responsive<SpaceAuto>\n}\n\nexport const marginProps: Record<string, PropDef> = {\n margin: {\n type: 'union',\n className: 'm',\n values: SPACE_AUTO,\n },\n marginX: {\n type: 'union',\n className: 'mx',\n values: SPACE_AUTO,\n },\n marginY: {\n type: 'union',\n className: 'my',\n values: SPACE_AUTO,\n },\n marginTop: {\n type: 'union',\n className: 'mt',\n values: SPACE_AUTO,\n },\n marginRight: {\n type: 'union',\n className: 'mr',\n values: SPACE_AUTO,\n },\n marginBottom: {\n type: 'union',\n className: 'mb',\n values: SPACE_AUTO,\n },\n marginLeft: {\n type: 'union',\n className: 'ml',\n values: SPACE_AUTO,\n },\n}\n","export const OVERFLOW = ['visible', 'hidden', 'auto', 'scroll', 'clip'] as const\nexport type Overflow = (typeof OVERFLOW)[number]\n","import {OVERFLOW, type Overflow} from '../types/Overflow'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type OverflowProps = {\n /** CSS **overflow** property */\n overflow?: Responsive<Overflow>\n /** CSS **overflow-x** property */\n overflowX?: Responsive<Overflow>\n /** CSS **overflow-y** property */\n overflowY?: Responsive<Overflow>\n}\n\nexport const overflowProps: Record<string, PropDef> = {\n overflow: {\n type: 'union',\n className: 'overflow',\n values: OVERFLOW,\n },\n overflowX: {\n type: 'union',\n className: 'overflow-x',\n values: OVERFLOW,\n },\n overflowY: {\n type: 'union',\n className: 'overflow-y',\n values: OVERFLOW,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE, type Space} from '../types/Space'\n\nexport interface PaddingProps {\n /** CSS **padding** property */\n padding?: Responsive<Space>\n /** CSS **padding-left** and **padding-right** properties */\n paddingX?: Responsive<Space>\n /** CSS **padding-top** and **padding-bottom** properties */\n paddingY?: Responsive<Space>\n /** CSS **padding-top** property */\n paddingTop?: Responsive<Space>\n /** CSS **padding-right** property */\n paddingRight?: Responsive<Space>\n /** CSS **padding-bottom** property */\n paddingBottom?: Responsive<Space>\n /** CSS **padding-left** property */\n paddingLeft?: Responsive<Space>\n}\n\nexport const paddingProps: Record<string, PropDef> = {\n padding: {\n type: 'union',\n className: 'p',\n values: SPACE,\n },\n paddingX: {\n type: 'union',\n className: 'px',\n values: SPACE,\n },\n paddingY: {\n type: 'union',\n className: 'py',\n values: SPACE,\n },\n paddingTop: {\n type: 'union',\n className: 'pt',\n values: SPACE,\n },\n paddingRight: {\n type: 'union',\n className: 'pr',\n values: SPACE,\n },\n paddingBottom: {\n type: 'union',\n className: 'pb',\n values: SPACE,\n },\n paddingLeft: {\n type: 'union',\n className: 'pl',\n values: SPACE,\n },\n}\n","export const POSITION = ['absolute', 'fixed', 'relative', 'static', 'sticky'] as const\nexport type Position = (typeof POSITION)[number]\n","import {POSITION, type Position} from '../types/Position'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_AUTO, type SpaceAuto} from '../types/Space'\n\nexport type PositionProps = {\n /** CSS **position** property */\n position?: Responsive<Position>\n /** CSS **inset** property */\n inset?: Responsive<SpaceAuto>\n /** CSS **top** property */\n top?: Responsive<SpaceAuto>\n /** CSS **right** property */\n right?: Responsive<SpaceAuto>\n /** CSS **bottom** property */\n bottom?: Responsive<SpaceAuto>\n /** CSS **left** property */\n left?: Responsive<SpaceAuto>\n}\n\nexport const positionProps: Record<string, PropDef> = {\n position: {\n type: 'union',\n className: 'position',\n values: POSITION,\n },\n inset: {\n type: 'union',\n className: 'inset',\n values: SPACE_AUTO,\n },\n top: {\n type: 'union',\n className: 'top',\n values: SPACE_AUTO,\n },\n right: {\n type: 'union',\n className: 'right',\n values: SPACE_AUTO,\n },\n bottom: {\n type: 'union',\n className: 'bottom',\n values: SPACE_AUTO,\n },\n left: {\n type: 'union',\n className: 'left',\n values: SPACE_AUTO,\n },\n}\n","export const SHADOW = [0, 1, 2, 3, 4, 5] as const\nexport type Shadow = (typeof SHADOW)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {SHADOW} from '../types/Shadow'\n\nexport type ShadowProps = {\n /** CSS **box-shadow** property */\n shadow?: string\n}\n\nexport const shadowProps: Record<string, PropDef> = {\n shadow: {\n type: 'union',\n className: 'shadow',\n values: SHADOW,\n },\n}\n","export const TONE = [\n 'none',\n 'neutral',\n 'primary',\n 'positive',\n 'suggest',\n 'caution',\n 'critical',\n] as const\nexport type Tone = (typeof TONE)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {TONE, type Tone} from '../types/Tone'\n\nexport type ToneProps = {\n /** CSS **background-color** property */\n tone?: Tone\n}\n\nexport const toneProps: Record<string, PropDef> = {\n tone: {\n type: 'union',\n className: 'tone',\n values: TONE,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type WidthProps = {\n /** CSS **width** property */\n width?: Responsive<string>\n /** CSS **min-width** property */\n minWidth?: Responsive<string>\n /** CSS **max-width** property */\n maxWidth?: Responsive<string>\n}\n\nexport const widthProps: Record<string, PropDef> = {\n width: {\n type: 'string',\n className: 'width',\n variable: '--width',\n },\n minWidth: {\n type: 'string',\n className: 'min-width',\n variable: '--min-width',\n },\n maxWidth: {\n type: 'string',\n className: 'max-width',\n variable: '--max-width',\n },\n}\n","import type {PropDef} from '../types/PropDef'\nimport type {Responsive} from '../types/Responsive'\n\nexport type ZIndexProps = {\n /** CSS z-index property */\n zIndex?: Responsive<number>\n}\n\nexport const zIndexProps: Record<string, PropDef> = {\n zIndex: {\n type: 'number',\n className: 'z-index',\n variable: '--z-index',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type BorderProps, borderProps} from './border'\nimport {type FlexChildProps, flexChildProps} from './flexChild'\nimport {type GridChildProps, gridChildProps} from './gridChild'\nimport {type HeightProps, heightProps} from './height'\nimport {type MarginProps, marginProps} from './margin'\nimport {type OverflowProps, overflowProps} from './overflow'\nimport {type PaddingProps, paddingProps} from './padding'\nimport {type PositionProps, positionProps} from './position'\nimport {type ShadowProps, shadowProps} from './shadow'\nimport {type ToneProps, toneProps} from './tone'\nimport {type WidthProps, widthProps} from './width'\nimport {type ZIndexProps, zIndexProps} from './zIndex'\n\nexport interface LayoutProps\n extends\n ToneProps,\n WidthProps,\n HeightProps,\n MarginProps,\n BorderProps,\n PaddingProps,\n PositionProps,\n OverflowProps,\n FlexChildProps,\n GridChildProps,\n ZIndexProps,\n ShadowProps {}\n\nexport const layoutProps: Record<string, PropDef> = {\n ...toneProps,\n ...widthProps,\n ...heightProps,\n ...marginProps,\n ...borderProps,\n ...paddingProps,\n ...positionProps,\n ...overflowProps,\n ...flexChildProps,\n ...gridChildProps,\n ...shadowProps,\n ...zIndexProps,\n}\n","export const DISPLAY_BLOCK = ['block', 'inline-block', 'none'] as const\nexport type DisplayBlock = (typeof DISPLAY_BLOCK)[number]\n\nexport const DISPLAY_FLEX = ['flex', 'inline-flex', 'none'] as const\nexport type DisplayFlex = (typeof DISPLAY_FLEX)[number]\n\nexport const DISPLAY_GRID = ['grid', 'inline-grid', 'none'] as const\nexport type DisplayGrid = (typeof DISPLAY_GRID)[number]\n","import {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_BLOCK, type DisplayBlock} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface BoxProps<T extends React.ElementType> extends LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayBlock>\n}\n\nexport const boxProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_BLOCK,\n },\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type BoxProps, boxProps} from './box.props'\n\n/** @public */\nexport function Box<T extends React.ElementType = 'div'>({\n display = 'block',\n ...props\n}: BoxProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof BoxProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({display, ...props}, boxProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Box', className)} style={style} data-ui=\"Box\" {...rest}>\n {children}\n </Component>\n )\n}\n","export const DENSITY = ['compact', 'regular', 'loose'] as const\nexport type Density = (typeof DENSITY)[number]\n","import {borderProps} from '../../props/border'\nimport {type MarginProps, marginProps} from '../../props/margin'\nimport {paddingProps} from '../../props/padding'\nimport {type ToneProps, toneProps} from '../../props/tone'\nimport {DENSITY, type Density} from '../../types/Density'\nimport {type PropDef} from '../../types/PropDef'\nimport {type Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface CardProps<T extends React.ElementType> extends MarginProps, ToneProps {\n /** Element to render */\n as?: T\n /** Composite prop for setting padding and border radius */\n density?: Responsive<Density>\n}\n\nexport const cardProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n density: {\n type: 'composite',\n values: DENSITY,\n composition: {\n padding: {\n propDef: paddingProps['padding'] as PropDef,\n mapping: {\n compact: 3,\n regular: 4,\n loose: 5,\n },\n },\n radius: {\n propDef: borderProps['radius'] as PropDef,\n mapping: {\n compact: 2,\n regular: 3,\n loose: 4,\n },\n },\n },\n } satisfies PropDef<Density>,\n ...toneProps,\n ...marginProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type CardProps, cardProps} from './card.props'\n\n/** @public */\nexport function Card<T extends React.ElementType = 'div'>({\n density = 'regular',\n tone = 'none',\n ...props\n}: CardProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof CardProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({density, tone, ...props}, cardProps)\n const Component = as || 'div'\n\n return (\n <Component\n className={classNames('sui-Card sui-border', className)}\n style={style}\n data-ui=\"Card\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface DividerProps extends React.ComponentProps<'hr'>, MarginProps {}\n\nexport const dividerProps: Record<string, PropDef> = {\n ...marginProps,\n}\n","import classNames from 'classnames'\n\nimport {getProps} from '../../utils/getProps'\nimport {type DividerProps, dividerProps} from './divider.props'\n\n/** @public */\nexport function Divider(props: DividerProps) {\n const {className, style, ...rest} = getProps(props, dividerProps)\n\n return (\n <hr\n className={classNames('sui-Divider sui-border-none sui-border-top', className)}\n style={style}\n data-ui=\"Divider\"\n {...rest}\n />\n )\n}\n","export const ALIGN_ITEMS = ['baseline', 'center', 'flex-end', 'flex-start', 'stretch'] as const\nexport type AlignItems = (typeof ALIGN_ITEMS)[number]\n\nexport const JUSTIFY_CONTENT = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n] as const\nexport type JustifyContent = (typeof JUSTIFY_CONTENT)[number]\n\nexport const FLEX_DIRECTION = ['row', 'row-reverse', 'column', 'column-reverse'] as const\nexport type FlexDirection = (typeof FLEX_DIRECTION)[number]\n\nexport const FLEX_WRAP = ['wrap', 'wrap-reverse', 'nowrap'] as const\nexport type FlexWrap = (typeof FLEX_WRAP)[number]\n","import {\n ALIGN_ITEMS,\n type AlignItems,\n FLEX_DIRECTION,\n FLEX_WRAP,\n type FlexDirection,\n type FlexWrap,\n JUSTIFY_CONTENT,\n type JustifyContent,\n} from '../types/Flex'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type FlexParentProps = {\n /** CSS **align-items** property */\n alignItems?: Responsive<AlignItems>\n /** CSS **justify-content** property */\n justifyContent?: Responsive<JustifyContent>\n /** CSS **flex-direction** property */\n flexDirection?: Responsive<FlexDirection>\n /** CSS **flex-wrap** property */\n flexWrap?: Responsive<FlexWrap>\n}\n\nexport const flexParentProps: Record<string, PropDef> = {\n alignItems: {\n type: 'union',\n className: 'align-items',\n values: ALIGN_ITEMS,\n },\n justifyContent: {\n type: 'union',\n className: 'justify-content',\n values: JUSTIFY_CONTENT,\n },\n flexDirection: {\n type: 'union',\n className: 'flex-direction',\n values: FLEX_DIRECTION,\n },\n flexWrap: {\n type: 'union',\n className: 'flex-wrap',\n values: FLEX_WRAP,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE, type Space} from '../types/Space'\n\nexport type GapProps = {\n /** CSS **gap** property */\n gap?: Responsive<Space>\n /** CSS **row-gap** property */\n rowGap?: Responsive<Space>\n /** CSS **column-gap** property */\n columnGap?: Responsive<Space>\n}\n\nexport const gapProps: Record<string, PropDef> = {\n gap: {\n type: 'union',\n className: 'gap',\n values: SPACE,\n },\n rowGap: {\n type: 'union',\n className: 'row-gap',\n values: SPACE,\n },\n columnGap: {\n type: 'union',\n className: 'column-gap',\n values: SPACE,\n },\n}\n","import {type FlexParentProps, flexParentProps} from '../../props/flexParent'\nimport {type GapProps, gapProps} from '../../props/gap'\nimport {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_FLEX, type DisplayFlex} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface FlexProps<T extends React.ElementType>\n extends FlexParentProps, GapProps, LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayFlex>\n}\n\nexport const flexProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_FLEX,\n },\n ...flexParentProps,\n ...gapProps,\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type FlexProps, flexProps} from './flex.props'\n\n/** @public */\nexport function Flex<T extends React.ElementType = 'div'>({\n display = 'flex',\n ...props\n}: FlexProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof FlexProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({display, ...props}, flexProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Flex', className)} style={style} data-ui=\"Flex\" {...rest}>\n {children}\n </Component>\n )\n}\n","export const GRID_AUTO_FLOW = ['row', 'column', 'row dense', 'column dense', 'dense'] as const\nexport type GridAutoFlow = (typeof GRID_AUTO_FLOW)[number]\n","import {GRID_AUTO_FLOW, type GridAutoFlow} from '../types/Grid'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type GridParentProps = {\n /** CSS **grid-auto-flow** property */\n gridAutoFlow?: Responsive<GridAutoFlow>\n /** CSS **grid-auto-columns** property */\n gridAutoColumns?: Responsive<string>\n /** CSS **grid-auto-row** property */\n gridAutoRows?: Responsive<string>\n /** CSS **grid-template-columns** property */\n gridTemplateColumns?: Responsive<string>\n /** CSS **grid-template-rows** property */\n gridTemplateRows?: Responsive<string>\n}\n\nexport const gridParentProps: Record<string, PropDef> = {\n gridAutoFlow: {\n type: 'union',\n className: 'grid-auto-flow',\n values: GRID_AUTO_FLOW,\n },\n gridAutoColumns: {\n type: 'string',\n className: 'grid-auto-columns',\n variable: '--grid-auto-columns',\n },\n gridAutoRows: {\n type: 'string',\n className: 'grid-auto-rows',\n variable: '--grid-auto-rows',\n },\n gridTemplateColumns: {\n type: 'string',\n className: 'grid-template-columns',\n variable: '--grid-template-columns',\n },\n gridTemplateRows: {\n type: 'string',\n className: 'grid-template-rows',\n variable: '--grid-template-rows',\n },\n}\n","import {type GapProps, gapProps} from '../../props/gap'\nimport {type GridParentProps, gridParentProps} from '../../props/gridParent'\nimport {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_GRID, type DisplayGrid} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface GridProps<T extends React.ElementType>\n extends GridParentProps, GapProps, LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayGrid>\n}\n\nexport const gridProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_GRID,\n },\n ...gridParentProps,\n ...gapProps,\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type GridProps, gridProps} from './grid.props'\n\n/** @public */\nexport function Grid<T extends React.ElementType = 'div'>({\n display = 'grid',\n ...props\n}: GridProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof GridProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({display, ...props}, gridProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Grid', className)} style={style} data-ui=\"Grid\" {...rest}>\n {children}\n </Component>\n )\n}\n","export const FONT_WEIGHT = ['regular', 'medium', 'semibold', 'bold'] as const\nexport type FontWeight = (typeof FONT_WEIGHT)[number]\n","export const TEXT_ALIGN = ['left', 'center', 'right', 'justify'] as const\nexport type TextAlign = (typeof TEXT_ALIGN)[number]\n","import {FONT_WEIGHT, type FontWeight} from '../types/FontWeight'\nimport {type PropDef} from '../types/PropDef'\nimport {TEXT_ALIGN, type TextAlign} from '../types/TextAlign'\nimport {type MarginProps, marginProps} from './margin'\nimport {type ToneProps, toneProps} from './tone'\n\nexport interface TypographyProps extends MarginProps, ToneProps {\n /** CSS **text-align** property */\n align?: TextAlign\n /** CSS **-webkit-line-clamp** property */\n lineClamp?: number\n /** CSS **color** property */\n muted?: boolean\n /** CSS **text-box-trim** property */\n trim?: boolean\n /** CSS **font-weight** property */\n weight?: FontWeight\n}\n\nexport const typographyProps: Record<string, PropDef> = {\n align: {\n type: 'union',\n className: 'text',\n values: TEXT_ALIGN,\n },\n lineClamp: {\n type: 'number',\n className: 'line-clamp',\n variable: '--line-clamp',\n },\n muted: {\n type: 'boolean',\n className: 'text-muted',\n inverse: 'text-default',\n },\n trim: {\n type: 'boolean',\n className: 'text-trim',\n inverse: 'text-trim-none',\n },\n weight: {\n type: 'union',\n className: 'weight',\n values: FONT_WEIGHT,\n },\n ...marginProps,\n ...toneProps,\n}\n","export const HEADING_TAG = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const\nexport type HeadingTag = (typeof HEADING_TAG)[number]\n\nexport const HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\nexport type HeadingSize = (typeof HEADING_SIZE)[number]\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {HEADING_SIZE, HEADING_TAG, type HeadingSize, type HeadingTag} from '../../types/Heading'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface HeadingProps extends TypographyProps {\n /** Element to render */\n as?: HeadingTag\n /** CSS **font-size** property */\n size?: HeadingSize\n}\n\nexport const headingProps: Record<string, PropDef> = {\n as: {\n type: 'union',\n values: HEADING_TAG,\n },\n size: {\n type: 'union',\n className: 'text-heading',\n values: HEADING_SIZE,\n },\n ...typographyProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type HeadingProps, headingProps} from './heading.props'\n\n/** @public */\nexport function Heading<T extends React.ElementType = 'h2'>({\n size = 2,\n weight = 'bold',\n ...props\n}: HeadingProps & Omit<React.ComponentPropsWithRef<T>, keyof HeadingProps>) {\n const {as, children, className, style, ...rest} = getProps({size, weight, ...props}, headingProps)\n const Component = as || 'h2'\n\n if (props.lineClamp && props.trim) {\n return (\n <Component\n className={classNames('sui-Heading', className?.replace('sui-line-clamp', ''))}\n style={style}\n data-ui=\"Heading\"\n {...rest}\n >\n <span className=\"sui-line-clamp\">{children}</span>\n </Component>\n )\n }\n\n return (\n <Component\n className={classNames('sui-Heading', className)}\n style={style}\n data-ui=\"Heading\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {type PropDef} from '../../types/PropDef'\n\nconst TEXT_SIZE = [0, 1, 2, 3, 4] as const\ntype TextSize = (typeof TEXT_SIZE)[number]\n\n/** @public */\nexport interface TextProps<T extends React.ElementType> extends TypographyProps {\n /** Element to render */\n as?: T\n /** CSS **font-size** property */\n size?: TextSize\n}\n\nexport const textProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'text-body',\n values: TEXT_SIZE,\n },\n ...typographyProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type TextProps, textProps} from './text.props'\n\n/** @public */\nexport function Text<T extends React.ElementType = 'span'>({\n size = 2,\n ...props\n}: TextProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof TextProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({size, ...props}, textProps)\n const Component = as || 'span'\n\n if (props.lineClamp && props.trim) {\n return (\n <Component\n className={classNames('sui-Text', className?.replace('sui-line-clamp', ''))}\n style={style}\n data-ui=\"Text\"\n {...rest}\n >\n <span className=\"sui-line-clamp\">{children}</span>\n </Component>\n )\n }\n\n return (\n <Component className={classNames('sui-Text', className)} style={style} data-ui=\"Text\" {...rest}>\n {children}\n </Component>\n )\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/utils/getProps.ts","../src/types/Radius.ts","../src/props/border.ts","../src/props/flexChild.ts","../src/props/gridChild.ts","../src/props/height.ts","../src/types/Space.ts","../src/props/margin.ts","../src/types/Overflow.ts","../src/props/overflow.ts","../src/props/padding.ts","../src/types/Position.ts","../src/props/position.ts","../src/types/Shadow.ts","../src/props/shadow.ts","../src/types/Tone.ts","../src/props/tone.ts","../src/props/width.ts","../src/props/zIndex.ts","../src/props/layout.ts","../src/types/Display.ts","../src/components/box/box.props.ts","../src/components/box/Box.tsx","../src/types/Density.ts","../src/components/card/card.props.ts","../src/components/card/Card.tsx","../src/types/FontWeight.ts","../src/types/TextAlign.ts","../src/props/typography.ts","../src/types/Code.ts","../src/components/code/code.props.ts","../src/components/code/Code.tsx","../src/types/Container.ts","../src/components/container/container.props.ts","../src/components/container/Container.tsx","../src/components/divider/divider.props.tsx","../src/components/divider/Divider.tsx","../src/types/Flex.ts","../src/props/flexParent.ts","../src/props/gap.ts","../src/components/flex/flex.props.ts","../src/components/flex/Flex.tsx","../src/types/Grid.ts","../src/props/gridParent.ts","../src/components/grid/grid.props.ts","../src/components/grid/Grid.tsx","../src/types/Heading.ts","../src/components/heading/heading.props.ts","../src/components/heading/Heading.tsx","../src/types/Icon.ts","../src/components/icon/icon.props.ts","../src/components/icon/Icon.tsx","../src/types/Text.ts","../src/components/text/text.props.ts","../src/components/text/Text.tsx"],"sourcesContent":["import classNames from 'classnames'\n\nimport {type PropDef} from '../types/PropDef'\n\nconst PREFIX = 'sui'\nconst BREAKPOINTS_LENGTH = 6\n\ninterface ComponentProps {\n className?: string | undefined\n style?: React.CSSProperties | undefined\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n [key: string]: any\n}\n\nexport function getProps(\n componentProps?: ComponentProps,\n propDefs?: Record<string, PropDef>,\n): ComponentProps {\n const {allComponentProps, allPropDefs} = flattenCompositeProps(componentProps, propDefs)\n const restProps: ComponentProps = {}\n let className = componentProps?.className || ''\n let style = componentProps?.style || {}\n\n for (const key in allComponentProps) {\n const propDef = allPropDefs?.[key]\n const propValue = allComponentProps[key]\n\n if (!propDef || !('className' in propDef) || !propDef.className) {\n restProps[key] = propValue\n continue\n }\n\n if (Array.isArray(propValue)) {\n for (let i = 0, len = Math.min(propValue.length, BREAKPOINTS_LENGTH); i < len; i++) {\n className = classNames(className, getClassName(propValue[i], propDef, i))\n style = {...style, ...getStyle(propValue[i], propDef, i)}\n }\n } else {\n className = classNames(className, getClassName(propValue, propDef))\n style = {...style, ...getStyle(propValue, propDef)}\n }\n }\n\n return {...restProps, className, style}\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getClassName(propValue: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'union' && propDef.values?.includes(propValue)) {\n /* Note: This may need updating depending on the final CSS classname formatting */\n return `${PREFIX}-${propDef.className}${typeof propValue === 'string' ? `-${propValue}` : propValue}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (propDef.type === 'string' || propDef.type === 'number') {\n return `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ''}`\n }\n\n if (propDef.type === 'boolean') {\n return `${PREFIX}-${propValue ? propDef.className : propDef.inverseClassName}${bp ? `-bp-${bp}` : ''}`\n }\n\n return ''\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getStyle(propValue: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'string' || propDef.type === 'number') {\n return {\n [`${propDef.variable}${bp ? `-bp-${bp}` : ''}`]: propValue,\n }\n }\n\n return {}\n}\n\nexport function flattenCompositeProps(\n componentProps?: ComponentProps,\n propDefs?: Record<string, PropDef>,\n) {\n const props = {\n allComponentProps: {} as ComponentProps,\n allPropDefs: {} as Record<string, PropDef>,\n }\n\n for (const key in componentProps) {\n if (propDefs?.[key] && propDefs?.[key].type === 'composite') {\n for (const compositeKey in propDefs?.[key].composition) {\n const compositeValue = getCompositeValue(componentProps[key], propDefs[key], compositeKey)\n\n props.allComponentProps[compositeKey] = compositeValue\n props.allPropDefs[compositeKey] = propDefs[key].composition[compositeKey]\n ?.propDef as PropDef\n }\n } else {\n props.allComponentProps[key] = componentProps[key]\n props.allPropDefs[key] = propDefs?.[key] as PropDef\n }\n }\n\n return props\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getCompositeValue(propValue: any, propDef: PropDef, key: string) {\n if (!('composition' in propDef)) {\n return\n }\n\n const mapping = propDef.composition[key]?.['mapping']\n let compositeValue\n\n if (Array.isArray(propValue)) {\n compositeValue = []\n\n for (let i = 0, len = propValue.length; i < len; i++) {\n compositeValue[i] = mapping?.[propValue[i]]\n }\n } else {\n compositeValue = mapping?.[propValue]\n }\n\n return compositeValue\n}\n","export const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full'] as const\nexport type Radius = (typeof RADIUS)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {RADIUS, type Radius} from '../types/Radius'\nimport {type Responsive} from '../types/Responsive'\n\nexport type BorderProps = {\n /** CSS **border** property */\n border?: Responsive<boolean>\n /** CSS **border-top** property */\n borderTop?: Responsive<boolean>\n /** CSS **border-right** property */\n borderRight?: Responsive<boolean>\n /** CSS **border-bottom** property */\n borderBottom?: Responsive<boolean>\n /** CSS **border-left** property */\n borderLeft?: Responsive<boolean>\n /** CSS **border-radius** property */\n radius?: Responsive<Radius>\n}\n\nexport const borderProps: Record<string, PropDef> = {\n border: {\n type: 'boolean',\n className: 'border',\n inverseClassName: 'border-none',\n },\n borderTop: {\n type: 'boolean',\n className: 'border-top',\n inverseClassName: 'border-top-none',\n },\n borderRight: {\n type: 'boolean',\n className: 'border-right',\n inverseClassName: 'border-right-none',\n },\n borderBottom: {\n type: 'boolean',\n className: 'border-bottom',\n inverseClassName: 'border-bottom-none',\n },\n borderLeft: {\n type: 'boolean',\n className: 'border-left',\n inverseClassName: 'border-left-none',\n },\n radius: {\n type: 'union',\n className: 'radius',\n values: RADIUS,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type FlexChildProps = {\n /** CSS **flex-basis** property */\n flexBasis?: Responsive<string>\n /** CSS **flex-grow** property */\n flexGrow?: Responsive<number>\n /** CSS **flex-shrink** property */\n flexShrink?: Responsive<number>\n}\n\nexport const flexChildProps: Record<string, PropDef> = {\n flexBasis: {\n type: 'string',\n className: 'flex-basis',\n variable: '--flex-basis',\n },\n flexGrow: {\n type: 'number',\n className: 'flex-grow',\n variable: '--flex-grow',\n },\n flexShrink: {\n type: 'number',\n className: 'flex-shrink',\n variable: '--flex-shrink',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type GridChildProps = {\n /** CSS **grid-column** property */\n gridColumn?: Responsive<string>\n /** CSS **grid-column-start** property */\n gridColumnStart?: Responsive<string>\n /** CSS **grid-column-end** property */\n gridColumnEnd?: Responsive<string>\n /** CSS **grid-row** property */\n gridRow?: Responsive<string>\n /** CSS **grid-row-start** property */\n gridRowStart?: Responsive<string>\n /** CSS **grid-row-end** property */\n gridRowEnd?: Responsive<string>\n}\n\nexport const gridChildProps: Record<string, PropDef> = {\n gridColumn: {\n type: 'string',\n className: 'grid-column',\n variable: '--grid-column',\n },\n gridColumnStart: {\n type: 'string',\n className: 'grid-column-start',\n variable: '--grid-column-start',\n },\n gridColumnEnd: {\n type: 'string',\n className: 'grid-column-end',\n variable: '--grid-column-end',\n },\n gridRow: {\n type: 'string',\n className: 'grid-row',\n variable: '--grid-row',\n },\n gridRowStart: {\n type: 'string',\n className: 'grid-row-start',\n variable: '--grid-row-start',\n },\n gridRowEnd: {\n type: 'string',\n className: 'grid-row-end',\n variable: '--grid-row-end',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type HeightProps = {\n /** CSS **height** property */\n height?: Responsive<string>\n /** CSS **min-height** property */\n minHeight?: Responsive<string>\n /** CSS **max-height** property */\n maxHeight?: Responsive<string>\n}\n\nexport const heightProps: Record<string, PropDef> = {\n height: {\n type: 'string',\n className: 'height',\n variable: '--height',\n },\n minHeight: {\n type: 'string',\n className: 'min-height',\n variable: '--min-height',\n },\n maxHeight: {\n type: 'string',\n className: 'max-height',\n variable: '--max-height',\n },\n}\n","export const SPACE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\nexport type Space = (typeof SPACE)[number]\n\nexport const SPACE_AUTO = [...SPACE, 'auto'] as const\nexport type SpaceAuto = (typeof SPACE_AUTO)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_AUTO, type SpaceAuto} from '../types/Space'\n\nexport type MarginProps = {\n /** CSS **margin** property */\n margin?: Responsive<SpaceAuto>\n /** CSS **margin-left** and **margin-right** properties */\n marginX?: Responsive<SpaceAuto>\n /** CSS **margin-top** and **margin-bottom** properties */\n marginY?: Responsive<SpaceAuto>\n /** CSS **margin-top** property */\n marginTop?: Responsive<SpaceAuto>\n /** CSS **margin-right** property */\n marginRight?: Responsive<SpaceAuto>\n /** CSS **margin-bottom** property */\n marginBottom?: Responsive<SpaceAuto>\n /** CSS **margin-left** property */\n marginLeft?: Responsive<SpaceAuto>\n}\n\nexport const marginProps: Record<string, PropDef> = {\n margin: {\n type: 'union',\n className: 'm',\n values: SPACE_AUTO,\n },\n marginX: {\n type: 'union',\n className: 'mx',\n values: SPACE_AUTO,\n },\n marginY: {\n type: 'union',\n className: 'my',\n values: SPACE_AUTO,\n },\n marginTop: {\n type: 'union',\n className: 'mt',\n values: SPACE_AUTO,\n },\n marginRight: {\n type: 'union',\n className: 'mr',\n values: SPACE_AUTO,\n },\n marginBottom: {\n type: 'union',\n className: 'mb',\n values: SPACE_AUTO,\n },\n marginLeft: {\n type: 'union',\n className: 'ml',\n values: SPACE_AUTO,\n },\n}\n","export const OVERFLOW = ['visible', 'hidden', 'auto', 'scroll', 'clip'] as const\nexport type Overflow = (typeof OVERFLOW)[number]\n","import {OVERFLOW, type Overflow} from '../types/Overflow'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type OverflowProps = {\n /** CSS **overflow** property */\n overflow?: Responsive<Overflow>\n /** CSS **overflow-x** property */\n overflowX?: Responsive<Overflow>\n /** CSS **overflow-y** property */\n overflowY?: Responsive<Overflow>\n}\n\nexport const overflowProps: Record<string, PropDef> = {\n overflow: {\n type: 'union',\n className: 'overflow',\n values: OVERFLOW,\n },\n overflowX: {\n type: 'union',\n className: 'overflow-x',\n values: OVERFLOW,\n },\n overflowY: {\n type: 'union',\n className: 'overflow-y',\n values: OVERFLOW,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE, type Space} from '../types/Space'\n\nexport interface PaddingProps {\n /** CSS **padding** property */\n padding?: Responsive<Space>\n /** CSS **padding-left** and **padding-right** properties */\n paddingX?: Responsive<Space>\n /** CSS **padding-top** and **padding-bottom** properties */\n paddingY?: Responsive<Space>\n /** CSS **padding-top** property */\n paddingTop?: Responsive<Space>\n /** CSS **padding-right** property */\n paddingRight?: Responsive<Space>\n /** CSS **padding-bottom** property */\n paddingBottom?: Responsive<Space>\n /** CSS **padding-left** property */\n paddingLeft?: Responsive<Space>\n}\n\nexport const paddingProps: Record<string, PropDef> = {\n padding: {\n type: 'union',\n className: 'p',\n values: SPACE,\n },\n paddingX: {\n type: 'union',\n className: 'px',\n values: SPACE,\n },\n paddingY: {\n type: 'union',\n className: 'py',\n values: SPACE,\n },\n paddingTop: {\n type: 'union',\n className: 'pt',\n values: SPACE,\n },\n paddingRight: {\n type: 'union',\n className: 'pr',\n values: SPACE,\n },\n paddingBottom: {\n type: 'union',\n className: 'pb',\n values: SPACE,\n },\n paddingLeft: {\n type: 'union',\n className: 'pl',\n values: SPACE,\n },\n}\n","export const POSITION = ['absolute', 'fixed', 'relative', 'static', 'sticky'] as const\nexport type Position = (typeof POSITION)[number]\n","import {POSITION, type Position} from '../types/Position'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE_AUTO, type SpaceAuto} from '../types/Space'\n\nexport type PositionProps = {\n /** CSS **position** property */\n position?: Responsive<Position>\n /** CSS **inset** property */\n inset?: Responsive<SpaceAuto>\n /** CSS **top** property */\n top?: Responsive<SpaceAuto>\n /** CSS **right** property */\n right?: Responsive<SpaceAuto>\n /** CSS **bottom** property */\n bottom?: Responsive<SpaceAuto>\n /** CSS **left** property */\n left?: Responsive<SpaceAuto>\n}\n\nexport const positionProps: Record<string, PropDef> = {\n position: {\n type: 'union',\n className: 'position',\n values: POSITION,\n },\n inset: {\n type: 'union',\n className: 'inset',\n values: SPACE_AUTO,\n },\n top: {\n type: 'union',\n className: 'top',\n values: SPACE_AUTO,\n },\n right: {\n type: 'union',\n className: 'right',\n values: SPACE_AUTO,\n },\n bottom: {\n type: 'union',\n className: 'bottom',\n values: SPACE_AUTO,\n },\n left: {\n type: 'union',\n className: 'left',\n values: SPACE_AUTO,\n },\n}\n","export const SHADOW = [0, 1, 2, 3, 4, 5] as const\nexport type Shadow = (typeof SHADOW)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {SHADOW} from '../types/Shadow'\n\nexport type ShadowProps = {\n /** CSS **box-shadow** property */\n shadow?: string\n}\n\nexport const shadowProps: Record<string, PropDef> = {\n shadow: {\n type: 'union',\n className: 'shadow',\n values: SHADOW,\n },\n}\n","export const TONE = [\n 'none',\n 'neutral',\n 'primary',\n 'positive',\n 'suggest',\n 'caution',\n 'critical',\n] as const\nexport type Tone = (typeof TONE)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {TONE, type Tone} from '../types/Tone'\n\nexport type ToneProps = {\n /** CSS **background-color** property */\n tone?: Tone\n}\n\nexport const toneProps: Record<string, PropDef> = {\n tone: {\n type: 'union',\n className: 'tone',\n values: TONE,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type WidthProps = {\n /** CSS **width** property */\n width?: Responsive<string>\n /** CSS **min-width** property */\n minWidth?: Responsive<string>\n /** CSS **max-width** property */\n maxWidth?: Responsive<string>\n}\n\nexport const widthProps: Record<string, PropDef> = {\n width: {\n type: 'string',\n className: 'width',\n variable: '--width',\n },\n minWidth: {\n type: 'string',\n className: 'min-width',\n variable: '--min-width',\n },\n maxWidth: {\n type: 'string',\n className: 'max-width',\n variable: '--max-width',\n },\n}\n","import type {PropDef} from '../types/PropDef'\nimport type {Responsive} from '../types/Responsive'\n\nexport type ZIndexProps = {\n /** CSS z-index property */\n zIndex?: Responsive<number>\n}\n\nexport const zIndexProps: Record<string, PropDef> = {\n zIndex: {\n type: 'number',\n className: 'z-index',\n variable: '--z-index',\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type BorderProps, borderProps} from './border'\nimport {type FlexChildProps, flexChildProps} from './flexChild'\nimport {type GridChildProps, gridChildProps} from './gridChild'\nimport {type HeightProps, heightProps} from './height'\nimport {type MarginProps, marginProps} from './margin'\nimport {type OverflowProps, overflowProps} from './overflow'\nimport {type PaddingProps, paddingProps} from './padding'\nimport {type PositionProps, positionProps} from './position'\nimport {type ShadowProps, shadowProps} from './shadow'\nimport {type ToneProps, toneProps} from './tone'\nimport {type WidthProps, widthProps} from './width'\nimport {type ZIndexProps, zIndexProps} from './zIndex'\n\nexport interface LayoutProps\n extends\n ToneProps,\n WidthProps,\n HeightProps,\n MarginProps,\n BorderProps,\n PaddingProps,\n PositionProps,\n OverflowProps,\n FlexChildProps,\n GridChildProps,\n ZIndexProps,\n ShadowProps {}\n\nexport const layoutProps: Record<string, PropDef> = {\n ...toneProps,\n ...widthProps,\n ...heightProps,\n ...marginProps,\n ...borderProps,\n ...paddingProps,\n ...positionProps,\n ...overflowProps,\n ...flexChildProps,\n ...gridChildProps,\n ...shadowProps,\n ...zIndexProps,\n}\n","export const DISPLAY_BLOCK = ['block', 'inline-block', 'none'] as const\nexport type DisplayBlock = (typeof DISPLAY_BLOCK)[number]\n\nexport const DISPLAY_FLEX = ['flex', 'inline-flex', 'none'] as const\nexport type DisplayFlex = (typeof DISPLAY_FLEX)[number]\n\nexport const DISPLAY_GRID = ['grid', 'inline-grid', 'none'] as const\nexport type DisplayGrid = (typeof DISPLAY_GRID)[number]\n","import {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_BLOCK, type DisplayBlock} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface BoxProps<T extends React.ElementType> extends LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayBlock>\n}\n\nexport const boxProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_BLOCK,\n },\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type BoxProps, boxProps} from './box.props'\n\n/** @public */\nexport function Box<T extends React.ElementType = 'div'>({\n display = 'block',\n ...props\n}: BoxProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof BoxProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({display, ...props}, boxProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Box', className)} style={style} data-ui=\"Box\" {...rest}>\n {children}\n </Component>\n )\n}\n","export const DENSITY = ['compact', 'regular', 'loose'] as const\nexport type Density = (typeof DENSITY)[number]\n","import {borderProps} from '../../props/border'\nimport {type MarginProps, marginProps} from '../../props/margin'\nimport {paddingProps} from '../../props/padding'\nimport {type ToneProps, toneProps} from '../../props/tone'\nimport {DENSITY, type Density} from '../../types/Density'\nimport {type PropDef} from '../../types/PropDef'\nimport {type Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface CardProps<T extends React.ElementType> extends MarginProps, ToneProps {\n /** Element to render */\n as?: T\n /** Composite prop for setting padding and border radius */\n density?: Responsive<Density>\n}\n\nexport const cardProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n density: {\n type: 'composite',\n values: DENSITY,\n composition: {\n padding: {\n propDef: paddingProps['padding'] as PropDef,\n mapping: {\n compact: 3,\n regular: 4,\n loose: 5,\n },\n },\n radius: {\n propDef: borderProps['radius'] as PropDef,\n mapping: {\n compact: 2,\n regular: 3,\n loose: 4,\n },\n },\n },\n } satisfies PropDef<Density>,\n ...toneProps,\n ...marginProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type CardProps, cardProps} from './card.props'\n\n/** @public */\nexport function Card<T extends React.ElementType = 'div'>({\n density = 'regular',\n tone = 'none',\n ...props\n}: CardProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof CardProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({density, tone, ...props}, cardProps)\n const Component = as || 'div'\n\n return (\n <Component\n className={classNames('sui-Card sui-border', className)}\n style={style}\n data-ui=\"Card\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","export const FONT_WEIGHT = ['regular', 'medium', 'semibold', 'bold'] as const\nexport type FontWeight = (typeof FONT_WEIGHT)[number]\n","export const TEXT_ALIGN = ['left', 'center', 'right', 'justify'] as const\nexport type TextAlign = (typeof TEXT_ALIGN)[number]\n","import {FONT_WEIGHT, type FontWeight} from '../types/FontWeight'\nimport {type PropDef} from '../types/PropDef'\nimport {TEXT_ALIGN, type TextAlign} from '../types/TextAlign'\nimport {type MarginProps, marginProps} from './margin'\nimport {type ToneProps, toneProps} from './tone'\n\nexport interface TypographyProps extends MarginProps, ToneProps {\n /** CSS **text-align** property */\n align?: TextAlign\n /** CSS **-webkit-line-clamp** property */\n lineClamp?: number\n /** CSS **color** property */\n muted?: boolean\n /** CSS **text-box-trim** property */\n trim?: boolean\n /** CSS **font-weight** property */\n weight?: FontWeight\n}\n\nexport const typographyProps: Record<string, PropDef> = {\n align: {\n type: 'union',\n className: 'text',\n values: TEXT_ALIGN,\n },\n lineClamp: {\n type: 'number',\n className: 'line-clamp',\n variable: '--line-clamp',\n },\n muted: {\n type: 'boolean',\n className: 'text-muted',\n inverseClassName: 'text-default',\n },\n trim: {\n type: 'boolean',\n className: 'text-trim',\n inverseClassName: 'text-trim-none',\n },\n weight: {\n type: 'union',\n className: 'weight',\n values: FONT_WEIGHT,\n },\n ...marginProps,\n ...toneProps,\n}\n","export const CODE_TAG = ['pre', 'span'] as const\nexport type CodeTag = (typeof CODE_TAG)[number]\n\nexport const CODE_SIZE = [0, 1, 2, 3, 4] as const\nexport type CodeSize = (typeof CODE_SIZE)[number]\n","import {marginProps} from '../../props/margin'\nimport {type TypographyProps, typographyProps} from '../../props/typography'\nimport {CODE_SIZE, CODE_TAG, type CodeSize, type CodeTag} from '../../types/Code'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface CodeProps\n extends React.ComponentProps<'pre'>, Omit<TypographyProps, 'align' | 'lineClamp' | 'tone'> {\n /** Element to render */\n as?: CodeTag\n /** Refractor language for syntax highlighting */\n language?: string\n /** CSS **font-size** property */\n size?: Responsive<CodeSize>\n}\n\nexport const codeProps: Record<string, PropDef> = {\n as: {\n type: 'union',\n values: CODE_TAG,\n },\n language: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'text-code',\n values: CODE_SIZE,\n },\n muted: typographyProps['muted'] as PropDef,\n trim: typographyProps['trim'] as PropDef,\n weight: typographyProps['weight'] as PropDef,\n ...marginProps,\n}\n","import classNames from 'classnames'\nimport {lazy, Suspense} from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type CodeProps, codeProps} from './code.props'\n\nconst LazyRefractor = lazy(() => import('./LazyRefractor'))\n\n/** @public */\nexport function Code<T extends React.ElementType = 'pre'>({\n size = 2,\n ...props\n}: CodeProps & Omit<React.ComponentPropsWithRef<T>, keyof CodeProps>) {\n const {as, children, className, language, style, ...rest} = getProps({size, ...props}, codeProps)\n const Component = as || 'pre'\n\n if (!language) {\n return (\n <Component\n className={classNames('sui-Code', className)}\n style={style}\n data-ui=\"Code\"\n {...rest}\n >\n <code>{children}</code>\n </Component>\n )\n }\n\n return (\n <Component className={classNames('sui-Code', className)} style={style} data-ui=\"Code\" {...rest}>\n <Suspense fallback={<code>{children}</code>}>\n <LazyRefractor language={language} value={children} />\n </Suspense>\n </Component>\n )\n}\n","export const CONTAINER_SIZE = [0, 1, 2, 3, 4, 5] as const\nexport type ContainerSize = (typeof CONTAINER_SIZE)[number]\n","import {type LayoutProps, layoutProps} from '../../props/layout'\nimport {CONTAINER_SIZE, type ContainerSize} from '../../types/Container'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface ContainerProps<T extends React.ElementType> extends LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **max-width** property */\n contentSize?: Responsive<ContainerSize>\n}\n\nexport const containerProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n contentSize: {\n type: 'union',\n className: 'container',\n values: CONTAINER_SIZE,\n },\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type ContainerProps, containerProps} from './container.props'\n\n/** @public */\nexport function Container<T extends React.ElementType = 'div'>({\n marginX = 'auto',\n ...props\n}: ContainerProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof ContainerProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({marginX, ...props}, containerProps)\n const Component = as || 'div'\n\n return (\n <Component\n className={classNames('sui-Container', className)}\n style={style}\n data-ui=\"Container\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type PropDef} from '../../types/PropDef'\n\n/** @public */\nexport interface DividerProps extends React.ComponentProps<'hr'>, MarginProps {}\n\nexport const dividerProps: Record<string, PropDef> = {\n ...marginProps,\n}\n","import classNames from 'classnames'\n\nimport {getProps} from '../../utils/getProps'\nimport {type DividerProps, dividerProps} from './divider.props'\n\n/** @public */\nexport function Divider(props: DividerProps) {\n const {className, style, ...rest} = getProps(props, dividerProps)\n\n return (\n <hr\n className={classNames('sui-Divider sui-border-none sui-border-top', className)}\n style={style}\n data-ui=\"Divider\"\n {...rest}\n />\n )\n}\n","export const ALIGN_ITEMS = ['baseline', 'center', 'flex-end', 'flex-start', 'stretch'] as const\nexport type AlignItems = (typeof ALIGN_ITEMS)[number]\n\nexport const JUSTIFY_CONTENT = [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly',\n] as const\nexport type JustifyContent = (typeof JUSTIFY_CONTENT)[number]\n\nexport const FLEX_DIRECTION = ['row', 'row-reverse', 'column', 'column-reverse'] as const\nexport type FlexDirection = (typeof FLEX_DIRECTION)[number]\n\nexport const FLEX_WRAP = ['wrap', 'wrap-reverse', 'nowrap'] as const\nexport type FlexWrap = (typeof FLEX_WRAP)[number]\n","import {\n ALIGN_ITEMS,\n type AlignItems,\n FLEX_DIRECTION,\n FLEX_WRAP,\n type FlexDirection,\n type FlexWrap,\n JUSTIFY_CONTENT,\n type JustifyContent,\n} from '../types/Flex'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type FlexParentProps = {\n /** CSS **align-items** property */\n alignItems?: Responsive<AlignItems>\n /** CSS **justify-content** property */\n justifyContent?: Responsive<JustifyContent>\n /** CSS **flex-direction** property */\n flexDirection?: Responsive<FlexDirection>\n /** CSS **flex-wrap** property */\n flexWrap?: Responsive<FlexWrap>\n}\n\nexport const flexParentProps: Record<string, PropDef> = {\n alignItems: {\n type: 'union',\n className: 'align-items',\n values: ALIGN_ITEMS,\n },\n justifyContent: {\n type: 'union',\n className: 'justify-content',\n values: JUSTIFY_CONTENT,\n },\n flexDirection: {\n type: 'union',\n className: 'flex-direction',\n values: FLEX_DIRECTION,\n },\n flexWrap: {\n type: 'union',\n className: 'flex-wrap',\n values: FLEX_WRAP,\n },\n}\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {SPACE, type Space} from '../types/Space'\n\nexport type GapProps = {\n /** CSS **gap** property */\n gap?: Responsive<Space>\n /** CSS **row-gap** property */\n rowGap?: Responsive<Space>\n /** CSS **column-gap** property */\n columnGap?: Responsive<Space>\n}\n\nexport const gapProps: Record<string, PropDef> = {\n gap: {\n type: 'union',\n className: 'gap',\n values: SPACE,\n },\n rowGap: {\n type: 'union',\n className: 'row-gap',\n values: SPACE,\n },\n columnGap: {\n type: 'union',\n className: 'column-gap',\n values: SPACE,\n },\n}\n","import {type FlexParentProps, flexParentProps} from '../../props/flexParent'\nimport {type GapProps, gapProps} from '../../props/gap'\nimport {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_FLEX, type DisplayFlex} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface FlexProps<T extends React.ElementType>\n extends FlexParentProps, GapProps, LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayFlex>\n}\n\nexport const flexProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_FLEX,\n },\n ...flexParentProps,\n ...gapProps,\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type FlexProps, flexProps} from './flex.props'\n\n/** @public */\nexport function Flex<T extends React.ElementType = 'div'>({\n display = 'flex',\n ...props\n}: FlexProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof FlexProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({display, ...props}, flexProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Flex', className)} style={style} data-ui=\"Flex\" {...rest}>\n {children}\n </Component>\n )\n}\n","export const GRID_AUTO_FLOW = ['row', 'column', 'row dense', 'column dense', 'dense'] as const\nexport type GridAutoFlow = (typeof GRID_AUTO_FLOW)[number]\n","import {GRID_AUTO_FLOW, type GridAutoFlow} from '../types/Grid'\nimport {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\n\nexport type GridParentProps = {\n /** CSS **grid-auto-flow** property */\n gridAutoFlow?: Responsive<GridAutoFlow>\n /** CSS **grid-auto-columns** property */\n gridAutoColumns?: Responsive<string>\n /** CSS **grid-auto-row** property */\n gridAutoRows?: Responsive<string>\n /** CSS **grid-template-columns** property */\n gridTemplateColumns?: Responsive<string>\n /** CSS **grid-template-rows** property */\n gridTemplateRows?: Responsive<string>\n}\n\nexport const gridParentProps: Record<string, PropDef> = {\n gridAutoFlow: {\n type: 'union',\n className: 'grid-auto-flow',\n values: GRID_AUTO_FLOW,\n },\n gridAutoColumns: {\n type: 'string',\n className: 'grid-auto-columns',\n variable: '--grid-auto-columns',\n },\n gridAutoRows: {\n type: 'string',\n className: 'grid-auto-rows',\n variable: '--grid-auto-rows',\n },\n gridTemplateColumns: {\n type: 'string',\n className: 'grid-template-columns',\n variable: '--grid-template-columns',\n },\n gridTemplateRows: {\n type: 'string',\n className: 'grid-template-rows',\n variable: '--grid-template-rows',\n },\n}\n","import {type GapProps, gapProps} from '../../props/gap'\nimport {type GridParentProps, gridParentProps} from '../../props/gridParent'\nimport {type LayoutProps, layoutProps} from '../../props/layout'\nimport {DISPLAY_GRID, type DisplayGrid} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface GridProps<T extends React.ElementType>\n extends GridParentProps, GapProps, LayoutProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayGrid>\n}\n\nexport const gridProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_GRID,\n },\n ...gridParentProps,\n ...gapProps,\n ...layoutProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type GridProps, gridProps} from './grid.props'\n\n/** @public */\nexport function Grid<T extends React.ElementType = 'div'>({\n display = 'grid',\n ...props\n}: GridProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof GridProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({display, ...props}, gridProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Grid', className)} style={style} data-ui=\"Grid\" {...rest}>\n {children}\n </Component>\n )\n}\n","export const HEADING_TAG = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const\nexport type HeadingTag = (typeof HEADING_TAG)[number]\n\nexport const HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] as const\nexport type HeadingSize = (typeof HEADING_SIZE)[number]\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {HEADING_SIZE, HEADING_TAG, type HeadingSize, type HeadingTag} from '../../types/Heading'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface HeadingProps extends TypographyProps {\n /** Element to render */\n as?: HeadingTag\n /** CSS **font-size** property */\n size?: Responsive<HeadingSize>\n}\n\nexport const headingProps: Record<string, PropDef> = {\n as: {\n type: 'union',\n values: HEADING_TAG,\n },\n size: {\n type: 'union',\n className: 'text-heading',\n values: HEADING_SIZE,\n },\n ...typographyProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type HeadingProps, headingProps} from './heading.props'\n\n/** @public */\nexport function Heading<T extends React.ElementType = 'h2'>({\n size = 2,\n weight = 'bold',\n ...props\n}: HeadingProps & Omit<React.ComponentPropsWithRef<T>, keyof HeadingProps>) {\n const {as, children, className, style, ...rest} = getProps({size, weight, ...props}, headingProps)\n const Component = as || 'h2'\n\n if (props.lineClamp && props.trim) {\n return (\n <Component\n className={classNames('sui-Heading', className?.replace('sui-line-clamp', ''))}\n style={style}\n data-ui=\"Heading\"\n {...rest}\n >\n <span className=\"sui-line-clamp\">{children}</span>\n </Component>\n )\n }\n\n return (\n <Component\n className={classNames('sui-Heading', className)}\n style={style}\n data-ui=\"Heading\"\n {...rest}\n >\n {children}\n </Component>\n )\n}\n","export const ICON_SIZE = [0, 1, 2, 3, 4] as const\nexport type IconSize = (typeof ICON_SIZE)[number]\n","import React from 'react'\n\nimport {type MarginProps, marginProps} from '../../props/margin'\nimport {type ToneProps, toneProps} from '../../props/tone'\nimport {type TypographyProps, typographyProps} from '../../props/typography'\nimport {ICON_SIZE, type IconSize} from '../../types/Icon'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\n\n/** @public */\nexport interface IconProps extends React.ComponentProps<'svg'>, MarginProps, ToneProps {\n /** Icon to render */\n icon: React.ComponentType<React.SVGProps<SVGSVGElement>>\n /** CSS **font-size** property */\n size?: Responsive<IconSize>\n /** CSS **color** property */\n muted?: TypographyProps['muted']\n}\n\nexport const iconProps: Record<string, PropDef> = {\n size: {\n type: 'union',\n className: 'icon-body',\n values: ICON_SIZE,\n },\n muted: typographyProps['muted'] as PropDef,\n ...toneProps,\n ...marginProps,\n}\n","import classNames from 'classnames'\n\nimport {getProps} from '../../utils/getProps'\nimport {type IconProps, iconProps} from './icon.props'\n\n/** @public */\nexport function Icon({icon: Component, size = 2, ...props}: IconProps) {\n const {className, style, ...rest} = getProps({size, ...props}, iconProps)\n\n return (\n <Component\n className={classNames('sui-Icon', className)}\n data-ui=\"Icon\"\n style={style}\n {...rest}\n />\n )\n}\n","export const TEXT_SIZE = [0, 1, 2, 3, 4] as const\nexport type TextSize = (typeof TEXT_SIZE)[number]\n","import {type TypographyProps, typographyProps} from '../../props/typography'\nimport {type PropDef} from '../../types/PropDef'\nimport type {Responsive} from '../../types/Responsive'\nimport {TEXT_SIZE, type TextSize} from '../../types/Text'\n\n/** @public */\nexport interface TextProps<T extends React.ElementType> extends TypographyProps {\n /** Element to render */\n as?: T\n /** CSS **font-size** property */\n size?: Responsive<TextSize>\n}\n\nexport const textProps: Record<string, PropDef> = {\n as: {\n type: 'string',\n },\n size: {\n type: 'union',\n className: 'text-body',\n values: TEXT_SIZE,\n },\n ...typographyProps,\n}\n","import classNames from 'classnames'\nimport React from 'react'\n\nimport {getProps} from '../../utils/getProps'\nimport {type TextProps, textProps} from './text.props'\n\n/** @public */\nexport function Text<T extends React.ElementType = 'span'>({\n size = 2,\n ...props\n}: TextProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof TextProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({size, ...props}, textProps)\n const Component = as || 'span'\n\n if (props.lineClamp && props.trim) {\n return (\n <Component\n className={classNames('sui-Text', className?.replace('sui-line-clamp', ''))}\n style={style}\n data-ui=\"Text\"\n {...rest}\n >\n <span className=\"sui-line-clamp\">{children}</span>\n </Component>\n )\n }\n\n return (\n <Component className={classNames('sui-Text', className)} style={style} data-ui=\"Text\" {...rest}>\n {children}\n </Component>\n )\n}\n"],"names":[],"mappings":"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"}