@common-origin/design-system 2.13.0 → 2.15.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.
@@ -14,5 +14,7 @@ export interface BadgeProps {
14
14
  'aria-label'?: string;
15
15
  /** Additional CSS class */
16
16
  className?: string;
17
+ /** Test identifier for automated testing */
18
+ 'data-testid'?: string;
17
19
  }
18
20
  export declare const Badge: React.FC<BadgeProps>;
@@ -1,5 +1,8 @@
1
1
  import { ChipVariant, BaseChipProps } from './types';
2
2
  declare const chip: {
3
+ closeButton: {
4
+ size: string;
5
+ };
3
6
  default: {
4
7
  backgroundColor: string;
5
8
  textColor: string;
@@ -10,6 +10,10 @@ export interface ProgressBarProps {
10
10
  height?: 'sm' | 'md' | 'lg' | 'xl';
11
11
  /** Width size for vertical progress bar (default: md) */
12
12
  width?: 'sm' | 'md' | 'lg' | 'xl';
13
+ /** Accessible name, e.g. "Upload progress". Provide this or aria-labelledby; falls back to "Progress" */
14
+ 'aria-label'?: string;
15
+ /** ID of the visible element that names the progress bar */
16
+ 'aria-labelledby'?: string;
13
17
  /** Data attribute for testing */
14
18
  'data-testid'?: string;
15
19
  }
@@ -6,6 +6,8 @@ interface GridProps {
6
6
  gapX?: keyof Tokens['base']['spacing'];
7
7
  gapY?: keyof Tokens['base']['spacing'];
8
8
  className?: string;
9
+ /** Test identifier for automated testing */
10
+ 'data-testid'?: string;
9
11
  children: React.ReactNode;
10
12
  }
11
13
  export declare const Grid: React.FC<GridProps>;
@@ -21,6 +23,8 @@ interface GridColProps {
21
23
  orderLg?: number;
22
24
  orderXl?: number;
23
25
  className?: string;
26
+ /** Test identifier for automated testing */
27
+ 'data-testid'?: string;
24
28
  children: React.ReactNode;
25
29
  }
26
30
  export declare const GridCol: React.FC<GridColProps>;
@@ -46,6 +50,8 @@ interface ResponsiveGridProps {
46
50
  gapYLg?: keyof Tokens['base']['spacing'];
47
51
  gapYXl?: keyof Tokens['base']['spacing'];
48
52
  className?: string;
53
+ /** Test identifier for automated testing */
54
+ 'data-testid'?: string;
49
55
  children: React.ReactNode;
50
56
  }
51
57
  export declare const ResponsiveGrid: React.FC<ResponsiveGridProps>;
@@ -23,7 +23,8 @@ export interface AlertProps {
23
23
  */
24
24
  dismissible?: boolean;
25
25
  /**
26
- * Callback function when alert is dismissed
26
+ * Callback function when alert is dismissed. Called once the dismiss animation has
27
+ * finished and the alert has been removed.
27
28
  */
28
29
  onDismiss?: () => void;
29
30
  /**
@@ -6,5 +6,7 @@ export type CardLargeProps = {
6
6
  picture: string;
7
7
  onImageClick?: () => void;
8
8
  imageHref?: string;
9
+ /** Test identifier for automated testing */
10
+ 'data-testid'?: string;
9
11
  };
10
- export declare const CardLarge: ({ title, excerpt, subtitle, labels, picture, onImageClick, imageHref, }: CardLargeProps) => import("react/jsx-runtime").JSX.Element;
12
+ export declare const CardLarge: ({ title, excerpt, subtitle, labels, picture, onImageClick, imageHref, "data-testid": dataTestId, }: CardLargeProps) => import("react/jsx-runtime").JSX.Element;
@@ -10,5 +10,7 @@ export type CardSmallProps = {
10
10
  * @example linkComponent={NextLink}
11
11
  */
12
12
  linkComponent?: React.ComponentType<any>;
13
+ /** Test identifier for automated testing */
14
+ 'data-testid'?: string;
13
15
  };
14
16
  export declare const CardSmall: React.FC<CardSmallProps>;
@@ -14,6 +14,8 @@ export interface DropdownProps {
14
14
  label?: string;
15
15
  helperText?: string;
16
16
  error?: string;
17
+ /** Test identifier for automated testing */
18
+ 'data-testid'?: string;
17
19
  }
18
20
  declare const DropdownOption: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Merged<Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "style"> & {
19
21
  style?: React.CSSProperties | import("styled-components/dist/types").CSSPropertiesWithVars | undefined;
@@ -8,5 +8,7 @@ export type FeatureBlockProps = {
8
8
  onReadMore?: () => void;
9
9
  readMoreHref?: string;
10
10
  readMoreText?: string;
11
+ /** Test identifier for automated testing */
12
+ 'data-testid'?: string;
11
13
  };
12
14
  export declare const FeatureBlock: React.FC<FeatureBlockProps>;
@@ -4,5 +4,18 @@ interface PageTitleProps {
4
4
  hasBackButton?: boolean;
5
5
  subtitle?: string;
6
6
  }
7
+ /**
8
+ * @deprecated PageTitle is a leftover from the personal site (its back button always links to `/music`)
9
+ * and will be removed in the next major version. Compose a page title from `Typography` in a `Stack`:
10
+ *
11
+ * ```tsx
12
+ * <Stack direction="column" gap="md">
13
+ * <Typography variant="h1">{title}</Typography>
14
+ * <Typography variant="caption" color="subdued">{subtitle}</Typography>
15
+ * </Stack>
16
+ * ```
17
+ *
18
+ * For a back link, add an `IconButton` with your own `url` and `aria-label`.
19
+ */
7
20
  export declare const PageTitle: FC<PageTitleProps>;
8
21
  export {};
@@ -25,12 +25,12 @@ export interface SheetProps {
25
25
  variant?: 'sheet' | 'drawer';
26
26
  /**
27
27
  * Width of the sheet (for left/right positions)
28
- * @default '400px'
28
+ * @default semantic.size.overlay.sm (25rem, 400px)
29
29
  */
30
30
  width?: string;
31
31
  /**
32
32
  * Height of the sheet (for top/bottom positions)
33
- * @default '400px'
33
+ * @default semantic.size.overlay.sm (25rem, 400px)
34
34
  */
35
35
  height?: string;
36
36
  /**
package/dist/data.esm.js CHANGED
@@ -75,17 +75,29 @@ var base = {
75
75
  "8": "2rem",
76
76
  "9": "2.25rem",
77
77
  "10": "2.5rem",
78
+ "11": "2.75rem",
78
79
  "12": "3rem",
79
80
  "14": "3.5rem",
81
+ "15": "3.75rem",
80
82
  "16": "4rem",
83
+ "18": "4.5rem",
81
84
  "20": "5rem",
82
85
  "24": "6rem",
83
86
  "28": "7rem",
87
+ "30": "7.5rem",
84
88
  "32": "8rem",
85
89
  "40": "10rem",
90
+ "45": "11.25rem",
86
91
  "48": "12rem",
92
+ "50": "12.5rem",
87
93
  "56": "14rem",
88
94
  "64": "16rem",
95
+ "75": "18.75rem",
96
+ "90": "22.5rem",
97
+ "100": "25rem",
98
+ "140": "35rem",
99
+ "180": "45rem",
100
+ "192": "48rem",
89
101
  auto: "auto",
90
102
  full: "100%",
91
103
  screen: "100vh",
@@ -275,7 +287,8 @@ var base = {
275
287
  "8": "2.5rem",
276
288
  "9": "3rem",
277
289
  "10": "4.5rem",
278
- "11": "5rem"
290
+ "11": "5rem",
291
+ none: "1"
279
292
  },
280
293
  letterSpacing: {
281
294
  "0": "-0.125rem",
@@ -413,6 +426,9 @@ var component = {
413
426
  }
414
427
  },
415
428
  chip: {
429
+ closeButton: {
430
+ size: "1.25rem"
431
+ },
416
432
  "default": {
417
433
  backgroundColor: "#e9ecef",
418
434
  textColor: "#212529",
@@ -648,6 +664,9 @@ var component = {
648
664
  textColor: "#adb5bd",
649
665
  borderColor: "#dee2e6",
650
666
  cursor: "not-allowed"
667
+ },
668
+ textarea: {
669
+ minHeight: "7.5rem"
651
670
  }
652
671
  },
653
672
  badge: {
@@ -657,12 +676,138 @@ var component = {
657
676
  count: {
658
677
  minWidth: "1rem",
659
678
  height: "1rem",
660
- paddingX: "0.25rem"
679
+ paddingX: "0.25rem",
680
+ lineHeight: "1"
661
681
  },
662
682
  ring: {
663
683
  width: "0.125rem"
664
684
  },
665
- borderRadius: "10rem"
685
+ borderRadius: "10rem",
686
+ label: {
687
+ fontWeight: "500",
688
+ typography: {
689
+ small: "400 0.75rem/1rem 'Inter', sans-serif",
690
+ medium: "400 0.875rem/1.25rem 'Inter', sans-serif"
691
+ }
692
+ }
693
+ },
694
+ field: {
695
+ gap: "0.5rem",
696
+ label: {
697
+ typography: "600 0.875rem/1.25rem 'Inter', sans-serif",
698
+ color: "#212529",
699
+ colorDisabled: "#adb5bd",
700
+ gap: "0.25rem"
701
+ },
702
+ requiredIndicator: {
703
+ color: "#D31510",
704
+ fontWeight: "700"
705
+ },
706
+ helperText: {
707
+ typography: "400 0.75rem/1rem 'Inter', sans-serif",
708
+ color: "#495057",
709
+ colorError: "#D31510"
710
+ }
711
+ },
712
+ alert: {
713
+ title: {
714
+ typography: "500 1.125rem/1.5rem 'Inter', sans-serif",
715
+ fontWeight: "600",
716
+ lineHeight: "1.25rem"
717
+ },
718
+ message: {
719
+ typography: "400 1rem/1.5rem 'Inter', sans-serif",
720
+ lineHeight: "1.25rem"
721
+ }
722
+ },
723
+ tabBar: {
724
+ badge: {
725
+ typography: "400 0.75rem/1rem 'Inter', sans-serif",
726
+ fontWeight: "700",
727
+ size: "1.25rem"
728
+ },
729
+ scrollbar: {
730
+ height: "0.25rem"
731
+ }
732
+ },
733
+ searchField: {
734
+ sectionHeader: {
735
+ typography: "400 0.75rem/1rem 'Inter', sans-serif",
736
+ letterSpacing: "0.125rem"
737
+ }
738
+ },
739
+ avatar: {
740
+ initials: {
741
+ fontFamily: "'Inter', sans-serif",
742
+ fontWeight: "500",
743
+ lineHeight: "1",
744
+ fontSize: {
745
+ xs: "0.75rem",
746
+ sm: "0.875rem",
747
+ md: "1rem",
748
+ lg: "1.125rem",
749
+ xl: "1.25rem"
750
+ }
751
+ }
752
+ },
753
+ codeBlock: {
754
+ fontFamily: "Menlo, Monaco, Consolas, Courier New, monospace",
755
+ fontSize: "0.75rem",
756
+ lineHeight: "1.25rem"
757
+ },
758
+ slider: {
759
+ thumb: {
760
+ shadow: {
761
+ "default": "0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)",
762
+ hover: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
763
+ active: "0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)"
764
+ }
765
+ }
766
+ },
767
+ accountCard: {
768
+ header: {
769
+ minHeight: "3rem"
770
+ },
771
+ minWidth: "18.75rem"
772
+ },
773
+ breadcrumbs: {
774
+ item: {
775
+ maxWidth: "11.25rem"
776
+ }
777
+ },
778
+ cardLarge: {
779
+ maxWidth: "48rem"
780
+ },
781
+ checkbox: {
782
+ box: {
783
+ size: "1.25rem"
784
+ },
785
+ row: {
786
+ minHeight: "2rem"
787
+ }
788
+ },
789
+ emptyState: {
790
+ illustration: {
791
+ small: "5rem",
792
+ medium: "7.5rem",
793
+ large: "12.5rem"
794
+ },
795
+ maxWidth: "25rem",
796
+ text: {
797
+ maxWidth: "22.5rem"
798
+ },
799
+ actions: {
800
+ maxWidth: "18.75rem"
801
+ }
802
+ },
803
+ listItem: {
804
+ expandedIndent: {
805
+ compact: "3rem",
806
+ comfortable: "3.75rem"
807
+ }
808
+ },
809
+ transactionListItem: {
810
+ minHeight: "4.5rem"
666
811
  },
667
812
  $ref: "./component/index.json"
668
813
  };
@@ -675,12 +820,63 @@ var semantic = {
675
820
  overlay: "0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",
676
821
  sticky: "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)"
677
822
  },
823
+ breakpoint: {
824
+ xs: "0px",
825
+ sm: "640px",
826
+ md: "768px",
827
+ lg: "1024px",
828
+ xl: "1280px",
829
+ "2xl": "1536px"
830
+ },
831
+ opacity: {
832
+ disabled: "0.5",
833
+ full: "1"
834
+ },
835
+ fontFamily: {
836
+ body: "'Inter', sans-serif",
837
+ monospace: "Menlo, Monaco, Consolas, Courier New, monospace"
838
+ },
839
+ fontSize: {
840
+ xs: "0.75rem",
841
+ sm: "0.875rem",
842
+ md: "1rem",
843
+ lg: "1.125rem",
844
+ xl: "1.25rem"
845
+ },
846
+ lineHeight: {
847
+ none: "1",
848
+ tight: "1.25rem",
849
+ normal: "1.5rem"
850
+ },
851
+ letterSpacing: {
852
+ tighter: "-0.125rem",
853
+ tight: "-0.0625rem",
854
+ normal: "0rem",
855
+ wide: "0.125rem"
856
+ },
857
+ fontWeight: {
858
+ regular: "400",
859
+ medium: "500",
860
+ semibold: "600",
861
+ bold: "700"
862
+ },
863
+ zIndex: {
864
+ sticky: "10",
865
+ dropdown: "1000",
866
+ overlay: "1010",
867
+ modal: "1020"
868
+ },
678
869
  border: {
679
870
  "default": "0.0625rem solid #e9ecef",
680
871
  subtle: "0.0625rem solid #dee2e6",
681
872
  strong: "0.0625rem solid #343a40",
682
873
  focus: "0.125rem solid #343a40",
683
874
  tooltip: "0.125rem dotted #dee2e6",
875
+ width: {
876
+ thin: "0.0625rem",
877
+ thick: "0.125rem"
878
+ },
879
+ focusOffset: "0.125rem",
684
880
  radius: {
685
881
  none: "0",
686
882
  xs: "0.125rem",
@@ -694,6 +890,31 @@ var semantic = {
694
890
  }
695
891
  },
696
892
  size: {
893
+ touchTarget: "2.75rem",
894
+ overlay: {
895
+ sm: "25rem",
896
+ md: "35rem",
897
+ lg: "45rem"
898
+ },
899
+ menu: {
900
+ maxHeight: "18.75rem"
901
+ },
902
+ dimension: {
903
+ "1": "0.25rem",
904
+ "5": "1.25rem",
905
+ "8": "2rem",
906
+ "12": "3rem",
907
+ "15": "3.75rem",
908
+ "18": "4.5rem",
909
+ "20": "5rem",
910
+ "30": "7.5rem",
911
+ "45": "11.25rem",
912
+ "50": "12.5rem",
913
+ "75": "18.75rem",
914
+ "90": "22.5rem",
915
+ "100": "25rem",
916
+ "192": "48rem"
917
+ },
697
918
  icon: {
698
919
  xs: "0.75rem",
699
920
  sm: "1rem",
@@ -741,6 +962,7 @@ var semantic = {
741
962
  "8xl": "3.5rem",
742
963
  "9xl": "4rem",
743
964
  "10xl": "5rem",
965
+ "11xl": "6rem",
744
966
  auto: "auto"
745
967
  }
746
968
  },
@@ -777,7 +999,8 @@ var semantic = {
777
999
  page: "#f8f9fa",
778
1000
  overlay: "rgba(33, 37, 41, 0.5)",
779
1001
  "hover-overlay": "rgba(33, 37, 41, 0.1)",
780
- "active-overlay": "rgba(33, 37, 41, 0.15)"
1002
+ "active-overlay": "rgba(33, 37, 41, 0.15)",
1003
+ "inverse-overlay": "rgba(255, 255, 255, 0.2)"
781
1004
  },
782
1005
  border: {
783
1006
  "default": "#e9ecef",
@@ -870,6 +1093,15 @@ var semantic = {
870
1093
  breadcrumb: "400 0.75rem/1.125rem 'Inter', sans-serif"
871
1094
  },
872
1095
  motion: {
1096
+ duration: {
1097
+ normal: "200ms",
1098
+ fast: "150ms",
1099
+ slow: "300ms"
1100
+ },
1101
+ easing: {
1102
+ easeInOut: "ease-in-out",
1103
+ easeOut: "ease-out"
1104
+ },
873
1105
  transition: {
874
1106
  fast: "all 150ms ease-out",
875
1107
  normal: "all 200ms ease-in-out",
@@ -1 +1 @@
1
- {"version":3,"file":"data.esm.js","sources":["../src/types/tokens.ts","../src/types/icons.ts"],"sourcesContent":["import tokensJson from '../styles/tokens.json'\n\n// Re-declared as a const so emitted .d.ts files inline the token shape instead of importing JSON,\n// which consumers can only resolve with `resolveJsonModule`.\nexport const tokens = tokensJson\n\nexport type Tokens = typeof tokens\nexport type TokensBase = Tokens['base']\nexport type TokensSemantic = Tokens['semantic']\nexport type TokensComponent = Tokens['component']\n","// Icon type definitions for external consumption\n// This is a self-contained type that doesn't depend on JSON imports\n// to ensure it works correctly in consuming projects\n\nimport iconsJson from '../styles/icons.json'\n\nexport type IconName =\n | 'add'\n | 'addRing'\n | 'arrowDown'\n | 'arrowLeft'\n | 'arrowRight'\n | 'arrowUp'\n | 'back'\n | 'bell'\n | 'cancel'\n | 'caret'\n | 'caretDown'\n | 'caretUp'\n | 'check'\n | 'checkRing'\n | 'close'\n | 'copy'\n | 'creditCard'\n | 'crossCircle'\n | 'directionRight'\n | 'directionUp'\n | 'edit'\n | 'export'\n | 'fileDocSearch'\n | 'filter'\n | 'info'\n | 'kebab'\n | 'lamp'\n | 'lineOut'\n | 'link'\n | 'meatballs'\n | 'menu'\n | 'message'\n | 'move'\n | 'mic'\n | 'order'\n | 'paper'\n | 'pause'\n | 'play'\n | 'playBack'\n | 'refresh'\n | 'remove'\n | 'search'\n | 'star'\n | 'starFilled'\n | 'table'\n | 'trash'\n | 'userBox'\n | 'view'\n | 'viewHide'\n | 'wallet'\n\n/** Semantic category for grouping icons by purpose */\nexport type IconCategory =\n | 'action'\n | 'communication'\n | 'content'\n | 'feedback'\n | 'media'\n | 'navigation'\n | 'object'\n | 'status'\n | 'user'\n\n/** Enriched metadata for each icon entry in icons.json */\nexport interface IconMetadata {\n /** SVG path data */\n path: string\n /** Display name of the icon */\n name: string\n /** What the icon visually depicts */\n description: string\n /** Semantic category for grouping */\n category: IconCategory\n /** Alternative names and search terms */\n aliases: string[]\n /** When and why to use this icon */\n intent: string\n /** Whether the icon is typically decorative (true) or informative (false) */\n decorativeDefault: boolean\n /** Suggested accessible label when the icon conveys meaning */\n ariaLabelDefault: string\n}\n\n/** The full icon registry keyed by IconName */\nexport type IconRegistry = Record<IconName, IconMetadata>\n\n// Typed as IconRegistry so emitted .d.ts files don't import JSON (needs `resolveJsonModule` in consumers).\nexport const iconsData = iconsJson as IconRegistry\n"],"names":["tokens","tokensJson","iconsData","iconsJson"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACO,IAAMA,MAAM,GAAGC;;ACJtB;AACA;AACA;AA2FA;AACO,IAAMC,SAAS,GAAGC;;;;"}
1
+ {"version":3,"file":"data.esm.js","sources":["../src/types/tokens.ts","../src/types/icons.ts"],"sourcesContent":["import tokensJson from '../styles/tokens.json'\n\n// Re-declared as a const so emitted .d.ts files inline the token shape instead of importing JSON,\n// which consumers can only resolve with `resolveJsonModule`.\nexport const tokens = tokensJson\n\nexport type Tokens = typeof tokens\nexport type TokensBase = Tokens['base']\nexport type TokensSemantic = Tokens['semantic']\nexport type TokensComponent = Tokens['component']\n","// Icon type definitions for external consumption\n// This is a self-contained type that doesn't depend on JSON imports\n// to ensure it works correctly in consuming projects\n\nimport iconsJson from '../styles/icons.json'\n\nexport type IconName =\n | 'add'\n | 'addRing'\n | 'arrowDown'\n | 'arrowLeft'\n | 'arrowRight'\n | 'arrowUp'\n | 'back'\n | 'bell'\n | 'cancel'\n | 'caret'\n | 'caretDown'\n | 'caretUp'\n | 'check'\n | 'checkRing'\n | 'close'\n | 'copy'\n | 'creditCard'\n | 'crossCircle'\n | 'directionRight'\n | 'directionUp'\n | 'edit'\n | 'export'\n | 'fileDocSearch'\n | 'filter'\n | 'info'\n | 'kebab'\n | 'lamp'\n | 'lineOut'\n | 'link'\n | 'meatballs'\n | 'menu'\n | 'message'\n | 'move'\n | 'mic'\n | 'order'\n | 'paper'\n | 'pause'\n | 'play'\n | 'playBack'\n | 'refresh'\n | 'remove'\n | 'search'\n | 'star'\n | 'starFilled'\n | 'table'\n | 'trash'\n | 'userBox'\n | 'view'\n | 'viewHide'\n | 'wallet'\n\n/** Semantic category for grouping icons by purpose */\nexport type IconCategory =\n | 'action'\n | 'communication'\n | 'content'\n | 'feedback'\n | 'media'\n | 'navigation'\n | 'object'\n | 'status'\n | 'user'\n\n/** Enriched metadata for each icon entry in icons.json */\nexport interface IconMetadata {\n /** SVG path data */\n path: string\n /** Display name of the icon */\n name: string\n /** What the icon visually depicts */\n description: string\n /** Semantic category for grouping */\n category: IconCategory\n /** Alternative names and search terms */\n aliases: string[]\n /** When and why to use this icon */\n intent: string\n /** Whether the icon is typically decorative (true) or informative (false) */\n decorativeDefault: boolean\n /** Suggested accessible label when the icon conveys meaning */\n ariaLabelDefault: string\n}\n\n/** The full icon registry keyed by IconName */\nexport type IconRegistry = Record<IconName, IconMetadata>\n\n// Typed as IconRegistry so emitted .d.ts files don't import JSON (needs `resolveJsonModule` in consumers).\nexport const iconsData = iconsJson as IconRegistry\n"],"names":["tokens","tokensJson","iconsData","iconsJson"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACA;AACO,IAAMA,MAAM,GAAGC;;ACJtB;AACA;AACA;AA2FA;AACO,IAAMC,SAAS,GAAGC;;;;"}