@liguelead/design-system 0.0.28 → 0.0.30

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 (37) hide show
  1. package/components/Alert/Alert.stories.tsx +60 -0
  2. package/components/Button/Button.appearance.ts +2 -2
  3. package/components/Button/Button.stories.tsx +75 -0
  4. package/components/Checkbox/Checkbox.stories.tsx +42 -0
  5. package/components/Combobox/Combobox.stories.tsx +112 -0
  6. package/components/Combobox/Combobox.styles.ts +7 -3
  7. package/components/Combobox/Combobox.tsx +3 -10
  8. package/components/DatePicker/DatePicker.stories.tsx +108 -0
  9. package/components/DatePicker/DatePicker.styles.ts +394 -50
  10. package/components/DatePicker/DatePicker.tsx +353 -118
  11. package/components/DatePicker/DatePicker.types.ts +40 -24
  12. package/components/Dialog/Dialog.stories.tsx +63 -0
  13. package/components/IconButton/IconButton.stories.tsx +49 -0
  14. package/components/InputOpt/InputOpt.stories.tsx +61 -0
  15. package/components/LinkButton/LinkButton.stories.tsx +88 -0
  16. package/components/PageWrapper/PageWrapper.stories.tsx +153 -0
  17. package/components/RadioButton/RadioButton.stories.tsx +70 -0
  18. package/components/RequiredAsterisk/RequiredAsterisk.stories.tsx +44 -0
  19. package/components/SegmentedButton/SegmentedButton.stories.tsx +182 -0
  20. package/components/Select/Select.stories.tsx +63 -0
  21. package/components/Table/Table.stories.tsx +53 -0
  22. package/components/Table/Table.styles.ts +76 -0
  23. package/components/Table/Table.tsx +157 -0
  24. package/components/Table/Table.types.ts +16 -0
  25. package/components/Table/index.ts +1 -0
  26. package/components/Table/utils/getPageNumbers.ts +35 -0
  27. package/components/Table/utils/index.ts +1 -0
  28. package/components/Table/utils/types.ts +4 -0
  29. package/components/Text/Text.stories.tsx +61 -0
  30. package/components/Text/Text.types.ts +1 -0
  31. package/components/TextField/TextField.stories.tsx +84 -0
  32. package/components/Toaster/Toaster.stories.tsx +129 -0
  33. package/components/Toaster/Toaster.ts +19 -0
  34. package/components/Toaster/ToasterProvider.tsx +9 -1
  35. package/components/Wizard/Wizard.stories.tsx +186 -0
  36. package/components/index.ts +1 -0
  37. package/package.json +16 -3
