@music-vine/cadence 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.
Files changed (197) hide show
  1. package/README.md +146 -0
  2. package/dist/components/accordion.d.ts +35 -0
  3. package/dist/components/accordion.d.ts.map +1 -0
  4. package/dist/components/accordion.js +95 -0
  5. package/dist/components/accordion.js.map +7 -0
  6. package/dist/components/badge.d.ts +14 -0
  7. package/dist/components/badge.d.ts.map +1 -0
  8. package/dist/components/badge.js +78 -0
  9. package/dist/components/badge.js.map +7 -0
  10. package/dist/components/breadcrumb.d.ts +20 -0
  11. package/dist/components/breadcrumb.d.ts.map +1 -0
  12. package/dist/components/breadcrumb.js +98 -0
  13. package/dist/components/breadcrumb.js.map +7 -0
  14. package/dist/components/button.d.ts +47 -0
  15. package/dist/components/button.d.ts.map +1 -0
  16. package/dist/components/button.js +295 -0
  17. package/dist/components/button.js.map +7 -0
  18. package/dist/components/card.d.ts +9 -0
  19. package/dist/components/card.d.ts.map +1 -0
  20. package/dist/components/card.js +65 -0
  21. package/dist/components/card.js.map +7 -0
  22. package/dist/components/carousel-dots.d.ts +9 -0
  23. package/dist/components/carousel-dots.d.ts.map +1 -0
  24. package/dist/components/carousel-dots.js +55 -0
  25. package/dist/components/carousel-dots.js.map +7 -0
  26. package/dist/components/carousel.d.ts +33 -0
  27. package/dist/components/carousel.d.ts.map +1 -0
  28. package/dist/components/carousel.js +217 -0
  29. package/dist/components/carousel.js.map +7 -0
  30. package/dist/components/checkbox.d.ts +13 -0
  31. package/dist/components/checkbox.d.ts.map +1 -0
  32. package/dist/components/checkbox.js +57 -0
  33. package/dist/components/checkbox.js.map +7 -0
  34. package/dist/components/context-menu.d.ts +28 -0
  35. package/dist/components/context-menu.d.ts.map +1 -0
  36. package/dist/components/context-menu.js +154 -0
  37. package/dist/components/context-menu.js.map +7 -0
  38. package/dist/components/dialog.d.ts +20 -0
  39. package/dist/components/dialog.d.ts.map +1 -0
  40. package/dist/components/dialog.js +98 -0
  41. package/dist/components/dialog.js.map +7 -0
  42. package/dist/components/drawer.d.ts +26 -0
  43. package/dist/components/drawer.d.ts.map +1 -0
  44. package/dist/components/drawer.js +133 -0
  45. package/dist/components/drawer.js.map +7 -0
  46. package/dist/components/index.d.ts +35 -0
  47. package/dist/components/index.d.ts.map +1 -0
  48. package/dist/components/index.js +277 -0
  49. package/dist/components/index.js.map +7 -0
  50. package/dist/components/input.d.ts +20 -0
  51. package/dist/components/input.d.ts.map +1 -0
  52. package/dist/components/input.js +174 -0
  53. package/dist/components/input.js.map +7 -0
  54. package/dist/components/label.d.ts +6 -0
  55. package/dist/components/label.d.ts.map +1 -0
  56. package/dist/components/label.js +21 -0
  57. package/dist/components/label.js.map +7 -0
  58. package/dist/components/popover.d.ts +8 -0
  59. package/dist/components/popover.d.ts.map +1 -0
  60. package/dist/components/popover.js +38 -0
  61. package/dist/components/popover.js.map +7 -0
  62. package/dist/components/price-tag.d.ts +11 -0
  63. package/dist/components/price-tag.d.ts.map +1 -0
  64. package/dist/components/price-tag.js +31 -0
  65. package/dist/components/price-tag.js.map +7 -0
  66. package/dist/components/radio-group.d.ts +6 -0
  67. package/dist/components/radio-group.d.ts.map +1 -0
  68. package/dist/components/radio-group.js +84 -0
  69. package/dist/components/radio-group.js.map +7 -0
  70. package/dist/components/scroll-area.d.ts +15 -0
  71. package/dist/components/scroll-area.d.ts.map +1 -0
  72. package/dist/components/scroll-area.js +132 -0
  73. package/dist/components/scroll-area.js.map +7 -0
  74. package/dist/components/select.d.ts +59 -0
  75. package/dist/components/select.d.ts.map +1 -0
  76. package/dist/components/select.js +210 -0
  77. package/dist/components/select.js.map +7 -0
  78. package/dist/components/separator.d.ts +5 -0
  79. package/dist/components/separator.d.ts.map +1 -0
  80. package/dist/components/separator.js +25 -0
  81. package/dist/components/separator.js.map +7 -0
  82. package/dist/components/skeleton.d.ts +10 -0
  83. package/dist/components/skeleton.d.ts.map +1 -0
  84. package/dist/components/skeleton.js +29 -0
  85. package/dist/components/skeleton.js.map +7 -0
  86. package/dist/components/slider.d.ts +15 -0
  87. package/dist/components/slider.d.ts.map +1 -0
  88. package/dist/components/slider.js +95 -0
  89. package/dist/components/slider.js.map +7 -0
  90. package/dist/components/stacking-card.d.ts +54 -0
  91. package/dist/components/stacking-card.d.ts.map +1 -0
  92. package/dist/components/stacking-card.js +636 -0
  93. package/dist/components/stacking-card.js.map +7 -0
  94. package/dist/components/tabs.d.ts +8 -0
  95. package/dist/components/tabs.d.ts.map +1 -0
  96. package/dist/components/tabs.js +48 -0
  97. package/dist/components/tabs.js.map +7 -0
  98. package/dist/components/textarea.d.ts +11 -0
  99. package/dist/components/textarea.d.ts.map +1 -0
  100. package/dist/components/textarea.js +43 -0
  101. package/dist/components/textarea.js.map +7 -0
  102. package/dist/components/toast.d.ts +7 -0
  103. package/dist/components/toast.d.ts.map +1 -0
  104. package/dist/components/toast.js +53 -0
  105. package/dist/components/toast.js.map +7 -0
  106. package/dist/components/toggle-button.d.ts +20 -0
  107. package/dist/components/toggle-button.d.ts.map +1 -0
  108. package/dist/components/toggle-button.js +56 -0
  109. package/dist/components/toggle-button.js.map +7 -0
  110. package/dist/components/typography/heading.d.ts +18 -0
  111. package/dist/components/typography/heading.d.ts.map +1 -0
  112. package/dist/components/typography/heading.js +105 -0
  113. package/dist/components/typography/heading.js.map +7 -0
  114. package/dist/components/typography/index.d.ts +5 -0
  115. package/dist/components/typography/index.d.ts.map +1 -0
  116. package/dist/components/typography/index.js +36 -0
  117. package/dist/components/typography/index.js.map +7 -0
  118. package/dist/components/typography/list.d.ts +17 -0
  119. package/dist/components/typography/list.d.ts.map +1 -0
  120. package/dist/components/typography/list.js +73 -0
  121. package/dist/components/typography/list.js.map +7 -0
  122. package/dist/components/typography/prose.d.ts +5 -0
  123. package/dist/components/typography/prose.d.ts.map +1 -0
  124. package/dist/components/typography/prose.js +50 -0
  125. package/dist/components/typography/prose.js.map +7 -0
  126. package/dist/components/typography/text.d.ts +11 -0
  127. package/dist/components/typography/text.d.ts.map +1 -0
  128. package/dist/components/typography/text.js +38 -0
  129. package/dist/components/typography/text.js.map +7 -0
  130. package/dist/icons/custom/boards-indicator.d.ts +7 -0
  131. package/dist/icons/custom/boards-indicator.d.ts.map +1 -0
  132. package/dist/icons/custom/boards-indicator.js +70 -0
  133. package/dist/icons/custom/boards-indicator.js.map +7 -0
  134. package/dist/icons/custom/download-history.d.ts +6 -0
  135. package/dist/icons/custom/download-history.d.ts.map +1 -0
  136. package/dist/icons/custom/download-history.js +19 -0
  137. package/dist/icons/custom/download-history.js.map +7 -0
  138. package/dist/icons/custom/exclamation-mark-in-octagon.d.ts +6 -0
  139. package/dist/icons/custom/exclamation-mark-in-octagon.d.ts.map +1 -0
  140. package/dist/icons/custom/exclamation-mark-in-octagon.js +57 -0
  141. package/dist/icons/custom/exclamation-mark-in-octagon.js.map +7 -0
  142. package/dist/icons/custom/pin.d.ts +6 -0
  143. package/dist/icons/custom/pin.d.ts.map +1 -0
  144. package/dist/icons/custom/pin.js +28 -0
  145. package/dist/icons/custom/pin.js.map +7 -0
  146. package/dist/icons/custom/premium-star.d.ts +10 -0
  147. package/dist/icons/custom/premium-star.d.ts.map +1 -0
  148. package/dist/icons/custom/premium-star.js +191 -0
  149. package/dist/icons/custom/premium-star.js.map +7 -0
  150. package/dist/icons/custom/social/discord.d.ts +6 -0
  151. package/dist/icons/custom/social/discord.d.ts.map +1 -0
  152. package/dist/icons/custom/social/discord.js +27 -0
  153. package/dist/icons/custom/social/discord.js.map +7 -0
  154. package/dist/icons/custom/social/index.d.ts +4 -0
  155. package/dist/icons/custom/social/index.d.ts.map +1 -0
  156. package/dist/icons/custom/social/index.js +4 -0
  157. package/dist/icons/custom/social/index.js.map +7 -0
  158. package/dist/icons/custom/social/tiktok.d.ts +6 -0
  159. package/dist/icons/custom/social/tiktok.d.ts.map +1 -0
  160. package/dist/icons/custom/social/tiktok.js +27 -0
  161. package/dist/icons/custom/social/tiktok.js.map +7 -0
  162. package/dist/icons/custom/social/twitter-x.d.ts +6 -0
  163. package/dist/icons/custom/social/twitter-x.d.ts.map +1 -0
  164. package/dist/icons/custom/social/twitter-x.js +29 -0
  165. package/dist/icons/custom/social/twitter-x.js.map +7 -0
  166. package/dist/icons/custom/tick-in-circle.d.ts +7 -0
  167. package/dist/icons/custom/tick-in-circle.d.ts.map +1 -0
  168. package/dist/icons/custom/tick-in-circle.js +32 -0
  169. package/dist/icons/custom/tick-in-circle.js.map +7 -0
  170. package/dist/icons/custom/tick-small.d.ts +6 -0
  171. package/dist/icons/custom/tick-small.d.ts.map +1 -0
  172. package/dist/icons/custom/tick-small.js +16 -0
  173. package/dist/icons/custom/tick-small.js.map +7 -0
  174. package/dist/icons/custom/tick.d.ts +3 -0
  175. package/dist/icons/custom/tick.d.ts.map +1 -0
  176. package/dist/icons/custom/tick.js +31 -0
  177. package/dist/icons/custom/tick.js.map +7 -0
  178. package/dist/icons/custom/uppbeat-credit.d.ts +4 -0
  179. package/dist/icons/custom/uppbeat-credit.d.ts.map +1 -0
  180. package/dist/icons/custom/uppbeat-credit.js +55 -0
  181. package/dist/icons/custom/uppbeat-credit.js.map +7 -0
  182. package/dist/icons/index.d.ts +20 -0
  183. package/dist/icons/index.d.ts.map +1 -0
  184. package/dist/icons/index.js +15 -0
  185. package/dist/icons/index.js.map +7 -0
  186. package/dist/index.d.ts +19 -0
  187. package/dist/index.d.ts.map +1 -0
  188. package/dist/index.js +6 -0
  189. package/dist/index.js.map +7 -0
  190. package/dist/lib/utils.d.ts +7 -0
  191. package/dist/lib/utils.d.ts.map +1 -0
  192. package/dist/lib/utils.js +9 -0
  193. package/dist/lib/utils.js.map +7 -0
  194. package/dist/styles/index.css +3 -0
  195. package/dist/styles/storybook.css +14 -0
  196. package/package.json +107 -0
  197. package/tailwind.config.ts +299 -0
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Cadence Icons
3
+ *
4
+ * All Lucide icons are re-exported, plus custom Uppbeat icons.
5
+ *
6
+ * @example
7
+ * import { Play, Pause, Tick, PremiumStar } from '@music-vine/cadence/icons';
8
+ */
9
+ export * from "lucide-react";
10
+ export * from "./custom/boards-indicator";
11
+ export * from "./custom/download-history";
12
+ export * from "./custom/exclamation-mark-in-octagon";
13
+ export * from "./custom/pin";
14
+ export * from "./custom/premium-star";
15
+ export * from "./custom/social";
16
+ export { Tick } from "./custom/tick";
17
+ export * from "./custom/tick-in-circle";
18
+ export * from "./custom/tick-small";
19
+ export * from "./custom/uppbeat-credit";
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/icons/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,cAAc,cAAc,CAAC;AAC7B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AAEtC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,15 @@
1
+ export * from "lucide-react";
2
+ export * from "./custom/boards-indicator";
3
+ export * from "./custom/download-history";
4
+ export * from "./custom/exclamation-mark-in-octagon";
5
+ export * from "./custom/pin";
6
+ export * from "./custom/premium-star";
7
+ export * from "./custom/social";
8
+ import { Tick } from "./custom/tick";
9
+ export * from "./custom/tick-in-circle";
10
+ export * from "./custom/tick-small";
11
+ export * from "./custom/uppbeat-credit";
12
+ export {
13
+ Tick
14
+ };
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/icons/index.ts"],
4
+ "sourcesContent": ["/**\n * Cadence Icons\n *\n * All Lucide icons are re-exported, plus custom Uppbeat icons.\n *\n * @example\n * import { Play, Pause, Tick, PremiumStar } from '@music-vine/cadence/icons';\n */\n\n// Re-export ALL Lucide icons\nexport * from \"lucide-react\";\nexport * from \"./custom/boards-indicator\";\nexport * from \"./custom/download-history\";\nexport * from \"./custom/exclamation-mark-in-octagon\";\nexport * from \"./custom/pin\";\nexport * from \"./custom/premium-star\";\n// Social icons\nexport * from \"./custom/social\";\n// Custom Uppbeat icons\nexport { Tick } from \"./custom/tick\";\nexport * from \"./custom/tick-in-circle\";\nexport * from \"./custom/tick-small\";\nexport * from \"./custom/uppbeat-credit\";\n"],
5
+ "mappings": "AAUA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAEd,cAAc;AAEd,SAAS,YAAY;AACrB,cAAc;AACd,cAAc;AACd,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Cadence Design System
3
+ *
4
+ * The main entry point re-exports everything from components.
5
+ * For icons, use the subpath import to avoid naming conflicts:
6
+ *
7
+ * @example
8
+ * // Import UI components
9
+ * import { Button, Input, List } from '@music-vine/cadence/ui';
10
+ *
11
+ * // Import icons (includes ALL lucide icons + custom icons)
12
+ * import { Play, Pause, List as ListIcon } from '@music-vine/cadence/icons';
13
+ *
14
+ * // Import styles (CSS)
15
+ * import '@music-vine/cadence/styles';
16
+ */
17
+ export * from "./components";
18
+ export { cn } from "./lib/utils";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,cAAc,cAAc,CAAC;AAO7B,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export * from "./components";
2
+ import { cn } from "./lib/utils";
3
+ export {
4
+ cn
5
+ };
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["/**\n * Cadence Design System\n *\n * The main entry point re-exports everything from components.\n * For icons, use the subpath import to avoid naming conflicts:\n *\n * @example\n * // Import UI components\n * import { Button, Input, List } from '@music-vine/cadence/ui';\n *\n * // Import icons (includes ALL lucide icons + custom icons)\n * import { Play, Pause, List as ListIcon } from '@music-vine/cadence/icons';\n *\n * // Import styles (CSS)\n * import '@music-vine/cadence/styles';\n */\n\n// Re-export all components\nexport * from \"./components\";\n\n// Note: Icons are NOT re-exported here to avoid naming conflicts\n// (e.g., lucide's `List` icon vs typography `List` component)\n// Import icons from '@music-vine/cadence/icons' instead\n\n// Re-export utilities\nexport { cn } from \"./lib/utils\";\n"],
5
+ "mappings": "AAkBA,cAAc;AAOd,SAAS,UAAU;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import { type ClassValue } from "clsx";
2
+ /**
3
+ * Merge Tailwind CSS classes with clsx and tailwind-merge
4
+ * This ensures proper handling of conflicting classes
5
+ */
6
+ export declare function cn(...inputs: ClassValue[]): string;
7
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C;;;GAGG;AACH,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
@@ -0,0 +1,9 @@
1
+ import { clsx } from "clsx";
2
+ import { twMerge } from "tailwind-merge";
3
+ function cn(...inputs) {
4
+ return twMerge(clsx(inputs));
5
+ }
6
+ export {
7
+ cn
8
+ };
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/lib/utils.ts"],
4
+ "sourcesContent": ["import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Merge Tailwind CSS classes with clsx and tailwind-merge\n * This ensures proper handling of conflicting classes\n */\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],
5
+ "mappings": "AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAMjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
@@ -0,0 +1,14 @@
1
+ @tailwind base;
2
+ @tailwind components;
3
+ @tailwind utilities;
4
+
5
+ /* Storybook-specific global styles */
6
+ body {
7
+ font-family: "DM Sans", system-ui, sans-serif;
8
+ }
9
+
10
+ /* Theme dark mode support */
11
+ .theme-dark {
12
+ background-color: #151a20;
13
+ color: #fff;
14
+ }
package/package.json ADDED
@@ -0,0 +1,107 @@
1
+ {
2
+ "name": "@music-vine/cadence",
3
+ "version": "0.1.0",
4
+ "private": false,
5
+ "type": "module",
6
+ "sideEffects": false,
7
+ "description": "Cadence Design System - UI components and icons for Uppbeat",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "typesVersions": {
11
+ "*": {
12
+ "ui": ["./dist/components/index.d.ts"],
13
+ "icons": ["./dist/icons/index.d.ts"],
14
+ "tailwind.config": ["./tailwind.config.ts"]
15
+ }
16
+ },
17
+ "exports": {
18
+ ".": {
19
+ "source": "./src/index.ts",
20
+ "import": "./dist/index.js",
21
+ "types": "./dist/index.d.ts"
22
+ },
23
+ "./ui": {
24
+ "source": "./src/components/index.ts",
25
+ "import": "./dist/components/index.js",
26
+ "types": "./dist/components/index.d.ts"
27
+ },
28
+ "./icons": {
29
+ "source": "./src/icons/index.ts",
30
+ "import": "./dist/icons/index.js",
31
+ "types": "./dist/icons/index.d.ts"
32
+ },
33
+ "./styles": "./dist/styles/index.css",
34
+ "./tailwind.config": "./tailwind.config.ts"
35
+ },
36
+ "files": ["dist", "tailwind.config.ts"],
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "https://github.com/Music-Vine/uppbeat-frontend.git",
40
+ "directory": "packages/cadence"
41
+ },
42
+ "homepage": "https://github.com/Music-Vine/uppbeat-frontend/tree/main/packages/cadence",
43
+ "bugs": {
44
+ "url": "https://github.com/Music-Vine/uppbeat-frontend/issues"
45
+ },
46
+ "keywords": ["react", "components", "ui", "design-system", "tailwind", "uppbeat"],
47
+ "publishConfig": {
48
+ "access": "public"
49
+ },
50
+ "scripts": {
51
+ "build": "node build.js",
52
+ "dev": "node build.js --watch",
53
+ "clean": "rimraf dist",
54
+ "typecheck": "tsc --noEmit",
55
+ "storybook": "storybook dev -p 6007",
56
+ "build-storybook": "storybook build"
57
+ },
58
+ "peerDependencies": {
59
+ "react": "^19.0.0",
60
+ "react-dom": "^19.0.0"
61
+ },
62
+ "dependencies": {
63
+ "@radix-ui/react-accordion": "^1.2.3",
64
+ "@radix-ui/react-checkbox": "^1.1.4",
65
+ "@radix-ui/react-context-menu": "^2.2.6",
66
+ "@radix-ui/react-dialog": "^1.1.6",
67
+ "@radix-ui/react-label": "^2.1.2",
68
+ "@radix-ui/react-popover": "^1.1.6",
69
+ "@radix-ui/react-radio-group": "^1.2.3",
70
+ "@radix-ui/react-scroll-area": "^1.2.3",
71
+ "@radix-ui/react-select": "^2.1.6",
72
+ "@radix-ui/react-separator": "^1.1.2",
73
+ "@radix-ui/react-slider": "^1.2.3",
74
+ "@radix-ui/react-slot": "^1.1.2",
75
+ "@radix-ui/react-tabs": "^1.1.3",
76
+ "class-variance-authority": "^0.7.1",
77
+ "clsx": "^2.1.1",
78
+ "embla-carousel-react": "^8.5.1",
79
+ "lodash": "^4.17.21",
80
+ "lucide-react": "^0.531.0",
81
+ "motion": "^12.0.0",
82
+ "radix-ui": "^1.1.2",
83
+ "sonner": "^2.0.7",
84
+ "tailwind-merge": "^2.6.0",
85
+ "tailwindcss-animate": "^1.0.7",
86
+ "vaul": "^1.1.2"
87
+ },
88
+ "devDependencies": {
89
+ "@storybook/addon-a11y": "^10.1.11",
90
+ "@storybook/addon-docs": "^10.1.11",
91
+ "@storybook/addon-links": "^10.1.11",
92
+ "@storybook/addon-themes": "^10.1.11",
93
+ "@storybook/react-vite": "^10.1.11",
94
+ "@types/lodash": "^4.17.13",
95
+ "@types/react": "^19.0.0",
96
+ "@types/react-dom": "^19.0.0",
97
+ "autoprefixer": "^10.4.20",
98
+ "esbuild": "^0.24.2",
99
+ "glob": "^11.0.0",
100
+ "postcss": "^8.4.49",
101
+ "rimraf": "^6.0.1",
102
+ "storybook": "^10.1.11",
103
+ "tailwindcss": "^3.4.17",
104
+ "typescript": "^5.2.2",
105
+ "vite": "^6.0.7"
106
+ }
107
+ }
@@ -0,0 +1,299 @@
1
+ import type { Config } from "tailwindcss";
2
+ import animate from "tailwindcss-animate";
3
+
4
+ /**
5
+ * Cadence Design System - Tailwind Configuration
6
+ *
7
+ * This config can be used as a preset in consuming applications:
8
+ *
9
+ * @example
10
+ * // tailwind.config.ts
11
+ * import cadencePreset from '@music-vine/cadence/tailwind.config';
12
+ *
13
+ * export default {
14
+ * presets: [cadencePreset],
15
+ * content: ['./src/**\/*.{ts,tsx}'],
16
+ * } satisfies Config;
17
+ */
18
+
19
+ const cadenceConfig: Config = {
20
+ content: ["./src/**/*.{ts,tsx}"],
21
+ darkMode: ["selector", ".theme-dark"],
22
+ theme: {
23
+ screens: {
24
+ xxs: "24rem",
25
+ xs: "36rem",
26
+ sm: "40rem",
27
+ md: "48rem",
28
+ lg: "64rem",
29
+ xl: "80rem",
30
+ "2xl": "96rem",
31
+ "3xl": "125rem",
32
+ },
33
+ fontSize: {
34
+ xxs: [
35
+ "0.625rem",
36
+ {
37
+ lineHeight: "1rem",
38
+ letterSpacing: "0rem",
39
+ },
40
+ ],
41
+ xs: [
42
+ "0.75rem",
43
+ {
44
+ lineHeight: "1rem",
45
+ letterSpacing: "0.004rem",
46
+ },
47
+ ],
48
+ sm: [
49
+ "0.875rem",
50
+ {
51
+ lineHeight: "1.25rem",
52
+ letterSpacing: "0.0025rem",
53
+ },
54
+ ],
55
+ base: [
56
+ "1rem",
57
+ {
58
+ lineHeight: "1.5rem",
59
+ letterSpacing: "0.005rem",
60
+ },
61
+ ],
62
+ lg: [
63
+ "1.125rem",
64
+ {
65
+ lineHeight: "1.75rem",
66
+ letterSpacing: "0.0015rem",
67
+ },
68
+ ],
69
+ xl: [
70
+ "1.25rem",
71
+ {
72
+ lineHeight: "2rem",
73
+ letterSpacing: "0rem",
74
+ },
75
+ ],
76
+ "2xl": [
77
+ "1.5rem",
78
+ {
79
+ lineHeight: "2rem",
80
+ letterSpacing: "0rem",
81
+ },
82
+ ],
83
+ "3xl": [
84
+ "1.875rem",
85
+ {
86
+ lineHeight: "2.25rem",
87
+ letterSpacing: "0rem",
88
+ },
89
+ ],
90
+ "4xl": [
91
+ "2.25rem",
92
+ {
93
+ lineHeight: "2.5rem",
94
+ letterSpacing: "-0.063rem",
95
+ },
96
+ ],
97
+ "5xl": [
98
+ "3rem",
99
+ {
100
+ lineHeight: "3.25rem",
101
+ letterSpacing: "-0.125rem",
102
+ },
103
+ ],
104
+ "6xl": [
105
+ "3.75rem",
106
+ {
107
+ lineHeight: "4.25rem",
108
+ letterSpacing: "-0.125rem",
109
+ },
110
+ ],
111
+ "7xl": [
112
+ "4.5rem",
113
+ {
114
+ lineHeight: "5rem",
115
+ letterSpacing: "-0.125rem",
116
+ },
117
+ ],
118
+ "8xl": [
119
+ "6rem",
120
+ {
121
+ lineHeight: "6.5rem",
122
+ letterSpacing: "-0.188rem",
123
+ },
124
+ ],
125
+ "9xl": [
126
+ "8rem",
127
+ {
128
+ lineHeight: "8rem",
129
+ letterSpacing: "-0.015rem",
130
+ },
131
+ ],
132
+ },
133
+ colors: {
134
+ inherit: "inherit",
135
+ current: "currentColor",
136
+ transparent: "transparent",
137
+ black: "#151A20",
138
+ white: "#FFF",
139
+ gray: {
140
+ 50: "#F5F6F7",
141
+ 100: "#EDEEF0",
142
+ 150: "#E3E5E7",
143
+ 200: "#D9DBDE",
144
+ 300: "#C5C7CB",
145
+ 400: "#B4B6BA",
146
+ 500: "#A3A6AB",
147
+ 600: "#7B818A",
148
+ 700: "#5A646F",
149
+ 800: "#3D4653",
150
+ 850: "#323A45",
151
+ 900: "#1D232C",
152
+ 950: "#151A20",
153
+ },
154
+ pink: {
155
+ 50: "#FFF1F4",
156
+ 100: "#FFE4EA",
157
+ 200: "#FECDDA",
158
+ 300: "#FCA5BC",
159
+ 400: "#F47299",
160
+ 500: "#F23D75",
161
+ 600: "#DF1F64",
162
+ 700: "#BC1454",
163
+ 800: "#871447",
164
+ 900: "#5F152E",
165
+ 950: "#461F34",
166
+ },
167
+ green: {
168
+ light: "#DEF7EA",
169
+ DEFAULT: "#33CA7F",
170
+ dark: "#2CAF6E",
171
+ 50: "#E9FADA",
172
+ 100: "#D4F6C1",
173
+ 200: "#A5E4C8",
174
+ 300: "#7AD6B0",
175
+ 400: "#A1D879",
176
+ 500: "#67994D",
177
+ 600: "#4D7A33",
178
+ 700: "#355222",
179
+ 800: "#064C38",
180
+ 900: "#253D17",
181
+ 950: "#1A2810",
182
+ },
183
+ red: {
184
+ DEFAULT: "#FC5252",
185
+ 50: "#FDECEC",
186
+ 100: "#FFC9C9",
187
+ 200: "#FFA8A8",
188
+ 300: "#FF6B6B",
189
+ 400: "#FF7B73",
190
+ 500: "#E15757",
191
+ 600: "#C03E3E",
192
+ 700: "#9B2828",
193
+ 800: "#800E0E",
194
+ 900: "#721B1B",
195
+ 950: "#4D1212",
196
+ },
197
+ blue: {
198
+ special: {
199
+ light: "#EAF3FE",
200
+ dark: "#5C98F3",
201
+ },
202
+ 50: "#EAF3FE",
203
+ 100: "#DFF9FD",
204
+ 200: "#D6F7FB",
205
+ 300: "#CCF4FC",
206
+ 400: "#8AB8FF",
207
+ 500: "#5C98F3",
208
+ 600: "#18BADB",
209
+ 700: "#129BC0",
210
+ 800: "#0D86A9",
211
+ 900: "#097495",
212
+ 950: "#1E324D",
213
+ },
214
+ purple: {
215
+ 50: "#F8EAFE",
216
+ 400: "#DDA5FB",
217
+ 500: "#8F5DAF",
218
+ 950: "#473D57",
219
+ },
220
+ yellow: {
221
+ 50: "#FFF3D1",
222
+ 400: "#FFD34C",
223
+ 500: "#FFB452",
224
+ 950: "#443F29",
225
+ },
226
+ free: {
227
+ lighter: "#e6fcff",
228
+ light: "#D1F7FF80",
229
+ DEFAULT: "#37CFED",
230
+ dark: "#0AAFD0",
231
+ },
232
+ explicit: "#A72525",
233
+ credit: "#37CFED",
234
+ },
235
+ extend: {
236
+ borderRadius: {
237
+ sm: "4px",
238
+ },
239
+ fontFamily: {
240
+ sans: ["DM Sans", "system-ui", "sans-serif"],
241
+ // --font-heading should be defined by the consuming app (e.g., "Aeonik Fono Pro")
242
+ // Falls back to DM Sans if not defined
243
+ heading: [
244
+ 'var(--font-heading, "DM Sans")',
245
+ "DM Sans",
246
+ "system-ui",
247
+ "sans-serif",
248
+ ],
249
+ },
250
+ keyframes: {
251
+ "accordion-down": {
252
+ from: { height: "0" },
253
+ to: { height: "var(--radix-accordion-content-height)" },
254
+ },
255
+ "accordion-up": {
256
+ from: { height: "var(--radix-accordion-content-height)" },
257
+ to: { height: "0" },
258
+ },
259
+ fadeIn: {
260
+ from: { opacity: "0" },
261
+ to: { opacity: "1" },
262
+ },
263
+ fadeOut: {
264
+ from: { opacity: "1" },
265
+ to: { opacity: "0" },
266
+ },
267
+ slideDownAndFade: {
268
+ from: { opacity: "0", transform: "translateY(-2px)" },
269
+ to: { opacity: "1", transform: "translateY(0)" },
270
+ },
271
+ slideUpAndFade: {
272
+ from: { opacity: "0", transform: "translateY(2px)" },
273
+ to: { opacity: "1", transform: "translateY(0)" },
274
+ },
275
+ },
276
+ animation: {
277
+ "accordion-down": "accordion-down 0.2s ease-out",
278
+ "accordion-up": "accordion-up 0.2s ease-out",
279
+ fadeIn: "fadeIn 350ms cubic-bezier(0.25, 0.1, 0.25, 1.0) forwards",
280
+ fadeOut: "fadeOut 350ms cubic-bezier(0.25, 0.1, 0.25, 1.0) forwards",
281
+ slideDownAndFade:
282
+ "slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
283
+ slideUpAndFade: "slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)",
284
+ },
285
+ boxShadow: {
286
+ card: "0px 1px 8px 0px rgba(0, 0, 0, 0.05)",
287
+ glow: "0px 1px 4px 0.5px #F23D75",
288
+ 50: "0 1px 4px 0 rgba(21, 26, 32, 0.04)",
289
+ 100: "0 6px 12px 0 rgba(21, 26, 32, 0.12)",
290
+ },
291
+ borderWidth: {
292
+ 1: "1px",
293
+ },
294
+ },
295
+ },
296
+ plugins: [animate],
297
+ };
298
+
299
+ export default cadenceConfig;