@wealthx/shadcn 0.0.2 → 1.0.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/.turbo/turbo-build.log +135 -11
- package/CHANGELOG.md +6 -0
- package/CHANGES.md +345 -0
- package/dist/chunk-2WZVSBAY.mjs +232 -0
- package/dist/chunk-2Y7YJKPE.mjs +47 -0
- package/dist/chunk-3U7SD3MS.mjs +55 -0
- package/dist/chunk-3VQNJ235.mjs +114 -0
- package/dist/chunk-55CEW76V.mjs +35 -0
- package/dist/chunk-6AFMNC42.mjs +146 -0
- package/dist/chunk-6OJF6XRN.mjs +117 -0
- package/dist/chunk-7LDIMXGM.mjs +181 -0
- package/dist/chunk-AMJ23O53.mjs +122 -0
- package/dist/chunk-BBJBJSXQ.mjs +44 -0
- package/dist/chunk-BGP2N52Z.mjs +126 -0
- package/dist/chunk-BMFN37JH.mjs +41 -0
- package/dist/chunk-CGOKTPXU.mjs +79 -0
- package/dist/chunk-CZ3BW5GL.mjs +81 -0
- package/dist/chunk-DBHJ5KC3.mjs +55 -0
- package/dist/chunk-DDPA2XXS.mjs +97 -0
- package/dist/chunk-DS2AMHN2.mjs +30 -0
- package/dist/chunk-E3K6O4FZ.mjs +57 -0
- package/dist/chunk-FWCSY2DS.mjs +37 -0
- package/dist/chunk-GPRJQ24C.mjs +28 -0
- package/dist/chunk-HS7TFG7V.mjs +24 -0
- package/dist/chunk-HUVTPUV2.mjs +256 -0
- package/dist/chunk-IAOOZCUY.mjs +90 -0
- package/dist/chunk-JF4PHPD5.mjs +111 -0
- package/dist/chunk-JU2RUWHF.mjs +123 -0
- package/dist/chunk-KKHTJNMM.mjs +86 -0
- package/dist/chunk-MJIEMGRD.mjs +266 -0
- package/dist/chunk-MKFL5MNH.mjs +372 -0
- package/dist/chunk-MQ72DIBH.mjs +105 -0
- package/dist/chunk-NGYG2EA6.mjs +148 -0
- package/dist/chunk-NWZ46DJL.mjs +213 -0
- package/dist/chunk-OXQQNQZI.mjs +75 -0
- package/dist/chunk-PMKODV6M.mjs +161 -0
- package/dist/chunk-QOJ2DQD6.mjs +57 -0
- package/dist/chunk-RL772EH7.mjs +126 -0
- package/dist/chunk-SLWCCURD.mjs +99 -0
- package/dist/chunk-V7CNWJT3.mjs +10 -0
- package/dist/chunk-VG6UF6UT.mjs +68 -0
- package/dist/chunk-VYMHBV6D.mjs +123 -0
- package/dist/chunk-VZ2NR7L3.mjs +195 -0
- package/dist/chunk-YN5SYTOO.mjs +117 -0
- package/dist/chunk-Z3MK2KKZ.mjs +83 -0
- package/dist/chunk-ZN2QKLF6.mjs +187 -0
- package/dist/chunk-ZZV5JVNW.mjs +34 -0
- package/dist/components/ui/accordion.js +142 -0
- package/dist/components/ui/accordion.mjs +14 -0
- package/dist/components/ui/alert-dialog.js +413 -0
- package/dist/components/ui/alert-dialog.mjs +34 -0
- package/dist/components/ui/alert.js +134 -0
- package/dist/components/ui/alert.mjs +12 -0
- package/dist/components/ui/avatar.js +173 -0
- package/dist/components/ui/avatar.mjs +18 -0
- package/dist/components/ui/badge.js +163 -0
- package/dist/components/ui/badge.mjs +11 -0
- package/dist/components/ui/button.js +198 -0
- package/dist/components/ui/button.mjs +11 -0
- package/dist/components/ui/calendar.js +408 -0
- package/dist/components/ui/calendar.mjs +12 -0
- package/dist/components/ui/card.js +156 -0
- package/dist/components/ui/card.mjs +20 -0
- package/dist/components/ui/checkbox.js +166 -0
- package/dist/components/ui/checkbox.mjs +11 -0
- package/dist/components/ui/chip.js +199 -0
- package/dist/components/ui/chip.mjs +10 -0
- package/dist/components/ui/data-table.js +925 -0
- package/dist/components/ui/data-table.mjs +29 -0
- package/dist/components/ui/date-picker.js +561 -0
- package/dist/components/ui/date-picker.mjs +15 -0
- package/dist/components/ui/dialog.js +378 -0
- package/dist/components/ui/dialog.mjs +30 -0
- package/dist/components/ui/drawer.js +213 -0
- package/dist/components/ui/drawer.mjs +28 -0
- package/dist/components/ui/dropdown-menu.js +338 -0
- package/dist/components/ui/dropdown-menu.mjs +38 -0
- package/dist/components/ui/empty.js +173 -0
- package/dist/components/ui/empty.mjs +18 -0
- package/dist/components/ui/field.js +359 -0
- package/dist/components/ui/field.mjs +28 -0
- package/dist/components/ui/input-group.js +406 -0
- package/dist/components/ui/input-group.mjs +22 -0
- package/dist/components/ui/input-otp.js +149 -0
- package/dist/components/ui/input-otp.mjs +14 -0
- package/dist/components/ui/input.js +81 -0
- package/dist/components/ui/input.mjs +8 -0
- package/dist/components/ui/label.js +85 -0
- package/dist/components/ui/label.mjs +8 -0
- package/dist/components/ui/pagination.js +333 -0
- package/dist/components/ui/pagination.mjs +22 -0
- package/dist/components/ui/popover.js +167 -0
- package/dist/components/ui/popover.mjs +22 -0
- package/dist/components/ui/progress.js +97 -0
- package/dist/components/ui/progress.mjs +8 -0
- package/dist/components/ui/radio-group.js +178 -0
- package/dist/components/ui/radio-group.mjs +12 -0
- package/dist/components/ui/select.js +262 -0
- package/dist/components/ui/select.mjs +28 -0
- package/dist/components/ui/separator.js +86 -0
- package/dist/components/ui/separator.mjs +8 -0
- package/dist/components/ui/sheet.js +227 -0
- package/dist/components/ui/sheet.mjs +26 -0
- package/dist/components/ui/skeleton.js +75 -0
- package/dist/components/ui/skeleton.mjs +8 -0
- package/dist/components/ui/sonner.js +86 -0
- package/dist/components/ui/sonner.mjs +7 -0
- package/dist/components/ui/spinner.js +93 -0
- package/dist/components/ui/spinner.mjs +10 -0
- package/dist/components/ui/switch.js +178 -0
- package/dist/components/ui/switch.mjs +11 -0
- package/dist/components/ui/table.js +184 -0
- package/dist/components/ui/table.mjs +22 -0
- package/dist/components/ui/tabs.js +181 -0
- package/dist/components/ui/tabs.mjs +16 -0
- package/dist/components/ui/textarea.js +79 -0
- package/dist/components/ui/textarea.mjs +8 -0
- package/dist/components/ui/toggle-group.js +184 -0
- package/dist/components/ui/toggle-group.mjs +12 -0
- package/dist/components/ui/toggle.js +108 -0
- package/dist/components/ui/toggle.mjs +11 -0
- package/dist/components/ui/tooltip.js +140 -0
- package/dist/components/ui/tooltip.mjs +16 -0
- package/dist/index.js +4312 -90
- package/dist/index.mjs +459 -158
- package/dist/lib/colors.js +84 -0
- package/dist/lib/colors.mjs +13 -0
- package/dist/lib/theme-provider.js +150 -0
- package/dist/lib/theme-provider.mjs +13 -0
- package/dist/lib/typography.js +157 -0
- package/dist/lib/typography.mjs +25 -0
- package/dist/lib/utils.js +34 -0
- package/dist/lib/utils.mjs +7 -0
- package/dist/styles.css +1 -1
- package/package.json +228 -11
- package/scripts/build-css.ts +15 -9
- package/src/components/index.tsx +443 -0
- package/src/components/ui/accordion.tsx +99 -0
- package/src/components/ui/alert-dialog.tsx +239 -0
- package/src/components/ui/alert.tsx +81 -0
- package/src/components/ui/avatar.tsx +130 -0
- package/src/components/ui/badge.tsx +57 -0
- package/src/components/ui/button.tsx +69 -37
- package/src/components/ui/calendar.tsx +252 -0
- package/src/components/ui/card.tsx +106 -0
- package/src/components/ui/checkbox.tsx +111 -0
- package/src/components/ui/chip.tsx +65 -0
- package/src/components/ui/data-table.tsx +490 -0
- package/src/components/ui/date-picker.tsx +133 -0
- package/src/components/ui/dialog.tsx +195 -0
- package/src/components/ui/drawer.tsx +169 -0
- package/src/components/ui/dropdown-menu.tsx +315 -0
- package/src/components/ui/empty.tsx +128 -0
- package/src/components/ui/field.tsx +273 -0
- package/src/components/ui/input-group.tsx +190 -0
- package/src/components/ui/input-otp.tsx +90 -0
- package/src/components/ui/input.tsx +28 -0
- package/src/components/ui/label.tsx +24 -0
- package/src/components/ui/pagination.tsx +148 -0
- package/src/components/ui/popover.tsx +112 -0
- package/src/components/ui/progress.tsx +40 -0
- package/src/components/ui/radio-group.tsx +129 -0
- package/src/components/ui/select.tsx +201 -0
- package/src/components/ui/separator.tsx +26 -0
- package/src/components/ui/sheet.tsx +182 -0
- package/src/components/ui/skeleton.tsx +22 -0
- package/src/components/ui/sonner.tsx +48 -0
- package/src/components/ui/spinner.tsx +41 -0
- package/src/components/ui/switch.tsx +126 -0
- package/src/components/ui/table.tsx +143 -0
- package/src/components/ui/tabs.tsx +119 -0
- package/src/components/ui/textarea.tsx +28 -0
- package/src/components/ui/toggle-group.tsx +94 -0
- package/src/components/ui/toggle.tsx +59 -0
- package/src/components/ui/tooltip.tsx +80 -0
- package/src/index.ts +15 -3
- package/src/lib/colors.ts +74 -0
- package/src/lib/slot.tsx +68 -0
- package/src/lib/theme-provider.tsx +134 -0
- package/src/lib/typography.ts +153 -0
- package/src/lib/utils.ts +1 -1
- package/src/styles/globals.css +377 -107
- package/src/styles/styles-css.ts +1 -1
- package/tsup.config.ts +48 -2
- package/dist/index.d.mts +0 -27
- package/dist/index.d.ts +0 -27
- package/src/provider/ShadcnProvider.tsx +0 -89
- package/src/provider/index.ts +0 -2
package/.turbo/turbo-build.log
CHANGED
|
@@ -14,23 +14,147 @@ npm warn Unknown project config "auto-install-peers". This will stop working in
|
|
|
14
14
|
npm warn Unknown project config "public-hoist-pattern". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
|
|
15
15
|
[3m[1m[34m≈[39m[22m[23m tailwindcss [34mv4.2.2[39m
|
|
16
16
|
|
|
17
|
-
Done in [
|
|
17
|
+
Done in [33m491ms[39m
|
|
18
18
|
Built dist/styles.css and src/styles/styles-css.ts
|
|
19
19
|
warning package.json: No license field
|
|
20
20
|
$ tsup
|
|
21
|
-
[34mCLI[39m Building entry: src/index.ts
|
|
21
|
+
[34mCLI[39m Building entry: src/index.ts, src/lib/colors.ts, src/lib/theme-provider.tsx, src/lib/typography.ts, src/lib/utils.ts, src/components/ui/accordion.tsx, src/components/ui/alert-dialog.tsx, src/components/ui/alert.tsx, src/components/ui/avatar.tsx, src/components/ui/badge.tsx, src/components/ui/button.tsx, src/components/ui/calendar.tsx, src/components/ui/card.tsx, src/components/ui/checkbox.tsx, src/components/ui/chip.tsx, src/components/ui/data-table.tsx, src/components/ui/date-picker.tsx, src/components/ui/dialog.tsx, src/components/ui/drawer.tsx, src/components/ui/dropdown-menu.tsx, src/components/ui/empty.tsx, src/components/ui/field.tsx, src/components/ui/input-group.tsx, src/components/ui/input-otp.tsx, src/components/ui/input.tsx, src/components/ui/label.tsx, src/components/ui/pagination.tsx, src/components/ui/popover.tsx, src/components/ui/progress.tsx, src/components/ui/radio-group.tsx, src/components/ui/select.tsx, src/components/ui/separator.tsx, src/components/ui/sheet.tsx, src/components/ui/skeleton.tsx, src/components/ui/sonner.tsx, src/components/ui/spinner.tsx, src/components/ui/switch.tsx, src/components/ui/table.tsx, src/components/ui/tabs.tsx, src/components/ui/textarea.tsx, src/components/ui/toggle-group.tsx, src/components/ui/toggle.tsx, src/components/ui/tooltip.tsx
|
|
22
22
|
[34mCLI[39m Using tsconfig: tsconfig.json
|
|
23
23
|
[34mCLI[39m tsup v8.5.1
|
|
24
24
|
[34mCLI[39m Using tsup config: /home/runner/work/wealthx-ui/wealthx-ui/packages/shadcn/tsup.config.ts
|
|
25
25
|
[34mCLI[39m Target: es6
|
|
26
26
|
[34mCJS[39m Build start
|
|
27
27
|
[34mESM[39m Build start
|
|
28
|
-
[
|
|
29
|
-
[
|
|
30
|
-
[32mESM[39m [1mdist/
|
|
31
|
-
[32mESM[39m
|
|
32
|
-
[
|
|
33
|
-
[
|
|
34
|
-
[
|
|
35
|
-
[
|
|
36
|
-
|
|
28
|
+
[32mESM[39m [1mdist/lib/colors.mjs [22m[32m205.00 B[39m
|
|
29
|
+
[32mESM[39m [1mdist/index.mjs [22m[32m7.84 KB[39m
|
|
30
|
+
[32mESM[39m [1mdist/chunk-DDPA2XXS.mjs [22m[32m2.45 KB[39m
|
|
31
|
+
[32mESM[39m [1mdist/chunk-3U7SD3MS.mjs [22m[32m1.74 KB[39m
|
|
32
|
+
[32mESM[39m [1mdist/chunk-CGOKTPXU.mjs [22m[32m2.24 KB[39m
|
|
33
|
+
[32mESM[39m [1mdist/chunk-PMKODV6M.mjs [22m[32m4.88 KB[39m
|
|
34
|
+
[32mESM[39m [1mdist/chunk-2Y7YJKPE.mjs [22m[32m1.24 KB[39m
|
|
35
|
+
[32mESM[39m [1mdist/chunk-BMFN37JH.mjs [22m[32m865.00 B[39m
|
|
36
|
+
[32mESM[39m [1mdist/chunk-VYMHBV6D.mjs [22m[32m3.78 KB[39m
|
|
37
|
+
[32mESM[39m [1mdist/chunk-RL772EH7.mjs [22m[32m4.04 KB[39m
|
|
38
|
+
[32mESM[39m [1mdist/chunk-BBJBJSXQ.mjs [22m[32m995.00 B[39m
|
|
39
|
+
[32mESM[39m [1mdist/chunk-JU2RUWHF.mjs [22m[32m3.88 KB[39m
|
|
40
|
+
[32mESM[39m [1mdist/chunk-AMJ23O53.mjs [22m[32m3.58 KB[39m
|
|
41
|
+
[32mESM[39m [1mdist/chunk-MQ72DIBH.mjs [22m[32m3.01 KB[39m
|
|
42
|
+
[32mESM[39m [1mdist/chunk-7LDIMXGM.mjs [22m[32m5.28 KB[39m
|
|
43
|
+
[32mESM[39m [1mdist/chunk-6AFMNC42.mjs [22m[32m4.84 KB[39m
|
|
44
|
+
[32mESM[39m [1mdist/chunk-YN5SYTOO.mjs [22m[32m2.81 KB[39m
|
|
45
|
+
[32mESM[39m [1mdist/chunk-HUVTPUV2.mjs [22m[32m6.89 KB[39m
|
|
46
|
+
[32mESM[39m [1mdist/chunk-ZZV5JVNW.mjs [22m[32m835.00 B[39m
|
|
47
|
+
[32mESM[39m [1mdist/chunk-55CEW76V.mjs [22m[32m840.00 B[39m
|
|
48
|
+
[32mESM[39m [1mdist/chunk-ZN2QKLF6.mjs [22m[32m5.71 KB[39m
|
|
49
|
+
[32mESM[39m [1mdist/chunk-GPRJQ24C.mjs [22m[32m1005.00 B[39m
|
|
50
|
+
[32mESM[39m [1mdist/chunk-Z3MK2KKZ.mjs [22m[32m2.66 KB[39m
|
|
51
|
+
[32mESM[39m [1mdist/chunk-6OJF6XRN.mjs [22m[32m3.27 KB[39m
|
|
52
|
+
[32mESM[39m [1mdist/chunk-2WZVSBAY.mjs [22m[32m7.72 KB[39m
|
|
53
|
+
[32mESM[39m [1mdist/chunk-SLWCCURD.mjs [22m[32m2.45 KB[39m
|
|
54
|
+
[32mESM[39m [1mdist/chunk-VG6UF6UT.mjs [22m[32m1.63 KB[39m
|
|
55
|
+
[32mESM[39m [1mdist/chunk-E3K6O4FZ.mjs [22m[32m1.87 KB[39m
|
|
56
|
+
[32mESM[39m [1mdist/chunk-MKFL5MNH.mjs [22m[32m12.35 KB[39m
|
|
57
|
+
[32mESM[39m [1mdist/chunk-HS7TFG7V.mjs [22m[32m483.00 B[39m
|
|
58
|
+
[32mESM[39m [1mdist/chunk-BGP2N52Z.mjs [22m[32m3.07 KB[39m
|
|
59
|
+
[32mESM[39m [1mdist/chunk-VZ2NR7L3.mjs [22m[32m6.68 KB[39m
|
|
60
|
+
[32mESM[39m [1mdist/chunk-MJIEMGRD.mjs [22m[32m9.04 KB[39m
|
|
61
|
+
[32mESM[39m [1mdist/chunk-DS2AMHN2.mjs [22m[32m1.12 KB[39m
|
|
62
|
+
[32mESM[39m [1mdist/chunk-JF4PHPD5.mjs [22m[32m3.93 KB[39m
|
|
63
|
+
[32mESM[39m [1mdist/lib/theme-provider.mjs [22m[32m237.00 B[39m
|
|
64
|
+
[32mESM[39m [1mdist/lib/typography.mjs [22m[32m527.00 B[39m
|
|
65
|
+
[32mESM[39m [1mdist/chunk-3VQNJ235.mjs [22m[32m3.52 KB[39m
|
|
66
|
+
[32mESM[39m [1mdist/chunk-KKHTJNMM.mjs [22m[32m2.51 KB[39m
|
|
67
|
+
[32mESM[39m [1mdist/lib/utils.mjs [22m[32m95.00 B[39m
|
|
68
|
+
[32mESM[39m [1mdist/chunk-NWZ46DJL.mjs [22m[32m6.31 KB[39m
|
|
69
|
+
[32mESM[39m [1mdist/chunk-IAOOZCUY.mjs [22m[32m3.47 KB[39m
|
|
70
|
+
[32mESM[39m [1mdist/chunk-DBHJ5KC3.mjs [22m[32m1.56 KB[39m
|
|
71
|
+
[32mESM[39m [1mdist/chunk-OXQQNQZI.mjs [22m[32m2.93 KB[39m
|
|
72
|
+
[32mESM[39m [1mdist/chunk-QOJ2DQD6.mjs [22m[32m2.06 KB[39m
|
|
73
|
+
[32mESM[39m [1mdist/chunk-CZ3BW5GL.mjs [22m[32m2.25 KB[39m
|
|
74
|
+
[32mESM[39m [1mdist/chunk-V7CNWJT3.mjs [22m[32m168.00 B[39m
|
|
75
|
+
[32mESM[39m [1mdist/chunk-FWCSY2DS.mjs [22m[32m1.30 KB[39m
|
|
76
|
+
[32mESM[39m [1mdist/components/ui/toggle-group.mjs [22m[32m241.00 B[39m
|
|
77
|
+
[32mESM[39m [1mdist/chunk-NGYG2EA6.mjs [22m[32m3.51 KB[39m
|
|
78
|
+
[32mESM[39m [1mdist/components/ui/toggle.mjs [22m[32m194.00 B[39m
|
|
79
|
+
[32mESM[39m [1mdist/components/ui/tooltip.mjs [22m[32m326.00 B[39m
|
|
80
|
+
[32mESM[39m [1mdist/components/ui/skeleton.mjs [22m[32m148.00 B[39m
|
|
81
|
+
[32mESM[39m [1mdist/components/ui/sheet.mjs [22m[32m462.00 B[39m
|
|
82
|
+
[32mESM[39m [1mdist/components/ui/sonner.mjs [22m[32m111.00 B[39m
|
|
83
|
+
[32mESM[39m [1mdist/components/ui/spinner.mjs [22m[32m184.00 B[39m
|
|
84
|
+
[32mESM[39m [1mdist/components/ui/switch.mjs [22m[32m186.00 B[39m
|
|
85
|
+
[32mESM[39m [1mdist/components/ui/table.mjs [22m[32m336.00 B[39m
|
|
86
|
+
[32mESM[39m [1mdist/components/ui/tabs.mjs [22m[32m264.00 B[39m
|
|
87
|
+
[32mESM[39m [1mdist/components/ui/textarea.mjs [22m[32m148.00 B[39m
|
|
88
|
+
[32mESM[39m [1mdist/components/ui/input.mjs [22m[32m142.00 B[39m
|
|
89
|
+
[32mESM[39m [1mdist/components/ui/label.mjs [22m[32m142.00 B[39m
|
|
90
|
+
[32mESM[39m [1mdist/components/ui/pagination.mjs [22m[32m460.00 B[39m
|
|
91
|
+
[32mESM[39m [1mdist/components/ui/popover.mjs [22m[32m432.00 B[39m
|
|
92
|
+
[32mESM[39m [1mdist/components/ui/progress.mjs [22m[32m148.00 B[39m
|
|
93
|
+
[32mESM[39m [1mdist/components/ui/radio-group.mjs [22m[32m224.00 B[39m
|
|
94
|
+
[32mESM[39m [1mdist/components/ui/select.mjs [22m[32m538.00 B[39m
|
|
95
|
+
[32mESM[39m [1mdist/components/ui/separator.mjs [22m[32m150.00 B[39m
|
|
96
|
+
[32mESM[39m [1mdist/components/ui/date-picker.mjs [22m[32m376.00 B[39m
|
|
97
|
+
[32mESM[39m [1mdist/components/ui/dialog.mjs [22m[32m584.00 B[39m
|
|
98
|
+
[32mESM[39m [1mdist/components/ui/drawer.mjs [22m[32m514.00 B[39m
|
|
99
|
+
[32mESM[39m [1mdist/components/ui/dropdown-menu.mjs [22m[32m884.00 B[39m
|
|
100
|
+
[32mESM[39m [1mdist/components/ui/empty.mjs [22m[32m300.00 B[39m
|
|
101
|
+
[32mESM[39m [1mdist/components/ui/field.mjs [22m[32m486.00 B[39m
|
|
102
|
+
[32mESM[39m [1mdist/components/ui/input-group.mjs [22m[32m488.00 B[39m
|
|
103
|
+
[32mESM[39m [1mdist/components/ui/avatar.mjs [22m[32m310.00 B[39m
|
|
104
|
+
[32mESM[39m [1mdist/components/ui/input-otp.mjs [22m[32m256.00 B[39m
|
|
105
|
+
[32mESM[39m [1mdist/components/ui/badge.mjs [22m[32m211.00 B[39m
|
|
106
|
+
[32mESM[39m [1mdist/components/ui/button.mjs [22m[32m215.00 B[39m
|
|
107
|
+
[32mESM[39m [1mdist/components/ui/calendar.mjs [22m[32m260.00 B[39m
|
|
108
|
+
[32mESM[39m [1mdist/components/ui/card.mjs [22m[32m318.00 B[39m
|
|
109
|
+
[32mESM[39m [1mdist/components/ui/checkbox.mjs [22m[32m194.00 B[39m
|
|
110
|
+
[32mESM[39m [1mdist/components/ui/chip.mjs [22m[32m210.00 B[39m
|
|
111
|
+
[32mESM[39m [1mdist/components/ui/data-table.mjs [22m[32m736.00 B[39m
|
|
112
|
+
[32mESM[39m [1mdist/components/ui/accordion.mjs [22m[32m264.00 B[39m
|
|
113
|
+
[32mESM[39m [1mdist/components/ui/alert-dialog.mjs [22m[32m768.00 B[39m
|
|
114
|
+
[32mESM[39m [1mdist/components/ui/alert.mjs [22m[32m210.00 B[39m
|
|
115
|
+
[32mESM[39m ⚡️ Build success in 328ms
|
|
116
|
+
[32mCJS[39m [1mdist/index.js [22m[32m154.63 KB[39m
|
|
117
|
+
[32mCJS[39m [1mdist/lib/theme-provider.js [22m[32m6.09 KB[39m
|
|
118
|
+
[32mCJS[39m [1mdist/lib/colors.js [22m[32m3.15 KB[39m
|
|
119
|
+
[32mCJS[39m [1mdist/lib/typography.js [22m[32m5.49 KB[39m
|
|
120
|
+
[32mCJS[39m [1mdist/lib/utils.js [22m[32m1.20 KB[39m
|
|
121
|
+
[32mCJS[39m [1mdist/components/ui/accordion.js [22m[32m5.11 KB[39m
|
|
122
|
+
[32mCJS[39m [1mdist/components/ui/alert-dialog.js [22m[32m15.26 KB[39m
|
|
123
|
+
[32mCJS[39m [1mdist/components/ui/alert.js [22m[32m4.57 KB[39m
|
|
124
|
+
[32mCJS[39m [1mdist/components/ui/avatar.js [22m[32m5.71 KB[39m
|
|
125
|
+
[32mCJS[39m [1mdist/components/ui/badge.js [22m[32m6.12 KB[39m
|
|
126
|
+
[32mCJS[39m [1mdist/components/ui/button.js [22m[32m7.98 KB[39m
|
|
127
|
+
[32mCJS[39m [1mdist/components/ui/calendar.js [22m[32m15.83 KB[39m
|
|
128
|
+
[32mCJS[39m [1mdist/components/ui/card.js [22m[32m4.91 KB[39m
|
|
129
|
+
[32mCJS[39m [1mdist/components/ui/checkbox.js [22m[32m6.51 KB[39m
|
|
130
|
+
[32mCJS[39m [1mdist/components/ui/chip.js [22m[32m7.36 KB[39m
|
|
131
|
+
[32mCJS[39m [1mdist/components/ui/data-table.js [22m[32m37.83 KB[39m
|
|
132
|
+
[32mCJS[39m [1mdist/components/ui/date-picker.js [22m[32m21.43 KB[39m
|
|
133
|
+
[32mCJS[39m [1mdist/components/ui/dialog.js [22m[32m14.05 KB[39m
|
|
134
|
+
[32mCJS[39m [1mdist/components/ui/drawer.js [22m[32m7.96 KB[39m
|
|
135
|
+
[32mCJS[39m [1mdist/components/ui/dropdown-menu.js [22m[32m12.97 KB[39m
|
|
136
|
+
[32mCJS[39m [1mdist/components/ui/empty.js [22m[32m5.30 KB[39m
|
|
137
|
+
[32mCJS[39m [1mdist/components/ui/field.js [22m[32m11.19 KB[39m
|
|
138
|
+
[32mCJS[39m [1mdist/components/ui/input-group.js [22m[32m15.80 KB[39m
|
|
139
|
+
[32mCJS[39m [1mdist/components/ui/input-otp.js [22m[32m5.86 KB[39m
|
|
140
|
+
[32mCJS[39m [1mdist/components/ui/input.js [22m[32m3.26 KB[39m
|
|
141
|
+
[32mCJS[39m [1mdist/components/ui/label.js [22m[32m2.92 KB[39m
|
|
142
|
+
[32mCJS[39m [1mdist/components/ui/pagination.js [22m[32m11.88 KB[39m
|
|
143
|
+
[32mCJS[39m [1mdist/components/ui/popover.js [22m[32m5.81 KB[39m
|
|
144
|
+
[32mCJS[39m [1mdist/components/ui/progress.js [22m[32m3.32 KB[39m
|
|
145
|
+
[32mCJS[39m [1mdist/components/ui/radio-group.js [22m[32m6.54 KB[39m
|
|
146
|
+
[32mCJS[39m [1mdist/components/ui/select.js [22m[32m10.14 KB[39m
|
|
147
|
+
[32mCJS[39m [1mdist/components/ui/separator.js [22m[32m2.97 KB[39m
|
|
148
|
+
[32mCJS[39m [1mdist/components/ui/sheet.js [22m[32m8.05 KB[39m
|
|
149
|
+
[32mCJS[39m [1mdist/components/ui/skeleton.js [22m[32m2.62 KB[39m
|
|
150
|
+
[32mCJS[39m [1mdist/components/ui/spinner.js [22m[32m3.12 KB[39m
|
|
151
|
+
[32mCJS[39m [1mdist/components/ui/sonner.js [22m[32m3.35 KB[39m
|
|
152
|
+
[32mCJS[39m [1mdist/components/ui/switch.js [22m[32m6.34 KB[39m
|
|
153
|
+
[32mCJS[39m [1mdist/components/ui/table.js [22m[32m5.60 KB[39m
|
|
154
|
+
[32mCJS[39m [1mdist/components/ui/tabs.js [22m[32m6.44 KB[39m
|
|
155
|
+
[32mCJS[39m [1mdist/components/ui/textarea.js [22m[32m3.13 KB[39m
|
|
156
|
+
[32mCJS[39m [1mdist/components/ui/toggle-group.js [22m[32m6.71 KB[39m
|
|
157
|
+
[32mCJS[39m [1mdist/components/ui/toggle.js [22m[32m3.99 KB[39m
|
|
158
|
+
[32mCJS[39m [1mdist/components/ui/tooltip.js [22m[32m5.03 KB[39m
|
|
159
|
+
[32mCJS[39m ⚡️ Build success in 332ms
|
|
160
|
+
Done in 6.74s.
|
package/CHANGELOG.md
CHANGED
package/CHANGES.md
ADDED
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
# shadcn Package — Changelog
|
|
2
|
+
|
|
3
|
+
> **Branch:** `shadcn`
|
|
4
|
+
> **Date:** 2026-03-20
|
|
5
|
+
> **Figma:** [Design System - shadcn](https://www.figma.com/design/9V9F0NGVsif8LGmEhVjOcT/Design-System---shadcn)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 2026-03-23 — Table — New Component
|
|
10
|
+
|
|
11
|
+
### New Components
|
|
12
|
+
|
|
13
|
+
#### Table
|
|
14
|
+
|
|
15
|
+
- **Install:** `npx shadcn@latest add table` (native HTML `<table>` wrapped in semantic sub-components)
|
|
16
|
+
- **Figma:** [shadcn kit — Table](https://www.figma.com/design/QJ0VIGgndNOAswHK9QEnLe/Preview---shadcn-kit-for-Figma---March-2026?node-id=184-890)
|
|
17
|
+
- **WealthX overrides:**
|
|
18
|
+
- `TableHead`: `text-foreground` → `text-muted-foreground` — header labels are secondary text
|
|
19
|
+
- `TableHead`: padding `px-2` → `px-4` — wider column padding per Figma
|
|
20
|
+
- `TableCell`: padding `p-2` → `px-4 py-3` — consistent cell padding per Figma
|
|
21
|
+
- `TableRow`: `transition-colors` → `transition-[background-color,opacity]` — scoped animation
|
|
22
|
+
- **Storybook:** `shadcn-table.stories.tsx` — 4 stories:
|
|
23
|
+
- `Invoices` — full table with header, body, footer, caption
|
|
24
|
+
- `WithBadgeStatus` — user list with Badge status indicators
|
|
25
|
+
- `Empty` — empty state with colspan placeholder row
|
|
26
|
+
- `WithCaption` — paginated table caption example
|
|
27
|
+
|
|
28
|
+
### Files Changed
|
|
29
|
+
|
|
30
|
+
| File | Change |
|
|
31
|
+
| ------------------------------------------------- | -------------------------------------------- |
|
|
32
|
+
| `packages/shadcn/src/components/ui/table.tsx` | New — Table component with WealthX overrides |
|
|
33
|
+
| `packages/shadcn/package.json` | Added `./table` export entry |
|
|
34
|
+
| `packages/shadcn/tsup.config.ts` | Added `table.tsx` entry point |
|
|
35
|
+
| `apps/docs/stories/shadcn-table.stories.tsx` | New — 4 Storybook stories |
|
|
36
|
+
| `packages/ui/src/component-descriptions/table.md` | New — design changelog |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 2026-03-20 — Separator, Skeleton, Button `xs` size
|
|
41
|
+
|
|
42
|
+
### New Components
|
|
43
|
+
|
|
44
|
+
#### Separator
|
|
45
|
+
|
|
46
|
+
- **Install:** `npx shadcn@latest add separator` (Radix `SeparatorPrimitive.Root`)
|
|
47
|
+
- **Token:** `bg-border` — 1px line, orientation driven by `data-[orientation=horizontal|vertical]`
|
|
48
|
+
- **WealthX overrides:** none required — separator is a pure line with no border-radius
|
|
49
|
+
- **Figma:** page "Seperator" — component set `Separator` with 2 variants:
|
|
50
|
+
- `Orientation=horizontal` — 344×1px, fill bound to `border` variable
|
|
51
|
+
- `Orientation=vertical` — 1×80px, fill bound to `border` variable
|
|
52
|
+
- **Storybook:** `shadcn-separator.stories.tsx` — 4 stories:
|
|
53
|
+
- `Playground` — interactive orientation + decorative controls
|
|
54
|
+
- `All Variants (Figma match)` — horizontal + vertical
|
|
55
|
+
- `Usage / Between Sections` — real-world horizontal + inline vertical separators
|
|
56
|
+
- `Usage / Semantic (non-decorative)` — `decorative={false}` for screen readers
|
|
57
|
+
|
|
58
|
+
> **Note:** vertical separator requires a parent with a fixed height so that `h-full` computes correctly. Stories use `<div className="flex h-16 items-center">` as wrapper.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
#### Skeleton
|
|
63
|
+
|
|
64
|
+
- **Install:** `npx shadcn@latest add skeleton`
|
|
65
|
+
- **Base class (shadcn):** `animate-pulse rounded-md bg-accent`
|
|
66
|
+
- **WealthX override:** `rounded-md` removed — WealthX enforces square corners (`border-radius: 0`)
|
|
67
|
+
- **Circle variant** retains `rounded-full` via `className` prop — represents avatar/image placeholders
|
|
68
|
+
- **Bug fix:** shadcn output used `React.ComponentProps<"div">` without importing `React`.
|
|
69
|
+
Fixed to follow project convention:
|
|
70
|
+
```tsx
|
|
71
|
+
import { type ComponentProps } from "react"
|
|
72
|
+
function Skeleton({ className, ...props }: ComponentProps<"div">) {
|
|
73
|
+
```
|
|
74
|
+
- **Figma:** page "Skeleton" — component set `Skeleton` with 3 variants, all fills bound to `accent` variable:
|
|
75
|
+
- `Variant=line` — 250×16px, `cornerRadius: 0`
|
|
76
|
+
- `Variant=circle` — 48×48px, `cornerRadius: 24` (fully circular)
|
|
77
|
+
- `Variant=block` — 250×120px, `cornerRadius: 0`
|
|
78
|
+
- **Storybook:** `shadcn-skeleton.stories.tsx` — 4 stories:
|
|
79
|
+
- `Playground` — single skeleton block
|
|
80
|
+
- `All Variants (Figma match)` — line, circle, block
|
|
81
|
+
- `Usage / Card` — card image + avatar + two text lines
|
|
82
|
+
- `Usage / List` — 3 repeated list item skeletons
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### Existing Component Updates
|
|
87
|
+
|
|
88
|
+
#### Button — `xs` size added
|
|
89
|
+
|
|
90
|
+
- **File:** `packages/shadcn/src/components/ui/button.tsx`
|
|
91
|
+
- **Change:** new `xs` entry in the `size` CVA map:
|
|
92
|
+
```ts
|
|
93
|
+
xs: "h-6 gap-1 px-2 text-xs has-[>svg]:px-1.5",
|
|
94
|
+
```
|
|
95
|
+
Matches Figma "Size=xs" variant (height 24px, text-xs)
|
|
96
|
+
- **Storybook:** `shadcn-button.stories.tsx` — added `"xs"` to size control options and `<Button size="xs">` to the Sizes render
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Package Configuration
|
|
101
|
+
|
|
102
|
+
| File | Change |
|
|
103
|
+
| -------------------------------- | ----------------------------------------------------- |
|
|
104
|
+
| `packages/shadcn/tsup.config.ts` | Added `separator.tsx` and `skeleton.tsx` entry points |
|
|
105
|
+
| `packages/shadcn/package.json` | Added `./separator` and `./skeleton` export entries |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### Tailwind CSS Safelist
|
|
110
|
+
|
|
111
|
+
`packages/shadcn/src/styles/globals.css` — extended `@source inline()` to force-generate classes that the glob scanner misses when new story files are added during a running dev server:
|
|
112
|
+
|
|
113
|
+
```css
|
|
114
|
+
@source inline("h-10 h-12 h-16 h-20 h-24 h-28 h-32 h-36 h-40 h-44 h-48 size-10 size-12 size-14 size-16 rounded-full w-4/5 shrink-0");
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## Files Changed
|
|
120
|
+
|
|
121
|
+
| File | Change |
|
|
122
|
+
| ------------------------------------------------- | ----------------------------------------------------------------- |
|
|
123
|
+
| `packages/shadcn/src/components/ui/separator.tsx` | ← New — shadcn Separator, no WealthX overrides |
|
|
124
|
+
| `packages/shadcn/src/components/ui/skeleton.tsx` | ← New — shadcn Skeleton, `rounded-md` removed, React import fixed |
|
|
125
|
+
| `packages/shadcn/src/components/ui/button.tsx` | Added `xs` size variant |
|
|
126
|
+
| `apps/docs/stories/shadcn-separator.stories.tsx` | ← New — 4 stories |
|
|
127
|
+
| `apps/docs/stories/shadcn-skeleton.stories.tsx` | ← New — 4 stories |
|
|
128
|
+
| `apps/docs/stories/shadcn-button.stories.tsx` | Added `xs` to size controls + Sizes story |
|
|
129
|
+
| `packages/shadcn/src/styles/globals.css` | Extended `@source inline()` safelist |
|
|
130
|
+
| `packages/shadcn/tsup.config.ts` | Added separator + skeleton entry points |
|
|
131
|
+
| `packages/shadcn/package.json` | Added `./separator` + `./skeleton` exports |
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## 2026-03-22 — Field Compound Component + TypeScript Zero-Error Audit
|
|
136
|
+
|
|
137
|
+
### New Components
|
|
138
|
+
|
|
139
|
+
#### Field (compound component system)
|
|
140
|
+
|
|
141
|
+
- **Install:** `npx shadcn@latest add field`
|
|
142
|
+
- **Figma:** [Design System - shadcn, node 1188-4205](https://www.figma.com/design/9V9F0NGVsif8LGmEhVjOcT/Design-System---shadcn?node-id=1188-4205)
|
|
143
|
+
- **Exports:** `Field`, `FieldLabel`, `FieldTitle`, `FieldContent`, `FieldDescription`, `FieldError`, `FieldGroup`, `FieldSet`, `FieldLegend`, `FieldSeparator`
|
|
144
|
+
- **WealthX overrides:**
|
|
145
|
+
- `FieldDescription` / `FieldError`: `text-xs` (12px) per Figma helper text spec — shadcn default is `text-sm`
|
|
146
|
+
- `FieldError.uniqueErrors`: `Array.from(new Map(...).values())` instead of spread `[...Map.values()]` — avoids `--downlevelIteration` requirement with `target: es5`
|
|
147
|
+
- Strict equality `=== 1` instead of `== 1` in `uniqueErrors.length` check
|
|
148
|
+
- **Orientation variants (CVA):** `vertical` (default) · `horizontal` · `responsive` (stacks mobile, row ≥md)
|
|
149
|
+
- **`FieldLabel` card-selection behavior:** `has-data-[state=checked]:bg-primary/5` is intentional (shadcn card-selection pattern). For plain inline checkboxes, use `<Label htmlFor>` directly instead of `<FieldLabel>` to avoid unwanted bg.
|
|
150
|
+
|
|
151
|
+
- **Storybook:** `apps/docs/stories/shadcn-field.stories.tsx` — 9 stories:
|
|
152
|
+
| Story | What it shows |
|
|
153
|
+
|---|---|
|
|
154
|
+
| `Playground` | Single Field with label + input + description |
|
|
155
|
+
| `Orientations` | vertical / horizontal / responsive variants |
|
|
156
|
+
| `WithError` | Valid · single error · multiple errors via `errors[]` prop |
|
|
157
|
+
| `FieldGroup` | Vertical group · 2-column horizontal grid |
|
|
158
|
+
| `FieldSet & Legend` | `<fieldset>` container with legend + group |
|
|
159
|
+
| `FieldSeparator` | Plain separator · labeled separator ("or") |
|
|
160
|
+
| `WithControls` | Inline checkbox (Label) · Switch + FieldTitle in horizontal Field |
|
|
161
|
+
| `WithTextarea` | Textarea inside Field |
|
|
162
|
+
| `Form Example` | Full realistic form: personal info + preferences + submit |
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
### Figma Components Added
|
|
167
|
+
|
|
168
|
+
New components built in Figma page 1188-4205, inside frame `1188:4206`:
|
|
169
|
+
|
|
170
|
+
| Component | Node | Dimensions | Notes |
|
|
171
|
+
| ----------------- | --------- | ------------ | -------------------------------------------------------------------------------------------- |
|
|
172
|
+
| `Field/Separator` | 3097:9667 | 496×16px | Reuses local Separator instance; plain horizontal rule |
|
|
173
|
+
| `Field/Legend` | 3097:9673 | 496×55px | SemiBold title + Regular description; 2 text swap properties |
|
|
174
|
+
| `Field/Buttons` | 3097:9726 | ComponentSet | Horizontal (Submit+Cancel) / Vertical (full-width Submit + Save draft + Sign in link) |
|
|
175
|
+
| `Field Group` | 3097:9782 | ComponentSet | Horizontal (2-col, 608px) / Vertical (full-height, 496px) — uses Input instances (3042:6881) |
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
### TypeScript Fixes — `apps/docs` Zero-Error Audit
|
|
180
|
+
|
|
181
|
+
Fixed 8 pre-existing TypeScript errors across existing story files. `tsc --noEmit` went from **55 errors → 0**.
|
|
182
|
+
|
|
183
|
+
#### `apps/docs/tsconfig.json` — Module resolution paths added
|
|
184
|
+
|
|
185
|
+
Root cause: stories import `@wealthx/shadcn/components/ui/field` but `package.json` exports map only short keys like `./field`. Vite resolves via regex alias at runtime; TypeScript had no matching `paths`.
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
"paths": {
|
|
189
|
+
"@wealthx/shadcn/*": ["../../packages/shadcn/src/*"],
|
|
190
|
+
"@wealthx/ui/*": ["../../packages/ui/src/*"],
|
|
191
|
+
"@/*": ["../../packages/shadcn/src/*"]
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
#### Per-file fixes
|
|
196
|
+
|
|
197
|
+
| File | Error | Fix |
|
|
198
|
+
| -------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
|
|
199
|
+
| `autocomplete.stories.tsx` | MUI Autocomplete `onChange` types `newValue` as `unknown` | Cast: `newValue as string \| null` |
|
|
200
|
+
| `card.stories.tsx` | MUI `CardMedia` polymorphic type — `height` + `alt` not on base props | Cast entire props as `any` |
|
|
201
|
+
| `shadcn-calendar.stories.tsx` | `{...args}` spread after `mode="single"` loses type narrowing for `selected` | Destructure `{ captionLayout, showOutsideDays }` from args; pass explicitly |
|
|
202
|
+
| `shadcn-radio-group.stories.tsx` | `as const` on array makes optional props non-optional in destructuring | Replace with `as Array<{ label: string; defaultChecked?: boolean; ... }>` |
|
|
203
|
+
| `shadcn-tabs.stories.tsx` | `satisfies Meta<typeof Tabs>` rejects extra `argTypes` keys (`variant`, `showIconLeft`, `showIconRight`) not in `TabsProps` | Change to `= { ... } as Meta<typeof Tabs>` |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Files Changed
|
|
208
|
+
|
|
209
|
+
| File | Change |
|
|
210
|
+
| -------------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
211
|
+
| `packages/shadcn/src/components/ui/field.tsx` | ← New — shadcn Field compound component, WealthX overrides |
|
|
212
|
+
| `apps/docs/stories/shadcn-field.stories.tsx` | ← New — 9 stories |
|
|
213
|
+
| `apps/docs/tsconfig.json` | Added `paths` to mirror Vite aliases (fixes all module-resolution TS errors) |
|
|
214
|
+
| `apps/docs/stories/autocomplete.stories.tsx` | Fix: cast `newValue as string \| null` |
|
|
215
|
+
| `apps/docs/stories/card.stories.tsx` | Fix: cast CardMedia props as `any` |
|
|
216
|
+
| `apps/docs/stories/shadcn-calendar.stories.tsx` | Fix: destructure specific args instead of spreading all |
|
|
217
|
+
| `apps/docs/stories/shadcn-radio-group.stories.tsx` | Fix: explicit array type instead of `as const` |
|
|
218
|
+
| `apps/docs/stories/shadcn-tabs.stories.tsx` | Fix: `as Meta<typeof Tabs>` instead of `satisfies` |
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 2026-03-23 — Accordion, DropdownMenu — New Components + Story Refactors + Lint Fixes
|
|
223
|
+
|
|
224
|
+
### New Components
|
|
225
|
+
|
|
226
|
+
#### Accordion
|
|
227
|
+
|
|
228
|
+
- **Install:** `npx shadcn@latest add accordion` (Radix `AccordionPrimitive`)
|
|
229
|
+
- **Figma:** [Design System - shadcn, Accordion](https://www.figma.com/design/9V9F0NGVsif8LGmEhVjOcT/Design-System---shadcn)
|
|
230
|
+
- **Exports:** `Accordion`, `AccordionItem`, `AccordionTrigger`, `AccordionContent`
|
|
231
|
+
- **WealthX overrides (documented in component header comment):**
|
|
232
|
+
- `AccordionItem`: removed `last:border-b-0` — consistent bottom border on every item including the last
|
|
233
|
+
- `AccordionTrigger`: `rounded-md` → `rounded-none` — WealthX sharp corners convention
|
|
234
|
+
- `AccordionTrigger`: `items-start` → `items-center` — single-line trigger vertical alignment
|
|
235
|
+
- `AccordionTrigger`: `transition-all` → `transition-[color,opacity]` — scoped animation (prevents layout thrashing from animating all properties)
|
|
236
|
+
- `AccordionTrigger`: focus ring changed from `ring-ring/50` to `ring-foreground/30` — neutral focus color, no brand primary green
|
|
237
|
+
- `AccordionContent`: inner div uses `pb-4 text-muted-foreground` — matches Figma muted content style
|
|
238
|
+
- **CSS animations** added to `globals.css` inside `@theme inline`:
|
|
239
|
+
```css
|
|
240
|
+
--animate-accordion-down: accordion-down 0.2s ease-out;
|
|
241
|
+
--animate-accordion-up: accordion-up 0.2s ease-out;
|
|
242
|
+
@keyframes accordion-down {
|
|
243
|
+
from {
|
|
244
|
+
height: 0;
|
|
245
|
+
}
|
|
246
|
+
to {
|
|
247
|
+
height: var(--radix-accordion-content-height);
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
@keyframes accordion-up {
|
|
251
|
+
from {
|
|
252
|
+
height: var(--radix-accordion-content-height);
|
|
253
|
+
}
|
|
254
|
+
to {
|
|
255
|
+
height: 0;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
```
|
|
259
|
+
- **Tailwind safelist** extended with `@source inline()` for data-state animation classes and focus ring:
|
|
260
|
+
```css
|
|
261
|
+
@source inline("data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down focus-visible:ring-foreground/30 [&[data-state=open]>svg]:rotate-180");
|
|
262
|
+
```
|
|
263
|
+
- **Storybook:** `apps/docs/stories/shadcn-accordion.stories.tsx` — 5 stories in `shadcn/Accordion` section:
|
|
264
|
+
| Story | What it shows |
|
|
265
|
+
|---|---|
|
|
266
|
+
| `Simple` | Single-type collapsible accordion, FAQ fixture |
|
|
267
|
+
| `MultipleOpen` | `type="multiple"` with two items open by default |
|
|
268
|
+
| `WithDisabledItem` | Mixed active + disabled items |
|
|
269
|
+
| `DefaultOpen` | `defaultValue` pre-opens one item on mount |
|
|
270
|
+
| `White-Label (Navy theme)` | Custom `--primary` CSS var override via `style` prop |
|
|
271
|
+
- **Story architecture:** extracted `ItemDef` interface, `FAQ` / `PRODUCT` / `PORTFOLIO` / `WHITELABEL` fixture arrays, `Items` helper component — stories contain no inline data
|
|
272
|
+
|
|
273
|
+
---
|
|
274
|
+
|
|
275
|
+
#### DropdownMenu
|
|
276
|
+
|
|
277
|
+
- **Install:** `npx shadcn@latest add dropdown-menu` (Radix `DropdownMenuPrimitive`)
|
|
278
|
+
- **Figma:** [Design System - shadcn, node 73-229](https://www.figma.com/design/9V9F0NGVsif8LGmEhVjOcT/Design-System---shadcn?node-id=73-229)
|
|
279
|
+
- **Exports:** `DropdownMenu`, `DropdownMenuPortal`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuLabel`, `DropdownMenuSeparator`, `DropdownMenuGroup`, `DropdownMenuShortcut`, `DropdownMenuSub`, `DropdownMenuSubTrigger`, `DropdownMenuSubContent`, `DropdownMenuCheckboxItem`, `DropdownMenuRadioGroup`, `DropdownMenuRadioItem`
|
|
280
|
+
- **WealthX overrides (documented in component header comment):**
|
|
281
|
+
- All `rounded-md` / `rounded-sm` → `rounded-none` — sharp corners on content, items, sub-trigger, checkbox/radio items, sub-content
|
|
282
|
+
- `DropdownMenuCheckboxItem` / `DropdownMenuRadioItem`: added `data-[state=checked]:bg-primary/10` — subtle checked state tint
|
|
283
|
+
- **Tailwind safelist** extended for destructive variant dynamic classes:
|
|
284
|
+
```css
|
|
285
|
+
@source inline("data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20");
|
|
286
|
+
```
|
|
287
|
+
- **Storybook:** `apps/docs/stories/shadcn-dropdown-menu.stories.tsx` — 5 stories in `shadcn/DropdownMenu` section:
|
|
288
|
+
| Story | What it shows |
|
|
289
|
+
|---|---|
|
|
290
|
+
| `Simple` | Basic items with icons and separators |
|
|
291
|
+
| `WithShortcuts` | Items with keyboard shortcut labels |
|
|
292
|
+
| `WithSubMenu` | Nested sub-menu trigger + content |
|
|
293
|
+
| `WithCheckboxItems` | Checkbox group with checked state |
|
|
294
|
+
| `WithRadioItems` | Radio group with exclusive selection |
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
### globals.css Updates
|
|
299
|
+
|
|
300
|
+
`packages/shadcn/src/styles/globals.css`:
|
|
301
|
+
|
|
302
|
+
| Change | Purpose |
|
|
303
|
+
| --------------------------------------------------------------- | ---------------------------------------------------------------------------- |
|
|
304
|
+
| Added `@keyframes accordion-down/up` inside `@theme inline` | Enable Radix accordion open/close height animation |
|
|
305
|
+
| Added `--animate-accordion-down/up` CSS variables | Tailwind `animate-accordion-*` utility hooks |
|
|
306
|
+
| Added destructive variant `@source inline()` safelist | Force-generate DropdownMenu destructive state classes missed by glob scanner |
|
|
307
|
+
| Added accordion state `@source inline()` safelist | Force-generate accordion animation + focus-ring classes |
|
|
308
|
+
| Added `@layer base { * { border-color: var(--color-border) } }` | Default border color uses `border` DS token instead of browser default |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
### Dependency Fix — `apps/docs`
|
|
313
|
+
|
|
314
|
+
`apps/docs/package.json` was missing two direct dependencies used in shadcn stories, causing `import/no-extraneous-dependencies` ESLint warnings:
|
|
315
|
+
|
|
316
|
+
| Package | Change |
|
|
317
|
+
| ----------------- | ----------------------------- |
|
|
318
|
+
| `@wealthx/shadcn` | Added `"*"` to `dependencies` |
|
|
319
|
+
| `lucide-react` | Added `"*"` to `dependencies` |
|
|
320
|
+
|
|
321
|
+
After fix: `eslint ./stories/shadcn-accordion.stories.tsx --max-warnings 0` → 0 warnings.
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
### Component Descriptions Added
|
|
326
|
+
|
|
327
|
+
| File | Content |
|
|
328
|
+
| --------------------------------------------------------- | ------------------------------------------------------------------- |
|
|
329
|
+
| `packages/ui/src/component-descriptions/accordion.md` | Figma component set structure, token bindings, WealthX DS decisions |
|
|
330
|
+
| `packages/ui/src/component-descriptions/dropdown-menu.md` | Figma component set structure, token bindings, variant map |
|
|
331
|
+
|
|
332
|
+
---
|
|
333
|
+
|
|
334
|
+
## Files Changed
|
|
335
|
+
|
|
336
|
+
| File | Change |
|
|
337
|
+
| --------------------------------------------------------- | ----------------------------------------------------------------------- |
|
|
338
|
+
| `packages/shadcn/src/components/ui/accordion.tsx` | ← New — shadcn Accordion, 6 WealthX overrides |
|
|
339
|
+
| `packages/shadcn/src/components/ui/dropdown-menu.tsx` | ← New — shadcn DropdownMenu, `rounded-none` on all sub-components |
|
|
340
|
+
| `apps/docs/stories/shadcn-accordion.stories.tsx` | ← New — 5 stories, extracted fixtures + `Items` helper |
|
|
341
|
+
| `apps/docs/stories/shadcn-dropdown-menu.stories.tsx` | ← New — 5 stories covering all major variants |
|
|
342
|
+
| `packages/shadcn/src/styles/globals.css` | Accordion keyframes + CSS vars, destructive safelist, border base layer |
|
|
343
|
+
| `apps/docs/package.json` | Added `@wealthx/shadcn` + `lucide-react` to dependencies |
|
|
344
|
+
| `packages/ui/src/component-descriptions/accordion.md` | ← New — Accordion design changelog |
|
|
345
|
+
| `packages/ui/src/component-descriptions/dropdown-menu.md` | ← New — DropdownMenu design changelog |
|