@@ -0,0 +1,186 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite'
2
+ import Wizard from './Wizard'
3
+ import Button from '../Button/Button'
4
+ import Text from '../Text/Text'
5
+ import TextField from '../TextField/TextField'
6
+
7
+ const meta: Meta<typeof Wizard> = {
8
+ title: 'Navigation/Wizard',
9
+ component: Wizard,
10
+ parameters: {
11
+ layout: 'centered',
12
+ },
13
+ tags: ['autodocs'],
14
+ argTypes: {
15
+ menuNavigation: {
16
+ control: 'boolean',
17
+ description: 'Allow navigation through menu items'
18
+ }
19
+ },
20
+ }
21
+
22
+ export default meta
23
+ type Story = StoryObj<typeof meta>
24
+
25
+ export const Default: Story = {
26
+ args: {
27
+ children: [
28
+ <Wizard.Step key="step1" label="Personal Info">
29
+ <div>
30
+ <Text size="heading03" className='mb-16'>Personal Information</Text>
31
+ <Text>Please enter your personal details.</Text>
32
+ <div style={{ marginTop: '16px', display: 'flex', flexDirection: 'column', gap: '12px' }}>
33
+ <TextField label="First Name" placeholder="Enter your first name" />
34
+ <TextField label="Last Name" placeholder="Enter your last name" />
35
+ <TextField label="Email" type="email" placeholder="Enter your email" />
36
+ </div>
37
+ </div>
38
+ </Wizard.Step>,
39
+ <Wizard.Step key="step2" label="Address">
40
+ <div>
41
+ <Text size="heading03" className='mb-16'>Address Information</Text>
42
+ <Text>Please enter your address details.</Text>
43
+ <div style={{ marginTop: '16px', display: 'flex', flexDirection: 'column', gap: '12px' }}>
44
+ <TextField label="Street Address" placeholder="Enter your street address" />
45
+ <TextField label="City" placeholder="Enter your city" />
46
+ <TextField label="ZIP Code" placeholder="Enter your ZIP code" />
47
+ </div>
48
+ </div>
49
+ </Wizard.Step>,
50
+ <Wizard.Step key="step3" label="Review">
51
+ <div>
52
+ <Text size="heading03" className='mb-16'>Review & Submit</Text>
53
+ <Text>Please review your information before submitting.</Text>
54
+ <div style={{ marginTop: '16px', padding: '16px', backgroundColor: '#f5f5f5', borderRadius: '4px' }}>
55
+ <Text size="body02">Review your entered information and click submit to complete the process.</Text>
56
+ </div>
57
+ </div>
58
+ </Wizard.Step>
59
+ ]
60
+ },
61
+ }
62
+
63
+ export const WithoutMenuNavigation: Story = {
64
+ args: {
65
+ menuNavigation: false,
66
+ children: [
67
+ <Wizard.Step key="step1" label="Step 1">
68
+ <div>
69
+ <Text size="heading03" className='mb-16'>Step 1: Getting Started</Text>
70
+ <Text>This wizard doesn't allow menu navigation. You must go through steps sequentially.</Text>
71
+ </div>
72
+ </Wizard.Step>,
73
+ <Wizard.Step key="step2" label="Step 2">
74
+ <div>
75
+ <Text size="heading03" className='mb-16'>Step 2: Configuration</Text>
76
+ <Text>Configure your settings in this step.</Text>
77
+ </div>
78
+ </Wizard.Step>,
79
+ <Wizard.Step key="step3" label="Step 3">
80
+ <div>
81
+ <Text size="heading03" className='mb-16'>Step 3: Completion</Text>
82
+ <Text>Final step of the wizard.</Text>
83
+ </div>
84
+ </Wizard.Step>
85
+ ]
86
+ },
87
+ }
88
+
89
+ export const AccountSetup: Story = {
90
+ render: () => (
91
+ <Wizard>
92
+ <Wizard.Step label="Account Details">
93
+ <div>
94
+ <Text size="heading02" className='mb-8'>Create Your Account</Text>
95
+ <Text className='mb-24'>Enter your basic account information.</Text>
96
+
97
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
98
+ <TextField label="Username" placeholder="Choose a username" />
99
+ <TextField label="Email Address" type="email" placeholder="your@email.com" />
100
+ <TextField label="Password" type="password" placeholder="Create a strong password" />
101
+ <TextField label="Confirm Password" type="password" placeholder="Confirm your password" />
102
+ </div>
103
+ </div>
104
+ </Wizard.Step>
105
+
106
+ <Wizard.Step label="Profile Setup">
107
+ <div>
108
+ <Text size="heading02" className='mb-8'>Profile Information</Text>
109
+ <Text className='mb-24'>Tell us more about yourself.</Text>
110
+
111
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
112
+ <TextField label="Full Name" placeholder="Enter your full name" />
113
+ <TextField label="Company" placeholder="Your company name (optional)" />
114
+ <TextField label="Phone Number" placeholder="Your phone number" />
115
+ </div>
116
+ </div>
117
+ </Wizard.Step>
118
+
119
+ <Wizard.Step label="Preferences">
120
+ <div>
121
+ <Text size="heading02" className='mb-8'>Set Your Preferences</Text>
122
+ <Text className='mb-24'>Customize your experience.</Text>
123
+
124
+ <div style={{ display: 'flex', flexDirection: 'column', gap: '16px' }}>
125
+ <div>
126
+ <Text tag="label">Notification Preferences</Text>
127
+ <div style={{ marginTop: '8px', display: 'flex', flexDirection: 'column', gap: '8px' }}>
128
+ <label style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
129
+ <input type="checkbox" />
130
+ <Text size="body02">Email notifications</Text>
131
+ </label>
132
+ <label style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
133
+ <input type="checkbox" />
134
+ <Text size="body02">SMS notifications</Text>
135
+ </label>
136
+ </div>
137
+ </div>
138
+ </div>
139
+ </div>
140
+ </Wizard.Step>
141
+
142
+ <Wizard.Step label="Complete">
143
+ <div>
144
+ <Text size="heading02" className='mb-8'>Account Created Successfully!</Text>
145
+ <Text className='mb-24'>Your account has been set up and is ready to use.</Text>
146
+
147
+ <div style={{
148
+ padding: '20px',
149
+ backgroundColor: '#f0f9ff',
150
+ border: '1px solid #0ea5e9',
151
+ borderRadius: '8px',
152
+ marginBottom: '24px'
153
+ }}>
154
+ <Text size="body01">
155
+ ✓ Account created successfully<br/>
156
+ ✓ Profile information saved<br/>
157
+ ✓ Preferences configured<br/>
158
+ ✓ Welcome email sent
159
+ </Text>
160
+ </div>
161
+
162
+ <Button>Get Started</Button>
163
+ </div>
164
+ </Wizard.Step>
165
+ </Wizard>
166
+ ),
167
+ }
168
+
169
+ export const ShortWizard: Story = {
170
+ args: {
171
+ children: [
172
+ <Wizard.Step key="step1" label="Start">
173
+ <div>
174
+ <Text size="heading03" className='mb-16'>Welcome</Text>
175
+ <Text>This is a simple two-step wizard.</Text>
176
+ </div>
177
+ </Wizard.Step>,
178
+ <Wizard.Step key="step2" label="Finish">
179
+ <div>
180
+ <Text size="heading03" className='mb-16'>Complete</Text>
181
+ <Text>You've reached the end of the wizard!</Text>
182
+ </div>
183
+ </Wizard.Step>
184
+ ]
185
+ },
186
+ }
@@ -16,3 +16,4 @@ export { default as RadioButton } from './RadioButton'
16
16
  export { ToastProvider, Toaster } from './Toaster'
