@sanity-labs/ui-poc 0.0.1-alpha.2 → 0.0.1-alpha.3

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.
@@ -0,0 +1,4 @@
1
+ .sui-Card {
2
+ /* Placeholder for now */
3
+ color: currentColor;
4
+ }
package/dist/index.d.ts CHANGED
@@ -34,6 +34,26 @@ export declare interface BoxProps<T extends React_2.ElementType> extends LayoutP
34
34
  display?: Responsive<DisplayBlock>
35
35
  }
36
36
 
37
+ /** @public */
38
+ export declare function Card<T extends React_2.ElementType = 'div'>({
39
+ density,
40
+ ...props
41
+ }: CardProps<T> & Omit<React_2.ComponentPropsWithRef<T>, keyof CardProps<T>>): JSX.Element
42
+
43
+ /** @public */
44
+ declare interface CardProps<T extends React.ElementType> extends MarginProps {
45
+ /** Element to render */
46
+ as?: T
47
+ /** CSS **display** property */
48
+ display?: Responsive<DisplayBlock>
49
+ /** Composite prop for setting padding and border radius */
50
+ density?: Responsive<Density>
51
+ }
52
+
53
+ declare const DENSITY: readonly ['compact', 'regular', 'loose']
54
+
55
+ declare type Density = (typeof DENSITY)[number]
56
+
37
57
  declare const DISPLAY_BLOCK: readonly ['block', 'inline-block', 'none']
38
58
 
39
59
  declare const DISPLAY_FLEX: readonly ['flex', 'inline-flex', 'none']
@@ -92,7 +112,7 @@ export declare interface FlexProps<T extends React_2.ElementType>
92
112
 
93
113
  declare type FlexWrap = (typeof FLEX_WRAP)[number]
94
114
 
95
- declare const FONT_WEIGHT: string[]
115
+ declare const FONT_WEIGHT: readonly ['regular', 'medium', 'semibold', 'bold']
96
116
 
97
117
  declare type FontWeight = (typeof FONT_WEIGHT)[number]
98
118
 
@@ -152,6 +172,29 @@ export declare interface GridProps<T extends React_2.ElementType>
152
172
  display?: Responsive<DisplayGrid>
153
173
  }
154
174
 
