@common-origin/design-system 2.14.0 → 2.16.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 (55) hide show
  1. package/README.md +50 -184
  2. package/dist/client.esm.js +975 -610
  3. package/dist/client.esm.js.map +1 -1
  4. package/dist/client.js +978 -609
  5. package/dist/client.js.map +1 -1
  6. package/dist/components/atoms/Badge/Badge.d.ts +2 -0
  7. package/dist/components/atoms/Button/Button.d.ts +13 -1
  8. package/dist/components/atoms/CategoryBadge/CategoryBadge.d.ts +12 -52
  9. package/dist/components/atoms/CategoryBadge/index.d.ts +1 -1
  10. package/dist/components/atoms/CategoryLabel/CategoryLabel.d.ts +69 -0
  11. package/dist/components/atoms/CategoryLabel/index.d.ts +2 -0
  12. package/dist/components/atoms/Chip/BooleanChip.d.ts +6 -1
  13. package/dist/components/atoms/Chip/Chip.d.ts +17 -12
  14. package/dist/components/atoms/Chip/FilterChip.d.ts +10 -24
  15. package/dist/components/atoms/Chip/InputChip.d.ts +27 -0
  16. package/dist/components/atoms/Chip/index.d.ts +1 -0
  17. package/dist/components/atoms/Chip/shared/types.d.ts +15 -1
  18. package/dist/components/atoms/Chip/shared/utils.d.ts +1 -82
  19. package/dist/components/atoms/ProgressBar/ProgressBar.d.ts +4 -0
  20. package/dist/components/atoms/StatusBadge/StatusBadge.d.ts +9 -55
  21. package/dist/components/atoms/StatusBadge/index.d.ts +1 -1
  22. package/dist/components/atoms/StatusLabel/StatusLabel.d.ts +17 -0
  23. package/dist/components/atoms/StatusLabel/StatusLabelBase.d.ts +49 -0
  24. package/dist/components/atoms/StatusLabel/index.d.ts +2 -0
  25. package/dist/components/atoms/Tag/Tag.d.ts +5 -0
  26. package/dist/components/atoms/index.d.ts +2 -0
  27. package/dist/components/layout/GridSystem/GridSystem.d.ts +6 -0
  28. package/dist/components/molecules/Alert/Alert.d.ts +15 -2
  29. package/dist/components/molecules/CardLarge/CardLarge.d.ts +3 -1
  30. package/dist/components/molecules/CardSmall/CardSmall.d.ts +2 -0
  31. package/dist/components/molecules/Dropdown/Dropdown.d.ts +2 -0
  32. package/dist/components/molecules/FeatureBlock/FeatureBlock.d.ts +2 -0
  33. package/dist/components/molecules/InlineAlert/InlineAlert.d.ts +54 -0
  34. package/dist/components/molecules/InlineAlert/index.d.ts +2 -0
  35. package/dist/components/molecules/Modal/Modal.d.ts +6 -2
  36. package/dist/components/molecules/PageTitle/PageTitle.d.ts +13 -0
  37. package/dist/components/molecules/TabBar/TabBar.d.ts +8 -5
  38. package/dist/components/molecules/index.d.ts +1 -0
  39. package/dist/data.esm.js +94 -12
  40. package/dist/data.esm.js.map +1 -1
  41. package/dist/data.js +94 -12
  42. package/dist/data.js.map +1 -1
  43. package/dist/index.esm.js +1 -1
  44. package/dist/index.js +4 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/styles/tokens.json +94 -12
  47. package/dist/tokens/index.esm.js +94 -12
  48. package/dist/tokens/index.esm.js.map +1 -1
  49. package/dist/tokens/index.js +94 -12
  50. package/dist/tokens/index.js.map +1 -1
  51. package/dist/tokens/types/tokens.d.ts +85 -3
  52. package/dist/tokens.css +769 -0
  53. package/dist/tokens.css.d.ts +4 -0
  54. package/dist/types/tokens.d.ts +85 -3
  55. package/package.json +20 -10