17
17
  export { default as Dialog } from './Dialog'
18
18
  export { Combobox } from './Combobox'
19
+ export { default as Table } from './Table'
package/package.json CHANGED
@@ -1,19 +1,30 @@
1
1
  {
2
2
  "name": "@liguelead/design-system",
3
- "version": "0.0.28",
3
+ "version": "0.0.30",
4
4
  "type": "module",
5
5
  "main": "components/index.ts",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
9
+ "peerDependencies": {
10
+ "react": ">=18.0.0",
11
+ "react-dom": ">=18.0.0",
12
+ "styled-components": ">=6.0.0",
13
+ "react-hook-form": ">=7.0.0"
14
+ },
9
15
  "dependencies": {
10
16
  "@liguelead/foundation": "^0.0.16",
11
17
  "@phosphor-icons/react": "^2.1.7",
12
18
  "@radix-ui/react-dropdown-menu": "^2.1.6",
19
+ "react-day-picker": "^9.12.0",
13
20
  "@radix-ui/react-select": "^2.1.6",
21
+ "@radix-ui/react-popover": "^1.1.15",
22
+ "@radix-ui/react-dialog": "^1.1.15",
14
23
  "lodash": "^4.17.21",
15
24
  "react-datepicker": "^7.6.0",
16
- "cmdk": "^1.1.1"
25
+ "react-toastify": "^11.0.5",
26
+ "cmdk": "^1.1.1",
27
+ "date-fns": "^2.30.0"
17
28
  },
18
29
  "scripts": {
19
30
  "lint": "eslint ."
@@ -34,8 +45,10 @@
34
45
  "eslint-plugin-react-hooks": "^5.0.0",
35
46
  "eslint-plugin-react-refresh": "^0.4.14",
36
47
  "globals": "^15.11.0",
37
- "react": "^18.3.1",
48
+ "react": "^19.2.0",
49
+ "react-dom": "^19.2.0",
38
50
  "styled-components": "6.1.13",
51
+ "react-hook-form": "^7.53.1",
39
52
  "typescript": "5.6.2",
40
53
  "typescript-eslint": "^8.11.0",
41
54
  "vite-tsconfig-paths": "^5.1.3"