@tenerife.music/ui 0.0.7 → 1.0.1

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 (231) hide show
  1. package/README.md +168 -136
  2. package/dist/ThemeProvider-CaUX_Jam.cjs +2 -0
  3. package/dist/ThemeProvider-ltuW-773.js +1227 -0
  4. package/dist/animation/index.d.ts +9 -0
  5. package/dist/animation/index.d.ts.map +1 -0
  6. package/dist/animation/presets.d.ts +304 -0
  7. package/dist/animation/presets.d.ts.map +1 -0
  8. package/dist/animation/tas.d.ts +80 -0
  9. package/dist/animation/tas.d.ts.map +1 -0
  10. package/dist/animation/types.d.ts +106 -0
  11. package/dist/animation/types.d.ts.map +1 -0
  12. package/dist/animation/utils.d.ts +7 -0
  13. package/dist/animation/utils.d.ts.map +1 -0
  14. package/dist/brand-C5R2semX.js +45 -0
  15. package/dist/brand-DQb18Frh.cjs +2 -0
  16. package/dist/components/SectionBuilder.d.ts +37 -0
  17. package/dist/components/SectionBuilder.d.ts.map +1 -0
  18. package/dist/components/SectionBuilder.presets.d.ts +229 -0
  19. package/dist/components/SectionBuilder.presets.d.ts.map +1 -0
  20. package/dist/components/SectionBuilder.types.d.ts +327 -0
  21. package/dist/components/SectionBuilder.types.d.ts.map +1 -0
  22. package/dist/components/admin/Dashboard.d.ts.map +1 -1
  23. package/dist/components/admin/UserManagement.d.ts.map +1 -1
  24. package/dist/components/auth/LoginForm.d.ts.map +1 -1
  25. package/dist/components/auth/ProfileCard.d.ts.map +1 -1
  26. package/dist/components/auth/RegisterForm.d.ts.map +1 -1
  27. package/dist/components/cards/EventCard.d.ts +32 -31
  28. package/dist/components/cards/EventCard.d.ts.map +1 -1
  29. package/dist/components/cards/VenueCard.d.ts +32 -33
  30. package/dist/components/cards/VenueCard.d.ts.map +1 -1
  31. package/dist/components/controls/LanguageSelector.d.ts.map +1 -1
  32. package/dist/components/data/List.d.ts.map +1 -1
  33. package/dist/components/data/Table.d.ts +2 -2
  34. package/dist/components/data/Table.d.ts.map +1 -1
  35. package/dist/components/data/Timeline.d.ts.map +1 -1
  36. package/dist/components/feedback/Alert.d.ts +1 -1
  37. package/dist/components/feedback/Alert.d.ts.map +1 -1
  38. package/dist/components/feedback/ConsentBanner.d.ts.map +1 -1
  39. package/dist/components/feedback/Progress.d.ts.map +1 -1
  40. package/dist/components/feedback/Skeleton.d.ts.map +1 -1
  41. package/dist/components/filters/DateRangePicker.d.ts.map +1 -1
  42. package/dist/components/filters/FilterBar.d.ts +14 -1
  43. package/dist/components/filters/FilterBar.d.ts.map +1 -1
  44. package/dist/components/filters/FilterSelect.d.ts +2 -2
  45. package/dist/components/filters/FilterSelect.d.ts.map +1 -1
  46. package/dist/components/filters/PriceRangeSlider.d.ts.map +1 -1
  47. package/dist/components/filters/SearchFilters.d.ts.map +1 -1
  48. package/dist/components/filters/SearchInput.d.ts +1 -1
  49. package/dist/components/filters/SearchInput.d.ts.map +1 -1
  50. package/dist/components/filters/types.d.ts +9 -9
  51. package/dist/components/filters/types.d.ts.map +1 -1
  52. package/dist/components/forms/FormInput.d.ts +3 -7
  53. package/dist/components/forms/FormInput.d.ts.map +1 -1
  54. package/dist/components/forms/FormSelect.d.ts.map +1 -1
  55. package/dist/components/forms/FormTextarea.d.ts +2 -6
  56. package/dist/components/forms/FormTextarea.d.ts.map +1 -1
  57. package/dist/components/icons/TrendingIcon.d.ts.map +1 -1
  58. package/dist/components/image/Image.d.ts +4 -4
  59. package/dist/components/image/Image.d.ts.map +1 -1
  60. package/dist/components/layout/Box.d.ts +90 -0
  61. package/dist/components/layout/Box.d.ts.map +1 -0
  62. package/dist/components/layout/Container.d.ts +2 -2
  63. package/dist/components/layout/Container.d.ts.map +1 -1
  64. package/dist/components/layout/Flex.d.ts +27 -6
  65. package/dist/components/layout/Flex.d.ts.map +1 -1
  66. package/dist/components/layout/Footer.d.ts.map +1 -1
  67. package/dist/components/layout/Grid.d.ts +43 -4
  68. package/dist/components/layout/Grid.d.ts.map +1 -1
  69. package/dist/components/layout/ModeHero.d.ts.map +1 -1
  70. package/dist/components/layout/Navbar.d.ts +2 -2
  71. package/dist/components/layout/Navbar.d.ts.map +1 -1
  72. package/dist/components/layout/Section.d.ts +2 -2
  73. package/dist/components/layout/Section.d.ts.map +1 -1
  74. package/dist/components/layout/Stack.d.ts +21 -4
  75. package/dist/components/layout/Stack.d.ts.map +1 -1
  76. package/dist/components/layout/index.d.ts +15 -0
  77. package/dist/components/layout/index.d.ts.map +1 -0
  78. package/dist/components/layout/layout.types.d.ts +92 -0
  79. package/dist/components/layout/layout.types.d.ts.map +1 -0
  80. package/dist/components/menus/DropdownMenu.d.ts +2 -2
  81. package/dist/components/menus/DropdownMenu.d.ts.map +1 -1
  82. package/dist/components/menus/NavigationMenu.d.ts +2 -2
  83. package/dist/components/menus/NavigationMenu.d.ts.map +1 -1
  84. package/dist/components/menus/Tabs.d.ts +2 -2
  85. package/dist/components/menus/Tabs.d.ts.map +1 -1
  86. package/dist/components/modals/ConfirmDialog.d.ts +2 -2
  87. package/dist/components/modals/ConfirmDialog.d.ts.map +1 -1
  88. package/dist/components/modals/CustomDialog.d.ts +1 -2
  89. package/dist/components/modals/CustomDialog.d.ts.map +1 -1
  90. package/dist/components/modals/Modal.d.ts +2 -2
  91. package/dist/components/modals/Modal.d.ts.map +1 -1
  92. package/dist/components/modals/ModalProvider.d.ts +2 -2
  93. package/dist/components/modals/ModalProvider.d.ts.map +1 -1
  94. package/dist/components/modals/SimpleModal.d.ts +3 -2
  95. package/dist/components/modals/SimpleModal.d.ts.map +1 -1
  96. package/dist/components/navigation/Breadcrumbs.d.ts +1 -0
  97. package/dist/components/navigation/Breadcrumbs.d.ts.map +1 -1
  98. package/dist/components/navigation/Pagination.d.ts +1 -0
  99. package/dist/components/navigation/Pagination.d.ts.map +1 -1
  100. package/dist/components/overlays/OverlayPortal.d.ts +3 -3
  101. package/dist/components/overlays/OverlayPortal.d.ts.map +1 -1
  102. package/dist/components/overlays/Popover.d.ts +11 -11
  103. package/dist/components/overlays/Popover.d.ts.map +1 -1
  104. package/dist/components/overlays/Tooltip.d.ts +9 -9
  105. package/dist/components/overlays/Tooltip.d.ts.map +1 -1
  106. package/dist/components/primitives/Badge.d.ts +1 -1
  107. package/dist/components/primitives/Badge.d.ts.map +1 -1
  108. package/dist/components/primitives/Button.d.ts +1 -1
  109. package/dist/components/primitives/Button.d.ts.map +1 -1
  110. package/dist/components/primitives/Card.d.ts +1 -1
  111. package/dist/components/primitives/Card.d.ts.map +1 -1
  112. package/dist/components/primitives/Divider.d.ts.map +1 -1
  113. package/dist/components/primitives/Link.d.ts +4 -2
  114. package/dist/components/primitives/Link.d.ts.map +1 -1
  115. package/dist/components/primitives/ThemeSwitch.d.ts +2 -2
  116. package/dist/components/primitives/ThemeSwitch.d.ts.map +1 -1
  117. package/dist/components/primitives/Typography.d.ts +4 -4
  118. package/dist/components/primitives/Typography.d.ts.map +1 -1
  119. package/dist/components/search/SearchBar.d.ts.map +1 -1
  120. package/dist/components/sections/ArticlesSection.d.ts +14 -4
  121. package/dist/components/sections/ArticlesSection.d.ts.map +1 -1
  122. package/dist/components/sections/CTASection.d.ts +38 -0
  123. package/dist/components/sections/CTASection.d.ts.map +1 -0
  124. package/dist/components/sections/FeatureSection.d.ts +34 -0
  125. package/dist/components/sections/FeatureSection.d.ts.map +1 -0
  126. package/dist/components/sections/HeroSection.d.ts +28 -0
  127. package/dist/components/sections/HeroSection.d.ts.map +1 -0
  128. package/dist/components/sections/TrendingSection.d.ts +19 -3
  129. package/dist/components/sections/TrendingSection.d.ts.map +1 -1
  130. package/dist/components/skeletons/EventCardSkeleton.d.ts.map +1 -1
  131. package/dist/components/skeletons/VenueCardSkeleton.d.ts.map +1 -1
  132. package/dist/components/toasts/Toast.d.ts +2 -2
  133. package/dist/components/toasts/Toast.d.ts.map +1 -1
  134. package/dist/components/toasts/ToastProvider.d.ts +3 -3
  135. package/dist/components/toasts/ToastProvider.d.ts.map +1 -1
  136. package/dist/components/ui/button.d.ts +4 -2
  137. package/dist/components/ui/button.d.ts.map +1 -1
  138. package/dist/components/ui/card.d.ts +1 -1
  139. package/dist/components/ui/card.d.ts.map +1 -1
  140. package/dist/components/ui/dialog.d.ts +2 -2
  141. package/dist/components/ui/dialog.d.ts.map +1 -1
  142. package/dist/components/ui/input.d.ts.map +1 -1
  143. package/dist/components/ui/label.d.ts +1 -1
  144. package/dist/components/ui/label.d.ts.map +1 -1
  145. package/dist/components/ui/toast.d.ts +3 -3
  146. package/dist/components/ui/toast.d.ts.map +1 -1
  147. package/dist/components/ui/toaster.d.ts.map +1 -1
  148. package/dist/components/ui/tooltip.d.ts +2 -2
  149. package/dist/components/ui/tooltip.d.ts.map +1 -1
  150. package/dist/dark-Cvoy1uFT.js +30 -0
  151. package/dist/dark-OOhiqt1q.cjs +2 -0
  152. package/dist/default-BKgH1D9-.js +8 -0
  153. package/dist/default-Ddg7Haf2.cjs +2 -0
  154. package/dist/hooks/use-toast.d.ts +3 -3
  155. package/dist/hooks/use-toast.d.ts.map +1 -1
  156. package/dist/hooks/useDebounce.d.ts +20 -0
  157. package/dist/hooks/useDebounce.d.ts.map +1 -0
  158. package/dist/hooks/useModal.d.ts +5 -5
  159. package/dist/hooks/useModal.d.ts.map +1 -1
  160. package/dist/hooks/useToast.d.ts +2 -2
  161. package/dist/hooks/useToast.d.ts.map +1 -1
  162. package/dist/index.cjs +1 -1
  163. package/dist/index.d.ts +41 -32
  164. package/dist/index.d.ts.map +1 -1
  165. package/dist/index.mjs +4303 -2807
  166. package/dist/lib/a11y.d.ts +16 -0
  167. package/dist/lib/a11y.d.ts.map +1 -0
  168. package/dist/lib/responsive-props.d.ts +64 -0
  169. package/dist/lib/responsive-props.d.ts.map +1 -0
  170. package/dist/motion-4SRNkZlz.cjs +2 -0
  171. package/dist/motion-CuHacXY1.js +722 -0
  172. package/dist/preset.cjs +1 -1
  173. package/dist/preset.d.ts.map +1 -1
  174. package/dist/preset.mjs +1 -1
  175. package/dist/radius-CAu4qr9R.js +185 -0
  176. package/dist/radius-Cz6tayZG.cjs +2 -0
  177. package/dist/test/animation-utils.d.ts +60 -0
  178. package/dist/test/animation-utils.d.ts.map +1 -0
  179. package/dist/theme/ThemeProvider.d.ts +56 -0
  180. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  181. package/dist/theme/applyMode.d.ts +41 -1
  182. package/dist/theme/applyMode.d.ts.map +1 -1
  183. package/dist/theme/index.cjs +1 -1
  184. package/dist/theme/index.d.ts +5 -1
  185. package/dist/theme/index.d.ts.map +1 -1
  186. package/dist/theme/index.mjs +237 -97
  187. package/dist/theme/loader.d.ts +64 -0
  188. package/dist/theme/loader.d.ts.map +1 -0
  189. package/dist/theme/motion.d.ts.map +1 -1
  190. package/dist/theme/registry.d.ts +71 -0
  191. package/dist/theme/registry.d.ts.map +1 -0
  192. package/dist/theme/schema.d.ts +125 -0
  193. package/dist/theme/schema.d.ts.map +1 -0
  194. package/dist/theme/typography.d.ts.map +1 -1
  195. package/dist/themes/brand.d.ts +7 -0
  196. package/dist/themes/brand.d.ts.map +1 -0
  197. package/dist/themes/brand_engine.d.ts +102 -0
  198. package/dist/themes/brand_engine.d.ts.map +1 -0
  199. package/dist/themes/dark.d.ts +7 -0
  200. package/dist/themes/dark.d.ts.map +1 -0
  201. package/dist/themes/default.d.ts +7 -0
  202. package/dist/themes/default.d.ts.map +1 -0
  203. package/dist/themes/index.d.ts +25 -0
  204. package/dist/themes/index.d.ts.map +1 -0
  205. package/dist/themes/minimal.d.ts +7 -0
  206. package/dist/themes/minimal.d.ts.map +1 -0
  207. package/dist/themes/neon.d.ts +7 -0
  208. package/dist/themes/neon.d.ts.map +1 -0
  209. package/dist/themes/types.d.ts +279 -0
  210. package/dist/themes/types.d.ts.map +1 -0
  211. package/dist/tokens/colors.d.ts +260 -38
  212. package/dist/tokens/colors.d.ts.map +1 -1
  213. package/dist/tokens/css-variables.d.ts +271 -0
  214. package/dist/tokens/css-variables.d.ts.map +1 -0
  215. package/dist/tokens/index.cjs +4 -1
  216. package/dist/tokens/index.d.ts +4 -1
  217. package/dist/tokens/index.d.ts.map +1 -1
  218. package/dist/tokens/index.mjs +770 -168
  219. package/dist/tokens/motion.d.ts +435 -0
  220. package/dist/tokens/motion.d.ts.map +1 -0
  221. package/dist/tokens/radius.d.ts +130 -2
  222. package/dist/tokens/radius.d.ts.map +1 -1
  223. package/dist/tokens/shadows.d.ts +172 -0
  224. package/dist/tokens/shadows.d.ts.map +1 -0
  225. package/dist/tokens/spacing.d.ts +155 -1
  226. package/dist/tokens/spacing.d.ts.map +1 -1
  227. package/dist/tokens/typography.d.ts +285 -21
  228. package/dist/tokens/typography.d.ts.map +1 -1
  229. package/package.json +66 -18
  230. package/dist/radius-CuOZD6Mk.cjs +0 -2
  231. package/dist/radius-NOytgRst.js +0 -22