@@ -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>;
@@ -9,6 +9,16 @@ export interface AlertProps {
9
9
  * @default 'info'
10
10
  */
11
11
  variant?: 'error' | 'warning' | 'info' | 'success';
12
+ /**
13
+ * Whether the severity border is drawn (decision 0019)
14
+ * - outlined: severity tint and a 1px severity border. Only for alerts at the top: a
15
+ * page-level alert at the top of the page, an alert at the top of the content area, and an
16
+ * error summary
17
+ * - borderless: severity tint only. Every other alert, including alerts inside content and at
18
+ * the bottom of a page; the icon and title colour carry the severity
19
+ * @default 'outlined'
20
+ */
21
+ appearance?: 'outlined' | 'borderless';
12
22
  /**
13
23
  * Alert message content
14
24
  */
@@ -28,12 +38,15 @@ export interface AlertProps {
28
38
  */
29
39
  onDismiss?: () => void;
30
40
  /**
31
- * Optional action button or component
41
+ * Optional action button or component, placed below the message and left-aligned with it
32
42
  */
33
43
  action?: React.ReactNode;
34
44
  /**
35
45
  * Compact inline variant with reduced padding
36
46
  * @default false
47
+ * @deprecated Use `InlineAlert` for a short, local message (decision 0019). `inline` keeps
48
+ * working until it is removed in 3.0. An inline alert that needs a title, action or dismiss
49
+ * button stays an Alert.
37
50
  */
38
51
  inline?: boolean;
39
52
  /**
@@ -50,6 +63,6 @@ export interface AlertProps {
50
63
  'data-testid'?: string;
51
64
  }
52
65
  export declare const Alert: {
53
- ({ variant, children, title, dismissible, onDismiss, action, inline, ariaLive, "data-testid": dataTestId, ...props }: AlertProps): import("react/jsx-runtime").JSX.Element | null;
66
+ ({ variant, appearance, children, title, dismissible, onDismiss, action, inline, ariaLive, "data-testid": dataTestId, ...props }: AlertProps): import("react/jsx-runtime").JSX.Element | null;
54
67
  displayName: string;
55
68
  };
@@ -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>;
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+ export type InlineAlertVariant = 'error' | 'warning' | 'info' | 'success';
3
+ export type InlineAlertSize = 'small' | 'medium';
4
+ export interface InlineAlertProps {
5
+ /**
6
+ * Severity, shown by the icon and the text colour
7
+ * @default 'info'
8
+ */
9
+ variant?: InlineAlertVariant;
10
+ /**
11
+ * Size on the label scale (decision 0018): small (20px) for dense places such as tables,
12
+ * medium (24px) for forms and content. The message can wrap; the size sets its minimum height.
13
+ * @default 'medium'
14
+ */
15
+ size?: InlineAlertSize;
16
+ /**
17
+ * The message: short text only (no title, action or dismiss button; use Alert for those).
18
+ * With no message, InlineAlert renders an empty live region and no icon: keep it mounted and
19
+ * set the message to have screen readers announce it reliably.
20
+ */
21
+ children?: React.ReactNode;
22
+ /**
23
+ * ARIA live region behaviour, as on Alert
24
+ * - polite: non-urgent announcements
25
+ * - assertive: important, time-sensitive information
26
+ * - off: not announced
27
+ * @default 'polite'
28
+ */
29
+ ariaLive?: 'polite' | 'assertive' | 'off';
30
+ /**
31
+ * Element id. When the message gives feedback about a control, the control references this
32
+ * id with aria-describedby, so the message is read when the control is focused.
33
+ */
34
+ id?: string;
35
+ /**
36
+ * Test identifier for automated testing
37
+ */
38
+ 'data-testid'?: string;
39
+ }
40
+ /**
41
+ * InlineAlert is a short, local message that sits next to what it's about: between paragraphs,
42
+ * below a field or in a table cell (decision 0019). A severity icon and text in the severity
43
+ * colour, with no background or border. For a title, an action or a dismiss button, use Alert.
44
+ *
45
+ * @example
46
+ * ```tsx
47
+ * <InlineAlert variant="success">Saved</InlineAlert>
48
+ *
49
+ * // Field feedback: the control references the message with aria-describedby
50
+ * <input id="email" aria-describedby="email-error" aria-invalid="true" />
51
+ * <InlineAlert id="email-error" variant="error" size="small">Enter a valid email address</InlineAlert>
52
+ * ```
53
+ */
54
+ export declare const InlineAlert: React.FC<InlineAlertProps>;
@@ -0,0 +1,2 @@
1
+ export { InlineAlert } from './InlineAlert';
2
+ export type { InlineAlertProps, InlineAlertVariant, InlineAlertSize } from './InlineAlert';
@@ -1,4 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
+ import { type ButtonVariant } from '../../atoms/Button';
2
3
  import { type IconName } from '../../../types/icons';
3
4
  export type ModalSize = 'small' | 'medium' | 'large';
4
5
  export interface ModalAction {
@@ -6,8 +7,11 @@ export interface ModalAction {
6
7
  label: string;
7
8
  /** Callback when the action is clicked */
8
9
  onClick: () => void;
9
- /** Button variant */
10
- variant?: 'primary' | 'secondary' | 'naked' | 'emphasis' | 'danger';
10
+ /**
11
+ * Button variant. `accent` is the blue call to action (at most one per view).
12
+ * `emphasis` is a deprecated alias for `accent` and will be removed in 3.0.
13
+ */
14
+ variant?: ButtonVariant;
11
15
  /** Optional leading icon */
12
16
  icon?: IconName;
13
17
  /** Whether the button is disabled */
@@ -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 {};
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Tab variant options for TabBar
2
+ * Tab variant options for TabBar.
3
+ * @deprecated TabBar has one look, `underline` (decision 0020). `'default'` and `'pills'` render
4
+ * as `underline`. The type is removed in 3.0.
3
5
  */
4
6
  export type TabVariant = 'default' | 'pills' | 'underline';
5
7
  /**
@@ -41,8 +43,10 @@ export interface TabBarProps {
41
43
  */
42
44
  onTabChange: (tabId: string) => void;
43
45
  /**
44
- * Visual variant of the tabs
45
- * @default 'default'
46
+ * Visual variant of the tabs.
47
+ * @deprecated TabBar has one look, `underline` (decision 0020). `'default'` and `'pills'` render
48
+ * as `underline`. Remove the prop; it is removed in 3.0.
49
+ * @default 'underline'
46
50
  */
47
51
  variant?: TabVariant;
48
52
  /**
@@ -57,7 +61,7 @@ export interface TabBarProps {
57
61
  /**
58
62
  * TabBar component for tabbed navigation
59
63
  *
60
- * Provides accessible tab navigation with 3 visual variants, keyboard support,
64
+ * Provides accessible tab navigation with an underline style, keyboard support,
61
65
  * and optional badge counts. Follows ARIA tablist pattern.
62
66
  *
63
67
  * @example
@@ -72,7 +76,6 @@ export interface TabBarProps {
72
76
  * ]}
73
77
  * activeTab={activeTab}
74
78
  * onTabChange={setActiveTab}
75
- * variant="pills"
76
79
  * />
77
80
  * ```
78
81
  */
@@ -2,6 +2,7 @@ export * from './AccountCard';
2
2
  export * from './ActionSheet';
3
3
  export * from './AgentInput';
4
4
  export * from './Alert';
5
+ export * from './InlineAlert';
5
6
  export * from './Breadcrumbs';
6
7
  export * from './CardSmall';
7
8
  export * from './CardLarge';
package/dist/data.esm.js CHANGED
@@ -106,6 +106,7 @@ var base = {
106
106
  fit: "fit-content"
107
107
  },
108
108
  color: {
109
+ transparent: "transparent",
109
110
  neutral: {
110
111
  "100": "#f8f9fa",
111
112
  "200": "#e9ecef",
@@ -326,8 +327,7 @@ var base = {
326
327
  easeInBack: "cubic-bezier(0.36, 0, 0.66, -0.56)",
327
328
  easeOutBack: "cubic-bezier(0.34, 1.56, 0.64, 1)",
328
329
  easeInOutBack: "cubic-bezier(0.68, -0.6, 0.32, 1.6)"
329
- },
330
- $ref: "./base/index.json"
330
+ }
331
331
  };
332
332
  var component = {
333
333
  button: {
@@ -381,6 +381,20 @@ var component = {
381
381
  textColor: "#adb5bd"
382
382
  }
383
383
  },
384
+ accent: {
385
+ backgroundColor: "#0265DC",
386
+ textColor: "#ffffff",
387
+ hover: {
388
+ backgroundColor: "#0054B6"
389
+ },
390
+ active: {
391
+ backgroundColor: "#004491"
392
+ },
393
+ disabled: {
394
+ backgroundColor: "#dee2e6",
395
+ textColor: "#adb5bd"
396
+ }
397
+ },
384
398
  emphasis: {
385
399
  backgroundColor: "#0265DC",
386
400
  textColor: "#ffffff",
@@ -426,6 +440,9 @@ var component = {
426
440
  }
427
441
  },
428
442
  chip: {
443
+ closeButton: {
444
+ size: "1.25rem"
445
+ },
429
446
  "default": {
430
447
  backgroundColor: "#e9ecef",
431
448
  textColor: "#212529",
@@ -627,7 +644,7 @@ var component = {
627
644
  "default": {
628
645
  backgroundColor: "#ffffff",
629
646
  textColor: "#212529",
630
- borderColor: "#dee2e6",
647
+ borderColor: "#6c757d",
631
648
  borderRadius: "0.25rem",
632
649
  borderWidth: "0.0625rem",
633
650
  paddingY: "11px",
@@ -635,7 +652,7 @@ var component = {
635
652
  font: "400 1rem/1.5rem 'Inter', sans-serif"
636
653
  },
637
654
  placeholder: {
638
- textColor: "#adb5bd"
655
+ textColor: "#495057"
639
656
  },
640
657
  hover: {
641
658
  borderColor: "#343a40"
@@ -707,6 +724,42 @@ var component = {
707
724
  }
708
725
  },
709
726
  alert: {
727
+ severity: {
728
+ error: {
729
+ background: "#FFEBE7",
730
+ text: "#D31510"
731
+ },
732
+ warning: {
733
+ background: "#FFECCC",
734
+ text: "#B14C00"
735
+ },
736
+ info: {
737
+ background: "#E0F2FF",
738
+ text: "#0265DC"
739
+ },
740
+ success: {
741
+ background: "#CEF8E0",
742
+ text: "#007A4D"
743
+ }
744
+ },
745
+ appearance: {
746
+ outlined: {
747
+ borderColor: {
748
+ error: "#D31510",
749
+ warning: "#B14C00",
750
+ info: "#0265DC",
751
+ success: "#007A4D"
752
+ }
753
+ },
754
+ borderless: {
755
+ borderColor: {
756
+ error: "transparent",
757
+ warning: "transparent",
758
+ info: "transparent",
759
+ success: "transparent"
760
+ }
761
+ }
762
+ },
710
763
  title: {
711
764
  typography: "500 1.125rem/1.5rem 'Inter', sans-serif",
712
765
  fontWeight: "600",
@@ -805,8 +858,7 @@ var component = {
805
858
  },
806
859
  transactionListItem: {
807
860
  minHeight: "4.5rem"
808
- },
809
- $ref: "./component/index.json"
861
+ }
810
862
  };
811
863
  var semantic = {
812
864
  elevation: {
@@ -893,12 +945,20 @@ var semantic = {
893
945
  md: "35rem",
894
946
  lg: "45rem"
895
947
  },
948
+ label: {
949
+ small: "1.25rem",
950
+ medium: "1.5rem",
951
+ large: "2rem"
952
+ },
896
953
  menu: {
897
954
  maxHeight: "18.75rem"
898
955
  },
899
956
  dimension: {
900
957
  "1": "0.25rem",
958
+ "2": "0.5rem",
959
+ "4": "1rem",
901
960
  "5": "1.25rem",
961
+ "6": "1.5rem",
902
962
  "8": "2rem",
903
963
  "12": "3rem",
904
964
  "15": "3.75rem",
@@ -971,6 +1031,8 @@ var semantic = {
971
1031
  inverse: "#ffffff",
972
1032
  disabled: "#adb5bd",
973
1033
  interactive: "#0265DC",
1034
+ "interactive-hover": "#0054B6",
1035
+ "interactive-active": "#004491",
974
1036
  error: "#D31510",
975
1037
  success: "#007A4D",
976
1038
  warning: "#B14C00"
@@ -979,33 +1041,46 @@ var semantic = {
979
1041
  "default": "#f8f9fa",
980
1042
  subtle: "#ffffff",
981
1043
  emphasis: "#212529",
1044
+ "emphasis-hover": "#343a40",
1045
+ "emphasis-active": "#16191C",
982
1046
  surface: "#e9ecef",
983
1047
  inverse: "#343a40",
984
1048
  interactive: "#0265DC",
985
1049
  "interactive-subtle": "#E0F2FF",
1050
+ "interactive-subtle-hover": "#CAE8FF",
1051
+ "interactive-subtle-active": "#B5DEFF",
986
1052
  "interactive-hover": "#0054B6",
987
1053
  "interactive-active": "#004491",
988
1054
  error: "#D31510",
1055
+ "error-hover": "#B40000",
1056
+ "error-active": "#930000",
989
1057
  "error-subtle": "#FFEBE7",
990
1058
  success: "#007A4D",
991
1059
  "success-subtle": "#CEF8E0",
992
1060
  warning: "#B14C00",
993
1061
  "warning-subtle": "#FFECCC",
994
1062
  disabled: "#dee2e6",
1063
+ neutral: "#dee2e6",
1064
+ "neutral-hover": "#ced4da",
1065
+ "neutral-active": "#adb5bd",
1066
+ transparent: "transparent",
995
1067
  progressTrack: "#dee2e6",
996
1068
  page: "#f8f9fa",
997
1069
  overlay: "rgba(33, 37, 41, 0.5)",
998
1070
  "hover-overlay": "rgba(33, 37, 41, 0.1)",
999
- "active-overlay": "rgba(33, 37, 41, 0.15)"
1071
+ "active-overlay": "rgba(33, 37, 41, 0.15)",
1072
+ "inverse-overlay": "rgba(255, 255, 255, 0.2)"
1000
1073
  },
1001
1074
  border: {
1002
1075
  "default": "#e9ecef",
1003
1076
  subtle: "#dee2e6",
1077
+ control: "#6c757d",
1004
1078
  strong: "#343a40",
1005
1079
  interactive: "#0265DC",
1006
1080
  error: "#D31510",
1007
1081
  success: "#007A4D",
1008
- warning: "#B14C00"
1082
+ warning: "#B14C00",
1083
+ none: "transparent"
1009
1084
  },
1010
1085
  icon: {
1011
1086
  "default": "#212529",
@@ -1052,10 +1127,18 @@ var semantic = {
1052
1127
  "orange-subtle": "#FFECCC",
1053
1128
  gray: "#495057",
1054
1129
  "gray-emphasis": "#212529",
1055
- "gray-subtle": "#e9ecef"
1130
+ "gray-subtle": "#e9ecef",
1131
+ "blue-text": "#0265DC",
1132
+ "purple-text": "#7E2EBD",
1133
+ "pink-text": "#B90064",
1134
+ "yellow-text": "#825800",
1135
+ "green-text": "#007A4D",
1136
+ "red-text": "#D31510",
1137
+ "orange-text": "#B14C00",
1138
+ "gray-text": "#212529"
1056
1139
  },
1057
1140
  status: {
1058
- pending: "#D39700",
1141
+ pending: "#825800",
1059
1142
  "pending-bg": "#FFF3D6",
1060
1143
  completed: "#007A4D",
1061
1144
  "completed-bg": "#CEF8E0",
@@ -1106,8 +1189,7 @@ var semantic = {
1106
1189
  hover: "background-color 150ms ease-out, color 150ms ease-out",
1107
1190
  focus: "outline 150ms ease-out, outline-offset 150ms ease-out",
1108
1191
  interactive: "transform 150ms ease-out, opacity 150ms ease-out"
1109
- },
1110
- $ref: "./semantic/index.json"
1192
+ }
1111
1193
  };
1112
1194
  var tokensJson = {
1113
1195
  base: base,
@@ -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;;;;"}