@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.
- package/README.md +50 -184
- package/dist/client.esm.js +975 -610
- package/dist/client.esm.js.map +1 -1
- package/dist/client.js +978 -609
- package/dist/client.js.map +1 -1
- package/dist/components/atoms/Badge/Badge.d.ts +2 -0
- package/dist/components/atoms/Button/Button.d.ts +13 -1
- package/dist/components/atoms/CategoryBadge/CategoryBadge.d.ts +12 -52
- package/dist/components/atoms/CategoryBadge/index.d.ts +1 -1
- package/dist/components/atoms/CategoryLabel/CategoryLabel.d.ts +69 -0
- package/dist/components/atoms/CategoryLabel/index.d.ts +2 -0
- package/dist/components/atoms/Chip/BooleanChip.d.ts +6 -1
- package/dist/components/atoms/Chip/Chip.d.ts +17 -12
- package/dist/components/atoms/Chip/FilterChip.d.ts +10 -24
- package/dist/components/atoms/Chip/InputChip.d.ts +27 -0
- package/dist/components/atoms/Chip/index.d.ts +1 -0
- package/dist/components/atoms/Chip/shared/types.d.ts +15 -1
- package/dist/components/atoms/Chip/shared/utils.d.ts +1 -82
- package/dist/components/atoms/ProgressBar/ProgressBar.d.ts +4 -0
- package/dist/components/atoms/StatusBadge/StatusBadge.d.ts +9 -55
- package/dist/components/atoms/StatusBadge/index.d.ts +1 -1
- package/dist/components/atoms/StatusLabel/StatusLabel.d.ts +17 -0
- package/dist/components/atoms/StatusLabel/StatusLabelBase.d.ts +49 -0
- package/dist/components/atoms/StatusLabel/index.d.ts +2 -0
- package/dist/components/atoms/Tag/Tag.d.ts +5 -0
- package/dist/components/atoms/index.d.ts +2 -0
- package/dist/components/layout/GridSystem/GridSystem.d.ts +6 -0
- package/dist/components/molecules/Alert/Alert.d.ts +15 -2
- package/dist/components/molecules/CardLarge/CardLarge.d.ts +3 -1
- package/dist/components/molecules/CardSmall/CardSmall.d.ts +2 -0
- package/dist/components/molecules/Dropdown/Dropdown.d.ts +2 -0
- package/dist/components/molecules/FeatureBlock/FeatureBlock.d.ts +2 -0
- package/dist/components/molecules/InlineAlert/InlineAlert.d.ts +54 -0
- package/dist/components/molecules/InlineAlert/index.d.ts +2 -0
- package/dist/components/molecules/Modal/Modal.d.ts +6 -2
- package/dist/components/molecules/PageTitle/PageTitle.d.ts +13 -0
- package/dist/components/molecules/TabBar/TabBar.d.ts +8 -5
- package/dist/components/molecules/index.d.ts +1 -0
- package/dist/data.esm.js +94 -12
- package/dist/data.esm.js.map +1 -1
- package/dist/data.js +94 -12
- package/dist/data.js.map +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/tokens.json +94 -12
- package/dist/tokens/index.esm.js +94 -12
- package/dist/tokens/index.esm.js.map +1 -1
- package/dist/tokens/index.js +94 -12
- package/dist/tokens/index.js.map +1 -1
- package/dist/tokens/types/tokens.d.ts +85 -3
- package/dist/tokens.css +769 -0
- package/dist/tokens.css.d.ts +4 -0
- package/dist/types/tokens.d.ts +85 -3
- 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;
|
|
@@ -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;
|
|
@@ -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>;
|
|
@@ -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
|
-
/**
|
|
10
|
-
|
|
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
|
-
* @
|
|
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
|
|
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
|
*/
|
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: "#
|
|
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: "#
|
|
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: "#
|
|
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,
|
package/dist/data.esm.js.map
CHANGED
|
@@ -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":"
|
|
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;;;;"}
|