@sixthshift/design-system 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 (236) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +222 -0
  3. package/dist/styles.css +2 -0
  4. package/dist/theme.generated.css +438 -0
  5. package/package.json +238 -0
  6. package/src/components/Avatar/Avatar.tsx +19 -0
  7. package/src/components/Avatar/index.ts +1 -0
  8. package/src/components/Badge/Badge.tsx +59 -0
  9. package/src/components/Badge/index.ts +1 -0
  10. package/src/components/BarChart/BarChart.tsx +51 -0
  11. package/src/components/BarChart/index.ts +1 -0
  12. package/src/components/Breadcrumb/Breadcrumb.tsx +47 -0
  13. package/src/components/Breadcrumb/index.ts +5 -0
  14. package/src/components/Button/Button.tsx +157 -0
  15. package/src/components/Button/index.ts +1 -0
  16. package/src/components/Calendar/Calendar.tsx +433 -0
  17. package/src/components/Calendar/calendar.hooks.ts +329 -0
  18. package/src/components/Calendar/calendar.types.ts +117 -0
  19. package/src/components/Calendar/index.ts +28 -0
  20. package/src/components/Card/Card.tsx +47 -0
  21. package/src/components/Card/index.ts +1 -0
  22. package/src/components/Checkbox/Checkbox.tsx +144 -0
  23. package/src/components/Checkbox/index.ts +1 -0
  24. package/src/components/CheckboxGroup/CheckboxGroup.tsx +173 -0
  25. package/src/components/CheckboxGroup/index.ts +5 -0
  26. package/src/components/Code/Editor/Editor.tsx +161 -0
  27. package/src/components/Code/Editor/index.ts +2 -0
  28. package/src/components/Code/Editor/semanticTokenProvider.ts +69 -0
  29. package/src/components/Code/Editor/themes.ts +112 -0
  30. package/src/components/Code/ValidationStatus/ValidationStatus.tsx +81 -0
  31. package/src/components/Code/ValidationStatus/index.ts +1 -0
  32. package/src/components/Code/Workspace/StatusBar.tsx +47 -0
  33. package/src/components/Code/Workspace/Toolbar.tsx +47 -0
  34. package/src/components/Code/Workspace/Workspace.tsx +109 -0
  35. package/src/components/Code/Workspace/index.ts +3 -0
  36. package/src/components/ColorDot/ColorDot.tsx +50 -0
  37. package/src/components/ColorDot/index.ts +1 -0
  38. package/src/components/DatePicker/DatePicker.tsx +236 -0
  39. package/src/components/DatePicker/datepicker.hooks.ts +381 -0
  40. package/src/components/DatePicker/datepicker.types.ts +140 -0
  41. package/src/components/DatePicker/index.ts +12 -0
  42. package/src/components/DateRangePicker/DateRangePicker.tsx +127 -0
  43. package/src/components/DateRangePicker/daterangepicker.types.ts +53 -0
  44. package/src/components/DateRangePicker/index.ts +2 -0
  45. package/src/components/DateTimePicker/DateTimePicker.tsx +399 -0
  46. package/src/components/DateTimePicker/datetimepicker.types.ts +48 -0
  47. package/src/components/DateTimePicker/index.ts +2 -0
  48. package/src/components/DateTimeRangePicker/DateTimeRangePicker.tsx +679 -0
  49. package/src/components/DateTimeRangePicker/datetimerangepicker.types.ts +62 -0
  50. package/src/components/DateTimeRangePicker/index.ts +2 -0
  51. package/src/components/EmptyState/EmptyState.tsx +29 -0
  52. package/src/components/EmptyState/index.ts +1 -0
  53. package/src/components/Field/Field.tsx +60 -0
  54. package/src/components/Field/index.ts +1 -0
  55. package/src/components/FormField/FormField.tsx +55 -0
  56. package/src/components/FormField/index.ts +2 -0
  57. package/src/components/HeatMap/HeatMapCalendar.tsx +127 -0
  58. package/src/components/HeatMap/HeatMapMatrix.tsx +75 -0
  59. package/src/components/HeatMap/heat-map.utils.ts +15 -0
  60. package/src/components/HeatMap/index.ts +3 -0
  61. package/src/components/HoverCard/HoverCard.tsx +83 -0
  62. package/src/components/HoverCard/components/HoverCardContent.tsx +30 -0
  63. package/src/components/HoverCard/components/HoverCardContext.tsx +22 -0
  64. package/src/components/HoverCard/components/HoverCardTrigger.tsx +32 -0
  65. package/src/components/HoverCard/index.ts +3 -0
  66. package/src/components/Input/Input.tsx +48 -0
  67. package/src/components/Input/index.ts +1 -0
  68. package/src/components/LineChart/LineChart.tsx +251 -0
  69. package/src/components/LineChart/index.ts +1 -0
  70. package/src/components/Markdown/Markdown.tsx +40 -0
  71. package/src/components/Markdown/index.ts +1 -0
  72. package/src/components/Message/Message.tsx +59 -0
  73. package/src/components/Message/components/MessageBody.tsx +9 -0
  74. package/src/components/Message/components/MessageDescription.tsx +9 -0
  75. package/src/components/Message/components/MessageIcon.tsx +13 -0
  76. package/src/components/Message/components/MessageTitle.tsx +9 -0
  77. package/src/components/Message/index.ts +10 -0
  78. package/src/components/MetricList/MetricList.tsx +13 -0
  79. package/src/components/MetricList/MetricRow.tsx +30 -0
  80. package/src/components/MetricList/index.ts +2 -0
  81. package/src/components/Modal/Modal.tsx +146 -0
  82. package/src/components/Modal/components/ModalBody.tsx +9 -0
  83. package/src/components/Modal/components/ModalContext.tsx +27 -0
  84. package/src/components/Modal/components/ModalFooter.tsx +9 -0
  85. package/src/components/Modal/components/ModalHeader.tsx +29 -0
  86. package/src/components/Modal/components/index.ts +9 -0
  87. package/src/components/Modal/index.ts +13 -0
  88. package/src/components/NavBottom/NavBottom.tsx +53 -0
  89. package/src/components/NavBottom/index.ts +3 -0
  90. package/src/components/NavSide/NavItem.tsx +39 -0
  91. package/src/components/NavSide/NavSide.tsx +40 -0
  92. package/src/components/NavSide/index.ts +2 -0
  93. package/src/components/NavSide/types.ts +36 -0
  94. package/src/components/Pagination/Pagination.tsx +86 -0
  95. package/src/components/Pagination/index.ts +2 -0
  96. package/src/components/Popover/Popover.tsx +68 -0
  97. package/src/components/Popover/components/PopoverBody.tsx +32 -0
  98. package/src/components/Popover/components/PopoverClose.tsx +26 -0
  99. package/src/components/Popover/components/PopoverContext.tsx +24 -0
  100. package/src/components/Popover/components/PopoverTrigger.tsx +31 -0
  101. package/src/components/Popover/index.ts +10 -0
  102. package/src/components/ProgressBar/ProgressBar.tsx +42 -0
  103. package/src/components/ProgressBar/index.ts +1 -0
  104. package/src/components/RadioButton/RadioButton.tsx +89 -0
  105. package/src/components/RadioButton/index.ts +1 -0
  106. package/src/components/RadioButtonGroup/RadioButtonGroup.tsx +193 -0
  107. package/src/components/RadioButtonGroup/index.ts +5 -0
  108. package/src/components/SearchInput/SearchInput.tsx +45 -0
  109. package/src/components/SearchInput/index.ts +2 -0
  110. package/src/components/Select/Select.tsx +289 -0
  111. package/src/components/Select/SelectDropdown.tsx +90 -0
  112. package/src/components/Select/SelectTrigger.tsx +130 -0
  113. package/src/components/Select/index.ts +3 -0
  114. package/src/components/Select/useSelectKeyboard.ts +111 -0
  115. package/src/components/Separator/Separator.tsx +20 -0
  116. package/src/components/Separator/index.ts +1 -0
  117. package/src/components/Sheet/Sheet.tsx +136 -0
  118. package/src/components/Sheet/components/SheetBody.tsx +9 -0
  119. package/src/components/Sheet/components/SheetContext.tsx +23 -0
  120. package/src/components/Sheet/components/SheetFooter.tsx +9 -0
  121. package/src/components/Sheet/components/SheetHeader.tsx +29 -0
  122. package/src/components/Sheet/components/index.ts +9 -0
  123. package/src/components/Sheet/index.ts +13 -0
  124. package/src/components/Skeleton/Skeleton.tsx +7 -0
  125. package/src/components/Skeleton/index.ts +1 -0
  126. package/src/components/Sparkline/Sparkline.tsx +93 -0
  127. package/src/components/Sparkline/index.ts +1 -0
  128. package/src/components/Spinner/Spinner.tsx +41 -0
  129. package/src/components/Spinner/index.ts +1 -0
  130. package/src/components/StatsCard/StatsCard.tsx +40 -0
  131. package/src/components/StatsCard/index.ts +1 -0
  132. package/src/components/Switch/Switch.tsx +128 -0
  133. package/src/components/Switch/index.ts +1 -0
  134. package/src/components/Tabs/Tabs.tsx +49 -0
  135. package/src/components/Tabs/components/TabsContext.tsx +35 -0
  136. package/src/components/Tabs/components/TabsList.tsx +98 -0
  137. package/src/components/Tabs/components/TabsPanels.tsx +26 -0
  138. package/src/components/Tabs/components/TabsTrigger.tsx +69 -0
  139. package/src/components/Tabs/index.ts +3 -0
  140. package/src/components/TagChip/TagChip.tsx +46 -0
  141. package/src/components/TagChip/index.ts +1 -0
  142. package/src/components/TagInput/TagInput.tsx +60 -0
  143. package/src/components/TagInput/index.ts +1 -0
  144. package/src/components/Text/Text.tsx +35 -0
  145. package/src/components/Text/index.ts +1 -0
  146. package/src/components/TextInline/TextInline.tsx +35 -0
  147. package/src/components/TextInline/index.ts +1 -0
  148. package/src/components/Textarea/Textarea.tsx +20 -0
  149. package/src/components/Textarea/index.ts +1 -0
  150. package/src/components/TimePicker/PeriodSelector.tsx +28 -0
  151. package/src/components/TimePicker/TimeColumn.tsx +62 -0
  152. package/src/components/TimePicker/TimePicker.tsx +323 -0
  153. package/src/components/TimePicker/index.ts +7 -0
  154. package/src/components/TimePicker/timepicker.hooks.ts +173 -0
  155. package/src/components/TimePicker/timepicker.types.ts +101 -0
  156. package/src/components/Toast/Toast.tsx +111 -0
  157. package/src/components/Toast/index.ts +1 -0
  158. package/src/components/Toggle/Toggle.tsx +72 -0
  159. package/src/components/Toggle/index.ts +1 -0
  160. package/src/components/ToggleGroup/ToggleGroup.tsx +14 -0
  161. package/src/components/ToggleGroup/ToggleGroupContainer.tsx +19 -0
  162. package/src/components/ToggleGroup/ToggleGroupItem.tsx +51 -0
  163. package/src/components/ToggleGroup/ToggleGroupMultiple.tsx +61 -0
  164. package/src/components/ToggleGroup/ToggleGroupSingle.tsx +105 -0
  165. package/src/components/ToggleGroup/index.ts +2 -0
  166. package/src/components/ToggleGroup/toggleGroup.types.ts +55 -0
  167. package/src/components/Tooltip/Tooltip.tsx +66 -0
  168. package/src/components/Tooltip/components/TooltipBody.tsx +30 -0
  169. package/src/components/Tooltip/components/TooltipContext.tsx +22 -0
  170. package/src/components/Tooltip/components/TooltipTrigger.tsx +27 -0
  171. package/src/components/Tooltip/index.ts +9 -0
  172. package/src/date-time/arithmetic.ts +101 -0
  173. package/src/date-time/boundaries.ts +91 -0
  174. package/src/date-time/compare.ts +85 -0
  175. package/src/date-time/duration.ts +63 -0
  176. package/src/date-time/elapsed.ts +18 -0
  177. package/src/date-time/format.ts +722 -0
  178. package/src/date-time/index.ts +279 -0
  179. package/src/date-time/now.ts +70 -0
  180. package/src/date-time/parse.ts +170 -0
  181. package/src/date-time/serialize.ts +90 -0
  182. package/src/date-time/timezone.ts +47 -0
  183. package/src/date-time/validate.ts +278 -0
  184. package/src/hooks/index.ts +10 -0
  185. package/src/hooks/useCollapsible.ts +16 -0
  186. package/src/hooks/useControllableState.ts +54 -0
  187. package/src/hooks/useDebouncedCallback.ts +21 -0
  188. package/src/hooks/useDebouncedState.ts +20 -0
  189. package/src/hooks/useDeviceFormFactor.ts +49 -0
  190. package/src/hooks/useLocalStorage.ts +67 -0
  191. package/src/hooks/useMergedFloatingRef.ts +29 -0
  192. package/src/hooks/usePresence.ts +127 -0
  193. package/src/hooks/useStack.ts +99 -0
  194. package/src/hooks/useTheme.ts +105 -0
  195. package/src/internal/Slot.tsx +79 -0
  196. package/src/internal/index.ts +2 -0
  197. package/src/internal/rovingFocus.ts +39 -0
  198. package/src/internal/types.ts +10 -0
  199. package/src/lib/EmptyBoundary.tsx +12 -0
  200. package/src/lib/ErrorBoundary.tsx +48 -0
  201. package/src/lib/contexts/ComponentsContext/ComponentsContext.tsx +34 -0
  202. package/src/lib/contexts/ComponentsContext/index.ts +1 -0
  203. package/src/lib/contexts/OverlayContext/OverlayContext.tsx +93 -0
  204. package/src/lib/contexts/OverlayContext/hooks/useModal.tsx +125 -0
  205. package/src/lib/contexts/OverlayContext/hooks/useToast.ts +80 -0
  206. package/src/lib/contexts/OverlayContext/index.ts +6 -0
  207. package/src/lib/format.ts +51 -0
  208. package/src/lib/utils.ts +10 -0
  209. package/src/lib/withEmpty.tsx +14 -0
  210. package/src/lib/withErrorBoundary.tsx +16 -0
  211. package/src/lib/withSuspense.tsx +16 -0
  212. package/src/lib/withSuspenseAndErrorBoundary.tsx +26 -0
  213. package/src/styles/base.css +41 -0
  214. package/src/theme/index.ts +37 -0
  215. package/src/theme/palette.json +100 -0
  216. package/src/theme/palette.schema.json +40 -0
  217. package/src/theme/schema.ts +122 -0
  218. package/src/theme/theme.json +349 -0
  219. package/src/theme/theme.schema.json +876 -0
  220. package/src/theme/typography.json +7 -0
  221. package/src/theme/typography.schema.json +36 -0
  222. package/src/typography/Body.tsx +8 -0
  223. package/src/typography/Caption.tsx +8 -0
  224. package/src/typography/Code.tsx +8 -0
  225. package/src/typography/Display.tsx +8 -0
  226. package/src/typography/Emphasis.tsx +8 -0
  227. package/src/typography/Heading.tsx +23 -0
  228. package/src/typography/Label.tsx +10 -0
  229. package/src/typography/Lead.tsx +8 -0
  230. package/src/typography/Mono.tsx +8 -0
  231. package/src/typography/Muted.tsx +8 -0
  232. package/src/typography/SectionTitle.tsx +8 -0
  233. package/src/typography/Subtitle.tsx +8 -0
  234. package/src/typography/Timestamp.tsx +8 -0
  235. package/src/typography/index.ts +10 -0
  236. package/tailwind.config.ts +261 -0
