@loom-sdc/design-system 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +365 -73
  2. package/dist/Button.css-Cw8VRHOs.js +137 -0
  3. package/dist/Button.css-DO_uJ5ub.cjs +1 -0
  4. package/dist/core.cjs +1 -0
  5. package/dist/core.mjs +2 -0
  6. package/dist/elements.cjs +2 -0
  7. package/dist/elements.mjs +328 -0
  8. package/dist/index.cjs +1 -1
  9. package/dist/index.core.d.ts +3 -0
  10. package/dist/index.core.d.ts.map +1 -0
  11. package/dist/index.d.ts +1 -0
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.elements.d.ts +6 -0
  14. package/dist/index.elements.d.ts.map +1 -0
  15. package/dist/index.mjs +66 -255
  16. package/dist/style.css +1 -1
  17. package/dist/theme/adapters/theme.angular.d.ts +3 -0
  18. package/dist/theme/adapters/theme.angular.d.ts.map +1 -0
  19. package/dist/theme/index.d.ts +3 -0
  20. package/dist/theme/index.d.ts.map +1 -0
  21. package/dist/theme/theme.d.ts +4 -0
  22. package/dist/theme/theme.d.ts.map +1 -0
  23. package/dist/theme-BhDSE6xP.js +307 -0
  24. package/dist/theme-Cw8nZ0K9.cjs +1 -0
  25. package/dist/tokens/color/color.tokens.css.d.ts +7 -0
  26. package/dist/tokens/color/color.tokens.css.d.ts.map +1 -1
  27. package/dist/tokens/index.d.ts +6 -0
  28. package/dist/tokens/index.d.ts.map +1 -1
  29. package/dist/tokens/letterSpacing/index.d.ts +3 -0
  30. package/dist/tokens/letterSpacing/index.d.ts.map +1 -0
  31. package/dist/tokens/letterSpacing/letterSpacing.tokens.css.d.ts +9 -0
  32. package/dist/tokens/letterSpacing/letterSpacing.tokens.css.d.ts.map +1 -0
  33. package/dist/tokens/letterSpacing/letterSpacing.types.d.ts +3 -0
  34. package/dist/tokens/letterSpacing/letterSpacing.types.d.ts.map +1 -0
  35. package/dist/tokens/lineHeight/lineHeight.tokens.css.d.ts +2 -0
  36. package/dist/tokens/lineHeight/lineHeight.tokens.css.d.ts.map +1 -1
  37. package/dist/tokens/motion/index.d.ts +3 -0
  38. package/dist/tokens/motion/index.d.ts.map +1 -0
  39. package/dist/tokens/motion/motion.tokens.css.d.ts +12 -0
  40. package/dist/tokens/motion/motion.tokens.css.d.ts.map +1 -0
  41. package/dist/tokens/motion/motion.types.d.ts +3 -0
  42. package/dist/tokens/motion/motion.types.d.ts.map +1 -0
  43. package/dist/tokens/palette/palette.tokens.css.d.ts +9 -0
  44. package/dist/tokens/palette/palette.tokens.css.d.ts.map +1 -1
  45. package/dist/tokens/typography/index.d.ts +3 -0
  46. package/dist/tokens/typography/index.d.ts.map +1 -0
  47. package/dist/tokens/typography/typography.tokens.css.d.ts +105 -0
  48. package/dist/tokens/typography/typography.tokens.css.d.ts.map +1 -0
  49. package/dist/tokens/typography/typography.types.d.ts +3 -0
  50. package/dist/tokens/typography/typography.types.d.ts.map +1 -0
  51. package/dist/ui/primitives/Box/Box.css.d.ts +3 -0
  52. package/dist/ui/primitives/Box/Box.css.d.ts.map +1 -1
  53. package/dist/ui/primitives/Box/adapters/Box.element.d.ts +24 -0
  54. package/dist/ui/primitives/Box/adapters/Box.element.d.ts.map +1 -0
  55. package/dist/ui/primitives/Button/Button.css.d.ts +5 -0
  56. package/dist/ui/primitives/Button/Button.css.d.ts.map +1 -0
  57. package/dist/ui/primitives/Button/Button.types.d.ts +13 -0
  58. package/dist/ui/primitives/Button/Button.types.d.ts.map +1 -0
  59. package/dist/ui/primitives/Button/adapters/Button.element.d.ts +31 -0
  60. package/dist/ui/primitives/Button/adapters/Button.element.d.ts.map +1 -0
  61. package/dist/ui/primitives/Button/adapters/Button.react.d.ts +4 -0
  62. package/dist/ui/primitives/Button/adapters/Button.react.d.ts.map +1 -0
  63. package/dist/ui/primitives/Button/index.d.ts +4 -0
  64. package/dist/ui/primitives/Button/index.d.ts.map +1 -0
  65. package/dist/ui/primitives/Inline/Inline.css.d.ts.map +1 -1
  66. package/dist/ui/primitives/Inline/Inline.types.d.ts +4 -2
  67. package/dist/ui/primitives/Inline/Inline.types.d.ts.map +1 -1
  68. package/dist/ui/primitives/Inline/adapters/Inline.element.d.ts +27 -0
  69. package/dist/ui/primitives/Inline/adapters/Inline.element.d.ts.map +1 -0
  70. package/dist/ui/primitives/Inline/index.d.ts +1 -0
  71. package/dist/ui/primitives/Inline/index.d.ts.map +1 -1
  72. package/dist/ui/primitives/Stack/Stack.css.d.ts.map +1 -1
  73. package/dist/ui/primitives/Stack/Stack.types.d.ts +4 -2
  74. package/dist/ui/primitives/Stack/Stack.types.d.ts.map +1 -1
  75. package/dist/ui/primitives/Stack/adapters/Stack.element.d.ts +25 -0
  76. package/dist/ui/primitives/Stack/adapters/Stack.element.d.ts.map +1 -0
  77. package/dist/ui/primitives/Stack/index.d.ts +1 -0
  78. package/dist/ui/primitives/Stack/index.d.ts.map +1 -1
  79. package/dist/ui/primitives/Text/Text.css.d.ts +3 -0
  80. package/dist/ui/primitives/Text/Text.css.d.ts.map +1 -0
  81. package/dist/ui/primitives/Text/Text.types.d.ts +10 -0
  82. package/dist/ui/primitives/Text/Text.types.d.ts.map +1 -0
  83. package/dist/ui/primitives/Text/adapters/Text.element.d.ts +20 -0
  84. package/dist/ui/primitives/Text/adapters/Text.element.d.ts.map +1 -0
  85. package/dist/ui/primitives/Text/adapters/Text.react.d.ts +4 -0
  86. package/dist/ui/primitives/Text/adapters/Text.react.d.ts.map +1 -0
  87. package/dist/ui/primitives/Text/index.d.ts +3 -0
  88. package/dist/ui/primitives/Text/index.d.ts.map +1 -0
  89. package/dist/ui/primitives/index.d.ts +4 -0
  90. package/dist/ui/primitives/index.d.ts.map +1 -1
  91. package/package.json +28 -8
