tharaday 0.1.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 (247) hide show
  1. package/.gitignore +30 -0
  2. package/.prettierrc.json +10 -0
  3. package/.storybook/main.ts +8 -0
  4. package/.storybook/preview.ts +50 -0
  5. package/.versionrc.json +6 -0
  6. package/README.md +73 -0
  7. package/dist/components/Accordion/Accordion.d.ts +2 -0
  8. package/dist/components/Accordion/Accordion.stories.d.ts +14 -0
  9. package/dist/components/Accordion/Accordion.types.d.ts +18 -0
  10. package/dist/components/Avatar/Avatar.d.ts +2 -0
  11. package/dist/components/Avatar/Avatar.stories.d.ts +14 -0
  12. package/dist/components/Avatar/Avatar.types.d.ts +10 -0
  13. package/dist/components/Badge/Badge.d.ts +2 -0
  14. package/dist/components/Badge/Badge.stories.d.ts +33 -0
  15. package/dist/components/Badge/Badge.types.d.ts +9 -0
  16. package/dist/components/Box/Box.d.ts +2 -0
  17. package/dist/components/Box/Box.stories.d.ts +38 -0
  18. package/dist/components/Box/Box.types.d.ts +49 -0
  19. package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +3 -0
  20. package/dist/components/Breadcrumbs/Breadcrumbs.stories.d.ts +13 -0
  21. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +11 -0
  22. package/dist/components/Button/Button.d.ts +2 -0
  23. package/dist/components/Button/Button.stories.d.ts +22 -0
  24. package/dist/components/Button/Button.types.d.ts +12 -0
  25. package/dist/components/Card/Card.d.ts +5 -0
  26. package/dist/components/Card/Card.stories.d.ts +27 -0
  27. package/dist/components/Card/Card.types.d.ts +15 -0
  28. package/dist/components/Checkbox/Checkbox.d.ts +2 -0
  29. package/dist/components/Checkbox/Checkbox.stories.d.ts +17 -0
  30. package/dist/components/Checkbox/Checkbox.types.d.ts +6 -0
  31. package/dist/components/Dropdown/Dropdown.d.ts +2 -0
  32. package/dist/components/Dropdown/Dropdown.stories.d.ts +12 -0
  33. package/dist/components/Dropdown/Dropdown.types.d.ts +24 -0
  34. package/dist/components/Header/Header.d.ts +2 -0
  35. package/dist/components/Header/Header.stories.d.ts +18 -0
  36. package/dist/components/Header/Header.types.d.ts +14 -0
  37. package/dist/components/Input/Input.d.ts +2 -0
  38. package/dist/components/Input/Input.stories.d.ts +29 -0
  39. package/dist/components/Input/Input.types.d.ts +8 -0
  40. package/dist/components/Loader/Loader.d.ts +2 -0
  41. package/dist/components/Loader/Loader.stories.d.ts +25 -0
  42. package/dist/components/Loader/Loader.types.d.ts +8 -0
  43. package/dist/components/Modal/Modal.d.ts +2 -0
  44. package/dist/components/Modal/Modal.stories.d.ts +22 -0
  45. package/dist/components/Modal/Modal.types.d.ts +12 -0
  46. package/dist/components/NavBar/NavBar.d.ts +6 -0
  47. package/dist/components/NavBar/NavBar.stories.d.ts +8 -0
  48. package/dist/components/NavBar/NavBar.types.d.ts +34 -0
  49. package/dist/components/Notification/Notification.d.ts +2 -0
  50. package/dist/components/Notification/Notification.stories.d.ts +26 -0
  51. package/dist/components/Notification/Notification.types.d.ts +8 -0
  52. package/dist/components/Pagination/Pagination.d.ts +2 -0
  53. package/dist/components/Pagination/Pagination.stories.d.ts +21 -0
  54. package/dist/components/Pagination/Pagination.types.d.ts +34 -0
  55. package/dist/components/ProgressBar/ProgressBar.d.ts +2 -0
  56. package/dist/components/ProgressBar/ProgressBar.stories.d.ts +32 -0
  57. package/dist/components/ProgressBar/ProgressBar.types.d.ts +12 -0
  58. package/dist/components/RadioButton/RadioButton.d.ts +2 -0
  59. package/dist/components/RadioButton/RadioButton.stories.d.ts +30 -0
  60. package/dist/components/RadioButton/RadioButton.types.d.ts +8 -0
  61. package/dist/components/Select/Select.d.ts +2 -0
  62. package/dist/components/Select/Select.stories.d.ts +29 -0
  63. package/dist/components/Select/Select.types.d.ts +15 -0
  64. package/dist/components/Skeleton/Skeleton.d.ts +2 -0
  65. package/dist/components/Skeleton/Skeleton.stories.d.ts +15 -0
  66. package/dist/components/Skeleton/Skeleton.types.d.ts +8 -0
  67. package/dist/components/Stepper/Step.d.ts +2 -0
  68. package/dist/components/Stepper/Step.types.d.ts +17 -0
  69. package/dist/components/Stepper/Stepper.d.ts +2 -0
  70. package/dist/components/Stepper/Stepper.stories.d.ts +15 -0
  71. package/dist/components/Stepper/Stepper.types.d.ts +13 -0
  72. package/dist/components/Stepper/stepper.utils.d.ts +3 -0
  73. package/dist/components/Switch/Switch.d.ts +2 -0
  74. package/dist/components/Switch/Switch.stories.d.ts +16 -0
  75. package/dist/components/Switch/Switch.types.d.ts +5 -0
  76. package/dist/components/Table/Table.d.ts +8 -0
  77. package/dist/components/Table/Table.stories.d.ts +27 -0
  78. package/dist/components/Table/Table.types.d.ts +17 -0
  79. package/dist/components/Tabs/Tabs.d.ts +2 -0
  80. package/dist/components/Tabs/Tabs.stories.d.ts +14 -0
  81. package/dist/components/Tabs/Tabs.types.d.ts +16 -0
  82. package/dist/components/Text/Text.d.ts +2 -0
  83. package/dist/components/Text/Text.stories.d.ts +35 -0
  84. package/dist/components/Text/Text.types.d.ts +21 -0
  85. package/dist/components/Textarea/Textarea.d.ts +2 -0
  86. package/dist/components/Textarea/Textarea.stories.d.ts +29 -0
  87. package/dist/components/Textarea/Textarea.types.d.ts +9 -0
  88. package/dist/components/Tooltip/Tooltip.d.ts +2 -0
  89. package/dist/components/Tooltip/Tooltip.stories.d.ts +10 -0
  90. package/dist/components/Tooltip/Tooltip.types.d.ts +12 -0
  91. package/dist/ds.css +1 -0
  92. package/dist/ds.js +1930 -0
  93. package/dist/ds.umd.cjs +1 -0
  94. package/dist/index.d.ts +63 -0
  95. package/dist/layouts/AppLayout/AppLayout.d.ts +8 -0
  96. package/dist/layouts/AppLayout/AppLayout.stories.d.ts +19 -0
  97. package/dist/layouts/AppLayout/AppLayout.types.d.ts +50 -0
  98. package/dist/layouts/AuthLayout/AuthLayout.d.ts +2 -0
  99. package/dist/layouts/AuthLayout/AuthLayout.stories.d.ts +12 -0
  100. package/dist/layouts/AuthLayout/AuthLayout.types.d.ts +7 -0
  101. package/dist/layouts/DashboardLayout/DashboardLayout.d.ts +2 -0
  102. package/dist/layouts/DashboardLayout/DashboardLayout.stories.d.ts +17 -0
  103. package/dist/layouts/DashboardLayout/DashboardLayout.types.d.ts +15 -0
  104. package/dist/layouts/SettingsLayout/SettingsLayout.d.ts +2 -0
  105. package/dist/layouts/SettingsLayout/SettingsLayout.stories.d.ts +17 -0
  106. package/dist/layouts/SettingsLayout/SettingsLayout.types.d.ts +14 -0
  107. package/eslint.config.js +45 -0
  108. package/package.json +100 -0
  109. package/src/components/Accordion/Accordion.module.css +158 -0
  110. package/src/components/Accordion/Accordion.stories.tsx +133 -0
  111. package/src/components/Accordion/Accordion.tsx +68 -0
  112. package/src/components/Accordion/Accordion.types.ts +21 -0
  113. package/src/components/Avatar/Avatar.module.css +58 -0
  114. package/src/components/Avatar/Avatar.stories.tsx +41 -0
  115. package/src/components/Avatar/Avatar.tsx +64 -0
  116. package/src/components/Avatar/Avatar.types.ts +12 -0
  117. package/src/components/Badge/Badge.module.css +98 -0
  118. package/src/components/Badge/Badge.stories.tsx +108 -0
  119. package/src/components/Badge/Badge.tsx +22 -0
  120. package/src/components/Badge/Badge.types.ts +11 -0
  121. package/src/components/Box/Box.module.css +638 -0
  122. package/src/components/Box/Box.stories.tsx +109 -0
  123. package/src/components/Box/Box.tsx +95 -0
  124. package/src/components/Box/Box.types.ts +65 -0
  125. package/src/components/Breadcrumbs/Breadcrumbs.module.css +41 -0
  126. package/src/components/Breadcrumbs/Breadcrumbs.stories.tsx +40 -0
  127. package/src/components/Breadcrumbs/Breadcrumbs.tsx +54 -0
  128. package/src/components/Breadcrumbs/Breadcrumbs.types.ts +13 -0
  129. package/src/components/Button/Button.module.css +247 -0
  130. package/src/components/Button/Button.stories.tsx +93 -0
  131. package/src/components/Button/Button.tsx +31 -0
  132. package/src/components/Button/Button.types.ts +14 -0
  133. package/src/components/Card/Card.module.css +112 -0
  134. package/src/components/Card/Card.stories.tsx +86 -0
  135. package/src/components/Card/Card.tsx +70 -0
  136. package/src/components/Card/Card.types.ts +20 -0
  137. package/src/components/Checkbox/Checkbox.module.css +88 -0
  138. package/src/components/Checkbox/Checkbox.stories.tsx +65 -0
  139. package/src/components/Checkbox/Checkbox.tsx +57 -0
  140. package/src/components/Checkbox/Checkbox.types.ts +7 -0
  141. package/src/components/Dropdown/Dropdown.module.css +140 -0
  142. package/src/components/Dropdown/Dropdown.stories.tsx +86 -0
  143. package/src/components/Dropdown/Dropdown.tsx +251 -0
  144. package/src/components/Dropdown/Dropdown.types.ts +27 -0
  145. package/src/components/Header/Header.module.css +38 -0
  146. package/src/components/Header/Header.stories.tsx +53 -0
  147. package/src/components/Header/Header.tsx +49 -0
  148. package/src/components/Header/Header.types.ts +15 -0
  149. package/src/components/Input/Input.module.css +87 -0
  150. package/src/components/Input/Input.stories.tsx +101 -0
  151. package/src/components/Input/Input.tsx +41 -0
  152. package/src/components/Input/Input.types.ts +10 -0
  153. package/src/components/Loader/Loader.module.css +49 -0
  154. package/src/components/Loader/Loader.stories.tsx +75 -0
  155. package/src/components/Loader/Loader.tsx +15 -0
  156. package/src/components/Loader/Loader.types.ts +9 -0
  157. package/src/components/Modal/Modal.module.css +88 -0
  158. package/src/components/Modal/Modal.stories.tsx +94 -0
  159. package/src/components/Modal/Modal.tsx +115 -0
  160. package/src/components/Modal/Modal.types.ts +13 -0
  161. package/src/components/NavBar/NavBar.module.css +77 -0
  162. package/src/components/NavBar/NavBar.stories.tsx +55 -0
  163. package/src/components/NavBar/NavBar.tsx +50 -0
  164. package/src/components/NavBar/NavBar.types.ts +36 -0
  165. package/src/components/Notification/Notification.module.css +72 -0
  166. package/src/components/Notification/Notification.stories.tsx +81 -0
  167. package/src/components/Notification/Notification.tsx +34 -0
  168. package/src/components/Notification/Notification.types.ts +10 -0
  169. package/src/components/Pagination/Pagination.module.css +31 -0
  170. package/src/components/Pagination/Pagination.stories.tsx +128 -0
  171. package/src/components/Pagination/Pagination.tsx +245 -0
  172. package/src/components/Pagination/Pagination.types.ts +37 -0
  173. package/src/components/ProgressBar/ProgressBar.module.css +67 -0
  174. package/src/components/ProgressBar/ProgressBar.stories.tsx +91 -0
  175. package/src/components/ProgressBar/ProgressBar.tsx +49 -0
  176. package/src/components/ProgressBar/ProgressBar.types.ts +13 -0
  177. package/src/components/RadioButton/RadioButton.module.css +162 -0
  178. package/src/components/RadioButton/RadioButton.stories.tsx +114 -0
  179. package/src/components/RadioButton/RadioButton.tsx +43 -0
  180. package/src/components/RadioButton/RadioButton.types.ts +10 -0
  181. package/src/components/Select/Select.module.css +88 -0
  182. package/src/components/Select/Select.stories.tsx +99 -0
  183. package/src/components/Select/Select.tsx +51 -0
  184. package/src/components/Select/Select.types.ts +18 -0
  185. package/src/components/Skeleton/Skeleton.module.css +71 -0
  186. package/src/components/Skeleton/Skeleton.stories.tsx +54 -0
  187. package/src/components/Skeleton/Skeleton.tsx +32 -0
  188. package/src/components/Skeleton/Skeleton.types.ts +10 -0
  189. package/src/components/Stepper/Step.module.css +162 -0
  190. package/src/components/Stepper/Step.tsx +62 -0
  191. package/src/components/Stepper/Step.types.ts +19 -0
  192. package/src/components/Stepper/Stepper.module.css +39 -0
  193. package/src/components/Stepper/Stepper.stories.tsx +88 -0
  194. package/src/components/Stepper/Stepper.tsx +47 -0
  195. package/src/components/Stepper/Stepper.types.ts +16 -0
  196. package/src/components/Stepper/stepper.utils.ts +41 -0
  197. package/src/components/Switch/Switch.module.css +74 -0
  198. package/src/components/Switch/Switch.stories.tsx +56 -0
  199. package/src/components/Switch/Switch.tsx +36 -0
  200. package/src/components/Switch/Switch.types.ts +6 -0
  201. package/src/components/Table/Table.module.css +78 -0
  202. package/src/components/Table/Table.stories.tsx +124 -0
  203. package/src/components/Table/Table.tsx +75 -0
  204. package/src/components/Table/Table.types.ts +29 -0
  205. package/src/components/Tabs/Tabs.module.css +74 -0
  206. package/src/components/Tabs/Tabs.stories.tsx +48 -0
  207. package/src/components/Tabs/Tabs.tsx +113 -0
  208. package/src/components/Tabs/Tabs.types.ts +18 -0
  209. package/src/components/Text/Text.module.css +126 -0
  210. package/src/components/Text/Text.stories.tsx +128 -0
  211. package/src/components/Text/Text.tsx +50 -0
  212. package/src/components/Text/Text.types.ts +43 -0
  213. package/src/components/Textarea/Textarea.module.css +82 -0
  214. package/src/components/Textarea/Textarea.stories.tsx +99 -0
  215. package/src/components/Textarea/Textarea.tsx +43 -0
  216. package/src/components/Textarea/Textarea.types.ts +11 -0
  217. package/src/components/Tooltip/Tooltip.module.css +125 -0
  218. package/src/components/Tooltip/Tooltip.stories.tsx +68 -0
  219. package/src/components/Tooltip/Tooltip.tsx +87 -0
  220. package/src/components/Tooltip/Tooltip.types.ts +14 -0
  221. package/src/index.ts +132 -0
  222. package/src/layouts/AppLayout/AppLayout.module.css +17 -0
  223. package/src/layouts/AppLayout/AppLayout.stories.tsx +124 -0
  224. package/src/layouts/AppLayout/AppLayout.tsx +46 -0
  225. package/src/layouts/AppLayout/AppLayout.types.ts +50 -0
  226. package/src/layouts/AuthLayout/AuthLayout.module.css +49 -0
  227. package/src/layouts/AuthLayout/AuthLayout.stories.tsx +109 -0
  228. package/src/layouts/AuthLayout/AuthLayout.tsx +27 -0
  229. package/src/layouts/AuthLayout/AuthLayout.types.tsx +8 -0
  230. package/src/layouts/DashboardLayout/DashboardLayout.module.css +37 -0
  231. package/src/layouts/DashboardLayout/DashboardLayout.stories.tsx +144 -0
  232. package/src/layouts/DashboardLayout/DashboardLayout.tsx +41 -0
  233. package/src/layouts/DashboardLayout/DashboardLayout.types.tsx +14 -0
  234. package/src/layouts/SettingsLayout/SettingsLayout.module.css +39 -0
  235. package/src/layouts/SettingsLayout/SettingsLayout.stories.tsx +103 -0
  236. package/src/layouts/SettingsLayout/SettingsLayout.tsx +37 -0
  237. package/src/layouts/SettingsLayout/SettingsLayout.types.tsx +13 -0
  238. package/src/styles/ds.css +12 -0
  239. package/src/styles/semantic.css +56 -0
  240. package/src/styles/themes/dark.css +58 -0
  241. package/src/styles/themes/light.css +58 -0
  242. package/src/styles/themes/retro.css +58 -0
  243. package/src/styles/tokens.css +138 -0
  244. package/tsconfig.app.json +28 -0
  245. package/tsconfig.json +7 -0
  246. package/tsconfig.node.json +26 -0
  247. package/vite.config.ts +33 -0