@@ -0,0 +1,438 @@
1
+ /**
2
+ * Default Theme
3
+ * Version: 0.1.0
4
+ *
5
+ * AUTO-GENERATED FILE - DO NOT EDIT DIRECTLY
6
+ * Edit src/theme/theme.json, src/theme/palette.json, or src/theme/typography.json and run: bun run build:theme
7
+ */
8
+
9
+ :root {
10
+ /* Color Palette */
11
+ --color-emerald-50: #f2fafb;
12
+ --color-emerald-100: #d6eef0;
13
+ --color-emerald-200: #addde0;
14
+ --color-emerald-300: #7cc4c8;
15
+ --color-emerald-400: #4ba5a9;
16
+ --color-emerald-500: #368086;
17
+ --color-emerald-600: #2c666c;
18
+ --color-emerald-700: #234e53;
19
+ --color-emerald-800: #19393d;
20
+ --color-emerald-900: #11292c;
21
+ --color-emerald-950: #0a1a1d;
22
+ --color-topaz-50: #fff7f0;
23
+ --color-topaz-100: #ffe5d1;
24
+ --color-topaz-200: #fbc89f;
25
+ --color-topaz-300: #f0a066;
26
+ --color-topaz-400: #d9722e;
27
+ --color-topaz-500: #c4530a;
28
+ --color-topaz-600: #9f4007;
29
+ --color-topaz-700: #7b2e06;
30
+ --color-topaz-800: #5a2105;
31
+ --color-topaz-900: #3d1503;
32
+ --color-topaz-950: #230c02;
33
+ --color-ruby-50: #fff5f6;
34
+ --color-ruby-100: #fde1e4;
35
+ --color-ruby-200: #f8bac3;
36
+ --color-ruby-300: #ec8796;
37
+ --color-ruby-400: #d55368;
38
+ --color-ruby-500: #c33341;
39
+ --color-ruby-600: #9e2533;
40
+ --color-ruby-700: #7a1b27;
41
+ --color-ruby-800: #57131c;
42
+ --color-ruby-900: #3a0c13;
43
+ --color-ruby-950: #21070b;
44
+ --color-ocean-50: #f0f4fa;
45
+ --color-ocean-100: #dce6f4;
46
+ --color-ocean-200: #b9cde9;
47
+ --color-ocean-300: #8fafd9;
48
+ --color-ocean-400: #6691c7;
49
+ --color-ocean-500: #4573ae;
50
+ --color-ocean-600: #355a8c;
51
+ --color-ocean-700: #034078;
52
+ --color-ocean-800: #022f5a;
53
+ --color-ocean-900: #001f54;
54
+ --color-ocean-950: #0a1128;
55
+ --color-sky-50: #effcff;
56
+ --color-sky-100: #d6f5fb;
57
+ --color-sky-200: #b3ecf7;
58
+ --color-sky-300: #7fdff0;
59
+ --color-sky-400: #44c9e2;
60
+ --color-sky-500: #1282a2;
61
+ --color-sky-600: #0f6b86;
62
+ --color-sky-700: #10576d;
63
+ --color-sky-800: #12475a;
64
+ --color-sky-900: #133c4c;
65
+ --color-sky-950: #062733;
66
+ --color-earth-50: #fefcfb;
67
+ --color-earth-100: #faf6f4;
68
+ --color-earth-200: #f2ebe7;
69
+ --color-earth-300: #e8ddd6;
70
+ --color-earth-400: #d4c4b9;
71
+ --color-earth-500: #b8a192;
72
+ --color-earth-600: #9a816f;
73
+ --color-earth-700: #7d6555;
74
+ --color-earth-800: #5e4b40;
75
+ --color-earth-900: #3d302a;
76
+ --color-earth-950: #211916;
77
+ --color-slate-50: #f8fafc;
78
+ --color-slate-100: #f1f5f9;
79
+ --color-slate-200: #e2e8f0;
80
+ --color-slate-300: #cbd5e1;
81
+ --color-slate-400: #94a3b8;
82
+ --color-slate-500: #64748b;
83
+ --color-slate-600: #475569;
84
+ --color-slate-700: #334155;
85
+ --color-slate-800: #1e293b;
86
+ --color-slate-900: #0f172a;
87
+ --color-slate-950: #020617;
88
+
89
+ /* Typography */
90
+ --font-sans: Inter Variable, ui-sans-serif, system-ui, sans-serif;
91
+ --font-mono: JetBrains Mono Variable, ui-monospace, monospace;
92
+ }
93
+
94
+ :root:not([data-theme]), :root[data-theme="light"] {
95
+ /* Background */
96
+ --bg-strong: var(--color-slate-800);
97
+ --bg-strong-hovered: var(--color-slate-900);
98
+ --bg-strong-pressed: var(--color-slate-950);
99
+ --bg-strong-disabled: var(--color-slate-300);
100
+ --bg-normal: white;
101
+ --bg-normal-hovered: var(--color-slate-50);
102
+ --bg-normal-pressed: var(--color-slate-100);
103
+ --bg-normal-disabled: var(--color-slate-200);
104
+ --bg-subtle: var(--color-slate-50);
105
+ --bg-subtle-hovered: var(--color-slate-100);
106
+ --bg-subtle-pressed: var(--color-slate-200);
107
+ --bg-subtle-disabled: var(--color-slate-100);
108
+ --bg-brand-subtle: var(--color-ocean-100);
109
+ --bg-brand-subtle-hovered: var(--color-ocean-200);
110
+ --bg-brand-subtle-pressed: var(--color-ocean-300);
111
+ --bg-brand-subtle-disabled: var(--color-ocean-50);
112
+ --bg-brand: var(--color-ocean-600);
113
+ --bg-brand-hovered: var(--color-ocean-700);
114
+ --bg-brand-pressed: var(--color-ocean-800);
115
+ --bg-brand-disabled: var(--color-ocean-300);
116
+ --bg-brand-strong: var(--color-ocean-800);
117
+ --bg-brand-strong-hovered: var(--color-ocean-900);
118
+ --bg-brand-strong-pressed: var(--color-ocean-950);
119
+ --bg-brand-strong-disabled: var(--color-ocean-400);
120
+ --bg-success-subtle: var(--color-emerald-100);
121
+ --bg-success-subtle-hovered: var(--color-emerald-200);
122
+ --bg-success-subtle-pressed: var(--color-emerald-300);
123
+ --bg-success-subtle-disabled: var(--color-emerald-50);
124
+ --bg-success: var(--color-emerald-600);
125
+ --bg-success-hovered: var(--color-emerald-700);
126
+ --bg-success-pressed: var(--color-emerald-800);
127
+ --bg-success-disabled: var(--color-emerald-300);
128
+ --bg-success-strong: var(--color-emerald-800);
129
+ --bg-success-strong-hovered: var(--color-emerald-900);
130
+ --bg-success-strong-pressed: var(--color-emerald-950);
131
+ --bg-success-strong-disabled: var(--color-emerald-400);
132
+ --bg-warning-subtle: var(--color-topaz-100);
133
+ --bg-warning-subtle-hovered: var(--color-topaz-200);
134
+ --bg-warning-subtle-pressed: var(--color-topaz-300);
135
+ --bg-warning-subtle-disabled: var(--color-topaz-50);
136
+ --bg-warning: var(--color-topaz-600);
137
+ --bg-warning-hovered: var(--color-topaz-700);
138
+ --bg-warning-pressed: var(--color-topaz-800);
139
+ --bg-warning-disabled: var(--color-topaz-300);
140
+ --bg-warning-strong: var(--color-topaz-800);
141
+ --bg-warning-strong-hovered: var(--color-topaz-900);
142
+ --bg-warning-strong-pressed: var(--color-topaz-950);
143
+ --bg-warning-strong-disabled: var(--color-topaz-400);
144
+ --bg-danger-subtle: var(--color-ruby-100);
145
+ --bg-danger-subtle-hovered: var(--color-ruby-200);
146
+ --bg-danger-subtle-pressed: var(--color-ruby-300);
147
+ --bg-danger-subtle-disabled: var(--color-ruby-50);
148
+ --bg-danger: var(--color-ruby-600);
149
+ --bg-danger-hovered: var(--color-ruby-700);
150
+ --bg-danger-pressed: var(--color-ruby-800);
151
+ --bg-danger-disabled: var(--color-ruby-300);
152
+ --bg-danger-strong: var(--color-ruby-800);
153
+ --bg-danger-strong-hovered: var(--color-ruby-900);
154
+ --bg-danger-strong-pressed: var(--color-ruby-950);
155
+ --bg-danger-strong-disabled: var(--color-ruby-400);
156
+ --bg-overlay: rgba(0, 0, 0, 0.5);
157
+
158
+ /* Foreground */
159
+ --fg-strong: var(--color-slate-900);
160
+ --fg-strong-hovered: var(--color-slate-950);
161
+ --fg-strong-pressed: black;
162
+ --fg-strong-disabled: var(--color-slate-400);
163
+ --fg-on-strong: var(--color-slate-50);
164
+ --fg-on-strong-hovered: white;
165
+ --fg-on-strong-pressed: white;
166
+ --fg-on-strong-disabled: var(--color-slate-300);
167
+ --fg-normal: var(--color-slate-900);
168
+ --fg-normal-hovered: var(--color-slate-950);
169
+ --fg-normal-pressed: var(--color-slate-950);
170
+ --fg-normal-disabled: var(--color-slate-400);
171
+ --fg-subtle: var(--color-slate-500);
172
+ --fg-subtle-hovered: var(--color-slate-600);
173
+ --fg-subtle-pressed: var(--color-slate-700);
174
+ --fg-subtle-disabled: var(--color-slate-300);
175
+ --fg-brand: var(--color-ocean-700);
176
+ --fg-brand-hovered: var(--color-ocean-800);
177
+ --fg-brand-pressed: var(--color-ocean-900);
178
+ --fg-brand-disabled: var(--color-ocean-300);
179
+ --fg-on-brand-subtle: var(--color-ocean-800);
180
+ --fg-on-brand-subtle-hovered: var(--color-ocean-900);
181
+ --fg-on-brand-subtle-pressed: var(--color-ocean-950);
182
+ --fg-on-brand-subtle-disabled: var(--color-ocean-400);
183
+ --fg-on-brand: var(--color-slate-50);
184
+ --fg-on-brand-hovered: white;
185
+ --fg-on-brand-pressed: white;
186
+ --fg-on-brand-disabled: var(--color-slate-300);
187
+ --fg-on-brand-strong: var(--color-slate-50);
188
+ --fg-on-brand-strong-hovered: white;
189
+ --fg-on-brand-strong-pressed: white;
190
+ --fg-on-brand-strong-disabled: var(--color-slate-300);
191
+ --fg-success: var(--color-emerald-700);
192
+ --fg-success-hovered: var(--color-emerald-800);
193
+ --fg-success-pressed: var(--color-emerald-900);
194
+ --fg-success-disabled: var(--color-emerald-300);
195
+ --fg-on-success-subtle: var(--color-emerald-800);
196
+ --fg-on-success-subtle-hovered: var(--color-emerald-900);
197
+ --fg-on-success-subtle-pressed: var(--color-emerald-950);
198
+ --fg-on-success-subtle-disabled: var(--color-emerald-400);
199
+ --fg-on-success: var(--color-slate-50);
200
+ --fg-on-success-hovered: white;
201
+ --fg-on-success-pressed: white;
202
+ --fg-on-success-disabled: var(--color-slate-300);
203
+ --fg-warning: var(--color-topaz-700);
204
+ --fg-warning-hovered: var(--color-topaz-800);
205
+ --fg-warning-pressed: var(--color-topaz-900);
206
+ --fg-warning-disabled: var(--color-topaz-300);
207
+ --fg-on-warning-subtle: var(--color-topaz-800);
208
+ --fg-on-warning-subtle-hovered: var(--color-topaz-900);
209
+ --fg-on-warning-subtle-pressed: var(--color-topaz-950);
210
+ --fg-on-warning-subtle-disabled: var(--color-topaz-400);
211
+ --fg-on-warning: var(--color-slate-50);
212
+ --fg-on-warning-hovered: white;
213
+ --fg-on-warning-pressed: white;
214
+ --fg-on-warning-disabled: var(--color-slate-300);
215
+ --fg-danger: var(--color-ruby-700);
216
+ --fg-danger-hovered: var(--color-ruby-800);
217
+ --fg-danger-pressed: var(--color-ruby-900);
218
+ --fg-danger-disabled: var(--color-ruby-300);
219
+ --fg-on-danger-subtle: var(--color-ruby-800);
220
+ --fg-on-danger-subtle-hovered: var(--color-ruby-900);
221
+ --fg-on-danger-subtle-pressed: var(--color-ruby-950);
222
+ --fg-on-danger-subtle-disabled: var(--color-ruby-400);
223
+ --fg-on-danger: var(--color-slate-50);
224
+ --fg-on-danger-hovered: white;
225
+ --fg-on-danger-pressed: white;
226
+ --fg-on-danger-disabled: var(--color-slate-300);
227
+
228
+ /* Border */
229
+ --border-strong: var(--color-slate-800);
230
+ --border-strong-hovered: var(--color-slate-900);
231
+ --border-strong-pressed: var(--color-slate-950);
232
+ --border-strong-disabled: var(--color-slate-300);
233
+ --border-normal: var(--color-slate-300);
234
+ --border-normal-hovered: var(--color-slate-400);
235
+ --border-normal-pressed: var(--color-slate-500);
236
+ --border-normal-disabled: var(--color-slate-100);
237
+ --border-subtle: var(--color-slate-100);
238
+ --border-subtle-hovered: var(--color-slate-200);
239
+ --border-subtle-pressed: var(--color-slate-300);
240
+ --border-subtle-disabled: var(--color-slate-50);
241
+ --border-brand-subtle: var(--color-ocean-300);
242
+ --border-brand-subtle-hovered: var(--color-ocean-400);
243
+ --border-brand-subtle-pressed: var(--color-ocean-500);
244
+ --border-brand-subtle-disabled: var(--color-ocean-200);
245
+ --border-brand: var(--color-ocean-600);
246
+ --border-brand-hovered: var(--color-ocean-700);
247
+ --border-brand-pressed: var(--color-ocean-800);
248
+ --border-brand-disabled: var(--color-ocean-200);
249
+ --border-brand-strong: var(--color-ocean-800);
250
+ --border-brand-strong-hovered: var(--color-ocean-900);
251
+ --border-brand-strong-pressed: var(--color-ocean-950);
252
+ --border-brand-strong-disabled: var(--color-ocean-400);
253
+ --border-success: var(--color-emerald-300);
254
+ --border-success-hovered: var(--color-emerald-400);
255
+ --border-success-pressed: var(--color-emerald-500);
256
+ --border-success-disabled: var(--color-emerald-200);
257
+ --border-warning: var(--color-topaz-300);
258
+ --border-warning-hovered: var(--color-topaz-400);
259
+ --border-warning-pressed: var(--color-topaz-500);
260
+ --border-warning-disabled: var(--color-topaz-200);
261
+ --border-danger: var(--color-ruby-300);
262
+ --border-danger-hovered: var(--color-ruby-400);
263
+ --border-danger-pressed: var(--color-ruby-500);
264
+ --border-danger-disabled: var(--color-ruby-200);
265
+ }
266
+
267
+ :root[data-theme="dark"] {
268
+ /* Background */
269
+ --bg-strong: var(--color-slate-200);
270
+ --bg-strong-hovered: var(--color-slate-100);
271
+ --bg-strong-pressed: var(--color-slate-50);
272
+ --bg-strong-disabled: var(--color-slate-600);
273
+ --bg-normal: var(--color-slate-900);
274
+ --bg-normal-hovered: var(--color-slate-800);
275
+ --bg-normal-pressed: var(--color-slate-700);
276
+ --bg-normal-disabled: var(--color-slate-900);
277
+ --bg-subtle: var(--color-slate-800);
278
+ --bg-subtle-hovered: var(--color-slate-700);
279
+ --bg-subtle-pressed: var(--color-slate-600);
280
+ --bg-subtle-disabled: var(--color-slate-800);
281
+ --bg-brand-subtle: var(--color-ocean-950);
282
+ --bg-brand-subtle-hovered: var(--color-ocean-900);
283
+ --bg-brand-subtle-pressed: var(--color-ocean-800);
284
+ --bg-brand-subtle-disabled: var(--color-ocean-950);
285
+ --bg-brand: var(--color-ocean-500);
286
+ --bg-brand-hovered: var(--color-ocean-400);
287
+ --bg-brand-pressed: var(--color-ocean-300);
288
+ --bg-brand-disabled: var(--color-ocean-800);
289
+ --bg-brand-strong: var(--color-ocean-300);
290
+ --bg-brand-strong-hovered: var(--color-ocean-200);
291
+ --bg-brand-strong-pressed: var(--color-ocean-100);
292
+ --bg-brand-strong-disabled: var(--color-ocean-600);
293
+ --bg-success-subtle: var(--color-emerald-950);
294
+ --bg-success-subtle-hovered: var(--color-emerald-900);
295
+ --bg-success-subtle-pressed: var(--color-emerald-800);
296
+ --bg-success-subtle-disabled: var(--color-emerald-950);
297
+ --bg-success: var(--color-emerald-500);
298
+ --bg-success-hovered: var(--color-emerald-400);
299
+ --bg-success-pressed: var(--color-emerald-300);
300
+ --bg-success-disabled: var(--color-emerald-800);
301
+ --bg-success-strong: var(--color-emerald-300);
302
+ --bg-success-strong-hovered: var(--color-emerald-200);
303
+ --bg-success-strong-pressed: var(--color-emerald-100);
304
+ --bg-success-strong-disabled: var(--color-emerald-600);
305
+ --bg-warning-subtle: var(--color-topaz-950);
306
+ --bg-warning-subtle-hovered: var(--color-topaz-900);
307
+ --bg-warning-subtle-pressed: var(--color-topaz-800);
308
+ --bg-warning-subtle-disabled: var(--color-topaz-950);
309
+ --bg-warning: var(--color-topaz-500);
310
+ --bg-warning-hovered: var(--color-topaz-400);
311
+ --bg-warning-pressed: var(--color-topaz-300);
312
+ --bg-warning-disabled: var(--color-topaz-800);
313
+ --bg-warning-strong: var(--color-topaz-300);
314
+ --bg-warning-strong-hovered: var(--color-topaz-200);
315
+ --bg-warning-strong-pressed: var(--color-topaz-100);
316
+ --bg-warning-strong-disabled: var(--color-topaz-600);
317
+ --bg-danger-subtle: var(--color-ruby-950);
318
+ --bg-danger-subtle-hovered: var(--color-ruby-900);
319
+ --bg-danger-subtle-pressed: var(--color-ruby-800);
320
+ --bg-danger-subtle-disabled: var(--color-ruby-950);
321
+ --bg-danger: var(--color-ruby-500);
322
+ --bg-danger-hovered: var(--color-ruby-400);
323
+ --bg-danger-pressed: var(--color-ruby-300);
324
+ --bg-danger-disabled: var(--color-ruby-800);
325
+ --bg-danger-strong: var(--color-ruby-300);
326
+ --bg-danger-strong-hovered: var(--color-ruby-200);
327
+ --bg-danger-strong-pressed: var(--color-ruby-100);
328
+ --bg-danger-strong-disabled: var(--color-ruby-600);
329
+ --bg-overlay: rgba(0, 0, 0, 0.6);
330
+
331
+ /* Foreground */
332
+ --fg-strong: var(--color-slate-50);
333
+ --fg-strong-hovered: white;
334
+ --fg-strong-pressed: white;
335
+ --fg-strong-disabled: var(--color-slate-500);
336
+ --fg-on-strong: var(--color-slate-900);
337
+ --fg-on-strong-hovered: var(--color-slate-950);
338
+ --fg-on-strong-pressed: black;
339
+ --fg-on-strong-disabled: var(--color-slate-500);
340
+ --fg-normal: var(--color-slate-50);
341
+ --fg-normal-hovered: white;
342
+ --fg-normal-pressed: white;
343
+ --fg-normal-disabled: var(--color-slate-500);
344
+ --fg-subtle: var(--color-slate-400);
345
+ --fg-subtle-hovered: var(--color-slate-300);
346
+ --fg-subtle-pressed: var(--color-slate-200);
347
+ --fg-subtle-disabled: var(--color-slate-600);
348
+ --fg-brand: var(--color-ocean-400);
349
+ --fg-brand-hovered: var(--color-ocean-300);
350
+ --fg-brand-pressed: var(--color-ocean-200);
351
+ --fg-brand-disabled: var(--color-ocean-700);
352
+ --fg-on-brand-subtle: var(--color-ocean-300);
353
+ --fg-on-brand-subtle-hovered: var(--color-ocean-200);
354
+ --fg-on-brand-subtle-pressed: var(--color-ocean-100);
355
+ --fg-on-brand-subtle-disabled: var(--color-ocean-700);
356
+ --fg-on-brand: var(--color-slate-50);
357
+ --fg-on-brand-hovered: white;
358
+ --fg-on-brand-pressed: white;
359
+ --fg-on-brand-disabled: var(--color-slate-400);
360
+ --fg-on-brand-strong: var(--color-slate-900);
361
+ --fg-on-brand-strong-hovered: var(--color-slate-950);
362
+ --fg-on-brand-strong-pressed: black;
363
+ --fg-on-brand-strong-disabled: var(--color-slate-500);
364
+ --fg-success: var(--color-emerald-400);
365
+ --fg-success-hovered: var(--color-emerald-300);
366
+ --fg-success-pressed: var(--color-emerald-200);
367
+ --fg-success-disabled: var(--color-emerald-700);
368
+ --fg-on-success-subtle: var(--color-emerald-300);
369
+ --fg-on-success-subtle-hovered: var(--color-emerald-200);
370
+ --fg-on-success-subtle-pressed: var(--color-emerald-100);
371
+ --fg-on-success-subtle-disabled: var(--color-emerald-700);
372
+ --fg-on-success: var(--color-slate-900);
373
+ --fg-on-success-hovered: var(--color-slate-950);
374
+ --fg-on-success-pressed: black;
375
+ --fg-on-success-disabled: var(--color-slate-500);
376
+ --fg-warning: var(--color-topaz-400);
377
+ --fg-warning-hovered: var(--color-topaz-300);
378
+ --fg-warning-pressed: var(--color-topaz-200);
379
+ --fg-warning-disabled: var(--color-topaz-700);
380
+ --fg-on-warning-subtle: var(--color-topaz-300);
381
+ --fg-on-warning-subtle-hovered: var(--color-topaz-200);
382
+ --fg-on-warning-subtle-pressed: var(--color-topaz-100);
383
+ --fg-on-warning-subtle-disabled: var(--color-topaz-700);
384
+ --fg-on-warning: var(--color-slate-900);
385
+ --fg-on-warning-hovered: var(--color-slate-950);
386
+ --fg-on-warning-pressed: black;
387
+ --fg-on-warning-disabled: var(--color-slate-500);
388
+ --fg-danger: var(--color-ruby-400);
389
+ --fg-danger-hovered: var(--color-ruby-300);
390
+ --fg-danger-pressed: var(--color-ruby-200);
391
+ --fg-danger-disabled: var(--color-ruby-700);
392
+ --fg-on-danger-subtle: var(--color-ruby-300);
393
+ --fg-on-danger-subtle-hovered: var(--color-ruby-200);
394
+ --fg-on-danger-subtle-pressed: var(--color-ruby-100);
395
+ --fg-on-danger-subtle-disabled: var(--color-ruby-700);
396
+ --fg-on-danger: var(--color-slate-900);
397
+ --fg-on-danger-hovered: var(--color-slate-950);
398
+ --fg-on-danger-pressed: black;
399
+ --fg-on-danger-disabled: var(--color-slate-500);
400
+
401
+ /* Border */
402
+ --border-strong: var(--color-slate-200);
403
+ --border-strong-hovered: var(--color-slate-100);
404
+ --border-strong-pressed: var(--color-slate-50);
405
+ --border-strong-disabled: var(--color-slate-600);
406
+ --border-normal: var(--color-slate-700);
407
+ --border-normal-hovered: var(--color-slate-600);
408
+ --border-normal-pressed: var(--color-slate-500);
409
+ --border-normal-disabled: var(--color-slate-800);
410
+ --border-subtle: var(--color-slate-800);
411
+ --border-subtle-hovered: var(--color-slate-700);
412
+ --border-subtle-pressed: var(--color-slate-600);
413
+ --border-subtle-disabled: var(--color-slate-900);
414
+ --border-brand-subtle: var(--color-ocean-700);
415
+ --border-brand-subtle-hovered: var(--color-ocean-600);
416
+ --border-brand-subtle-pressed: var(--color-ocean-500);
417
+ --border-brand-subtle-disabled: var(--color-ocean-800);
418
+ --border-brand: var(--color-ocean-500);
419
+ --border-brand-hovered: var(--color-ocean-400);
420
+ --border-brand-pressed: var(--color-ocean-300);
421
+ --border-brand-disabled: var(--color-ocean-800);
422
+ --border-brand-strong: var(--color-ocean-300);
423
+ --border-brand-strong-hovered: var(--color-ocean-200);
424
+ --border-brand-strong-pressed: var(--color-ocean-100);
425
+ --border-brand-strong-disabled: var(--color-ocean-600);
426
+ --border-success: var(--color-emerald-700);
427
+ --border-success-hovered: var(--color-emerald-600);
428
+ --border-success-pressed: var(--color-emerald-500);
429
+ --border-success-disabled: var(--color-emerald-800);
430
+ --border-warning: var(--color-topaz-700);
431
+ --border-warning-hovered: var(--color-topaz-600);
432
+ --border-warning-pressed: var(--color-topaz-500);
433
+ --border-warning-disabled: var(--color-topaz-800);
434
+ --border-danger: var(--color-ruby-700);
435
+ --border-danger-hovered: var(--color-ruby-600);
436
+ --border-danger-pressed: var(--color-ruby-500);
437
+ --border-danger-disabled: var(--color-ruby-800);
438
+ }
package/package.json ADDED
@@ -0,0 +1,238 @@
1
+ {
2
+ "name": "@sixthshift/design-system",
3
+ "version": "0.1.0",
4
+ "description": "Personal design system - tokens, theme, and component library",
5
+ "license": "MIT",
6
+ "publishConfig": {
7
+ "access": "public"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/sixthshift/design-system.git"
12
+ },
13
+ "homepage": "https://github.com/sixthshift/design-system#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/sixthshift/design-system/issues"
16
+ },
17
+ "keywords": [
18
+ "design-system",
19
+ "react",
20
+ "component-library",
21
+ "tailwindcss",
22
+ "design-tokens",
23
+ "temporal"
24
+ ],
25
+ "type": "module",
26
+ "sideEffects": [
27
+ "**/*.css"
28
+ ],
29
+ "files": [
30
+ "src",
31
+ "dist",
32
+ "tailwind.config.ts",
33
+ "!src/**/*.test.ts",
34
+ "!src/**/*.test.tsx",
35
+ "!src/**/__tests__",
36
+ "!src/**/__screenshots__",
37
+ "!src/**/*.stories.tsx",
38
+ "!src/stories",
39
+ "!src/testing"
40
+ ],
41
+ "exports": {
42
+ "./styles.css": "./dist/styles.css",
43
+ "./theme.css": "./dist/theme.generated.css",
44
+ "./theme": "./src/theme/index.ts",
45
+ "./tailwind.config": "./tailwind.config.ts",
46
+ "./utils": "./src/lib/utils.ts",
47
+ "./format": "./src/lib/format.ts",
48
+ "./hooks": "./src/hooks/index.ts",
49
+ "./date-time": "./src/date-time/index.ts",
50
+ "./button": "./src/components/Button/index.ts",
51
+ "./input": "./src/components/Input/index.ts",
52
+ "./textarea": "./src/components/Textarea/index.ts",
53
+ "./checkbox": "./src/components/Checkbox/index.ts",
54
+ "./checkbox-group": "./src/components/CheckboxGroup/index.ts",
55
+ "./radio-button": "./src/components/RadioButton/index.ts",
56
+ "./radio-button-group": "./src/components/RadioButtonGroup/index.ts",
57
+ "./switch": "./src/components/Switch/index.ts",
58
+ "./toggle": "./src/components/Toggle/index.ts",
59
+ "./toggle-group": "./src/components/ToggleGroup/index.ts",
60
+ "./badge": "./src/components/Badge/index.ts",
61
+ "./color-dot": "./src/components/ColorDot/index.ts",
62
+ "./tag-chip": "./src/components/TagChip/index.ts",
63
+ "./tag-input": "./src/components/TagInput/index.ts",
64
+ "./field": "./src/components/Field/index.ts",
65
+ "./breadcrumb": "./src/components/Breadcrumb/index.ts",
66
+ "./card": "./src/components/Card/index.ts",
67
+ "./avatar": "./src/components/Avatar/index.ts",
68
+ "./separator": "./src/components/Separator/index.ts",
69
+ "./skeleton": "./src/components/Skeleton/index.ts",
70
+ "./spinner": "./src/components/Spinner/index.ts",
71
+ "./stats-card": "./src/components/StatsCard/index.ts",
72
+ "./metric-list": "./src/components/MetricList/index.ts",
73
+ "./empty-state": "./src/components/EmptyState/index.ts",
74
+ "./text": "./src/components/Text/index.ts",
75
+ "./text-inline": "./src/components/TextInline/index.ts",
76
+ "./calendar": "./src/components/Calendar/index.ts",
77
+ "./modal": "./src/components/Modal/index.ts",
78
+ "./sheet": "./src/components/Sheet/index.ts",
79
+ "./toast": "./src/components/Toast/index.ts",
80
+ "./message": "./src/components/Message/index.ts",
81
+ "./select": "./src/components/Select/index.ts",
82
+ "./form-field": "./src/components/FormField/index.ts",
83
+ "./popover": "./src/components/Popover/index.ts",
84
+ "./hover-card": "./src/components/HoverCard/index.ts",
85
+ "./date-picker": "./src/components/DatePicker/index.ts",
86
+ "./time-picker": "./src/components/TimePicker/index.ts",
87
+ "./datetime-picker": "./src/components/DateTimePicker/index.ts",
88
+ "./datetime-range-picker": "./src/components/DateTimeRangePicker/index.ts",
89
+ "./tooltip": "./src/components/Tooltip/index.ts",
90
+ "./tabs": "./src/components/Tabs/index.ts",
91
+ "./search-input": "./src/components/SearchInput/index.ts",
92
+ "./pagination": "./src/components/Pagination/index.ts",
93
+ "./code-editor": "./src/components/Code/Editor/index.ts",
94
+ "./code-editor-workspace": "./src/components/Code/Workspace/index.ts",
95
+ "./nav-side": "./src/components/NavSide/index.ts",
96
+ "./nav-bottom": "./src/components/NavBottom/index.ts",
97
+ "./heading": "./src/typography/Heading.tsx",
98
+ "./label": "./src/typography/Label.tsx",
99
+ "./section-title": "./src/typography/SectionTitle.tsx",
100
+ "./caption": "./src/typography/Caption.tsx",
101
+ "./code": "./src/typography/Code.tsx",
102
+ "./lead": "./src/typography/Lead.tsx",
103
+ "./body": "./src/typography/Body.tsx",
104
+ "./muted": "./src/typography/Muted.tsx",
105
+ "./display": "./src/typography/Display.tsx",
106
+ "./emphasis": "./src/typography/Emphasis.tsx",
107
+ "./mono": "./src/typography/Mono.tsx",
108
+ "./subtitle": "./src/typography/Subtitle.tsx",
109
+ "./timestamp": "./src/typography/Timestamp.tsx",
110
+ "./overlay": "./src/lib/contexts/OverlayContext/index.ts",
111
+ "./components": "./src/lib/contexts/ComponentsContext/index.ts",
112
+ "./error-boundary": "./src/lib/ErrorBoundary.tsx",
113
+ "./with-suspense": "./src/lib/withSuspense.tsx",
114
+ "./with-error-boundary": "./src/lib/withErrorBoundary.tsx",
115
+ "./with-suspense-and-error-boundary": "./src/lib/withSuspenseAndErrorBoundary.tsx",
116
+ "./with-empty": "./src/lib/withEmpty.tsx",
117
+ "./empty-boundary": "./src/lib/EmptyBoundary.tsx",
118
+ "./progress-bar": "./src/components/ProgressBar/index.ts",
119
+ "./markdown": "./src/components/Markdown/index.ts",
120
+ "./line-chart": "./src/components/LineChart/index.ts",
121
+ "./sparkline": "./src/components/Sparkline/index.ts",
122
+ "./bar-chart": "./src/components/BarChart/index.ts",
123
+ "./heat-map": "./src/components/HeatMap/index.ts"
124
+ },
125
+ "scripts": {
126
+ "prepare": "bun run build",
127
+ "build": "bun run build:theme && bun run build:css",
128
+ "build:theme": "bun run scripts/generate-theme.ts -i src/theme/theme.json -p src/theme/palette.json -t src/theme/typography.json -o dist/theme.generated.css",
129
+ "build:css": "tailwindcss -i src/styles/base.css -o dist/styles.css --minify",
130
+ "dev": "bun run dev:css & bun run dev:theme",
131
+ "dev:css": "tailwindcss -i src/styles/base.css -o dist/styles.css --watch",
132
+ "dev:theme": "bun run scripts/watch-theme.ts",
133
+ "storybook": "storybook dev -p 6006 --no-open",
134
+ "build-storybook": "storybook build",
135
+ "test": "vitest run --project unit --project date-time --reporter=dot",
136
+ "test:verbose": "vitest run --project unit --project date-time",
137
+ "test:watch": "vitest --project unit --project date-time",
138
+ "test:visual": "vitest run --project visual",
139
+ "test:visual:update": "vitest run --project visual --update",
140
+ "test:stories": "vitest run --project storybook",
141
+ "test:ui": "bunx vitest --ui",
142
+ "type-check": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.test.json",
143
+ "lint": "biome lint .",
144
+ "lint:fix": "biome lint --write .",
145
+ "format": "biome format --write .",
146
+ "format:check": "biome format .",
147
+ "check": "biome check .",
148
+ "check:fix": "biome check --write .",
149
+ "clean": "rm -rf dist node_modules *.tsbuildinfo"
150
+ },
151
+ "dependencies": {
152
+ "@floating-ui/react": "^0.27.16",
153
+ "@js-temporal/polyfill": "^0.5.0",
154
+ "class-variance-authority": "^0.7.1",
155
+ "clsx": "^2.1.1",
156
+ "lucide-react": "^0.511.0",
157
+ "tailwind-merge": "^3.4.0"
158
+ },
159
+ "devDependencies": {
160
+ "@biomejs/biome": "2.4.15",
161
+ "@fontsource-variable/inter": "^5.2.8",
162
+ "@fontsource-variable/jetbrains-mono": "^5.2.8",
163
+ "@monaco-editor/react": "^4.7.0",
164
+ "@storybook/addon-a11y": "^10.1.8",
165
+ "@storybook/addon-docs": "^10.1.8",
166
+ "@storybook/addon-themes": "^10.1.10",
167
+ "@storybook/addon-vitest": "^10.1.8",
168
+ "@storybook/react": "^10.1.8",
169
+ "@storybook/react-vite": "^10.1.8",
170
+ "@tailwindcss/cli": "^4.1.18",
171
+ "@tailwindcss/vite": "^4.1.18",
172
+ "@testing-library/jest-dom": "^6.9.1",
173
+ "@testing-library/react": "^16.3.1",
174
+ "@testing-library/user-event": "^14.6.1",
175
+ "@types/bun": "^1.3.14",
176
+ "@types/react": "^18.2.46",
177
+ "@types/react-dom": "^18.2.18",
178
+ "@vitest/browser-playwright": "4.1.7",
179
+ "@vitest/coverage-v8": "4.1.7",
180
+ "@vitest/ui": "4.1.7",
181
+ "commander": "^14.0.2",
182
+ "happy-dom": "^20.9.0",
183
+ "monaco-editor": "^0.55.1",
184
+ "playwright": "^1.57.0",
185
+ "react": "^18.2.0",
186
+ "react-dom": "^18.2.0",
187
+ "react-markdown": "^10.1.0",
188
+ "storybook": "^10.1.8",
189
+ "tailwindcss": "^4",
190
+ "typescript": "~5.7.2",
191
+ "vite": "^6.4.1",
192
+ "vitest": "4.1.7"
193
+ },
194
+ "peerDependencies": {
195
+ "@fontsource-variable/inter": "^5.2.8",
196
+ "@fontsource-variable/jetbrains-mono": "^5.2.8",
197
+ "@monaco-editor/react": "^4.7.0",
198
+ "monaco-editor": "^0.55.1",
199
+ "react": "^18.2.0 || ^19.0.0",
200
+ "react-dom": "^18.2.0 || ^19.0.0",
201
+ "react-markdown": "^10.1.0"
202
+ },
203
+ "peerDependenciesMeta": {
204
+ "@fontsource-variable/inter": {
205
+ "optional": true
206
+ },
207
+ "@fontsource-variable/jetbrains-mono": {
208
+ "optional": true
209
+ },
210
+ "@monaco-editor/react": {
211
+ "optional": true
212
+ },
213
+ "monaco-editor": {
214
+ "optional": true
215
+ },
216
+ "react-markdown": {
217
+ "optional": true
218
+ }
219
+ },
220
+ "engines": {
221
+ "node": ">=20.0.0",
222
+ "bun": ">=1.0.0"
223
+ },
224
+ "overrides": {
225
+ "vitest": "4.1.7",
226
+ "@vitest/browser": "4.1.7",
227
+ "@vitest/browser-playwright": "4.1.7",
228
+ "@vitest/coverage-v8": "4.1.7",
229
+ "@vitest/expect": "4.1.7",
230
+ "@vitest/mocker": "4.1.7",
231
+ "@vitest/pretty-format": "4.1.7",
232
+ "@vitest/runner": "4.1.7",
233
+ "@vitest/snapshot": "4.1.7",
234
+ "@vitest/spy": "4.1.7",
235
+ "@vitest/ui": "4.1.7",
236
+ "@vitest/utils": "4.1.7"
237
+ }
238
+ }