@@ -0,0 +1,5 @@
1
+ export declare const host: string;
2
+ export declare const root: string;
3
+ export declare const variant: Record<"outline" | "text" | "primary", string>;
4
+ export declare const size: Record<"sm" | "md" | "lg", string>;
5
+ //# sourceMappingURL=Button.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.css.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Button/Button.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAGf,CAAC;AAEH,eAAO,MAAM,IAAI,QAmBf,CAAC;AAEH,eAAO,MAAM,OAAO,gDAqDlB,CAAC;AAEH,eAAO,MAAM,IAAI,oCAIf,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { ComponentPropsWithoutRef, ElementType, ReactNode } from 'react';
2
+ export declare const BUTTON_VARIANTS: readonly ["primary", "outline", "text"];
3
+ export declare const BUTTON_SIZES: readonly ["sm", "md", "lg"];
4
+ export type ButtonVariant = typeof BUTTON_VARIANTS[number];
5
+ export type ButtonSize = typeof BUTTON_SIZES[number];
6
+ export interface ButtonOwnProps<T extends ElementType = 'button'> {
7
+ as?: T;
8
+ variant?: ButtonVariant;
9
+ size?: ButtonSize;
10
+ children: ReactNode;
11
+ }
12
+ export type ButtonProps<T extends ElementType = 'button'> = ButtonOwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof ButtonOwnProps<T>>;
13
+ //# sourceMappingURL=Button.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.types.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Button/Button.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9E,eAAO,MAAM,eAAe,yCAA0C,CAAC;AACvE,eAAO,MAAM,YAAY,6BAAiC,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAC3D,MAAM,MAAM,UAAU,GAAM,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAExD,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ;IAC9D,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,IACtD,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { ButtonVariant, ButtonSize } from '../Button.types.ts';
2
+ declare class LoomButton extends HTMLElement {
3
+ private _inner;
4
+ private _label;
5
+ static observedAttributes: readonly ["variant", "size", "disabled", "aria-label", "aria-labelledby", "aria-describedby"];
6
+ get variant(): ButtonVariant;
7
+ set variant(val: ButtonVariant);
8
+ get size(): ButtonSize;
9
+ set size(val: ButtonSize);
10
+ get disabled(): boolean;
11
+ set disabled(val: boolean);
12
+ private readonly _handleClick;
13
+ private readonly _handleFocus;
14
+ private readonly _handleBlur;
15
+ private _syncScheduled;
16
+ private _scheduleSync;
17
+ connectedCallback(): void;
18
+ disconnectedCallback(): void;
19
+ attributeChangedCallback(name: string): void;
20
+ private _prev;
21
+ private _sync;
22
+ private _syncA11y;
23
+ private _apply;
24
+ }
25
+ declare global {
26
+ interface HTMLElementTagNameMap {
27
+ 'loom-button': LoomButton;
28
+ }
29
+ }
30
+ export { LoomButton };
31
+ //# sourceMappingURL=Button.element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.element.d.ts","sourceRoot":"","sources":["../../../../../src/design-system/package/ui/primitives/Button/adapters/Button.element.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAgDpE,cAAM,UAAW,SAAQ,WAAW;IAClC,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,MAAM,CAAgC;IAE9C,MAAM,CAAC,kBAAkB,gGAOd;IAEX,IAAI,OAAO,IAAI,aAAa,CAE3B;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,aAAa,EAE7B;IAED,IAAI,IAAI,IAAI,UAAU,CAErB;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,UAAU,EAEvB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IACD,IAAI,QAAQ,CAAC,GAAG,EAAE,OAAO,EAExB;IAED,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO3B;IAEF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAO3B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAO1B;IAEF,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,aAAa;IASrB,iBAAiB;IA+BjB,oBAAoB;IAMpB,wBAAwB,CAAC,IAAI,EAAE,MAAM;IAQrC,OAAO,CAAC,KAAK,CAIX;IAEF,OAAO,CAAC,KAAK;IAkBb,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,MAAM;CAaf;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ElementType } from 'react';
2
+ import { ButtonProps } from '../Button.types.ts';
3
+ export declare function Button<T extends ElementType = 'button'>({ as, variant, size, children, className, ...props }: ButtonProps<T>): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=Button.react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.react.d.ts","sourceRoot":"","sources":["../../../../../src/design-system/package/ui/primitives/Button/adapters/Button.react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAUlE,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,QAAQ,EAAE,EACvD,EAAE,EACF,OAAmB,EACnB,IAAW,EACX,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,WAAW,CAAC,CAAC,CAAC,2CAchB"}
@@ -0,0 +1,4 @@
1
+ export { Button } from './adapters/Button.react.tsx';
2
+ export { BUTTON_VARIANTS, BUTTON_SIZES } from './Button.types.ts';
3
+ export type { ButtonProps, ButtonVariant, ButtonSize } from './Button.types.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Inline.css.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Inline/Inline.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAIf,CAAC;AAEH,eAAO,MAAM,IAAI,QAEf,CAAC;AAEH,eAAO,MAAM,GAAG,kIAgBd,CAAC;AAEH,eAAO,MAAM,KAAK,qEAMhB,CAAC;AAEH,eAAO,MAAM,OAAO,8EAOlB,CAAC"}
1
+ {"version":3,"file":"Inline.css.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Inline/Inline.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAIf,CAAC;AAEH,eAAO,MAAM,IAAI,QAEf,CAAC;AAEH,eAAO,MAAM,GAAG,kIAAsD,CAAC;AAEvE,eAAO,MAAM,KAAK,qEAMhB,CAAC;AAEH,eAAO,MAAM,OAAO,8EAOlB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import { SpacingTokenKey } from '../../../tokens/index.ts';
3
- export type InlineAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
4
- export type InlineJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
3
+ export declare const INLINE_ALIGNS: readonly ["start", "center", "end", "stretch", "baseline"];
4
+ export declare const INLINE_JUSTIFIES: readonly ["start", "center", "end", "between", "around", "evenly"];
5
+ export type InlineAlign = typeof INLINE_ALIGNS[number];
6
+ export type InlineJustify = typeof INLINE_JUSTIFIES[number];
5
7
  export interface InlineOwnProps<T extends ElementType = 'div'> {
6
8
  as?: T;
7
9
  gap?: SpacingTokenKey;
@@ -1 +1 @@
1
- {"version":3,"file":"Inline.types.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Inline/Inline.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzF,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK;IAC3D,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IACnD,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Inline.types.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Inline/Inline.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,aAAa,4DAAgE,CAAC;AAC3F,eAAO,MAAM,gBAAgB,oEAAqE,CAAC;AAEnG,MAAM,MAAM,WAAW,GAAK,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,aAAa,GAAG,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAE5D,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK;IAC3D,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IACnD,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { SpacingTokenKey } from '../../../../tokens/index.ts';
2
+ import { InlineAlign, InlineJustify } from '../Inline.types.ts';
3
+ declare class LoomInline extends HTMLElement {
4
+ static observedAttributes: readonly ["gap", "align", "justify", "wrap"];
5
+ get gap(): SpacingTokenKey | null;
6
+ set gap(val: SpacingTokenKey | null);
7
+ get align(): InlineAlign | null;
8
+ set align(val: InlineAlign | null);
9
+ get justify(): InlineJustify | null;
10
+ set justify(val: InlineJustify | null);
11
+ get wrap(): boolean;
12
+ set wrap(val: boolean);
13
+ connectedCallback(): void;
14
+ attributeChangedCallback(): void;
15
+ private _syncScheduled;
16
+ private _scheduleSync;
17
+ private _prev;
18
+ private _sync;
19
+ private _apply;
20
+ }
21
+ declare global {
22
+ interface HTMLElementTagNameMap {
23
+ 'loom-inline': LoomInline;
24
+ }
25
+ }
26
+ export { LoomInline };
27
+ //# sourceMappingURL=Inline.element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Inline.element.d.ts","sourceRoot":"","sources":["../../../../../src/design-system/package/ui/primitives/Inline/adapters/Inline.element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErE,cAAM,UAAW,SAAQ,WAAW;IAElC,MAAM,CAAC,kBAAkB,+CAAgD;IAGzE,IAAI,GAAG,IAAI,eAAe,GAAG,IAAI,CAEhC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,EAGlC;IAED,IAAI,KAAK,IAAI,WAAW,GAAG,IAAI,CAE9B;IACD,IAAI,KAAK,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,EAGhC;IAED,IAAI,OAAO,IAAI,aAAa,GAAG,IAAI,CAElC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,EAGpC;IAED,IAAI,IAAI,IAAI,OAAO,CAElB;IACD,IAAI,IAAI,CAAC,GAAG,EAAE,OAAO,EAEpB;IAGD,iBAAiB;IAKjB,wBAAwB;IAIxB,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,KAAK,CAKX;IAGF,OAAO,CAAC,KAAK;IAUb,OAAO,CAAC,MAAM;CAYf;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { Inline } from './adapters/Inline.react.tsx';
2
+ export { INLINE_ALIGNS, INLINE_JUSTIFIES } from './Inline.types.ts';
2
3
  export type { InlineProps, InlineAlign, InlineJustify } from './Inline.types.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Inline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Inline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACpE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.css.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Stack/Stack.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAGf,CAAC;AAEH,eAAO,MAAM,GAAG,kIAgBd,CAAC;AAEH,eAAO,MAAM,KAAK,qEAMhB,CAAC;AAEH,eAAO,MAAM,OAAO,8EAOlB,CAAC"}
1
+ {"version":3,"file":"Stack.css.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Stack/Stack.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAGf,CAAC;AAEH,eAAO,MAAM,GAAG,kIAAsD,CAAC;AAEvE,eAAO,MAAM,KAAK,qEAMhB,CAAC;AAEH,eAAO,MAAM,OAAO,8EAOlB,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react';
2
2
  import { SpacingTokenKey } from '../../../tokens/index.ts';
3
- export type StackAlign = 'start' | 'center' | 'end' | 'stretch' | 'baseline';
4
- export type StackJustify = 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';
3
+ export declare const STACK_ALIGNS: readonly ["start", "center", "end", "stretch", "baseline"];
4
+ export declare const STACK_JUSTIFIES: readonly ["start", "center", "end", "between", "around", "evenly"];
5
+ export type StackAlign = typeof STACK_ALIGNS[number];
6
+ export type StackJustify = typeof STACK_JUSTIFIES[number];
5
7
  export interface StackOwnProps<T extends ElementType = 'div'> {
6
8
  as?: T;
7
9
  gap?: SpacingTokenKey;
@@ -1 +1 @@
1
- {"version":3,"file":"Stack.types.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Stack/Stack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAC7E,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExF,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK;IAC1D,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAClD,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"Stack.types.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Stack/Stack.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,YAAY,4DAAgE,CAAC;AAC1F,eAAO,MAAM,eAAe,oEAAqE,CAAC;AAElG,MAAM,MAAM,UAAU,GAAK,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC;AAE1D,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK;IAC1D,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,WAAW,GAAG,KAAK,IAClD,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { SpacingTokenKey } from '../../../../tokens/index.ts';
2
+ import { StackAlign, StackJustify } from '../Stack.types.ts';
3
+ declare class LoomStack extends HTMLElement {
4
+ static observedAttributes: readonly ["gap", "align", "justify"];
5
+ get gap(): SpacingTokenKey | null;
6
+ set gap(val: SpacingTokenKey | null);
7
+ get align(): StackAlign | null;
8
+ set align(val: StackAlign | null);
9
+ get justify(): StackJustify | null;
10
+ set justify(val: StackJustify | null);
11
+ connectedCallback(): void;
12
+ attributeChangedCallback(): void;
13
+ private _syncScheduled;
14
+ private _scheduleSync;
15
+ private _prev;
16
+ private _sync;
17
+ private _apply;
18
+ }
19
+ declare global {
20
+ interface HTMLElementTagNameMap {
21
+ 'loom-stack': LoomStack;
22
+ }
23
+ }
24
+ export { LoomStack };
25
+ //# sourceMappingURL=Stack.element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Stack.element.d.ts","sourceRoot":"","sources":["../../../../../src/design-system/package/ui/primitives/Stack/adapters/Stack.element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,cAAM,SAAU,SAAQ,WAAW;IAEjC,MAAM,CAAC,kBAAkB,uCAAwC;IAGjE,IAAI,GAAG,IAAI,eAAe,GAAG,IAAI,CAEhC;IACD,IAAI,GAAG,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,EAGlC;IAED,IAAI,KAAK,IAAI,UAAU,GAAG,IAAI,CAE7B;IACD,IAAI,KAAK,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,EAG/B;IAED,IAAI,OAAO,IAAI,YAAY,GAAG,IAAI,CAEjC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI,EAGnC;IAGD,iBAAiB;IAKjB,wBAAwB;IAIxB,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,KAAK,CAIX;IAGF,OAAO,CAAC,KAAK;IAQb,OAAO,CAAC,MAAM;CAYf;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export { Stack } from './adapters/Stack.react.tsx';
2
+ export { STACK_ALIGNS, STACK_JUSTIFIES } from './Stack.types.ts';
2
3
  export type { StackProps, StackAlign, StackJustify } from './Stack.types.ts';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Stack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const root: string;
2
+ export declare const variants: Record<"bodyBase" | "bodySm" | "bodyLg" | "labelBase" | "labelSm" | "labelLg" | "headingH1" | "headingH2" | "headingH3" | "headingH4" | "headingH5" | "headingH6" | "displayLg" | "displayXl" | "display2xl" | "overline" | "caption", string>;
3
+ //# sourceMappingURL=Text.css.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.css.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Text/Text.css.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,IAAI,QAAY,CAAC;AAE9B,eAAO,MAAM,QAAQ,gPAMlB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { ElementType, ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ import { TypographyTokenKey } from '../../../tokens/index.ts';
3
+ export interface TextOwnProps<T extends ElementType = 'p'> {
4
+ as?: T;
5
+ variant: TypographyTokenKey;
6
+ children?: ReactNode;
7
+ className?: string;
8
+ }
9
+ export type TextProps<T extends ElementType = 'p'> = TextOwnProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof TextOwnProps<T>>;
10
+ //# sourceMappingURL=Text.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.types.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Text/Text.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAEnE,MAAM,WAAW,YAAY,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG;IACvD,EAAE,CAAC,EAAE,CAAC,CAAC;IACP,OAAO,EAAE,kBAAkB,CAAC;IAC5B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,IAC/C,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { TypographyTokenKey } from '../../../../tokens/index.ts';
2
+ declare class LoomText extends HTMLElement {
3
+ static observedAttributes: readonly ["variant"];
4
+ get variant(): TypographyTokenKey | null;
5
+ set variant(val: TypographyTokenKey | null);
6
+ connectedCallback(): void;
7
+ attributeChangedCallback(): void;
8
+ private _syncScheduled;
9
+ private _scheduleSync;
10
+ private _prev;
11
+ private _sync;
12
+ private _apply;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'loom-text': LoomText;
17
+ }
18
+ }
19
+ export { LoomText };
20
+ //# sourceMappingURL=Text.element.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.element.d.ts","sourceRoot":"","sources":["../../../../../src/design-system/package/ui/primitives/Text/adapters/Text.element.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,cAAM,QAAS,SAAQ,WAAW;IAEhC,MAAM,CAAC,kBAAkB,uBAAwB;IAGjD,IAAI,OAAO,IAAI,kBAAkB,GAAG,IAAI,CAEvC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,kBAAkB,GAAG,IAAI,EAGzC;IAGD,iBAAiB;IAKjB,wBAAwB;IAIxB,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,KAAK,CAEX;IAGF,OAAO,CAAC,KAAK;IAIb,OAAO,CAAC,MAAM;CAYf;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ElementType } from 'react';
2
+ import { TextProps } from '../Text.types.ts';
3
+ export declare function Text<T extends ElementType = 'p'>({ as, variant, children, className, ...props }: TextProps<T>): import("react/jsx-runtime").JSX.Element;
4
+ //# sourceMappingURL=Text.react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Text.react.d.ts","sourceRoot":"","sources":["../../../../../src/design-system/package/ui/primitives/Text/adapters/Text.react.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,wBAAgB,IAAI,CAAC,CAAC,SAAS,WAAW,GAAG,GAAG,EAAE,EAChD,EAAE,EACF,OAAO,EACP,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,SAAS,CAAC,CAAC,CAAC,2CAWd"}
@@ -0,0 +1,3 @@
1
+ export { Text } from './adapters/Text.react.tsx';
2
+ export type { TextProps } from './Text.types.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/design-system/package/ui/primitives/Text/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
@@ -4,4 +4,8 @@ export { Inline } from './Inline/index.ts';
4
4
  export type { InlineProps, InlineAlign, InlineJustify } from './Inline/index.ts';
5
5
  export { Box } from './Box/index.ts';
6
6
  export type { BoxProps } from './Box/index.ts';
7
+ export { Text } from './Text/index.ts';
8
+ export type { TextProps } from './Text/index.ts';
9
+ export { Button } from './Button/index.ts';
10
+ export type { ButtonProps, ButtonVariant, ButtonSize } from './Button/index.ts';
7
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/design-system/package/ui/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/design-system/package/ui/primitives/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEjF,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,15 +1,25 @@
1
1
  {
2
2
  "name": "@loom-sdc/design-system",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",
8
8
  "exports": {
9
9
  ".": {
10
+ "types": "./dist/index.d.ts",
10
11
  "import": "./dist/index.mjs",
11
- "require": "./dist/index.cjs",
12
- "types": "./dist/index.d.ts"
12
+ "require": "./dist/index.cjs"
13
+ },
14
+ "./core": {
15
+ "types": "./dist/index.core.d.ts",
16
+ "import": "./dist/core.mjs",
17
+ "require": "./dist/core.cjs"
18
+ },
19
+ "./elements": {
20
+ "types": "./dist/index.elements.d.ts",
21
+ "import": "./dist/elements.mjs",
22
+ "require": "./dist/elements.cjs"
13
23
  },
14
24
  "./style.css": "./dist/style.css",
15
25
  "./fonts.css": "./dist/fonts.css"
@@ -19,28 +29,37 @@
19
29
  ],
20
30
  "sideEffects": [
21
31
  "dist/style.css",
22
- "dist/fonts.css"
32
+ "dist/fonts.css",
33
+ "dist/elements.mjs",
34
+ "dist/elements.cjs"
23
35
  ],
24
36
  "scripts": {
25
- "dev": "vite",
26
- "build": "tsc -b && vite build",
27
37
  "build:lib": "vite build --config vite.lib.config.ts",
28
38
  "release": "npm run build:lib && npm publish --access public",
29
39
  "lint": "eslint .",
30
- "preview": "vite preview",
31
- "storybook": "storybook dev -p 6006",
40
+ "storybook": "storybook dev -p 6007",
32
41
  "build-storybook": "storybook build"
33
42
  },
34
43
  "peerDependencies": {
35
44
  "react": ">=19",
36
45
  "react-dom": ">=19"
37
46
  },
47
+ "peerDependenciesMeta": {
48
+ "react": {
49
+ "optional": true
50
+ },
51
+ "react-dom": {
52
+ "optional": true
53
+ }
54
+ },
38
55
  "dependencies": {
39
56
  "@vanilla-extract/css": "^1.20.1"
40
57
  },
41
58
  "devDependencies": {
42
59
  "@eslint/js": "^10.0.1",
60
+ "@figma/code-connect": "^1.4.4",
43
61
  "@microsoft/api-extractor": "^7.58.7",
62
+ "@storybook/addon-a11y": "^10.3.6",
44
63
  "@storybook/addon-docs": "^10.3.6",
45
64
  "@storybook/addon-vitest": "^10.3.6",
46
65
  "@storybook/react-vite": "^10.3.6",
@@ -54,6 +73,7 @@
54
73
  "eslint": "^10.2.1",
55
74
  "eslint-plugin-react-hooks": "^7.1.1",
56
75
  "eslint-plugin-react-refresh": "^0.5.2",
76
+ "eslint-plugin-storybook": "^10.3.6",
57
77
  "globals": "^17.5.0",
58
78
  "playwright": "^1.59.1",
59
79
  "react": "^19.2.5",