175
+ /** @public */
176
+ export declare function Heading<T extends React_2.ElementType = 'h1'>({
177
+ size,
178
+ weight,
179
+ ...props
180
+ }: HeadingProps & Omit<React_2.ComponentPropsWithRef<T>, keyof HeadingProps>): JSX.Element
181
+
182
+ declare const HEADING_SIZE: readonly [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
183
+
184
+ declare const HEADING_TAG: readonly ['h1', 'h2', 'h3', 'h4', 'h5', 'h6']
185
+
186
+ /** @public */
187
+ declare interface HeadingProps extends TypographyProps {
188
+ /** Element to render */
189
+ as?: HeadingTag
190
+ /** CSS **font-size** property */
191
+ size?: HeadingSize
192
+ }
193
+
194
+ declare type HeadingSize = (typeof HEADING_SIZE)[number]
195
+
196
+ declare type HeadingTag = (typeof HEADING_TAG)[number]
197
+
155
198
  declare type HeightProps = {
156
199
  /** CSS **height** property */
157
200
  height?: Responsive<string>
@@ -202,7 +245,7 @@ declare type MarginProps = {
202
245
  marginLeft?: Responsive<SpaceAuto>
203
246
  }
204
247
 
205
- declare const OVERFLOW: string[]
248
+ declare const OVERFLOW: readonly ['visible', 'hidden', 'auto', 'scroll', 'clip']
206
249
 
207
250
  declare type Overflow = (typeof OVERFLOW)[number]
208
251
 
@@ -232,7 +275,7 @@ declare interface PaddingProps {
232
275
  paddingLeft?: Responsive<Space>
233
276
  }
234
277
 
235
- declare const POSITION: string[]
278
+ declare const POSITION: readonly ['absolute', 'fixed', 'relative', 'static', 'sticky']
236
279
 
237
280
  declare type Position = (typeof POSITION)[number]
238
281
 
@@ -253,7 +296,7 @@ declare type PositionProps = {
253
296
  zIndex?: Responsive<number>
254
297
  }
255
298
 
256
- declare const RADIUS: (string | number)[]
299
+ declare const RADIUS: readonly [0, 1, 2, 3, 4, 5, 6, 'full']
257
300
 
258
301
  declare type Radius = (typeof RADIUS)[number]
259
302
 
@@ -297,9 +340,9 @@ declare function Text_2<T extends React_2.ElementType = 'p'>({
297
340
  }: TextProps<T> & Omit<React_2.ComponentPropsWithRef<T>, keyof TextProps<T>>): JSX.Element
298
341
  export {Text_2 as Text}
299
342
 
300
- declare const TEXT_ALIGN: string[]
343
+ declare const TEXT_ALIGN: readonly ['left', 'center', 'right', 'justify']
301
344
 
302
- declare const TEXT_SIZE: number[]
345
+ declare const TEXT_SIZE: readonly [0, 1, 2, 3, 4]
303
346
 
304
347
  declare type TextAlign = (typeof TEXT_ALIGN)[number]
305
348
 
@@ -313,7 +356,15 @@ export declare interface TextProps<T extends React_2.ElementType> extends Typogr
313
356
 
314
357
  declare type TextSize = (typeof TEXT_SIZE)[number]
315
358
 
316
- declare const TONE: string[]
359
+ declare const TONE: readonly [
360
+ 'default',
361
+ 'neutral',
362
+ 'primary',
363
+ 'suggest',
364
+ 'positive',
365
+ 'caution',
366
+ 'critical',
367
+ ]
317
368
 
318
369
  declare type Tone = (typeof TONE)[number]
319
370
 
package/dist/index.js CHANGED
@@ -218,7 +218,15 @@ const RADIUS = [0, 1, 2, 3, 4, 5, 6, "full"], borderProps = {
218
218
  className: "z-index",
219
219
  variable: "--z-index"
220
220
  }
221
- }, TONE = ["default", "neutral", "primary", "suggest", "positive", "caution", "critical"], toneProps = {
221
+ }, TONE = [
222
+ "default",
223
+ "neutral",
224
+ "primary",
225
+ "suggest",
226
+ "positive",
227
+ "caution",
228
+ "critical"
229
+ ], toneProps = {
222
230
  tone: {
223
231
  type: "union",
224
232
  className: "tone",
@@ -256,7 +264,7 @@ function getProps(componentProps, propDefs) {
256
264
  let className = componentProps?.className || "", style = componentProps?.style || {};
257
265
  const restProps = {};
258
266
  for (const key in componentProps) {
259
- if (!propDefs?.[key] || !propDefs?.[key].className) {
267
+ if (!propDefs?.[key] || !("className" in propDefs[key]) && !("composition" in propDefs[key])) {
260
268
  restProps[key] = componentProps[key];
261
269
  continue;
262
270
  }
@@ -269,7 +277,7 @@ function getProps(componentProps, propDefs) {
269
277
  return { ...restProps, className, style };
270
278
  }
271
279
  function getClassName(prop, propDef, bp) {
272
- return propDef.type === "union" && propDef.values?.includes(prop) ? `${PREFIX}-${propDef.className}${typeof prop == "string" ? `-${prop}` : prop}${bp ? `-bp-${bp}` : ""}` : propDef.type === "string" || propDef.type === "number" ? `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ""}` : propDef.type === "boolean" ? `${PREFIX}-${prop ? propDef.className : propDef.inverse}${bp ? `-bp-${bp}` : ""}` : "";
280
+ return propDef.type === "composite" && propDef.composition[prop] ? bp ? propDef.composition[prop].split(" ").map((className) => `${className}-bp-${bp}`).join(" ") : propDef.composition[prop] : propDef.type === "union" && propDef.values?.includes(prop) ? `${PREFIX}-${propDef.className}${typeof prop == "string" ? `-${prop}` : prop}${bp ? `-bp-${bp}` : ""}` : propDef.type === "string" || propDef.type === "number" ? `${PREFIX}-${propDef.className}${bp ? `-bp-${bp}` : ""}` : propDef.type === "boolean" ? `${PREFIX}-${prop ? propDef.className : propDef.inverse}${bp ? `-bp-${bp}` : ""}` : "";
273
281
  }
274
282
  function getStyle(prop, propDef, bp) {
275
283
  return propDef.type === "string" || propDef.type === "number" ? {
@@ -294,6 +302,32 @@ function Box({
294
302
  const { as, children, className, style, ...rest } = getProps({ display, ...props }, boxProps);
295
303
  return /* @__PURE__ */ jsx(as || "div", { className: classNames("sui-Box", className), style, "data-ui": "Box", ...rest, children });
296
304
  }
305
+ const cardProps = {
306
+ as: {
307
+ type: "string"
308
+ },
309
+ display: {
310
+ type: "union",
311
+ className: "display",
312
+ values: DISPLAY_BLOCK
313
+ },
314
+ density: {
315
+ type: "composite",
316
+ composition: {
317
+ compact: "sui-p3 sui-radius2",
318
+ regular: "sui-p4 sui-radius3",
319
+ loose: "sui-p5 sui-radius4"
320
+ }
321
+ },
322
+ ...marginProps
323
+ };
324
+ function Card({
325
+ density = "regular",
326
+ ...props
327
+ }) {
328
+ const { as, children, className, style, ...rest } = getProps({ density, ...props }, cardProps);
329
+ return /* @__PURE__ */ jsx(as || "div", { className: classNames("sui-Card", className), style, "data-ui": "Card", ...rest, children });
330
+ }
297
331
  function Divider() {
298
332
  return /* @__PURE__ */ jsx(
299
333
  "hr",
@@ -440,7 +474,45 @@ const FONT_WEIGHT = ["regular", "medium", "semibold", "bold"], TEXT_ALIGN = ["le
440
474
  values: FONT_WEIGHT
441
475
  },
442
476
  ...marginProps
443
- }, TEXT_SIZE = [0, 1, 2, 3, 4], textProps = {
477
+ }, HEADING_TAG = ["h1", "h2", "h3", "h4", "h5", "h6"], HEADING_SIZE = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], headingProps = {
478
+ as: {
479
+ type: "union",
480
+ values: HEADING_TAG
481
+ },
482
+ size: {
483
+ type: "union",
484
+ className: "text-heading",
485
+ values: HEADING_SIZE
486
+ },
487
+ ...typographyProps
488
+ };
489
+ function Heading({
490
+ size = 2,
491
+ weight = "bold",
492
+ ...props
493
+ }) {
494
+ const { as, children, className, style, ...rest } = getProps({ size, weight, ...props }, headingProps), Component = as || "h1";
495
+ return props.lineClamp && props.trim ? /* @__PURE__ */ jsx(
496
+ Component,
497
+ {
498
+ className: classNames("sui-Heading", className?.replace("sui-line-clamp", "")),
499
+ style,
500
+ "data-ui": "Heading",
501
+ ...rest,
502
+ children: /* @__PURE__ */ jsx("span", { className: "sui-line-clamp", children })
503
+ }
504
+ ) : /* @__PURE__ */ jsx(
505
+ Component,
506
+ {
507
+ className: classNames("sui-Heading", className),
508
+ style,
509
+ "data-ui": "Heading",
510
+ ...rest,
511
+ children
512
+ }
513
+ );
514
+ }
515
+ const TEXT_SIZE = [0, 1, 2, 3, 4], textProps = {
444
516
  as: {
445
517
  type: "string"
446
518
  },
@@ -469,9 +541,11 @@ function Text({
469
541
  }
470
542
  export {
471
543
  Box,
544
+ Card,
472
545
  Divider,
473
546
  Flex,
474
547
  Grid,
548
+ Heading,
475
549
  Text
476
550
  };
477
551
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../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/Tone.ts","../src/props/tone.ts","../src/props/width.ts","../src/props/layout.ts","../src/types/Display.ts","../src/utils/getProps.ts","../src/components/box/box.props.ts","../src/components/box/Box.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/Text.ts","../src/components/text/text.props.ts","../src/components/text/Text.tsx"],"sourcesContent":["export const RADIUS = [0, 1, 2, 3, 4, 5, 6, 'full']\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']\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']\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 /** CSS **z-index** property */\n zIndex?: Responsive<number>\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 zIndex: {\n type: 'number',\n className: 'z-index',\n variable: '--z-index',\n },\n}\n","export const TONE = ['default', 'neutral', 'primary', 'suggest', 'positive', 'caution', 'critical']\nexport type Tone = (typeof TONE)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {TONE, type Tone} from '../types/Tone'\n\nexport type ToneProps = {\n /** CSS **background-color** property */\n tone?: Responsive<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 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 ToneProps, toneProps} from './tone'\nimport {type WidthProps, widthProps} from './width'\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\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}\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 classNames from 'classnames'\n\nimport {type PropDef} from '../types/PropDef'\n\nconst PREFIX = 'sui'\nconst BREAKPOINTS_LENGTH = 7\n\ninterface ComponentProps {\n className?: string\n style?: React.CSSProperties\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n [key: string]: any\n}\n\nexport function getProps<P extends ComponentProps, T extends Record<string, PropDef>>(\n componentProps?: P,\n propDefs?: T,\n): ComponentProps {\n let className = componentProps?.className || ''\n let style = componentProps?.style || {}\n const restProps: ComponentProps = {}\n\n for (const key in componentProps) {\n if (!propDefs?.[key] || !propDefs?.[key].className) {\n restProps[key] = componentProps[key]\n continue\n }\n\n if (Array.isArray(componentProps[key])) {\n for (\n let i = 0, len = Math.min(componentProps[key].length, BREAKPOINTS_LENGTH);\n i < len;\n i++\n ) {\n className = classNames(className, getClassName(componentProps[key][i], propDefs[key], i))\n style = {...style, ...getStyle(componentProps[key][i], propDefs[key], i)}\n }\n } else {\n className = classNames(className, getClassName(componentProps[key], propDefs[key]))\n style = {...style, ...getStyle(componentProps[key], propDefs[key])}\n }\n }\n\n return {...restProps, className, style}\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getClassName(prop: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'union' && propDef.values?.includes(prop)) {\n /* Note: This may need updating depending on the final CSS classname formatting */\n return `${PREFIX}-${propDef.className}${typeof prop === 'string' ? `-${prop}` : prop}${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}-${prop ? 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(prop: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'string' || propDef.type === 'number') {\n return {\n [`${propDef.variable}${bp ? `-bp-${bp}` : ''}`]: prop,\n }\n }\n\n return {}\n}\n","import {layoutProps} from '../../props/layout'\nimport {DISPLAY_BLOCK} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\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 {type LayoutProps} from '../../props/layout'\nimport {type DisplayBlock} from '../../types/Display'\nimport {type Responsive} from '../../types/Responsive'\nimport {getProps} from '../../utils/getProps'\nimport {boxProps} from './box.props'\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\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","import React from 'react'\n\n/** @public */\nexport function Divider() {\n return (\n <hr\n className=\"sui-Divider sui-border-bottom-none sui-border-left-none sui-border-right-none sui-border-top\"\n data-ui=\"Divider\"\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 {flexParentProps} from '../../props/flexParent'\nimport {gapProps} from '../../props/gap'\nimport {layoutProps} from '../../props/layout'\nimport {DISPLAY_FLEX} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\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 type {FlexParentProps} from '../../props/flexParent'\nimport type {GapProps} from '../../props/gap'\nimport {type LayoutProps} from '../../props/layout'\nimport {type DisplayFlex} from '../../types/Display'\nimport {type Responsive} from '../../types/Responsive'\nimport {getProps} from '../../utils/getProps'\nimport {flexProps} from './flex.props'\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\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 {gapProps} from '../../props/gap'\nimport {gridParentProps} from '../../props/gridParent'\nimport {layoutProps} from '../../props/layout'\nimport {DISPLAY_GRID} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\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 {type GapProps} from '../../props/gap'\nimport {type GridParentProps} from '../../props/gridParent'\nimport {type LayoutProps} from '../../props/layout'\nimport {type DisplayGrid} from '../../types/Display'\nimport {type Responsive} from '../../types/Responsive'\nimport {getProps} from '../../utils/getProps'\nimport {gridProps} from './grid.props'\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\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']\nexport type FontWeight = (typeof FONT_WEIGHT)[number]\n","export const TEXT_ALIGN = ['left', 'center', 'right', 'justify']\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'\n\nexport interface TypographyProps extends MarginProps {\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}\n","export const TEXT_SIZE = [0, 1, 2, 3, 4]\nexport type TextSize = (typeof TEXT_SIZE)[number]\n","import {typographyProps} from '../../props/typography'\nimport {type PropDef} from '../../types/PropDef'\nimport {TEXT_SIZE} from '../../types/Text'\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 type {TypographyProps} from '../../props/typography'\nimport type {TextSize} from '../../types/Text'\nimport {getProps} from '../../utils/getProps'\nimport {textProps} from './text.props'\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\n/** @public */\nexport function Text<T extends React.ElementType = 'p'>({\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 || 'p'\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/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/Tone.ts","../src/props/tone.ts","../src/props/width.ts","../src/props/layout.ts","../src/types/Display.ts","../src/utils/getProps.ts","../src/components/box/box.props.ts","../src/components/box/Box.tsx","../src/components/card/card.props.ts","../src/components/card/Card.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/types/Text.ts","../src/components/text/text.props.ts","../src/components/text/Text.tsx"],"sourcesContent":["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 /** CSS **z-index** property */\n zIndex?: Responsive<number>\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 zIndex: {\n type: 'number',\n className: 'z-index',\n variable: '--z-index',\n },\n}\n","export const TONE = [\n 'default',\n 'neutral',\n 'primary',\n 'suggest',\n 'positive',\n 'caution',\n 'critical',\n] as const\nexport type Tone = (typeof TONE)[number]\n","import {type PropDef} from '../types/PropDef'\nimport {type Responsive} from '../types/Responsive'\nimport {TONE, type Tone} from '../types/Tone'\n\nexport type ToneProps = {\n /** CSS **background-color** property */\n tone?: Responsive<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 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 ToneProps, toneProps} from './tone'\nimport {type WidthProps, widthProps} from './width'\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\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}\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 classNames from 'classnames'\n\nimport {type PropDef} from '../types/PropDef'\n\nconst PREFIX = 'sui'\nconst BREAKPOINTS_LENGTH = 7\n\ninterface ComponentProps {\n className?: string\n style?: React.CSSProperties\n /* eslint-disable-next-line @typescript-eslint/no-explicit-any */\n [key: string]: any\n}\n\nexport function getProps<P extends ComponentProps, T extends Record<string, PropDef>>(\n componentProps?: P,\n propDefs?: T,\n): ComponentProps {\n let className = componentProps?.className || ''\n let style = componentProps?.style || {}\n const restProps: ComponentProps = {}\n\n for (const key in componentProps) {\n // Pass over props that don't effect CSS output, including them in `restProps` instead.\n // @TODO Is there a better way to write this `if`? Perhaps explicitly enumerating the props\n // we know we don't need to operate on here (e.g. the `as` prop)?\n if (\n !propDefs?.[key] ||\n (!('className' in propDefs[key]) && !('composition' in propDefs[key]))\n ) {\n restProps[key] = componentProps[key]\n continue\n }\n\n if (Array.isArray(componentProps[key])) {\n for (\n let i = 0, len = Math.min(componentProps[key].length, BREAKPOINTS_LENGTH);\n i < len;\n i++\n ) {\n className = classNames(className, getClassName(componentProps[key][i], propDefs[key], i))\n style = {...style, ...getStyle(componentProps[key][i], propDefs[key], i)}\n }\n } else {\n className = classNames(className, getClassName(componentProps[key], propDefs[key]))\n style = {...style, ...getStyle(componentProps[key], propDefs[key])}\n }\n }\n\n return {...restProps, className, style}\n}\n\n/* eslint-disable-next-line @typescript-eslint/no-explicit-any */\nfunction getClassName(prop: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'composite' && propDef.composition[prop]) {\n const classes = bp\n ? propDef.composition[prop]\n .split(' ')\n .map((className: string) => `${className}-bp-${bp}`)\n .join(' ')\n : propDef.composition[prop]\n // @TODO prefix has been written included as part of composite class names; does it need to be dynamic?\n return classes\n }\n\n if (propDef.type === 'union' && propDef.values?.includes(prop)) {\n /* Note: This may need updating depending on the final CSS classname formatting */\n return `${PREFIX}-${propDef.className}${typeof prop === 'string' ? `-${prop}` : prop}${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}-${prop ? 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(prop: any, propDef: PropDef, bp?: number) {\n if (propDef.type === 'string' || propDef.type === 'number') {\n return {\n [`${propDef.variable}${bp ? `-bp-${bp}` : ''}`]: prop,\n }\n }\n\n return {}\n}\n","import {layoutProps} from '../../props/layout'\nimport {DISPLAY_BLOCK} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\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 {type LayoutProps} from '../../props/layout'\nimport {type DisplayBlock} from '../../types/Display'\nimport {type Responsive} from '../../types/Responsive'\nimport {getProps} from '../../utils/getProps'\nimport {boxProps} from './box.props'\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\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","import {type MarginProps, marginProps} from '../../props/margin'\nimport {type Density} from '../../types/Density'\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 CardProps<T extends React.ElementType> extends MarginProps {\n /** Element to render */\n as?: T\n /** CSS **display** property */\n display?: Responsive<DisplayBlock>\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 display: {\n type: 'union',\n className: 'display',\n values: DISPLAY_BLOCK,\n },\n density: {\n type: 'composite',\n composition: {\n compact: 'sui-p3 sui-radius2',\n regular: 'sui-p4 sui-radius3',\n loose: 'sui-p5 sui-radius4',\n } as Record<Density, string>,\n },\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 ...props\n}: CardProps<T> & Omit<React.ComponentPropsWithRef<T>, keyof CardProps<T>>) {\n const {as, children, className, style, ...rest} = getProps({density, ...props}, cardProps)\n const Component = as || 'div'\n\n return (\n <Component className={classNames('sui-Card', className)} style={style} data-ui=\"Card\" {...rest}>\n {children}\n </Component>\n )\n}\n","import React from 'react'\n\n/** @public */\nexport function Divider() {\n return (\n <hr\n className=\"sui-Divider sui-border-bottom-none sui-border-left-none sui-border-right-none sui-border-top\"\n data-ui=\"Divider\"\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 {flexParentProps} from '../../props/flexParent'\nimport {gapProps} from '../../props/gap'\nimport {layoutProps} from '../../props/layout'\nimport {DISPLAY_FLEX} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\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 type {FlexParentProps} from '../../props/flexParent'\nimport type {GapProps} from '../../props/gap'\nimport {type LayoutProps} from '../../props/layout'\nimport {type DisplayFlex} from '../../types/Display'\nimport {type Responsive} from '../../types/Responsive'\nimport {getProps} from '../../utils/getProps'\nimport {flexProps} from './flex.props'\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\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 {gapProps} from '../../props/gap'\nimport {gridParentProps} from '../../props/gridParent'\nimport {layoutProps} from '../../props/layout'\nimport {DISPLAY_GRID} from '../../types/Display'\nimport {type PropDef} from '../../types/PropDef'\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 {type GapProps} from '../../props/gap'\nimport {type GridParentProps} from '../../props/gridParent'\nimport {type LayoutProps} from '../../props/layout'\nimport {type DisplayGrid} from '../../types/Display'\nimport {type Responsive} from '../../types/Responsive'\nimport {getProps} from '../../utils/getProps'\nimport {gridProps} from './grid.props'\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\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'\n\nexport interface TypographyProps extends MarginProps {\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}\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 = 'h1'>({\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 || 'h1'\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 TEXT_SIZE = [0, 1, 2, 3, 4] as const\nexport type TextSize = (typeof TEXT_SIZE)[number]\n","import {typographyProps} from '../../props/typography'\nimport {type PropDef} from '../../types/PropDef'\nimport {TEXT_SIZE} from '../../types/Text'\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 type {TypographyProps} from '../../props/typography'\nimport type {TextSize} from '../../types/Text'\nimport {getProps} from '../../utils/getProps'\nimport {textProps} from './text.props'\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\n/** @public */\nexport function Text<T extends React.ElementType = 'p'>({\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 || 'p'\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":";;AAAO,MAAM,SAAS,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,MAAM,GCmBrC,cAAuC;AAAA,EAClD,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,aAAa;AAAA,IACX,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GCtCa,iBAA0C;AAAA,EACrD,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd,GCVa,iBAA0C;AAAA,EACrD,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,eAAe;AAAA,IACb,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd,GCrCa,cAAuC;AAAA,EAClD,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd,GC5Ba,QAAQ,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAGrC,aAAa,CAAC,GAAG,OAAO,MAAM,GCkB9B,cAAuC;AAAA,EAClD,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,aAAa;AAAA,IACX,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GCzDa,WAAW,CAAC,WAAW,UAAU,QAAQ,UAAU,MAAM,GCazD,gBAAyC;AAAA,EACpD,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GCRa,eAAwC;AAAA,EACnD,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,eAAe;AAAA,IACb,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,aAAa;AAAA,IACX,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GCzDa,WAAW,CAAC,YAAY,SAAS,YAAY,UAAU,QAAQ,GCsB/D,gBAAyC;AAAA,EACpD,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,KAAK;AAAA,IACH,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd,GC1Da,OAAO;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GCCa,YAAqC;AAAA,EAChD,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GCHa,aAAsC;AAAA,EACjD,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd,GCHa,cAAuC;AAAA,EAClD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL,GCpCa,gBAAgB,CAAC,SAAS,gBAAgB,MAAM,GAGhD,eAAe,CAAC,QAAQ,eAAe,MAAM,GAG7C,eAAe,CAAC,QAAQ,eAAe,MAAM,GCFpD,SAAS,OACT,qBAAqB;AASpB,SAAS,SACd,gBACA,UACgB;AAChB,MAAI,YAAY,gBAAgB,aAAa,IACzC,QAAQ,gBAAgB,SAAS,CAAA;AACrC,QAAM,YAA4B,CAAA;AAElC,aAAW,OAAO,gBAAgB;AAIhC,QACE,CAAC,WAAW,GAAG,KACd,EAAE,eAAe,SAAS,GAAG,MAAM,EAAE,iBAAiB,SAAS,GAAG,IACnE;AACA,gBAAU,GAAG,IAAI,eAAe,GAAG;AACnC;AAAA,IACF;AAEA,QAAI,MAAM,QAAQ,eAAe,GAAG,CAAC;AACnC,eACM,IAAI,GAAG,MAAM,KAAK,IAAI,eAAe,GAAG,EAAE,QAAQ,kBAAkB,GACxE,IAAI,KACJ;AAEA,oBAAY,WAAW,WAAW,aAAa,eAAe,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC,GACxF,QAAQ,EAAC,GAAG,OAAO,GAAG,SAAS,eAAe,GAAG,EAAE,CAAC,GAAG,SAAS,GAAG,GAAG,CAAC,EAAA;AAAA;AAGzE,kBAAY,WAAW,WAAW,aAAa,eAAe,GAAG,GAAG,SAAS,GAAG,CAAC,CAAC,GAClF,QAAQ,EAAC,GAAG,OAAO,GAAG,SAAS,eAAe,GAAG,GAAG,SAAS,GAAG,CAAC,EAAA;AAAA,EAErE;AAEA,SAAO,EAAC,GAAG,WAAW,WAAW,MAAA;AACnC;AAGA,SAAS,aAAa,MAAW,SAAkB,IAAa;AAC9D,SAAI,QAAQ,SAAS,eAAe,QAAQ,YAAY,IAAI,IAC1C,KACZ,QAAQ,YAAY,IAAI,EACrB,MAAM,GAAG,EACT,IAAI,CAAC,cAAsB,GAAG,SAAS,OAAO,EAAE,EAAE,EAClD,KAAK,GAAG,IACX,QAAQ,YAAY,IAAI,IAK1B,QAAQ,SAAS,WAAW,QAAQ,QAAQ,SAAS,IAAI,IAEpD,GAAG,MAAM,IAAI,QAAQ,SAAS,GAAG,OAAO,QAAS,WAAW,IAAI,IAAI,KAAK,IAAI,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,KAG1G,QAAQ,SAAS,YAAY,QAAQ,SAAS,WACzC,GAAG,MAAM,IAAI,QAAQ,SAAS,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,KAG3D,QAAQ,SAAS,YACZ,GAAG,MAAM,IAAI,OAAO,QAAQ,YAAY,QAAQ,OAAO,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,KAGjF;AACT;AAGA,SAAS,SAAS,MAAW,SAAkB,IAAa;AAC1D,SAAI,QAAQ,SAAS,YAAY,QAAQ,SAAS,WACzC;AAAA,IACL,CAAC,GAAG,QAAQ,QAAQ,GAAG,KAAK,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG;AAAA,EAAA,IAI9C,CAAA;AACT;ACtFO,MAAM,WAAoC;AAAA,EAC/C,IAAI;AAAA,IACF,MAAM;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AACL;ACIO,SAAS,IAAyC;AAAA,EACvD,UAAU;AAAA,EACV,GAAG;AACL,GAA0E;AACxE,QAAM,EAAC,IAAI,UAAU,WAAW,OAAO,GAAG,SAAQ,SAAS,EAAC,SAAS,GAAG,MAAA,GAAQ,QAAQ;AAGxF,SACE,oBAHgB,MAAM,OAGrB,EAAU,WAAW,WAAW,WAAW,SAAS,GAAG,OAAc,WAAQ,OAAO,GAAG,MACrF,SAAA,CACH;AAEJ;ACdO,MAAM,YAAqC;AAAA,EAChD,IAAI;AAAA,IACF,MAAM;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,SAAS;AAAA,IACP,MAAM;AAAA,IACN,aAAa;AAAA,MACX,SAAS;AAAA,MACT,SAAS;AAAA,MACT,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,GAAG;AACL;AC3BO,SAAS,KAA0C;AAAA,EACxD,UAAU;AAAA,EACV,GAAG;AACL,GAA4E;AAC1E,QAAM,EAAC,IAAI,UAAU,WAAW,OAAO,GAAG,SAAQ,SAAS,EAAC,SAAS,GAAG,MAAA,GAAQ,SAAS;AAGzF,SACE,oBAHgB,MAAM,OAGrB,EAAU,WAAW,WAAW,YAAY,SAAS,GAAG,OAAc,WAAQ,QAAQ,GAAG,MACvF,SAAA,CACH;AAEJ;AChBO,SAAS,UAAU;AACxB,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,WAAQ;AAAA,IAAA;AAAA,EAAA;AAGd;ACVO,MAAM,cAAc,CAAC,YAAY,UAAU,YAAY,cAAc,SAAS,GAGxE,kBAAkB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGa,iBAAiB,CAAC,OAAO,eAAe,UAAU,gBAAgB,GAGlE,YAAY,CAAC,QAAQ,gBAAgB,QAAQ,GCQ7C,kBAA2C;AAAA,EACtD,YAAY;AAAA,IACV,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,eAAe;AAAA,IACb,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,UAAU;AAAA,IACR,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GChCa,WAAoC;AAAA,EAC/C,KAAK;AAAA,IACH,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAEZ,GCvBa,YAAqC;AAAA,EAChD,IAAI;AAAA,IACF,MAAM;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;ACGO,SAAS,KAA0C;AAAA,EACxD,UAAU;AAAA,EACV,GAAG;AACL,GAA4E;AAC1E,QAAM,EAAC,IAAI,UAAU,WAAW,OAAO,GAAG,SAAQ,SAAS,EAAC,SAAS,GAAG,MAAA,GAAQ,SAAS;AAGzF,SACE,oBAHgB,MAAM,OAGrB,EAAU,WAAW,WAAW,YAAY,SAAS,GAAG,OAAc,WAAQ,QAAQ,GAAG,MACvF,SAAA,CACH;AAEJ;ACjCO,MAAM,iBAAiB,CAAC,OAAO,UAAU,aAAa,gBAAgB,OAAO,GCiBvE,kBAA2C;AAAA,EACtD,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,qBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAEd,GCrCa,YAAqC;AAAA,EAChD,IAAI;AAAA,IACF,MAAM;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACL;ACGO,SAAS,KAA0C;AAAA,EACxD,UAAU;AAAA,EACV,GAAG;AACL,GAA4E;AAC1E,QAAM,EAAC,IAAI,UAAU,WAAW,OAAO,GAAG,SAAQ,SAAS,EAAC,SAAS,GAAG,MAAA,GAAQ,SAAS;AAGzF,SACE,oBAHgB,MAAM,OAGrB,EAAU,WAAW,WAAW,YAAY,SAAS,GAAG,OAAc,WAAQ,QAAQ,GAAG,MACvF,SAAA,CACH;AAEJ;ACjCO,MAAM,cAAc,CAAC,WAAW,UAAU,YAAY,MAAM,GCAtD,aAAa,CAAC,QAAQ,UAAU,SAAS,SAAS,GCkBlD,kBAA2C;AAAA,EACtD,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,WAAW;AAAA,IACT,MAAM;AAAA,IACN,WAAW;AAAA,IACX,UAAU;AAAA,EAAA;AAAA,EAEZ,OAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,SAAS;AAAA,EAAA;AAAA,EAEX,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AACL,GC7Ca,cAAc,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,IAAI,GAGjD,eAAe,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GCS5C,eAAwC;AAAA,EACnD,IAAI;AAAA,IACF,MAAM;AAAA,IACN,QAAQ;AAAA,EAAA;AAAA,EAEV,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AACL;AChBO,SAAS,QAA4C;AAAA,EAC1D,OAAO;AAAA,EACP,SAAS;AAAA,EACT,GAAG;AACL,GAA4E;AAC1E,QAAM,EAAC,IAAI,UAAU,WAAW,OAAO,GAAG,SAAQ,SAAS,EAAC,MAAM,QAAQ,GAAG,MAAA,GAAQ,YAAY,GAC3F,YAAY,MAAM;AAExB,SAAI,MAAM,aAAa,MAAM,OAEzB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,WAAW,eAAe,WAAW,QAAQ,kBAAkB,EAAE,CAAC;AAAA,MAC7E;AAAA,MACA,WAAQ;AAAA,MACP,GAAG;AAAA,MAEJ,UAAA,oBAAC,QAAA,EAAK,WAAU,kBAAkB,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA,IAM/C;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,WAAW,eAAe,SAAS;AAAA,MAC9C;AAAA,MACA,WAAQ;AAAA,MACP,GAAG;AAAA,MAEH;AAAA,IAAA;AAAA,EAAA;AAGP;ACtCO,MAAM,YAAY,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GCI1B,YAAqC;AAAA,EAChD,IAAI;AAAA,IACF,MAAM;AAAA,EAAA;AAAA,EAER,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,GAAG;AACL;ACGO,SAAS,KAAwC;AAAA,EACtD,OAAO;AAAA,EACP,GAAG;AACL,GAA4E;AAC1E,QAAM,EAAC,IAAI,UAAU,WAAW,OAAO,GAAG,SAAQ,SAAS,EAAC,MAAM,GAAG,MAAA,GAAQ,SAAS,GAChF,YAAY,MAAM;AAExB,SAAI,MAAM,aAAa,MAAM,OAEzB;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,WAAW,YAAY,WAAW,QAAQ,kBAAkB,EAAE,CAAC;AAAA,MAC1E;AAAA,MACA,WAAQ;AAAA,MACP,GAAG;AAAA,MAEJ,UAAA,oBAAC,QAAA,EAAK,WAAU,kBAAkB,SAAA,CAAS;AAAA,IAAA;AAAA,EAAA,IAM/C,oBAAC,WAAA,EAAU,WAAW,WAAW,YAAY,SAAS,GAAG,OAAc,WAAQ,QAAQ,GAAG,MACvF,SAAA,CACH;AAEJ;"}