@@ -0,0 +1,12 @@
1
+ /* Layered Design Tokens (foundation -> theme refs -> semantics) */
2
+ @import 'tokens.css';
3
+ @import 'themes/light.css';
4
+ @import 'themes/dark.css';
5
+ @import 'themes/retro.css';
6
+ @import 'semantic.css';
7
+
8
+ :root {
9
+ font-family: var(--ds-font-family-base);
10
+ -webkit-font-smoothing: antialiased;
11
+ -moz-osx-font-smoothing: grayscale;
12
+ }
@@ -0,0 +1,56 @@
1
+ :root {
2
+ /* Surfaces */
3
+ --ds-surface-0: var(--ds-ref-surface-0);
4
+ --ds-surface-1: var(--ds-ref-surface-1);
5
+ --ds-surface-2: var(--ds-ref-surface-2);
6
+
7
+ /* Text */
8
+ --ds-text-1: var(--ds-ref-text-1);
9
+ --ds-text-2: var(--ds-ref-text-2);
10
+ --ds-text-on-brand: var(--ds-ref-text-on-brand);
11
+ --ds-text-disabled: var(--ds-ref-text-disabled);
12
+
13
+ /* Borders */
14
+ --ds-border-1: var(--ds-ref-border-1);
15
+ --ds-border-2: var(--ds-ref-border-2);
16
+ --ds-border-disabled: var(--ds-ref-border-disabled);
17
+
18
+ /* Focus */
19
+ --ds-ring: var(--ds-ref-ring);
20
+ --ds-ring-offset: var(--ds-ref-ring-offset);
21
+
22
+ /* Intents */
23
+ --ds-info: var(--ds-ref-info);
24
+ --ds-success: var(--ds-ref-success);
25
+ --ds-warning: var(--ds-ref-warning);
26
+ --ds-danger: var(--ds-ref-danger);
27
+ --ds-neutral: var(--ds-ref-neutral);
28
+
29
+ --ds-info-hover: var(--ds-ref-info-hover);
30
+ --ds-info-active: var(--ds-ref-info-active);
31
+ --ds-info-subtle: var(--ds-ref-info-subtle);
32
+
33
+ --ds-success-hover: var(--ds-ref-success-hover);
34
+ --ds-success-active: var(--ds-ref-success-active);
35
+ --ds-success-subtle: var(--ds-ref-success-subtle);
36
+
37
+ --ds-warning-hover: var(--ds-ref-warning-hover);
38
+ --ds-warning-active: var(--ds-ref-warning-active);
39
+ --ds-warning-subtle: var(--ds-ref-warning-subtle);
40
+
41
+ --ds-danger-hover: var(--ds-ref-danger-hover);
42
+ --ds-danger-active: var(--ds-ref-danger-active);
43
+ --ds-danger-subtle: var(--ds-ref-danger-subtle);
44
+
45
+ --ds-neutral-hover: var(--ds-ref-neutral-hover);
46
+ --ds-neutral-active: var(--ds-ref-neutral-active);
47
+ --ds-neutral-subtle: var(--ds-ref-neutral-subtle);
48
+
49
+ /* Convenience defaults */
50
+ --ds-border-default: var(--ds-border-1);
51
+ --ds-surface-disabled: var(--ds-ref-surface-disabled);
52
+
53
+ /* Skeleton */
54
+ --ds-skeleton: var(--ds-ref-skeleton);
55
+ --ds-skeleton-highlight: var(--ds-ref-skeleton-highlight);
56
+ }
@@ -0,0 +1,58 @@
1
+ [data-theme='dark'] {
2
+ color-scheme: dark;
3
+
4
+ /* Surfaces */
5
+ --ds-ref-surface-0: var(--neutral-950);
6
+ --ds-ref-surface-1: var(--neutral-900);
7
+ --ds-ref-surface-2: var(--neutral-800);
8
+
9
+ /* Text */
10
+ --ds-ref-text-1: var(--neutral-0);
11
+ --ds-ref-text-2: var(--neutral-300);
12
+ --ds-ref-text-on-brand: var(--neutral-950);
13
+
14
+ /* Borders */
15
+ --ds-ref-border-1: var(--neutral-800);
16
+ --ds-ref-border-2: var(--neutral-900);
17
+
18
+ /* Focus */
19
+ --ds-ref-ring: var(--blue-400);
20
+ --ds-ref-ring-offset: var(--ds-ref-surface-0);
21
+
22
+ /* Intents (base) */
23
+ --ds-ref-info: var(--blue-500);
24
+ --ds-ref-success: var(--green-500);
25
+ --ds-ref-warning: var(--orange-500);
26
+ --ds-ref-danger: var(--red-500);
27
+ --ds-ref-neutral: var(--neutral-500);
28
+
29
+ /* Intents (states) */
30
+ --ds-ref-info-hover: var(--blue-400);
31
+ --ds-ref-info-active: var(--blue-300);
32
+ --ds-ref-info-subtle: var(--blue-950);
33
+
34
+ --ds-ref-success-hover: var(--green-400);
35
+ --ds-ref-success-active: var(--green-300);
36
+ --ds-ref-success-subtle: var(--green-950);
37
+
38
+ --ds-ref-warning-hover: var(--orange-400);
39
+ --ds-ref-warning-active: var(--orange-300);
40
+ --ds-ref-warning-subtle: var(--orange-950);
41
+
42
+ --ds-ref-danger-hover: var(--red-400);
43
+ --ds-ref-danger-active: var(--red-300);
44
+ --ds-ref-danger-subtle: var(--red-950);
45
+
46
+ --ds-ref-neutral-hover: var(--neutral-400);
47
+ --ds-ref-neutral-active: var(--neutral-300);
48
+ --ds-ref-neutral-subtle: var(--neutral-900);
49
+
50
+ /* Disabled */
51
+ --ds-ref-text-disabled: var(--neutral-500);
52
+ --ds-ref-surface-disabled: var(--neutral-900);
53
+ --ds-ref-border-disabled: var(--neutral-800);
54
+
55
+ /* Skeleton */
56
+ --ds-ref-skeleton: var(--neutral-800);
57
+ --ds-ref-skeleton-highlight: rgba(255, 255, 255, 0.08);
58
+ }
@@ -0,0 +1,58 @@
1
+ :root {
2
+ color-scheme: light;
3
+
4
+ /* Surfaces */
5
+ --ds-ref-surface-0: var(--neutral-0);
6
+ --ds-ref-surface-1: var(--neutral-50);
7
+ --ds-ref-surface-2: var(--neutral-100);
8
+
9
+ /* Text */
10
+ --ds-ref-text-1: var(--neutral-900);
11
+ --ds-ref-text-2: var(--neutral-600);
12
+ --ds-ref-text-on-brand: var(--neutral-0);
13
+
14
+ /* Borders */
15
+ --ds-ref-border-1: var(--neutral-200);
16
+ --ds-ref-border-2: var(--neutral-100);
17
+
18
+ /* Focus */
19
+ --ds-ref-ring: var(--blue-500);
20
+ --ds-ref-ring-offset: var(--ds-ref-surface-0);
21
+
22
+ /* Intents (base) */
23
+ --ds-ref-info: var(--blue-500);
24
+ --ds-ref-success: var(--green-600);
25
+ --ds-ref-warning: var(--orange-500);
26
+ --ds-ref-danger: var(--red-500);
27
+ --ds-ref-neutral: var(--neutral-600);
28
+
29
+ /* Intents (states) */
30
+ --ds-ref-info-hover: var(--blue-600);
31
+ --ds-ref-info-active: var(--blue-700);
32
+ --ds-ref-info-subtle: var(--blue-50);
33
+
34
+ --ds-ref-success-hover: var(--green-700);
35
+ --ds-ref-success-active: var(--green-800);
36
+ --ds-ref-success-subtle: var(--green-50);
37
+
38
+ --ds-ref-warning-hover: var(--orange-600);
39
+ --ds-ref-warning-active: var(--orange-700);
40
+ --ds-ref-warning-subtle: var(--orange-50);
41
+
42
+ --ds-ref-danger-hover: var(--red-600);
43
+ --ds-ref-danger-active: var(--red-700);
44
+ --ds-ref-danger-subtle: var(--red-50);
45
+
46
+ --ds-ref-neutral-hover: var(--neutral-700);
47
+ --ds-ref-neutral-active: var(--neutral-800);
48
+ --ds-ref-neutral-subtle: var(--neutral-50);
49
+
50
+ /* Disabled */
51
+ --ds-ref-text-disabled: var(--neutral-400);
52
+ --ds-ref-surface-disabled: var(--neutral-100);
53
+ --ds-ref-border-disabled: var(--neutral-200);
54
+
55
+ /* Skeleton */
56
+ --ds-ref-skeleton: var(--neutral-200);
57
+ --ds-ref-skeleton-highlight: rgba(255, 255, 255, 0.4);
58
+ }
@@ -0,0 +1,58 @@
1
+ [data-theme='retro'] {
2
+ color-scheme: light;
3
+
4
+ /* Surfaces */
5
+ --ds-ref-surface-0: var(--retro-yellow-50);
6
+ --ds-ref-surface-1: var(--retro-gray-50);
7
+ --ds-ref-surface-2: var(--retro-gray-100);
8
+
9
+ /* Text */
10
+ --ds-ref-text-1: var(--retro-brown-900);
11
+ --ds-ref-text-2: var(--retro-gray-600);
12
+ --ds-ref-text-on-brand: var(--retro-yellow-50);
13
+
14
+ /* Borders */
15
+ --ds-ref-border-1: var(--retro-gray-200);
16
+ --ds-ref-border-2: var(--retro-gray-100);
17
+
18
+ /* Focus */
19
+ --ds-ref-ring: var(--retro-teal-500);
20
+ --ds-ref-ring-offset: var(--ds-ref-surface-0);
21
+
22
+ /* Intents (base) */
23
+ --ds-ref-info: var(--retro-teal-500);
24
+ --ds-ref-success: var(--green-600);
25
+ --ds-ref-warning: var(--retro-orange-500);
26
+ --ds-ref-danger: var(--red-600);
27
+ --ds-ref-neutral: var(--retro-gray-500);
28
+
29
+ /* Intents (states) */
30
+ --ds-ref-info-hover: var(--retro-teal-500);
31
+ --ds-ref-info-active: var(--retro-teal-500);
32
+ --ds-ref-info-subtle: var(--retro-teal-50);
33
+
34
+ --ds-ref-success-hover: var(--green-700);
35
+ --ds-ref-success-active: var(--green-800);
36
+ --ds-ref-success-subtle: var(--green-50);
37
+
38
+ --ds-ref-warning-hover: var(--retro-orange-500);
39
+ --ds-ref-warning-active: var(--retro-orange-500);
40
+ --ds-ref-warning-subtle: var(--orange-50);
41
+
42
+ --ds-ref-danger-hover: var(--red-700);
43
+ --ds-ref-danger-active: var(--red-800);
44
+ --ds-ref-danger-subtle: var(--red-50);
45
+
46
+ --ds-ref-neutral-hover: var(--retro-gray-600);
47
+ --ds-ref-neutral-active: var(--retro-gray-700);
48
+ --ds-ref-neutral-subtle: var(--retro-gray-50);
49
+
50
+ /* Disabled */
51
+ --ds-ref-text-disabled: var(--retro-gray-300);
52
+ --ds-ref-surface-disabled: var(--retro-gray-100);
53
+ --ds-ref-border-disabled: var(--retro-gray-200);
54
+
55
+ /* Skeleton */
56
+ --ds-ref-skeleton: var(--retro-gray-100);
57
+ --ds-ref-skeleton-highlight: rgba(255, 255, 255, 0.4);
58
+ }
@@ -0,0 +1,138 @@
1
+ :root {
2
+ /* Neutral scale */
3
+ --neutral-0: #ffffff;
4
+ --neutral-50: #fafafa;
5
+ --neutral-100: #f5f5f5;
6
+ --neutral-200: #eeeeee;
7
+ --neutral-300: #e0e0e0;
8
+ --neutral-400: #a1a1aa; /* Brighter: from #9ca3af */
9
+ --neutral-500: #71717a; /* Brighter: from #6b7280 */
10
+ --neutral-600: #52525b; /* Brighter: from #4b5563 */
11
+ --neutral-700: #3f3f46; /* Brighter: from #374151 */
12
+ --neutral-800: #27272a; /* Brighter: from #1f2937 */
13
+ --neutral-900: #18181b; /* Brighter: from #111827 */
14
+ --neutral-950: #09090b; /* Brighter: from #030712 */
15
+
16
+ /* Info / Primary (Blue) */
17
+ --blue-50: #eff6ff;
18
+ --blue-100: #dbeafe;
19
+ --blue-200: #bfdbfe;
20
+ --blue-300: #93c5fd;
21
+ --blue-400: #60a5fa;
22
+ --blue-500: #3b82f6;
23
+ --blue-600: #2563eb;
24
+ --blue-700: #1d4ed8;
25
+ --blue-800: #1e40af;
26
+ --blue-900: #1e3a8a;
27
+ --blue-950: #172554;
28
+
29
+ /* Success (Green) */
30
+ --green-50: #f0fdf4; /* From #ecfdf5 */
31
+ --green-100: #dcfce7; /* From #d1fae5 */
32
+ --green-200: #bbf7d0; /* From #a7f3d0 */
33
+ --green-300: #86efac; /* From #6ee7b7 */
34
+ --green-400: #4ade80; /* Brighter: from #34d399 */
35
+ --green-500: #22c55e; /* Brighter: from #10b981 */
36
+ --green-600: #16a34a; /* Brighter: from #059669 */
37
+ --green-700: #15803d; /* Brighter: from #047857 */
38
+ --green-800: #166534;
39
+ --green-900: #14532d;
40
+ --green-950: #052e16;
41
+
42
+ /* Danger (Red) */
43
+ --red-50: #fef2f2;
44
+ --red-100: #fee2e2;
45
+ --red-200: #fecaca;
46
+ --red-300: #fca5a5;
47
+ --red-400: #f87171;
48
+ --red-500: #ef4444;
49
+ --red-600: #dc2626;
50
+ --red-700: #b91c1c;
51
+ --red-800: #991b1b;
52
+ --red-900: #7f1d1d;
53
+ --red-950: #450a0a;
54
+
55
+ /* Warning (Amber/Orange) */
56
+ --orange-50: #fffbeb;
57
+ --orange-100: #fef3c7;
58
+ --orange-200: #fde68a;
59
+ --orange-300: #fcd34d;
60
+ --orange-400: #fbbf24;
61
+ --orange-500: #f59e0b;
62
+ --orange-600: #d97706;
63
+ --orange-700: #b45309;
64
+ --orange-800: #92400e;
65
+ --orange-900: #78350f;
66
+ --orange-950: #451a03;
67
+
68
+ /* Retro palette */
69
+ --retro-yellow-50: #fefce8;
70
+ --retro-yellow-500: #eab308;
71
+ --retro-yellow-600: #ca8a04;
72
+ --retro-orange-500: #f97316;
73
+ --retro-brown-500: #78350f;
74
+ --retro-brown-900: #451a03;
75
+ --retro-teal-50: #e6fffa;
76
+ --retro-teal-500: #14b8a6;
77
+ --retro-gray-50: #f7f7f5;
78
+ --retro-gray-100: #e3e3dc;
79
+ --retro-gray-200: #cfcfc5;
80
+ --retro-gray-300: #b9b9ae;
81
+ --retro-gray-400: #a3a398;
82
+ --retro-gray-500: #8d8d82;
83
+ --retro-gray-600: #717168;
84
+ --retro-gray-700: #56564f;
85
+ --retro-gray-800: #3c3c37;
86
+ --retro-gray-900: #21211e;
87
+
88
+ /* --- TYPOGRAPHY SCALE --- */
89
+
90
+ --ds-font-family-base:
91
+ -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif,
92
+ 'Apple Color Emoji', 'Segoe UI Emoji';
93
+ --ds-font-family-mono: ui-monospace, monospace;
94
+
95
+ --ds-font-size-xs: 0.75rem; /* 12px */
96
+ --ds-font-size-sm: 0.875rem; /* 14px */
97
+ --ds-font-size-base: 1rem; /* 16px */
98
+ --ds-font-size-lg: 1.125rem; /* 18px */
99
+ --ds-font-size-xl: 1.25rem; /* 20px */
100
+ --ds-font-size-2xl: 1.5rem; /* 24px */
101
+
102
+ --ds-font-weight-regular: 400;
103
+ --ds-font-weight-medium: 500;
104
+ --ds-font-weight-bold: 700;
105
+
106
+ --ds-line-height-tight: 1.25;
107
+ --ds-line-height-base: 1.5;
108
+
109
+ /* --- SPACING SCALE (Factor of 4) --- */
110
+
111
+ --ds-space-1: 0.25rem; /* 4px */
112
+ --ds-space-2: 0.5rem; /* 8px */
113
+ --ds-space-3: 0.75rem; /* 12px */
114
+ --ds-space-4: 1rem; /* 16px */
115
+ --ds-space-5: 1.25rem; /* 20px */
116
+ --ds-space-6: 1.5rem; /* 24px */
117
+ --ds-space-8: 2rem; /* 32px */
118
+ --ds-space-10: 2.5rem; /* 40px */
119
+ --ds-space-12: 3rem; /* 48px */
120
+ --ds-space-14: 3.5rem; /* 56px */
121
+ --ds-space-16: 4rem; /* 64px */
122
+
123
+ /* --- BORDERS & SHADOWS --- */
124
+
125
+ --ds-radius-sm: 0.25rem;
126
+ --ds-radius-md: 0.5rem;
127
+ --ds-radius-lg: 1rem;
128
+ --ds-radius-full: 9999px;
129
+
130
+ --ds-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
131
+ --ds-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
132
+ --ds-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
133
+
134
+ /* --- ANIMATION --- */
135
+
136
+ --ds-transition-fast: 150ms ease;
137
+ --ds-transition-base: 250ms ease;
138
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "compilerOptions": {
3
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
4
+ "target": "ES2022",
5
+ "useDefineForClassFields": true,
6
+ "lib": ["ES2022", "DOM", "DOM.Iterable"],
7
+ "module": "ESNext",
8
+ "types": ["vite/client"],
9
+ "skipLibCheck": true,
10
+
11
+ /* Bundler mode */
12
+ "moduleResolution": "bundler",
13
+ "allowImportingTsExtensions": true,
14
+ "verbatimModuleSyntax": true,
15
+ "moduleDetection": "force",
16
+ "noEmit": true,
17
+ "jsx": "react-jsx",
18
+
19
+ /* Linting */
20
+ "strict": true,
21
+ "noUnusedLocals": true,
22
+ "noUnusedParameters": true,
23
+ "erasableSyntaxOnly": true,
24
+ "noFallthroughCasesInSwitch": true,
25
+ "noUncheckedSideEffectImports": true
26
+ },
27
+ "include": ["src"]
28
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "files": [],
3
+ "references": [{ "path": "./tsconfig.app.json" }, { "path": "./tsconfig.node.json" }],
4
+ "compilerOptions": {
5
+ "moduleResolution": "bundler"
6
+ }
7
+ }
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
4
+ "target": "ES2023",
5
+ "lib": ["ES2023"],
6
+ "module": "ESNext",
7
+ "types": ["node"],
8
+ "skipLibCheck": true,
9
+
10
+ /* Bundler mode */
11
+ "moduleResolution": "bundler",
12
+ "allowImportingTsExtensions": true,
13
+ "verbatimModuleSyntax": true,
14
+ "moduleDetection": "force",
15
+ "noEmit": true,
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "erasableSyntaxOnly": true,
22
+ "noFallthroughCasesInSwitch": true,
23
+ "noUncheckedSideEffectImports": true
24
+ },
25
+ "include": ["vite.config.ts"]
26
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,33 @@
1
+ import react from '@vitejs/plugin-react';
2
+ import { defineConfig } from 'vite';
3
+ import dts from 'vite-plugin-dts';
4
+
5
+ import { resolve } from 'path';
6
+
7
+ export default defineConfig({
8
+ plugins: [
9
+ react(),
10
+ dts({
11
+ insertTypesEntry: true,
12
+ include: ['src'],
13
+ tsconfigPath: './tsconfig.app.json',
14
+ }),
15
+ ],
16
+ build: {
17
+ lib: {
18
+ entry: resolve(__dirname, 'src/index.ts'),
19
+ name: 'DesignSystem',
20
+ fileName: 'ds',
21
+ },
22
+ rollupOptions: {
23
+ external: ['react', 'react-dom', 'react/jsx-runtime'],
24
+ output: {
25
+ globals: {
26
+ react: 'React',
27
+ 'react-dom': 'ReactDOM',
28
+ 'react/jsx-runtime': 'jsxRuntime',
29
+ },
30
+ },
31
+ },
32
+ },
33
+ });