@@ -1,49 +1,91 @@
1
+ /**
2
+ * Typography System Tokens
3
+ *
4
+ * Complete typography system for Tenerife UI based on design system specifications.
5
+ * Includes: font families (Inter, Satoshi, Clash Display), fluid type scale using clamp(),
6
+ * font weights, line heights, letter spacing, and predefined text styles.
7
+ *
8
+ * @see docs/tenerife_audit/design_system.md - typography system section
9
+ */
10
+ /**
11
+ * Font Families
12
+ * Inter (primary), Satoshi (optional), Clash Display (headings/hero)
13
+ */
1
14
  export declare const fontFamily: {
2
- readonly sans: readonly ["ui-sans-serif", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "Noto Sans", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"];
15
+ readonly sans: readonly ["Inter", "ui-sans-serif", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "Helvetica Neue", "Arial", "Noto Sans", "sans-serif", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"];
16
+ readonly satoshi: readonly ["Satoshi", "Inter", "ui-sans-serif", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "sans-serif"];
17
+ readonly display: readonly ["Clash Display", "Inter", "ui-sans-serif", "system-ui", "-apple-system", "BlinkMacSystemFont", "Segoe UI", "Roboto", "sans-serif"];
3
18
  readonly serif: readonly ["ui-serif", "Georgia", "Cambria", "Times New Roman", "Times", "serif"];
4
19
  readonly mono: readonly ["ui-monospace", "SFMono-Regular", "Menlo", "Monaco", "Consolas", "Liberation Mono", "Courier New", "monospace"];
5
20
  };
21
+ /**
22
+ * Fluid Typography Scale
23
+ * Uses clamp() for responsive type scaling
24
+ * Values: text-xs through text-6xl
25
+ *
26
+ * Format: clamp(min, preferred, max)
27
+ * min: smallest size (mobile)
28
+ * preferred: fluid calculation
29
+ * max: largest size (desktop)
30
+ */
6
31
  export declare const fontSize: {
7
- readonly xs: readonly ["0.75rem", {
32
+ readonly xs: readonly ["clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)", {
8
33
  readonly lineHeight: "1rem";
34
+ readonly letterSpacing: "0.05em";
9
35
  }];
10
- readonly sm: readonly ["0.875rem", {
36
+ readonly sm: readonly ["clamp(0.875rem, 0.8rem + 0.25vw, 1rem)", {
11
37
  readonly lineHeight: "1.25rem";
38
+ readonly letterSpacing: "0.025em";
12
39
  }];
13
- readonly base: readonly ["1rem", {
40
+ readonly base: readonly ["clamp(1rem, 0.95rem + 0.25vw, 1.125rem)", {
14
41
  readonly lineHeight: "1.5rem";
42
+ readonly letterSpacing: "0em";
15
43
  }];
16
- readonly lg: readonly ["1.125rem", {
44
+ readonly lg: readonly ["clamp(1.125rem, 1rem + 0.5vw, 1.25rem)", {
17
45
  readonly lineHeight: "1.75rem";
46
+ readonly letterSpacing: "-0.025em";
18
47
  }];
19
- readonly xl: readonly ["1.25rem", {
48
+ readonly xl: readonly ["clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)", {
20
49
  readonly lineHeight: "1.75rem";
50
+ readonly letterSpacing: "-0.025em";
21
51
  }];
22
- readonly "2xl": readonly ["1.5rem", {
52
+ readonly "2xl": readonly ["clamp(1.5rem, 1.25rem + 1.25vw, 2rem)", {
23
53
  readonly lineHeight: "2rem";
54
+ readonly letterSpacing: "-0.05em";
24
55
  }];
25
- readonly "3xl": readonly ["1.875rem", {
56
+ readonly "3xl": readonly ["clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem)", {
26
57
  readonly lineHeight: "2.25rem";
58
+ readonly letterSpacing: "-0.05em";
27
59
  }];
28
- readonly "4xl": readonly ["2.25rem", {
60
+ readonly "4xl": readonly ["clamp(2.25rem, 1.75rem + 2.5vw, 3rem)", {
29
61
  readonly lineHeight: "2.5rem";
62
+ readonly letterSpacing: "-0.025em";
30
63
  }];
31
- readonly "5xl": readonly ["3rem", {
64
+ readonly "5xl": readonly ["clamp(3rem, 2rem + 5vw, 4rem)", {
32
65
  readonly lineHeight: "1";
66
+ readonly letterSpacing: "-0.025em";
33
67
  }];
34
- readonly "6xl": readonly ["3.75rem", {
68
+ readonly "6xl": readonly ["clamp(3.75rem, 2.5rem + 6.25vw, 5rem)", {
35
69
  readonly lineHeight: "1";
70
+ readonly letterSpacing: "-0.05em";
36
71
  }];
37
- readonly "7xl": readonly ["4.5rem", {
72
+ readonly "7xl": readonly ["clamp(4.5rem, 3rem + 7.5vw, 6rem)", {
38
73
  readonly lineHeight: "1";
74
+ readonly letterSpacing: "-0.05em";
39
75
  }];
40
- readonly "8xl": readonly ["6rem", {
76
+ readonly "8xl": readonly ["clamp(6rem, 4rem + 10vw, 8rem)", {
41
77
  readonly lineHeight: "1";
78
+ readonly letterSpacing: "-0.05em";
42
79
  }];
43
- readonly "9xl": readonly ["8rem", {
80
+ readonly "9xl": readonly ["clamp(8rem, 5rem + 15vw, 12rem)", {
44
81
  readonly lineHeight: "1";
82
+ readonly letterSpacing: "-0.05em";
45
83
  }];
46
84
  };
85
+ /**
86
+ * Font Weight Tokens
87
+ * Range: 300 (light) to 800 (extrabold)
88
+ */
47
89
  export declare const fontWeight: {
48
90
  readonly thin: "100";
49
91
  readonly extralight: "200";
@@ -55,6 +97,22 @@ export declare const fontWeight: {
55
97
  readonly extrabold: "800";
56
98
  readonly black: "900";
57
99
  };
100
+ /**
101
+ * Line Height Tokens
102
+ * Used for vertical rhythm and readability
103
+ */
104
+ export declare const lineHeight: {
105
+ readonly none: "1";
106
+ readonly tight: "1.25";
107
+ readonly snug: "1.375";
108
+ readonly normal: "1.5";
109
+ readonly relaxed: "1.625";
110
+ readonly loose: "2";
111
+ };
112
+ /**
113
+ * Letter Spacing Tokens
114
+ * Used for tracking (character spacing)
115
+ */
58
116
  export declare const letterSpacing: {
59
117
  readonly tighter: "-0.05em";
60
118
  readonly tight: "-0.025em";
@@ -63,17 +121,223 @@ export declare const letterSpacing: {
63
121
  readonly wider: "0.05em";
64
122
  readonly widest: "0.1em";
65
123
  };
66
- export declare const lineHeight: {
67
- readonly none: "1";
68
- readonly tight: "1.25";
69
- readonly snug: "1.375";
70
- readonly normal: "1.5";
71
- readonly relaxed: "1.625";
72
- readonly loose: "2";
124
+ /**
125
+ * CSS Custom Properties for Typography
126
+ * These will be injected into the theme system
127
+ */
128
+ export declare const typographyCSSVariables: {
129
+ readonly "--font-sans": string;
130
+ readonly "--font-satoshi": string;
131
+ readonly "--font-display": string;
132
+ readonly "--font-serif": string;
133
+ readonly "--font-mono": string;
134
+ readonly "--font-size-xs": "clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)";
135
+ readonly "--font-size-sm": "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)";
136
+ readonly "--font-size-base": "clamp(1rem, 0.95rem + 0.25vw, 1.125rem)";
137
+ readonly "--font-size-lg": "clamp(1.125rem, 1rem + 0.5vw, 1.25rem)";
138
+ readonly "--font-size-xl": "clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)";
139
+ readonly "--font-size-2xl": "clamp(1.5rem, 1.25rem + 1.25vw, 2rem)";
140
+ readonly "--font-size-3xl": "clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem)";
141
+ readonly "--font-size-4xl": "clamp(2.25rem, 1.75rem + 2.5vw, 3rem)";
142
+ readonly "--font-size-5xl": "clamp(3rem, 2rem + 5vw, 4rem)";
143
+ readonly "--font-size-6xl": "clamp(3.75rem, 2.5rem + 6.25vw, 5rem)";
144
+ readonly "--font-weight-thin": "100";
145
+ readonly "--font-weight-extralight": "200";
146
+ readonly "--font-weight-light": "300";
147
+ readonly "--font-weight-normal": "400";
148
+ readonly "--font-weight-medium": "500";
149
+ readonly "--font-weight-semibold": "600";
150
+ readonly "--font-weight-bold": "700";
151
+ readonly "--font-weight-extrabold": "800";
152
+ readonly "--font-weight-black": "900";
153
+ readonly "--line-height-none": "1";
154
+ readonly "--line-height-tight": "1.25";
155
+ readonly "--line-height-snug": "1.375";
156
+ readonly "--line-height-normal": "1.5";
157
+ readonly "--line-height-relaxed": "1.625";
158
+ readonly "--line-height-loose": "2";
159
+ readonly "--letter-spacing-tighter": "-0.05em";
160
+ readonly "--letter-spacing-tight": "-0.025em";
161
+ readonly "--letter-spacing-normal": "0em";
162
+ readonly "--letter-spacing-wide": "0.025em";
163
+ readonly "--letter-spacing-wider": "0.05em";
164
+ readonly "--letter-spacing-widest": "0.1em";
165
+ };
166
+ /**
167
+ * Predefined Text Styles
168
+ * Common combinations for headings, body text, etc.
169
+ */
170
+ export declare const textStyles: {
171
+ readonly display: {
172
+ readonly fontFamily: string;
173
+ readonly fontSize: "clamp(3.75rem, 2.5rem + 6.25vw, 5rem)";
174
+ readonly fontWeight: "700";
175
+ readonly lineHeight: "1";
176
+ readonly letterSpacing: "-0.025em";
177
+ };
178
+ readonly h1: {
179
+ readonly fontFamily: string;
180
+ readonly fontSize: "clamp(3rem, 2rem + 5vw, 4rem)";
181
+ readonly fontWeight: "700";
182
+ readonly lineHeight: "1.25";
183
+ readonly letterSpacing: "-0.025em";
184
+ };
185
+ readonly h2: {
186
+ readonly fontFamily: string;
187
+ readonly fontSize: "clamp(2.25rem, 1.75rem + 2.5vw, 3rem)";
188
+ readonly fontWeight: "700";
189
+ readonly lineHeight: "1.25";
190
+ readonly letterSpacing: "-0.025em";
191
+ };
192
+ readonly h3: {
193
+ readonly fontFamily: string;
194
+ readonly fontSize: "clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem)";
195
+ readonly fontWeight: "600";
196
+ readonly lineHeight: "1.375";
197
+ readonly letterSpacing: "0em";
198
+ };
199
+ readonly h4: {
200
+ readonly fontFamily: string;
201
+ readonly fontSize: "clamp(1.5rem, 1.25rem + 1.25vw, 2rem)";
202
+ readonly fontWeight: "600";
203
+ readonly lineHeight: "1.375";
204
+ readonly letterSpacing: "0em";
205
+ };
206
+ readonly h5: {
207
+ readonly fontFamily: string;
208
+ readonly fontSize: "clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem)";
209
+ readonly fontWeight: "500";
210
+ readonly lineHeight: "1.5";
211
+ readonly letterSpacing: "0em";
212
+ };
213
+ readonly h6: {
214
+ readonly fontFamily: string;
215
+ readonly fontSize: "clamp(1.125rem, 1rem + 0.5vw, 1.25rem)";
216
+ readonly fontWeight: "500";
217
+ readonly lineHeight: "1.5";
218
+ readonly letterSpacing: "0em";
219
+ };
220
+ readonly body: {
221
+ readonly fontFamily: string;
222
+ readonly fontSize: "clamp(1rem, 0.95rem + 0.25vw, 1.125rem)";
223
+ readonly fontWeight: "400";
224
+ readonly lineHeight: "1.625";
225
+ readonly letterSpacing: "0em";
226
+ };
227
+ readonly "body-sm": {
228
+ readonly fontFamily: string;
229
+ readonly fontSize: "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)";
230
+ readonly fontWeight: "400";
231
+ readonly lineHeight: "1.5";
232
+ readonly letterSpacing: "0em";
233
+ };
234
+ readonly "body-xs": {
235
+ readonly fontFamily: string;
236
+ readonly fontSize: "clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)";
237
+ readonly fontWeight: "400";
238
+ readonly lineHeight: "1.5";
239
+ readonly letterSpacing: "0.025em";
240
+ };
241
+ readonly label: {
242
+ readonly fontFamily: string;
243
+ readonly fontSize: "clamp(0.875rem, 0.8rem + 0.25vw, 1rem)";
244
+ readonly fontWeight: "500";
245
+ readonly lineHeight: "1.5";
246
+ readonly letterSpacing: "0.025em";
247
+ };
248
+ readonly "label-sm": {
249
+ readonly fontFamily: string;
250
+ readonly fontSize: "clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)";
251
+ readonly fontWeight: "500";
252
+ readonly lineHeight: "1.5";
253
+ readonly letterSpacing: "0.05em";
254
+ };
255
+ readonly caption: {
256
+ readonly fontFamily: string;
257
+ readonly fontSize: "clamp(0.75rem, 0.7rem + 0.125vw, 0.875rem)";
258
+ readonly fontWeight: "400";
259
+ readonly lineHeight: "1.5";
260
+ readonly letterSpacing: "0.025em";
261
+ };
262
+ };
263
+ /**
264
+ * Tailwind Typography Config
265
+ * Maps to Tailwind theme.extend.typography
266
+ * Note: Typed as tuples for Tailwind compatibility
267
+ */
268
+ export declare const tailwindTypographyConfig: {
269
+ fontFamily: {
270
+ sans: string[];
271
+ satoshi: string[];
272
+ display: string[];
273
+ serif: string[];
274
+ mono: string[];
275
+ };
276
+ fontSize: {
277
+ xs: [string, {
278
+ lineHeight: string;
279
+ letterSpacing: string;
280
+ }];
281
+ sm: [string, {
282
+ lineHeight: string;
283
+ letterSpacing: string;
284
+ }];
285
+ base: [string, {
286
+ lineHeight: string;
287
+ letterSpacing: string;
288
+ }];
289
+ lg: [string, {
290
+ lineHeight: string;
291
+ letterSpacing: string;
292
+ }];
293
+ xl: [string, {
294
+ lineHeight: string;
295
+ letterSpacing: string;
296
+ }];
297
+ "2xl": [string, {
298
+ lineHeight: string;
299
+ letterSpacing: string;
300
+ }];
301
+ "3xl": [string, {
302
+ lineHeight: string;
303
+ letterSpacing: string;
304
+ }];
305
+ "4xl": [string, {
306
+ lineHeight: string;
307
+ letterSpacing: string;
308
+ }];
309
+ "5xl": [string, {
310
+ lineHeight: string;
311
+ letterSpacing: string;
312
+ }];
313
+ "6xl": [string, {
314
+ lineHeight: string;
315
+ letterSpacing: string;
316
+ }];
317
+ "7xl": [string, {
318
+ lineHeight: string;
319
+ letterSpacing: string;
320
+ }];
321
+ "8xl": [string, {
322
+ lineHeight: string;
323
+ letterSpacing: string;
324
+ }];
325
+ "9xl": [string, {
326
+ lineHeight: string;
327
+ letterSpacing: string;
328
+ }];
329
+ };
330
+ fontWeight: Record<string, string>;
331
+ lineHeight: Record<string, string>;
332
+ letterSpacing: Record<string, string>;
73
333
  };
334
+ /**
335
+ * Type Exports
336
+ */
74
337
  export type FontFamily = keyof typeof fontFamily;
75
338
  export type FontSize = keyof typeof fontSize;
76
339
  export type FontWeight = keyof typeof fontWeight;
77
340
  export type LetterSpacing = keyof typeof letterSpacing;
78
341
  export type LineHeight = keyof typeof lineHeight;
342
+ export type TextStyle = keyof typeof textStyles;
79
343
  //# sourceMappingURL=typography.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;;CAmCb,CAAC;AAEX,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAcX,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;CAUb,CAAC;AAEX,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AACjD,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,QAAQ,CAAC;AAC7C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC;AACjD,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,aAAa,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,UAAU,CAAC"}
1
+ {"version":3,"file":"typography.d.ts","sourceRoot":"","sources":["../../src/tokens/typography.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tenerife.music/ui",
3
- "version": "0.0.7",
3
+ "version": "1.0.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "Tenerife.Music UI Component Library - A hybrid design system built on shadcn/ui primitives with Tenerife branding",
@@ -30,6 +30,43 @@
30
30
  "dist",
31
31
  "stories"
32
32
  ],
33
+ "publishConfig": {
34
+ "access": "public"
35
+ },
36
+ "scripts": {
37
+ "build": "vite build",
38
+ "dev": "vite build --watch",
39
+ "clean": "rimraf dist",
40
+ "format": "prettier . --write",
41
+ "format:check": "prettier . --check",
42
+ "lint": "eslint . --ext .ts,.tsx --fix --ignore-pattern '**/*.stories.*' --ignore-pattern '.storybook/**' --ignore-pattern 'storybook-static/**'",
43
+ "lint:check": "eslint . --ext .ts,.tsx --ignore-pattern '**/*.stories.*' --ignore-pattern '.storybook/**' --ignore-pattern 'storybook-static/**'",
44
+ "lint:ci": "./scripts/lint-ci.sh",
45
+ "lint:fix": "./scripts/lint-local.sh",
46
+ "lint:strict": "eslint . --ext .ts,.tsx --max-warnings=0 --ignore-pattern '**/*.stories.*' --ignore-pattern '.storybook/**' --ignore-pattern 'storybook-static/**'",
47
+ "lint:errors": "eslint . --ext .ts,.tsx --format stylish --ignore-pattern '**/*.stories.*' --ignore-pattern '.storybook/**' --ignore-pattern 'storybook-static/**'",
48
+ "precommit:lint": "eslint . --ext .ts,.tsx --fix --ignore-pattern '**/*.stories.*' --ignore-pattern '.storybook/**' --ignore-pattern 'storybook-static/**'",
49
+ "precommit:format": "prettier . --write",
50
+ "typecheck": "tsc --noEmit && tsc --noEmit --project tsconfig.vite.json",
51
+ "test": "jest",
52
+ "test:watch": "jest --watch",
53
+ "test:coverage": "jest --coverage",
54
+ "test:a11y": "jest --runInBand --testPathPattern=a11y\\.test",
55
+ "a11y:contrast": "tsx scripts/a11y-contrast-check.js",
56
+ "ci:a11y": "pnpm test:a11y && pnpm a11y:contrast",
57
+ "storybook": "storybook dev -p 6006",
58
+ "build-storybook": "storybook build",
59
+ "preview": "vite preview",
60
+ "prepublishOnly": "npm run clean && npm run build && npm run typecheck",
61
+ "validate": "npm run typecheck && npm run lint:check && npm run format:check",
62
+ "theme:create": "tsx scripts/theme-cli.ts create",
63
+ "theme:validate": "tsx scripts/theme-validate.ts",
64
+ "ui:check": "tsx scripts/check-ui-consistency.ts",
65
+ "tokens:export": "npx tsx scripts/export-tokens.ts",
66
+ "commitlint": "commitlint",
67
+ "ci:local": "./scripts/ci-local.sh",
68
+ "prepare": "husky"
69
+ },
33
70
  "peerDependencies": {
34
71
  "react": "^18 || ^19",
35
72
  "react-dom": "^18 || ^19"
@@ -66,6 +103,17 @@
66
103
  "zustand": "^5.0.0"
67
104
  },
68
105
  "devDependencies": {
106
+ "@commitlint/cli": "^20.1.0",
107
+ "@commitlint/config-conventional": "^20.0.0",
108
+ "@eslint/eslintrc": "^3.3.1",
109
+ "@rollup/rollup-darwin-x64": "^4.53.3",
110
+ "@semantic-release/changelog": "^6.0.3",
111
+ "@semantic-release/commit-analyzer": "^13.0.1",
112
+ "@semantic-release/git": "^10.0.1",
113
+ "@semantic-release/github": "^12.0.2",
114
+ "@semantic-release/npm": "^13.1.2",
115
+ "@semantic-release/release-notes-generator": "^14.1.0",
116
+ "@storybook/addon-a11y": "^8.0.0",
69
117
  "@storybook/addon-essentials": "^8.0.0",
70
118
  "@storybook/addon-interactions": "^8.0.0",
71
119
  "@storybook/addon-links": "^8.0.0",
@@ -79,21 +127,34 @@
79
127
  "@testing-library/react": "^16.0.0",
80
128
  "@testing-library/user-event": "^14.0.0",
81
129
  "@types/jest": "^29.0.0",
130
+ "@types/node": "^20.19.25",
82
131
  "@types/react": "^19",
83
132
  "@types/react-dom": "^19",
84
133
  "@vitejs/plugin-react": "^4.0.0",
85
134
  "autoprefixer": "^10.0.0",
86
- "eslint": "^9.0.0",
87
- "eslint-plugin-react": "^7.37.0",
135
+ "conventional-changelog-conventionalcommits": "^9.1.0",
136
+ "eslint": "^9.38.0",
137
+ "eslint-config-prettier": "^9.1.2",
138
+ "eslint-plugin-react": "^7.37.2",
139
+ "eslint-plugin-react-hooks": "^5.2.0",
140
+ "eslint-plugin-simple-import-sort": "^12.1.1",
141
+ "eslint-plugin-unused-imports": "^4.3.0",
142
+ "husky": "^9.1.7",
88
143
  "jest": "^29.0.0",
144
+ "jest-axe": "^9.0.0",
89
145
  "jest-environment-jsdom": "^29.0.0",
146
+ "lint-staged": "^15.5.2",
90
147
  "postcss": "^8.0.0",
148
+ "prettier": "^3.6.2",
149
+ "prettier-plugin-tailwindcss": "^0.7.1",
91
150
  "rimraf": "^6.0.1",
151
+ "semantic-release": "^25.0.2",
92
152
  "storybook": "^8.0.0",
93
153
  "tailwindcss": "^3.0.0",
94
154
  "ts-jest": "^29.4.5",
155
+ "tsx": "^4.19.2",
95
156
  "typescript": "^5.9.3",
96
- "typescript-eslint": "^8.0.0",
157
+ "typescript-eslint": "^8.47.0",
97
158
  "vite": "^5.0.0",
98
159
  "vite-plugin-dts": "^4.0.0"
99
160
  },
@@ -119,18 +180,5 @@
119
180
  "import": "./dist/theme/index.mjs",
120
181
  "require": "./dist/theme/index.cjs"
121
182
  }
122
- },
123
- "scripts": {
124
- "build": "vite build",
125
- "dev": "vite build --watch",
126
- "clean": "rimraf dist",
127
- "typecheck": "tsc --noEmit && tsc --noEmit --project tsconfig.vite.json",
128
- "lint": "eslint 'src/**/*.{ts,tsx}'",
129
- "test": "jest",
130
- "test:watch": "jest --watch",
131
- "test:coverage": "jest --coverage",
132
- "storybook": "storybook dev -p 6006",
133
- "build-storybook": "storybook build",
134
- "preview": "vite preview"
135
183
  }
136
- }
184
+ }
@@ -1,2 +0,0 @@
1
- "use client";
2
- "use strict";const r={none:"0px",sm:"0.125rem",DEFAULT:"0.25rem",md:"0.375rem",lg:"0.5rem",xl:"0.75rem","2xl":"1rem","3xl":"1.5rem",full:"9999px"};exports.borderRadius=r;
@@ -1,22 +0,0 @@
1
- "use client";
2
- const e = {
3
- none: "0px",
4
- sm: "0.125rem",
5
- // 2px
6
- DEFAULT: "0.25rem",
7
- // 4px
8
- md: "0.375rem",
9
- // 6px
10
- lg: "0.5rem",
11
- // 8px
12
- xl: "0.75rem",
13
- // 12px
14
- "2xl": "1rem",
15
- // 16px
16
- "3xl": "1.5rem",
17
- // 24px
18
- full: "9999px"
19
- };
20
- export {
21
- e as b
22
- };