@dynamic-mockups/design-system 0.1.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/LICENSE +21 -0
- package/README.md +396 -0
- package/dist/.storybook/ColorTokenSelect.d.ts +14 -0
- package/dist/.storybook/colorTokenOptions.d.ts +28 -0
- package/dist/.storybook/iconOptions.d.ts +54 -0
- package/dist/design-system.css +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +87 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +11635 -0
- package/dist/index.mjs.map +1 -0
- package/dist/src/components/atoms/Accordion/Accordion.d.ts +52 -0
- package/dist/src/components/atoms/Accordion/Accordion.stories.d.ts +109 -0
- package/dist/src/components/atoms/Accordion/index.d.ts +2 -0
- package/dist/src/components/atoms/AlertDialog/AlertDialog.d.ts +66 -0
- package/dist/src/components/atoms/AlertDialog/AlertDialog.stories.d.ts +144 -0
- package/dist/src/components/atoms/AlertDialog/index.d.ts +2 -0
- package/dist/src/components/atoms/Avatar/Avatar.d.ts +54 -0
- package/dist/src/components/atoms/Avatar/Avatar.stories.d.ts +119 -0
- package/dist/src/components/atoms/Avatar/index.d.ts +2 -0
- package/dist/src/components/atoms/Badge/Badge.d.ts +58 -0
- package/dist/src/components/atoms/Badge/Badge.stories.d.ts +706 -0
- package/dist/src/components/atoms/Badge/index.d.ts +2 -0
- package/dist/src/components/atoms/Button/Button.d.ts +63 -0
- package/dist/src/components/atoms/Button/Button.stories.d.ts +763 -0
- package/dist/src/components/atoms/Button/index.d.ts +2 -0
- package/dist/src/components/atoms/Card/Card.d.ts +44 -0
- package/dist/src/components/atoms/Card/Card.stories.d.ts +103 -0
- package/dist/src/components/atoms/Card/index.d.ts +2 -0
- package/dist/src/components/atoms/Checkbox/Checkbox.d.ts +52 -0
- package/dist/src/components/atoms/Checkbox/Checkbox.stories.d.ts +168 -0
- package/dist/src/components/atoms/Checkbox/index.d.ts +2 -0
- package/dist/src/components/atoms/Dialog/Dialog.d.ts +53 -0
- package/dist/src/components/atoms/Dialog/Dialog.stories.d.ts +122 -0
- package/dist/src/components/atoms/Dialog/index.d.ts +2 -0
- package/dist/src/components/atoms/DropdownMenu/DropdownMenu.d.ts +61 -0
- package/dist/src/components/atoms/DropdownMenu/DropdownMenu.stories.d.ts +109 -0
- package/dist/src/components/atoms/DropdownMenu/index.d.ts +2 -0
- package/dist/src/components/atoms/HoverCard/HoverCard.d.ts +38 -0
- package/dist/src/components/atoms/HoverCard/HoverCard.stories.d.ts +86 -0
- package/dist/src/components/atoms/HoverCard/index.d.ts +2 -0
- package/dist/src/components/atoms/Label/Label.d.ts +19 -0
- package/dist/src/components/atoms/Label/Label.stories.d.ts +100 -0
- package/dist/src/components/atoms/Label/index.d.ts +2 -0
- package/dist/src/components/atoms/Popover/Popover.d.ts +44 -0
- package/dist/src/components/atoms/Popover/Popover.stories.d.ts +94 -0
- package/dist/src/components/atoms/Popover/index.d.ts +2 -0
- package/dist/src/components/atoms/Progress/Progress.d.ts +45 -0
- package/dist/src/components/atoms/Progress/Progress.stories.d.ts +108 -0
- package/dist/src/components/atoms/Progress/index.d.ts +2 -0
- package/dist/src/components/atoms/ProgressBar/ProgressBar.d.ts +66 -0
- package/dist/src/components/atoms/ProgressBar/ProgressBar.stories.d.ts +439 -0
- package/dist/src/components/atoms/ProgressBar/index.d.ts +2 -0
- package/dist/src/components/atoms/RadioGroup/RadioGroup.d.ts +46 -0
- package/dist/src/components/atoms/RadioGroup/RadioGroup.stories.d.ts +104 -0
- package/dist/src/components/atoms/RadioGroup/index.d.ts +2 -0
- package/dist/src/components/atoms/ScrollArea/ScrollArea.d.ts +36 -0
- package/dist/src/components/atoms/ScrollArea/ScrollArea.stories.d.ts +85 -0
- package/dist/src/components/atoms/ScrollArea/index.d.ts +2 -0
- package/dist/src/components/atoms/Select/Select.d.ts +55 -0
- package/dist/src/components/atoms/Select/Select.stories.d.ts +101 -0
- package/dist/src/components/atoms/Select/index.d.ts +2 -0
- package/dist/src/components/atoms/Separator/Separator.d.ts +17 -0
- package/dist/src/components/atoms/Separator/Separator.stories.d.ts +79 -0
- package/dist/src/components/atoms/Separator/index.d.ts +2 -0
- package/dist/src/components/atoms/Slider/Slider.d.ts +55 -0
- package/dist/src/components/atoms/Slider/Slider.stories.d.ts +115 -0
- package/dist/src/components/atoms/Slider/index.d.ts +2 -0
- package/dist/src/components/atoms/Stepper/Stepper.d.ts +100 -0
- package/dist/src/components/atoms/Stepper/Stepper.stories.d.ts +496 -0
- package/dist/src/components/atoms/Stepper/index.d.ts +2 -0
- package/dist/src/components/atoms/Switch/Switch.d.ts +49 -0
- package/dist/src/components/atoms/Switch/Switch.stories.d.ts +165 -0
- package/dist/src/components/atoms/Switch/index.d.ts +2 -0
- package/dist/src/components/atoms/Tabs/Tabs.d.ts +35 -0
- package/dist/src/components/atoms/Tabs/Tabs.stories.d.ts +83 -0
- package/dist/src/components/atoms/Tabs/index.d.ts +2 -0
- package/dist/src/components/atoms/Toast/Toast.d.ts +59 -0
- package/dist/src/components/atoms/Toast/Toast.stories.d.ts +118 -0
- package/dist/src/components/atoms/Toast/index.d.ts +2 -0
- package/dist/src/components/atoms/Toggle/Toggle.d.ts +20 -0
- package/dist/src/components/atoms/Toggle/Toggle.stories.d.ts +118 -0
- package/dist/src/components/atoms/Toggle/index.d.ts +2 -0
- package/dist/src/components/atoms/Tooltip/Tooltip.d.ts +32 -0
- package/dist/src/components/atoms/Tooltip/Tooltip.stories.d.ts +87 -0
- package/dist/src/components/atoms/Tooltip/index.d.ts +2 -0
- package/dist/src/components/atoms/index.d.ts +29 -0
- package/dist/src/components/index.d.ts +9 -0
- package/dist/src/components/molecules/CheckboxChip/CheckboxChip.d.ts +65 -0
- package/dist/src/components/molecules/CheckboxChip/CheckboxChip.stories.d.ts +90 -0
- package/dist/src/components/molecules/CheckboxChip/CheckboxChipGroup.d.ts +63 -0
- package/dist/src/components/molecules/RadioSelector/RadioSelector.d.ts +72 -0
- package/dist/src/components/molecules/RadioSelector/RadioSelector.stories.d.ts +118 -0
- package/dist/src/components/molecules/index.d.ts +10 -0
- package/dist/src/components/organisms/CTABox/CTABox.d.ts +69 -0
- package/dist/src/components/organisms/CTABox/CTABox.stories.d.ts +117 -0
- package/dist/src/components/organisms/OnboardingInfoBox/OnboardingInfoBox.d.ts +65 -0
- package/dist/src/components/organisms/OnboardingInfoBox/OnboardingInfoBox.stories.d.ts +93 -0
- package/dist/src/components/organisms/index.d.ts +8 -0
- package/dist/src/components/pages/index.d.ts +5 -0
- package/dist/src/components/templates/OnboardingTemplate/OnboardingTemplate.d.ts +185 -0
- package/dist/src/components/templates/OnboardingTemplate/OnboardingTemplate.stories.d.ts +26 -0
- package/dist/src/components/templates/index.d.ts +6 -0
- package/dist/src/index.d.ts +21 -0
- package/dist/src/tests/storybook/ColorTokenSelect.test.d.ts +4 -0
- package/dist/src/theme/ThemeProvider.d.ts +36 -0
- package/dist/src/theme/index.d.ts +2 -0
- package/dist/src/theme/theme.d.ts +18 -0
- package/dist/src/tokens/colorTokens.d.ts +58 -0
- package/dist/src/tokens/colorTokens.test.d.ts +4 -0
- package/dist/src/tokens/colors.d.ts +168 -0
- package/dist/src/tokens/index.d.ts +270 -0
- package/dist/src/tokens/radii.d.ts +17 -0
- package/dist/src/tokens/shadows.d.ts +16 -0
- package/dist/src/tokens/spacing.d.ts +38 -0
- package/dist/src/tokens/typography.d.ts +57 -0
- package/package.json +104 -0
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
3
|
+
import type { ColorToken } from "./CTABox";
|
|
4
|
+
declare const meta: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: React.ForwardRefExoticComponent<import("./CTABox").CTABoxProps & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
argTypes: {
|
|
12
|
+
label: {
|
|
13
|
+
control: "text";
|
|
14
|
+
description: string;
|
|
15
|
+
table: {
|
|
16
|
+
category: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
heading: {
|
|
20
|
+
control: "text";
|
|
21
|
+
description: string;
|
|
22
|
+
table: {
|
|
23
|
+
category: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
description: {
|
|
27
|
+
control: "text";
|
|
28
|
+
description: string;
|
|
29
|
+
table: {
|
|
30
|
+
category: string;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
buttonText: {
|
|
34
|
+
control: "text";
|
|
35
|
+
description: string;
|
|
36
|
+
table: {
|
|
37
|
+
category: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
buttonDisabled: {
|
|
41
|
+
control: "boolean";
|
|
42
|
+
description: string;
|
|
43
|
+
table: {
|
|
44
|
+
category: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
backgroundColorToken: {
|
|
48
|
+
control: "select";
|
|
49
|
+
options: ColorToken[];
|
|
50
|
+
description: string;
|
|
51
|
+
table: {
|
|
52
|
+
category: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
borderColorToken: {
|
|
56
|
+
control: "select";
|
|
57
|
+
options: ColorToken[];
|
|
58
|
+
description: string;
|
|
59
|
+
table: {
|
|
60
|
+
category: string;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
labelColorToken: {
|
|
64
|
+
control: "select";
|
|
65
|
+
options: ColorToken[];
|
|
66
|
+
description: string;
|
|
67
|
+
table: {
|
|
68
|
+
category: string;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
headingColorToken: {
|
|
72
|
+
control: "select";
|
|
73
|
+
options: ColorToken[];
|
|
74
|
+
description: string;
|
|
75
|
+
table: {
|
|
76
|
+
category: string;
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
descriptionColorToken: {
|
|
80
|
+
control: "select";
|
|
81
|
+
options: ColorToken[];
|
|
82
|
+
description: string;
|
|
83
|
+
table: {
|
|
84
|
+
category: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
buttonBackgroundColorToken: {
|
|
88
|
+
control: "select";
|
|
89
|
+
options: ColorToken[];
|
|
90
|
+
description: string;
|
|
91
|
+
table: {
|
|
92
|
+
category: string;
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
buttonTextColorToken: {
|
|
96
|
+
control: "select";
|
|
97
|
+
options: ColorToken[];
|
|
98
|
+
description: string;
|
|
99
|
+
table: {
|
|
100
|
+
category: string;
|
|
101
|
+
};
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
};
|
|
105
|
+
export default meta;
|
|
106
|
+
type Story = StoryObj<typeof meta>;
|
|
107
|
+
export declare const Default: Story;
|
|
108
|
+
export declare const Interactive: Story;
|
|
109
|
+
export declare const DisabledButton: Story;
|
|
110
|
+
export declare const DifferentContent: Story;
|
|
111
|
+
export declare const ShortContent: Story;
|
|
112
|
+
export declare const LongContent: Story;
|
|
113
|
+
export declare const GreenTheme: Story;
|
|
114
|
+
export declare const PurpleTheme: Story;
|
|
115
|
+
export declare const OrangeTheme: Story;
|
|
116
|
+
export declare const InteractiveColorPicker: Story;
|
|
117
|
+
export declare const VariousWidths: Story;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OnboardingInfoBox Component
|
|
3
|
+
* An organism that displays onboarding information with a title and list of features
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { type ColorToken } from "../../../tokens";
|
|
7
|
+
import "./OnboardingInfoBox.scss";
|
|
8
|
+
export type { ColorToken } from "../../../tokens";
|
|
9
|
+
export interface OnboardingInfoItem {
|
|
10
|
+
/**
|
|
11
|
+
* Solar icon name
|
|
12
|
+
*/
|
|
13
|
+
icon: string;
|
|
14
|
+
/**
|
|
15
|
+
* Item title
|
|
16
|
+
*/
|
|
17
|
+
title: string;
|
|
18
|
+
/**
|
|
19
|
+
* Item description
|
|
20
|
+
*/
|
|
21
|
+
description: string;
|
|
22
|
+
}
|
|
23
|
+
export interface OnboardingInfoBoxProps {
|
|
24
|
+
/**
|
|
25
|
+
* Main heading/title
|
|
26
|
+
*/
|
|
27
|
+
title: string;
|
|
28
|
+
/**
|
|
29
|
+
* Array of info items to display
|
|
30
|
+
*/
|
|
31
|
+
items: OnboardingInfoItem[];
|
|
32
|
+
/**
|
|
33
|
+
* Custom className
|
|
34
|
+
*/
|
|
35
|
+
className?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Color token for the background
|
|
38
|
+
*/
|
|
39
|
+
backgroundColorToken?: ColorToken;
|
|
40
|
+
/**
|
|
41
|
+
* Color token for the border
|
|
42
|
+
*/
|
|
43
|
+
borderColorToken?: ColorToken;
|
|
44
|
+
/**
|
|
45
|
+
* Color token for the title text
|
|
46
|
+
*/
|
|
47
|
+
titleColorToken?: ColorToken;
|
|
48
|
+
/**
|
|
49
|
+
* Color token for item backgrounds
|
|
50
|
+
*/
|
|
51
|
+
itemBackgroundColorToken?: ColorToken;
|
|
52
|
+
/**
|
|
53
|
+
* Color token for item title text
|
|
54
|
+
*/
|
|
55
|
+
itemTitleColorToken?: ColorToken;
|
|
56
|
+
/**
|
|
57
|
+
* Color token for item description text
|
|
58
|
+
*/
|
|
59
|
+
itemDescriptionColorToken?: ColorToken;
|
|
60
|
+
/**
|
|
61
|
+
* Color token for icons
|
|
62
|
+
*/
|
|
63
|
+
iconColorToken?: ColorToken;
|
|
64
|
+
}
|
|
65
|
+
export declare const OnboardingInfoBox: React.ForwardRefExoticComponent<OnboardingInfoBoxProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
3
|
+
import type { ColorToken } from "./OnboardingInfoBox";
|
|
4
|
+
declare const meta: {
|
|
5
|
+
title: string;
|
|
6
|
+
component: React.ForwardRefExoticComponent<import("./OnboardingInfoBox").OnboardingInfoBoxProps & React.RefAttributes<HTMLDivElement>>;
|
|
7
|
+
parameters: {
|
|
8
|
+
layout: string;
|
|
9
|
+
};
|
|
10
|
+
tags: string[];
|
|
11
|
+
argTypes: {
|
|
12
|
+
title: {
|
|
13
|
+
control: "text";
|
|
14
|
+
description: string;
|
|
15
|
+
table: {
|
|
16
|
+
category: string;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
items: {
|
|
20
|
+
control: "object";
|
|
21
|
+
description: string;
|
|
22
|
+
table: {
|
|
23
|
+
category: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
backgroundColorToken: {
|
|
27
|
+
control: "select";
|
|
28
|
+
options: ColorToken[];
|
|
29
|
+
description: string;
|
|
30
|
+
table: {
|
|
31
|
+
category: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
borderColorToken: {
|
|
35
|
+
control: "select";
|
|
36
|
+
options: ColorToken[];
|
|
37
|
+
description: string;
|
|
38
|
+
table: {
|
|
39
|
+
category: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
titleColorToken: {
|
|
43
|
+
control: "select";
|
|
44
|
+
options: ColorToken[];
|
|
45
|
+
description: string;
|
|
46
|
+
table: {
|
|
47
|
+
category: string;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
itemBackgroundColorToken: {
|
|
51
|
+
control: "select";
|
|
52
|
+
options: ColorToken[];
|
|
53
|
+
description: string;
|
|
54
|
+
table: {
|
|
55
|
+
category: string;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
itemTitleColorToken: {
|
|
59
|
+
control: "select";
|
|
60
|
+
options: ColorToken[];
|
|
61
|
+
description: string;
|
|
62
|
+
table: {
|
|
63
|
+
category: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
itemDescriptionColorToken: {
|
|
67
|
+
control: "select";
|
|
68
|
+
options: ColorToken[];
|
|
69
|
+
description: string;
|
|
70
|
+
table: {
|
|
71
|
+
category: string;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
iconColorToken: {
|
|
75
|
+
control: "select";
|
|
76
|
+
options: ColorToken[];
|
|
77
|
+
description: string;
|
|
78
|
+
table: {
|
|
79
|
+
category: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
export default meta;
|
|
85
|
+
type Story = StoryObj<typeof meta>;
|
|
86
|
+
export declare const Default: Story;
|
|
87
|
+
export declare const GettingStarted: Story;
|
|
88
|
+
export declare const FeatureHighlights: Story;
|
|
89
|
+
export declare const TwoItems: Story;
|
|
90
|
+
export declare const SingleItem: Story;
|
|
91
|
+
export declare const CustomColors: Story;
|
|
92
|
+
export declare const InteractiveColorPicker: Story;
|
|
93
|
+
export declare const LongContent: Story;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Organisms
|
|
3
|
+
* Complex UI components composed of molecules and atoms
|
|
4
|
+
*/
|
|
5
|
+
export { OnboardingInfoBox } from "./OnboardingInfoBox/OnboardingInfoBox";
|
|
6
|
+
export type { OnboardingInfoBoxProps, OnboardingInfoItem, } from "./OnboardingInfoBox/OnboardingInfoBox";
|
|
7
|
+
export { CTABox } from "./CTABox/CTABox";
|
|
8
|
+
export type { CTABoxProps } from "./CTABox/CTABox";
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OnboardingTemplate
|
|
3
|
+
* Full onboarding page template with multiple variations
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import type { CheckboxChipOption } from "../../molecules/CheckboxChip/CheckboxChipGroup";
|
|
7
|
+
import type { OnboardingInfoItem } from "../../organisms/OnboardingInfoBox/OnboardingInfoBox";
|
|
8
|
+
import "./OnboardingTemplate.scss";
|
|
9
|
+
export interface OnboardingRadioOption {
|
|
10
|
+
value: string;
|
|
11
|
+
icon: string;
|
|
12
|
+
title: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
15
|
+
export interface OnboardingTemplateProps {
|
|
16
|
+
/**
|
|
17
|
+
* Template variation type
|
|
18
|
+
*/
|
|
19
|
+
variation: "radio" | "checkbox-no-icon" | "checkbox-with-icon" | "buttons-plus-radio" | "know-your-customer" | "launcher" | "artwork";
|
|
20
|
+
/**
|
|
21
|
+
* Current step (1-based)
|
|
22
|
+
*/
|
|
23
|
+
currentStep?: number;
|
|
24
|
+
/**
|
|
25
|
+
* Total number of steps
|
|
26
|
+
*/
|
|
27
|
+
totalSteps?: number;
|
|
28
|
+
/**
|
|
29
|
+
* Logo image source
|
|
30
|
+
*/
|
|
31
|
+
logoSrc?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Welcome heading text
|
|
34
|
+
*/
|
|
35
|
+
welcomeHeading?: string;
|
|
36
|
+
/**
|
|
37
|
+
* Welcome subtext
|
|
38
|
+
*/
|
|
39
|
+
welcomeSubtext?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Main headline question
|
|
42
|
+
*/
|
|
43
|
+
headline?: string;
|
|
44
|
+
/**
|
|
45
|
+
* List of radio options
|
|
46
|
+
*/
|
|
47
|
+
radioOptions?: OnboardingRadioOption[];
|
|
48
|
+
/**
|
|
49
|
+
* Selected radio option value
|
|
50
|
+
*/
|
|
51
|
+
selectedRadioOption?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Radio option change handler
|
|
54
|
+
*/
|
|
55
|
+
onRadioOptionChange?: (value: string) => void;
|
|
56
|
+
/**
|
|
57
|
+
* List of checkbox chip options
|
|
58
|
+
*/
|
|
59
|
+
checkboxOptions?: CheckboxChipOption[];
|
|
60
|
+
/**
|
|
61
|
+
* Selected checkbox chip values
|
|
62
|
+
*/
|
|
63
|
+
selectedCheckboxOptions?: string[];
|
|
64
|
+
/**
|
|
65
|
+
* Checkbox chip change handler
|
|
66
|
+
*/
|
|
67
|
+
onCheckboxOptionsChange?: (values: string[]) => void;
|
|
68
|
+
/**
|
|
69
|
+
* Yes/No question text
|
|
70
|
+
*/
|
|
71
|
+
yesNoQuestion?: string;
|
|
72
|
+
/**
|
|
73
|
+
* Yes/No answer
|
|
74
|
+
*/
|
|
75
|
+
yesNoAnswer?: "yes" | "no" | null;
|
|
76
|
+
/**
|
|
77
|
+
* Yes/No answer change handler
|
|
78
|
+
*/
|
|
79
|
+
onYesNoChange?: (answer: "yes" | "no") => void;
|
|
80
|
+
/**
|
|
81
|
+
* Second question text (shown when Yes is selected)
|
|
82
|
+
*/
|
|
83
|
+
secondQuestion?: string;
|
|
84
|
+
/**
|
|
85
|
+
* First section question text
|
|
86
|
+
*/
|
|
87
|
+
firstSectionQuestion?: string;
|
|
88
|
+
/**
|
|
89
|
+
* First section checkbox options
|
|
90
|
+
*/
|
|
91
|
+
firstSectionOptions?: CheckboxChipOption[];
|
|
92
|
+
/**
|
|
93
|
+
* Selected first section option value (single selection)
|
|
94
|
+
*/
|
|
95
|
+
selectedFirstOption?: string;
|
|
96
|
+
/**
|
|
97
|
+
* First section option change handler
|
|
98
|
+
*/
|
|
99
|
+
onFirstOptionChange?: (value: string) => void;
|
|
100
|
+
/**
|
|
101
|
+
* Second section question text
|
|
102
|
+
*/
|
|
103
|
+
secondSectionQuestion?: string;
|
|
104
|
+
/**
|
|
105
|
+
* Second section checkbox options
|
|
106
|
+
*/
|
|
107
|
+
secondSectionOptions?: CheckboxChipOption[];
|
|
108
|
+
/**
|
|
109
|
+
* Selected second section option value (single selection)
|
|
110
|
+
*/
|
|
111
|
+
selectedSecondOption?: string;
|
|
112
|
+
/**
|
|
113
|
+
* Second section option change handler
|
|
114
|
+
*/
|
|
115
|
+
onSecondOptionChange?: (value: string) => void;
|
|
116
|
+
/**
|
|
117
|
+
* Icon name for launcher variation (Solar icon)
|
|
118
|
+
*/
|
|
119
|
+
launcherIcon?: string;
|
|
120
|
+
/**
|
|
121
|
+
* Headline text for launcher variation
|
|
122
|
+
*/
|
|
123
|
+
launcherHeadline?: string;
|
|
124
|
+
/**
|
|
125
|
+
* Main text below headline for launcher variation
|
|
126
|
+
*/
|
|
127
|
+
launcherText?: string;
|
|
128
|
+
/**
|
|
129
|
+
* Subtext/description for launcher variation
|
|
130
|
+
*/
|
|
131
|
+
launcherSubtext?: string;
|
|
132
|
+
/**
|
|
133
|
+
* Title for the info box
|
|
134
|
+
*/
|
|
135
|
+
infoBoxTitle?: string;
|
|
136
|
+
/**
|
|
137
|
+
* Items to display in the info box
|
|
138
|
+
*/
|
|
139
|
+
infoBoxItems?: OnboardingInfoItem[];
|
|
140
|
+
/**
|
|
141
|
+
* Label for the CTA box
|
|
142
|
+
*/
|
|
143
|
+
ctaLabel?: string;
|
|
144
|
+
/**
|
|
145
|
+
* Heading for the CTA box
|
|
146
|
+
*/
|
|
147
|
+
ctaHeading?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Description for the CTA box
|
|
150
|
+
*/
|
|
151
|
+
ctaDescription?: string;
|
|
152
|
+
/**
|
|
153
|
+
* Button text for the CTA box
|
|
154
|
+
*/
|
|
155
|
+
ctaButtonText?: string;
|
|
156
|
+
/**
|
|
157
|
+
* CTA button click handler
|
|
158
|
+
*/
|
|
159
|
+
onCTAClick?: () => void;
|
|
160
|
+
/**
|
|
161
|
+
* Background image for artwork variation
|
|
162
|
+
*/
|
|
163
|
+
artworkBackgroundImage?: string;
|
|
164
|
+
/**
|
|
165
|
+
* Main artwork image for artwork variation
|
|
166
|
+
*/
|
|
167
|
+
artworkImage?: string;
|
|
168
|
+
/**
|
|
169
|
+
* Continue button click handler
|
|
170
|
+
*/
|
|
171
|
+
onContinue?: () => void;
|
|
172
|
+
/**
|
|
173
|
+
* Back button click handler
|
|
174
|
+
*/
|
|
175
|
+
onBack?: () => void;
|
|
176
|
+
/**
|
|
177
|
+
* Continue button disabled state
|
|
178
|
+
*/
|
|
179
|
+
continueDisabled?: boolean;
|
|
180
|
+
/**
|
|
181
|
+
* Custom className
|
|
182
|
+
*/
|
|
183
|
+
className?: string;
|
|
184
|
+
}
|
|
185
|
+
export declare const OnboardingTemplate: React.ForwardRefExoticComponent<OnboardingTemplateProps & React.RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import type { StoryObj } from "@storybook/react-vite";
|
|
3
|
+
declare const meta: {
|
|
4
|
+
title: string;
|
|
5
|
+
component: React.ForwardRefExoticComponent<import("./OnboardingTemplate").OnboardingTemplateProps & React.RefAttributes<HTMLDivElement>>;
|
|
6
|
+
parameters: {
|
|
7
|
+
layout: string;
|
|
8
|
+
};
|
|
9
|
+
tags: string[];
|
|
10
|
+
};
|
|
11
|
+
export default meta;
|
|
12
|
+
type Story = StoryObj<typeof meta>;
|
|
13
|
+
export declare const Variation1_Radio: Story;
|
|
14
|
+
export declare const Variation2_CheckboxNoIcon: Story;
|
|
15
|
+
export declare const Variation1_NoSelection: Story;
|
|
16
|
+
export declare const Variation2_NoSelection: Story;
|
|
17
|
+
export declare const Variation3_CheckboxWithIcon: Story;
|
|
18
|
+
export declare const Variation3_NoSelection: Story;
|
|
19
|
+
export declare const Variation4_ButtonsPlusRadio: Story;
|
|
20
|
+
export declare const Variation4_NoState: Story;
|
|
21
|
+
export declare const Variation4_NoAnswer: Story;
|
|
22
|
+
export declare const Variation5_KnowYourCustomer: Story;
|
|
23
|
+
export declare const Variation5_NoSelection: Story;
|
|
24
|
+
export declare const Variation5_PartialSelection: Story;
|
|
25
|
+
export declare const Variation6_Launcher: Story;
|
|
26
|
+
export declare const Variation7_Artwork: Story;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Design System
|
|
3
|
+
* Main entry point for the design system package
|
|
4
|
+
*/
|
|
5
|
+
export * from "./tokens";
|
|
6
|
+
export * from "./theme";
|
|
7
|
+
export * from "./components";
|
|
8
|
+
export { Theme as RadixTheme } from "@radix-ui/themes";
|
|
9
|
+
export declare const stylesheets: {
|
|
10
|
+
readonly radixTheme: "@radix-ui/themes/styles.css";
|
|
11
|
+
readonly atoms: {
|
|
12
|
+
readonly button: "./components/atoms/Button/Button.scss";
|
|
13
|
+
readonly input: "./components/atoms/Input/Input.scss";
|
|
14
|
+
readonly switch: "./components/atoms/Switch/Switch.scss";
|
|
15
|
+
readonly checkbox: "./components/atoms/Checkbox/Checkbox.scss";
|
|
16
|
+
};
|
|
17
|
+
readonly molecules: {
|
|
18
|
+
readonly select: "./components/molecules/Select/Select.scss";
|
|
19
|
+
readonly menuItem: "./components/molecules/MenuItem/MenuItem.scss";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Provider Component
|
|
3
|
+
* Wraps the application and provides theme context
|
|
4
|
+
*/
|
|
5
|
+
import React from "react";
|
|
6
|
+
import { Theme } from "./theme";
|
|
7
|
+
interface ThemeContextValue {
|
|
8
|
+
theme: Theme;
|
|
9
|
+
}
|
|
10
|
+
export declare const useTheme: () => ThemeContextValue;
|
|
11
|
+
interface ThemeProviderProps {
|
|
12
|
+
children: React.ReactNode;
|
|
13
|
+
theme?: Theme;
|
|
14
|
+
/**
|
|
15
|
+
* Radix UI Theme appearance
|
|
16
|
+
*/
|
|
17
|
+
appearance?: "light" | "dark" | "inherit";
|
|
18
|
+
/**
|
|
19
|
+
* Radix UI Theme accent color
|
|
20
|
+
*/
|
|
21
|
+
accentColor?: "blue" | "cyan" | "green" | "orange" | "pink" | "purple" | "red" | "yellow";
|
|
22
|
+
/**
|
|
23
|
+
* Radix UI Theme gray scale
|
|
24
|
+
*/
|
|
25
|
+
grayColor?: "gray" | "mauve" | "slate" | "sage" | "olive" | "sand";
|
|
26
|
+
/**
|
|
27
|
+
* Radix UI Theme radius
|
|
28
|
+
*/
|
|
29
|
+
radius?: "none" | "small" | "medium" | "large" | "full";
|
|
30
|
+
/**
|
|
31
|
+
* Radix UI Theme scaling
|
|
32
|
+
*/
|
|
33
|
+
scaling?: "90%" | "95%" | "100%" | "105%" | "110%";
|
|
34
|
+
}
|
|
35
|
+
export declare const ThemeProvider: React.FC<ThemeProviderProps>;
|
|
36
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Theme Configuration
|
|
3
|
+
* Defines the theme structure and allows customization
|
|
4
|
+
*/
|
|
5
|
+
import { tokens } from "../tokens";
|
|
6
|
+
export interface ThemeConfig {
|
|
7
|
+
colors: typeof tokens.colors;
|
|
8
|
+
spacing: typeof tokens.spacing;
|
|
9
|
+
radii: typeof tokens.radii;
|
|
10
|
+
typography: typeof tokens.typography;
|
|
11
|
+
shadows: typeof tokens.shadows;
|
|
12
|
+
}
|
|
13
|
+
export declare const defaultTheme: ThemeConfig;
|
|
14
|
+
/**
|
|
15
|
+
* Create a custom theme by merging with the default theme
|
|
16
|
+
*/
|
|
17
|
+
export declare function createTheme(customTheme?: Partial<ThemeConfig>): ThemeConfig;
|
|
18
|
+
export type Theme = ThemeConfig;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Color Token Types and Utilities
|
|
3
|
+
*
|
|
4
|
+
* Centralized color token type definitions and utilities for the design system.
|
|
5
|
+
* All color tokens are based on Radix UI CSS variables with support for:
|
|
6
|
+
* - Light/Dark mode (automatic via Radix UI CSS variables)
|
|
7
|
+
* - Alpha transparency variants (a1-a12)
|
|
8
|
+
* - Full color scales (1-12) for each color family
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* All available color tokens in the design system
|
|
12
|
+
*
|
|
13
|
+
* Color Scale System:
|
|
14
|
+
* - 1-12: Solid colors from lightest to darkest
|
|
15
|
+
* - a1-a12: Alpha/transparent variants from most transparent to most opaque
|
|
16
|
+
*
|
|
17
|
+
* Light/Dark Mode:
|
|
18
|
+
* - Radix UI CSS variables automatically adapt to light/dark mode
|
|
19
|
+
* - No separate light/dark tokens needed - handled by CSS variable values
|
|
20
|
+
*/
|
|
21
|
+
export type ColorToken = "gray-1" | "gray-2" | "gray-3" | "gray-4" | "gray-5" | "gray-6" | "gray-7" | "gray-8" | "gray-9" | "gray-10" | "gray-11" | "gray-12" | "gray-a1" | "gray-a2" | "gray-a3" | "gray-a4" | "gray-a5" | "gray-a6" | "gray-a7" | "gray-a8" | "gray-a9" | "gray-a10" | "gray-a11" | "gray-a12" | "blue-1" | "blue-2" | "blue-3" | "blue-4" | "blue-5" | "blue-6" | "blue-7" | "blue-8" | "blue-9" | "blue-10" | "blue-11" | "blue-12" | "blue-a1" | "blue-a2" | "blue-a3" | "blue-a4" | "blue-a5" | "blue-a6" | "blue-a7" | "blue-a8" | "blue-a9" | "blue-a10" | "blue-a11" | "blue-a12" | "green-1" | "green-2" | "green-3" | "green-4" | "green-5" | "green-6" | "green-7" | "green-8" | "green-9" | "green-10" | "green-11" | "green-12" | "green-a1" | "green-a2" | "green-a3" | "green-a4" | "green-a5" | "green-a6" | "green-a7" | "green-a8" | "green-a9" | "green-a10" | "green-a11" | "green-a12" | "red-1" | "red-2" | "red-3" | "red-4" | "red-5" | "red-6" | "red-7" | "red-8" | "red-9" | "red-10" | "red-11" | "red-12" | "red-a1" | "red-a2" | "red-a3" | "red-a4" | "red-a5" | "red-a6" | "red-a7" | "red-a8" | "red-a9" | "red-a10" | "red-a11" | "red-a12" | "orange-1" | "orange-2" | "orange-3" | "orange-4" | "orange-5" | "orange-6" | "orange-7" | "orange-8" | "orange-9" | "orange-10" | "orange-11" | "orange-12" | "orange-a1" | "orange-a2" | "orange-a3" | "orange-a4" | "orange-a5" | "orange-a6" | "orange-a7" | "orange-a8" | "orange-a9" | "orange-a10" | "orange-a11" | "orange-a12" | "purple-1" | "purple-2" | "purple-3" | "purple-4" | "purple-5" | "purple-6" | "purple-7" | "purple-8" | "purple-9" | "purple-10" | "purple-11" | "purple-12" | "purple-a1" | "purple-a2" | "purple-a3" | "purple-a4" | "purple-a5" | "purple-a6" | "purple-a7" | "purple-a8" | "purple-a9" | "purple-a10" | "purple-a11" | "purple-a12" | "cyan-1" | "cyan-2" | "cyan-3" | "cyan-4" | "cyan-5" | "cyan-6" | "cyan-7" | "cyan-8" | "cyan-9" | "cyan-10" | "cyan-11" | "cyan-12" | "cyan-a1" | "cyan-a2" | "cyan-a3" | "cyan-a4" | "cyan-a5" | "cyan-a6" | "cyan-a7" | "cyan-a8" | "cyan-a9" | "cyan-a10" | "cyan-a11" | "cyan-a12" | "pink-1" | "pink-2" | "pink-3" | "pink-4" | "pink-5" | "pink-6" | "pink-7" | "pink-8" | "pink-9" | "pink-10" | "pink-11" | "pink-12" | "pink-a1" | "pink-a2" | "pink-a3" | "pink-a4" | "pink-a5" | "pink-a6" | "pink-a7" | "pink-a8" | "pink-a9" | "pink-a10" | "pink-a11" | "pink-a12" | "amber-1" | "amber-2" | "amber-3" | "amber-4" | "amber-5" | "amber-6" | "amber-7" | "amber-8" | "amber-9" | "amber-10" | "amber-11" | "amber-12" | "amber-a1" | "amber-a2" | "amber-a3" | "amber-a4" | "amber-a5" | "amber-a6" | "amber-a7" | "amber-a8" | "amber-a9" | "amber-a10" | "amber-a11" | "amber-a12" | "accent-1" | "accent-2" | "accent-3" | "accent-4" | "accent-5" | "accent-6" | "accent-7" | "accent-8" | "accent-9" | "accent-10" | "accent-11" | "accent-12" | "accent-a1" | "accent-a2" | "accent-a3" | "accent-a4" | "accent-a5" | "accent-a6" | "accent-a7" | "accent-a8" | "accent-a9" | "accent-a10" | "accent-a11" | "accent-a12";
|
|
22
|
+
/**
|
|
23
|
+
* Convert a color token to a CSS variable reference
|
|
24
|
+
*
|
|
25
|
+
* @param token - The color token to convert
|
|
26
|
+
* @returns CSS variable reference string (e.g., 'var(--blue-9)')
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* ```ts
|
|
30
|
+
* const bgColor = getColorTokenVar('blue-9'); // 'var(--blue-9)'
|
|
31
|
+
* style={{ backgroundColor: bgColor }}
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare const getColorTokenVar: (token: ColorToken) => string;
|
|
35
|
+
/**
|
|
36
|
+
* Type guard to check if a string is a valid color token
|
|
37
|
+
*
|
|
38
|
+
* @param value - The value to check
|
|
39
|
+
* @returns True if the value is a valid ColorToken
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* if (isColorToken('blue-9')) {
|
|
44
|
+
* // TypeScript knows this is a ColorToken
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare const isColorToken: (value: string) => value is ColorToken;
|
|
49
|
+
/**
|
|
50
|
+
* Color families available in the design system
|
|
51
|
+
*/
|
|
52
|
+
export declare const COLOR_FAMILIES: readonly ["gray", "blue", "green", "red", "orange", "purple", "cyan", "pink", "amber", "accent"];
|
|
53
|
+
export type ColorFamily = (typeof COLOR_FAMILIES)[number];
|
|
54
|
+
/**
|
|
55
|
+
* Color scale levels (1-12)
|
|
56
|
+
*/
|
|
57
|
+
export declare const COLOR_SCALES: readonly [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
|
|
58
|
+
export type ColorScaleLevel = (typeof COLOR_SCALES)[number];
|