@sesamehr/react-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 (154) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +89 -0
  3. package/dist/Button/Button.d.ts +12 -0
  4. package/dist/Button/index.d.ts +7 -0
  5. package/dist/Data/Table/Table.d.ts +43 -0
  6. package/dist/Data/Table/TableAvatar/TableAvatar.d.ts +13 -0
  7. package/dist/Data/Table/TableBody/TableBody.d.ts +21 -0
  8. package/dist/Data/Table/TableBulkHeader/TableBulkHeader.d.ts +13 -0
  9. package/dist/Data/Table/TableCell/TableCell.d.ts +8 -0
  10. package/dist/Data/Table/TableColumnVisibility/TableColumnVisibility.d.ts +10 -0
  11. package/dist/Data/Table/TableDragCell/TableDragCell.d.ts +6 -0
  12. package/dist/Data/Table/TableEmpty/TableEmpty.d.ts +3 -0
  13. package/dist/Data/Table/TableExpandCell/TableExpandCell.d.ts +6 -0
  14. package/dist/Data/Table/TableFixed/TableFixed.d.ts +27 -0
  15. package/dist/Data/Table/TableFixed/index.d.ts +1 -0
  16. package/dist/Data/Table/TableHead/TableHead.d.ts +3 -0
  17. package/dist/Data/Table/TableHeaderCell/TableHeaderCell.d.ts +18 -0
  18. package/dist/Data/Table/TablePagination/TablePagination.d.ts +10 -0
  19. package/dist/Data/Table/TableRow/TableRow.d.ts +11 -0
  20. package/dist/Data/Table/TableRow/rowDrag.d.ts +17 -0
  21. package/dist/Data/Table/TableRowExpanded/TableRowExpanded.d.ts +5 -0
  22. package/dist/Data/Table/TableSelectCell/TableSelectCell.d.ts +9 -0
  23. package/dist/Data/Table/hooks/index.d.ts +20 -0
  24. package/dist/Data/Table/hooks/useDragToScroll/useDragToScroll.d.ts +19 -0
  25. package/dist/Data/Table/hooks/useFixedColumns.d.ts +8 -0
  26. package/dist/Data/Table/hooks/useScrollShadow/useScrollShadow.d.ts +14 -0
  27. package/dist/Data/Table/hooks/useTable/useTable.d.ts +3 -0
  28. package/dist/Data/Table/hooks/useTable/useTable.types.d.ts +55 -0
  29. package/dist/Data/Table/hooks/useTableColumns/useTableColumns.d.ts +2 -0
  30. package/dist/Data/Table/hooks/useTableColumns/useTableColumns.types.d.ts +31 -0
  31. package/dist/Data/Table/hooks/useTableDetailRow/useTableDetailRow.d.ts +2 -0
  32. package/dist/Data/Table/hooks/useTableDetailRow/useTableDetailRow.types.d.ts +29 -0
  33. package/dist/Data/Table/hooks/useTablePagination/useTablePagination.d.ts +44 -0
  34. package/dist/Data/Table/hooks/useTablePinning/index.d.ts +2 -0
  35. package/dist/Data/Table/hooks/useTablePinning/useTablePinning.d.ts +2 -0
  36. package/dist/Data/Table/hooks/useTablePinning/useTablePinning.types.d.ts +50 -0
  37. package/dist/Data/Table/hooks/useTableSelection/useTableSelection.d.ts +2 -0
  38. package/dist/Data/Table/hooks/useTableSelection/useTableSelection.types.d.ts +31 -0
  39. package/dist/Data/Table/hooks/useTableSorting/useTableSorting.d.ts +2 -0
  40. package/dist/Data/Table/hooks/useTableSorting/useTableSorting.types.d.ts +24 -0
  41. package/dist/Data/Table/index.d.ts +17 -0
  42. package/dist/Data/Table/types.d.ts +90 -0
  43. package/dist/Display/Avatar/Avatar.d.ts +23 -0
  44. package/dist/Display/Avatar/hooks/useAvatarBullet.d.ts +16 -0
  45. package/dist/Display/Avatar/index.d.ts +9 -0
  46. package/dist/Display/AvatarGroup/AvatarGroup.d.ts +16 -0
  47. package/dist/Display/AvatarGroup/index.d.ts +1 -0
  48. package/dist/Display/Badge/Badge.d.ts +6 -0
  49. package/dist/Display/Badge/index.d.ts +6 -0
  50. package/dist/Display/PaymentCard/PaymentCard.d.ts +13 -0
  51. package/dist/Display/PaymentCard/index.d.ts +20 -0
  52. package/dist/Feedback/Alert/Alert.d.ts +18 -0
  53. package/dist/Feedback/Alert/AlertClose.d.ts +3 -0
  54. package/dist/Feedback/Alert/AlertDescription.d.ts +3 -0
  55. package/dist/Feedback/Alert/AlertIcon.d.ts +3 -0
  56. package/dist/Feedback/Alert/AlertTitle.d.ts +3 -0
  57. package/dist/Feedback/Alert/AlertToggle.d.ts +3 -0
  58. package/dist/Feedback/Alert/alert-context.d.ts +12 -0
  59. package/dist/Feedback/Alert/index.d.ts +7 -0
  60. package/dist/Feedback/Bullet/Bullet.d.ts +7 -0
  61. package/dist/Feedback/Bullet/index.d.ts +7 -0
  62. package/dist/Feedback/Dialog/Dialog.d.ts +12 -0
  63. package/dist/Feedback/Dialog/DialogContent.d.ts +6 -0
  64. package/dist/Feedback/Dialog/DialogDescription.d.ts +3 -0
  65. package/dist/Feedback/Dialog/DialogOverlay.d.ts +4 -0
  66. package/dist/Feedback/Dialog/DialogTitle.d.ts +3 -0
  67. package/dist/Feedback/Dialog/DialogTwoPanelContent.d.ts +8 -0
  68. package/dist/Feedback/Dialog/index.d.ts +7 -0
  69. package/dist/Feedback/Popover/Popover.d.ts +14 -0
  70. package/dist/Feedback/Popover/PopoverContent.d.ts +6 -0
  71. package/dist/Feedback/Popover/index.d.ts +3 -0
  72. package/dist/Feedback/StatusBadge/StatusBadge.d.ts +6 -0
  73. package/dist/Feedback/StatusBadge/index.d.ts +9 -0
  74. package/dist/Feedback/Tooltip/Tooltip.d.ts +16 -0
  75. package/dist/Feedback/Tooltip/TooltipContent.d.ts +6 -0
  76. package/dist/Feedback/Tooltip/index.d.ts +2 -0
  77. package/dist/Forms/Field/FieldGroup/FieldGroup.d.ts +4 -0
  78. package/dist/Forms/Field/FieldLabel/FieldLabel.d.ts +2 -0
  79. package/dist/Forms/Field/FieldMessage/FieldMessage.d.ts +5 -0
  80. package/dist/Forms/Field/index.d.ts +3 -0
  81. package/dist/Forms/Inputs/Combobox/Combobox.d.ts +27 -0
  82. package/dist/Forms/Inputs/Combobox/ComboboxChipsInput.d.ts +12 -0
  83. package/dist/Forms/Inputs/Combobox/ComboboxContent.d.ts +13 -0
  84. package/dist/Forms/Inputs/Combobox/ComboboxEmpty.d.ts +10 -0
  85. package/dist/Forms/Inputs/Combobox/ComboboxGroup.d.ts +7 -0
  86. package/dist/Forms/Inputs/Combobox/ComboboxInput.d.ts +14 -0
  87. package/dist/Forms/Inputs/Combobox/ComboboxItem.d.ts +10 -0
  88. package/dist/Forms/Inputs/Combobox/ComboboxSeparator.d.ts +10 -0
  89. package/dist/Forms/Inputs/Combobox/context.d.ts +26 -0
  90. package/dist/Forms/Inputs/Combobox/index.d.ts +8 -0
  91. package/dist/Forms/Inputs/Combobox/types.d.ts +8 -0
  92. package/dist/Forms/Inputs/InputGroup/InputGroup.d.ts +2 -0
  93. package/dist/Forms/Inputs/InputNumber/InputNumber.d.ts +18 -0
  94. package/dist/Forms/Inputs/InputNumber/InputNumberContent.d.ts +2 -0
  95. package/dist/Forms/Inputs/InputNumber/InputNumberContext.d.ts +20 -0
  96. package/dist/Forms/Inputs/InputNumber/InputNumberDecrement.d.ts +3 -0
  97. package/dist/Forms/Inputs/InputNumber/InputNumberIncrement.d.ts +3 -0
  98. package/dist/Forms/Inputs/InputNumber/InputNumberInput.d.ts +3 -0
  99. package/dist/Forms/Inputs/InputNumber/index.d.ts +5 -0
  100. package/dist/Forms/Inputs/InputText/InputText.d.ts +14 -0
  101. package/dist/Forms/Inputs/Toggle/Checkbox/Checkbox.d.ts +11 -0
  102. package/dist/Forms/Inputs/Toggle/RadioButton/RadioButton.d.ts +7 -0
  103. package/dist/Forms/Inputs/Toggle/RadioButton/RadioGroup.d.ts +9 -0
  104. package/dist/Forms/Inputs/Toggle/Switch/Switch.d.ts +13 -0
  105. package/dist/Forms/Inputs/Toggle/Switch/constants.d.ts +1 -0
  106. package/dist/Forms/Inputs/Toggle/ToggleDescription/ToggleDescription.d.ts +5 -0
  107. package/dist/Forms/Inputs/Toggle/ToggleGroup/ToggleGroup.d.ts +7 -0
  108. package/dist/Forms/Inputs/Toggle/ToggleLabel/ToggleLabel.d.ts +5 -0
  109. package/dist/Forms/Inputs/Toggle/index.d.ts +8 -0
  110. package/dist/Forms/Inputs/index.d.ts +5 -0
  111. package/dist/Layout/Resizable/Resizable.d.ts +13 -0
  112. package/dist/Layout/Resizable/ResizableHandle.d.ts +21 -0
  113. package/dist/Layout/Resizable/ResizablePanel.d.ts +20 -0
  114. package/dist/Layout/Resizable/index.d.ts +3 -0
  115. package/dist/Navigation/Accordion/Accordion.d.ts +4 -0
  116. package/dist/Navigation/Accordion/AccordionContent.d.ts +3 -0
  117. package/dist/Navigation/Accordion/AccordionItem.d.ts +3 -0
  118. package/dist/Navigation/Accordion/AccordionTrigger.d.ts +3 -0
  119. package/dist/Navigation/Accordion/index.d.ts +4 -0
  120. package/dist/Navigation/Breadcrumb/Breadcrumb.d.ts +2 -0
  121. package/dist/Navigation/Breadcrumb/BreadcrumbEllipsis.d.ts +2 -0
  122. package/dist/Navigation/Breadcrumb/BreadcrumbItem.d.ts +2 -0
  123. package/dist/Navigation/Breadcrumb/BreadcrumbLink.d.ts +7 -0
  124. package/dist/Navigation/Breadcrumb/BreadcrumbList.d.ts +2 -0
  125. package/dist/Navigation/Breadcrumb/BreadcrumbPage.d.ts +2 -0
  126. package/dist/Navigation/Breadcrumb/BreadcrumbSeparator.d.ts +2 -0
  127. package/dist/Navigation/Breadcrumb/index.d.ts +7 -0
  128. package/dist/Navigation/Tabs/Tabs.d.ts +4 -0
  129. package/dist/Navigation/Tabs/TabsContent.d.ts +3 -0
  130. package/dist/Navigation/Tabs/TabsList.d.ts +3 -0
  131. package/dist/Navigation/Tabs/TabsTrigger.d.ts +3 -0
  132. package/dist/Navigation/Tabs/index.d.ts +4 -0
  133. package/dist/Transitions/TransitionBase.d.ts +30 -0
  134. package/dist/Transitions/TransitionBounce/TransitionBounce.d.ts +7 -0
  135. package/dist/Transitions/TransitionBounce/index.d.ts +1 -0
  136. package/dist/Transitions/TransitionExpand/TransitionExpand.d.ts +7 -0
  137. package/dist/Transitions/TransitionExpand/index.d.ts +1 -0
  138. package/dist/Transitions/TransitionFade/TransitionFade.d.ts +7 -0
  139. package/dist/Transitions/TransitionFade/index.d.ts +1 -0
  140. package/dist/Transitions/TransitionFlip/TransitionFlip.d.ts +13 -0
  141. package/dist/Transitions/TransitionFlip/index.d.ts +1 -0
  142. package/dist/Transitions/TransitionSlideX/TransitionSlideX.d.ts +10 -0
  143. package/dist/Transitions/TransitionSlideX/index.d.ts +1 -0
  144. package/dist/Transitions/TransitionSlideY/TransitionSlideY.d.ts +10 -0
  145. package/dist/Transitions/TransitionSlideY/index.d.ts +1 -0
  146. package/dist/lib/utils.d.ts +2 -0
  147. package/dist/main.d.ts +25 -0
  148. package/dist/react-design-system.css +1 -0
  149. package/dist/react-design-system.js +19498 -0
  150. package/dist/react-design-system.umd.cjs +165 -0
  151. package/package.json +94 -0
  152. package/src/assets/styles/mainTheme.css +1 -0
  153. package/src/assets/styles/primitives.css +98 -0
  154. package/src/assets/styles/theme-v2.css +298 -0
package/package.json ADDED
@@ -0,0 +1,94 @@
1
+ {
2
+ "name": "@sesamehr/react-design-system",
3
+ "version": "0.1.0",
4
+ "description": "Sesame HR React design system — components and design tokens",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/react-design-system.umd.cjs",
8
+ "module": "./dist/react-design-system.js",
9
+ "types": "./dist/main.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/main.d.ts",
13
+ "import": "./dist/react-design-system.js",
14
+ "require": "./dist/react-design-system.umd.cjs"
15
+ },
16
+ "./style.css": "./dist/react-design-system.css",
17
+ "./assets/styles/mainTheme.css": "./src/assets/styles/mainTheme.css",
18
+ "./lib/utils": {
19
+ "types": "./dist/lib/utils.d.ts",
20
+ "import": "./dist/lib/utils.js"
21
+ }
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "src/assets/styles"
26
+ ],
27
+ "dependencies": {
28
+ "@dnd-kit/core": "^6.3.1",
29
+ "@dnd-kit/modifiers": "^9.0.0",
30
+ "@dnd-kit/sortable": "^10.0.0",
31
+ "@dnd-kit/utilities": "^3.2.2",
32
+ "@radix-ui/react-accordion": "^1.2.11",
33
+ "@radix-ui/react-checkbox": "^1.3.2",
34
+ "@radix-ui/react-dialog": "^1.1.14",
35
+ "@radix-ui/react-popover": "^1.1.14",
36
+ "@radix-ui/react-radio-group": "^1.3.7",
37
+ "@radix-ui/react-slot": "^1.2.3",
38
+ "@radix-ui/react-switch": "^1.2.5",
39
+ "@radix-ui/react-tabs": "^1.1.12",
40
+ "@radix-ui/react-tooltip": "^1.2.7",
41
+ "@tailwindcss/vite": "^4.1.13",
42
+ "@tanstack/react-table": "^8.21.2",
43
+ "class-variance-authority": "^0.7.1",
44
+ "clsx": "^2.1.1",
45
+ "cmdk": "^1.1.1",
46
+ "lucide-react": "^0.511.0",
47
+ "react-resizable-panels": "^2.1.9",
48
+ "react-transition-group": "^4.4.5",
49
+ "tailwind-merge": "^3.3.0",
50
+ "tw-animate-css": "^1.3.0"
51
+ },
52
+ "peerDependencies": {
53
+ "react": "^18.3.0 || ^19.0.0",
54
+ "react-dom": "^18.3.0 || ^19.0.0",
55
+ "tailwindcss": "^4.1.7"
56
+ },
57
+ "publishConfig": {
58
+ "access": "public"
59
+ },
60
+ "devDependencies": {
61
+ "@testing-library/jest-dom": "^6.9.1",
62
+ "@testing-library/react": "^16.1.0",
63
+ "@testing-library/user-event": "^14.6.1",
64
+ "@types/react": "^19.0.0",
65
+ "@types/react-dom": "^19.0.0",
66
+ "@types/react-transition-group": "^4.4.12",
67
+ "@vitejs/plugin-react": "^4.3.4",
68
+ "eslint": "^8.57.1",
69
+ "eslint-config-prettier": "^10.1.8",
70
+ "eslint-plugin-react": "^7.37.2",
71
+ "eslint-plugin-react-hooks": "^5.1.0",
72
+ "happy-dom": "^20.5.0",
73
+ "prettier": "^3.6.2",
74
+ "prettier-plugin-tailwindcss": "^0.6.14",
75
+ "react": "^19.2.4",
76
+ "react-dom": "^19.2.4",
77
+ "typescript": "^5.8.3",
78
+ "vite": "^6.3.5",
79
+ "vite-plugin-dts": "^4.5.4",
80
+ "vitest": "^4.0.18",
81
+ "@orxata/config": "1.0.0"
82
+ },
83
+ "scripts": {
84
+ "dev": "vite",
85
+ "build": "tsc -b --noEmit && vite build",
86
+ "preview": "vite preview",
87
+ "test": "vitest run",
88
+ "test:watch": "vitest",
89
+ "test:coverage": "vitest run --coverage",
90
+ "lint": "eslint .",
91
+ "lint:fix": "eslint . --fix",
92
+ "type-check": "tsc --noEmit"
93
+ }
94
+ }
@@ -0,0 +1 @@
1
+ @import './theme-v2.css';
@@ -0,0 +1,98 @@
1
+ /* ===========================================
2
+ PRIMITIVES - Base values as CSS custom properties
3
+ These are defined in :root so they can be referenced
4
+ anywhere, including in @theme inline blocks.
5
+ =========================================== */
6
+
7
+ :root {
8
+ /* ===== RADIUS (custom scale, differs from Tailwind) ===== */
9
+ --radius-xs: 0.125rem; /* 2px */
10
+ --radius-sm: 0.375rem; /* 6px */
11
+ --radius-md: 0.5rem; /* 8px */
12
+ --radius-lg: 0.625rem; /* 10px */
13
+ --radius-xl: 0.875rem; /* 14px */
14
+ --radius-2xl: 1rem; /* 16px */
15
+ --radius-3xl: 1.5rem; /* 24px */
16
+ --radius-4xl: 2rem; /* 32px */
17
+
18
+ /* Default radius for `rounded` class */
19
+ --radius-DEFAULT: var(--radius-md);
20
+
21
+ /* ===== FONTS (custom families) ===== */
22
+ --font-sans: 'Figtree', ui-sans-serif, system-ui, sans-serif;
23
+ --font-mono: 'Geist Mono', ui-monospace, monospace;
24
+ }
25
+
26
+ @theme {
27
+ --color-white: #ffffff;
28
+ --color-white: oklch(1 0 0);
29
+
30
+ --color-slate-50: #f8fafc;
31
+ --color-slate-50: oklch(0.984 0.003 247.858);
32
+ --color-slate-100: #f1f5f9;
33
+ --color-slate-100: oklch(0.968 0.007 247.896);
34
+ --color-slate-200: #e2e8f0;
35
+ --color-slate-200: oklch(0.929 0.013 255.508);
36
+ --color-slate-300: #cbd5e1;
37
+ --color-slate-300: oklch(0.869 0.022 252.894);
38
+ --color-slate-400: #94a3b8;
39
+ --color-slate-400: oklch(0.704 0.04 256.788);
40
+ --color-slate-500: #64748b;
41
+ --color-slate-500: oklch(0.554 0.046 257.417);
42
+ --color-slate-600: #475569;
43
+ --color-slate-600: oklch(0.446 0.043 257.281);
44
+ --color-slate-700: #334155;
45
+ --color-slate-700: oklch(0.372 0.044 257.287);
46
+ --color-slate-800: #1e293b;
47
+ --color-slate-800: oklch(0.279 0.041 260.031);
48
+ --color-slate-900: #0f172a;
49
+ --color-slate-900: oklch(0.208 0.042 265.755);
50
+ --color-slate-950: #020617;
51
+ --color-slate-950: oklch(0.129 0.042 264.695);
52
+
53
+ --color-indigo-50: #eef2ff;
54
+ --color-indigo-50: oklch(0.962 0.018 272.314);
55
+ --color-indigo-100: #e0e7ff;
56
+ --color-indigo-100: oklch(0.93 0.034 272.788);
57
+ --color-indigo-300: #a5b4fc;
58
+ --color-indigo-300: oklch(0.757 0.105 274.039);
59
+ --color-indigo-400: #818cf8;
60
+ --color-indigo-400: oklch(0.673 0.182 276.935);
61
+ --color-indigo-500: #6366f1;
62
+ --color-indigo-500: oklch(0.585 0.233 264.052);
63
+ --color-indigo-600: #4f46e5;
64
+ --color-indigo-600: oklch(0.511 0.262 276.966);
65
+ --color-indigo-700: #4338ca;
66
+ --color-indigo-700: oklch(0.457 0.24 277.023);
67
+ --color-indigo-800: #3730a3;
68
+ --color-indigo-800: oklch(0.398 0.195 277.366);
69
+ --color-indigo-950: #1e1b4b;
70
+ --color-indigo-950: oklch(0.257 0.09 281.288);
71
+
72
+ --color-red-400: #f87171;
73
+ --color-red-400: oklch(0.704 0.191 22.216);
74
+ --color-red-600: #dc2626;
75
+ --color-red-600: oklch(0.577 0.245 27.325);
76
+
77
+ --color-green-100: #dcfce7;
78
+ --color-green-100: oklch(0.962 0.052 149.214);
79
+ --color-green-300: #86efac;
80
+ --color-green-300: oklch(0.871 0.15 154.449);
81
+ --color-green-500: #22c55e;
82
+ --color-green-500: oklch(0.723 0.219 149.579);
83
+ --color-green-600: #16a34a;
84
+ --color-green-600: oklch(0.627 0.194 149.214);
85
+
86
+ --color-amber-500: #f59e0b;
87
+ --color-amber-500: oklch(0.769 0.188 70.08);
88
+
89
+ --color-emerald-300: #6ee7b7;
90
+ --color-emerald-300: oklch(0.871 0.15 154.449);
91
+ --color-emerald-500: #10b981;
92
+ --color-emerald-500: oklch(0.72 0.13 152.85);
93
+ --color-emerald-900: #064e3b;
94
+ --color-emerald-900: oklch(0.32 0.04 152.85);
95
+
96
+ --animate-accordion-down: accordion-down 0.2s ease-out;
97
+ --animate-accordion-up: accordion-up 0.2s ease-out;
98
+ }
@@ -0,0 +1,298 @@
1
+ @import './primitives.css';
2
+
3
+ /**
4
+ * THEME V2
5
+ *
6
+ * Aligns with Figma: 3. Mode → 2. Theme → 1. TailwindCSS
7
+ *
8
+ * DS EXTENSIONS (pending design approval):
9
+ * - success, neutral-*, font-*, border-*, bg-*
10
+ *
11
+ * Dark mode: .dark class on <html>
12
+ */
13
+
14
+ /* ===========================================
15
+ DS TOKENS (used by DS components)
16
+ =========================================== */
17
+
18
+ :root {
19
+ /* Font */
20
+ --font-primary: var(--color-indigo-950);
21
+ --font-secondary: var(--color-slate-500);
22
+ --font-tertiary: var(--color-slate-400);
23
+ --font-error: var(--color-red-600);
24
+ --font-success: var(--color-green-600);
25
+ --font-warning: var(--color-amber-500);
26
+
27
+ /* Border */
28
+ --border-default: var(--color-slate-200);
29
+ --border-hover: var(--color-indigo-300);
30
+
31
+ /* Success */
32
+ --success: var(--color-green-600);
33
+ --success-foreground: var(--color-white);
34
+ --success-100: var(--color-green-100);
35
+ --success-300: var(--color-green-300);
36
+ --success-500: var(--color-green-500);
37
+
38
+ /* Background */
39
+ --bg-base: var(--color-white);
40
+ --bg-muted: var(--color-slate-50);
41
+ --bg-subtle: var(--color-slate-100);
42
+
43
+ /* Neutral (semantic alias) */
44
+ --neutral-1: var(--color-white);
45
+ --neutral-50: var(--color-slate-50);
46
+ --neutral-100: var(--color-slate-100);
47
+ --neutral-200: var(--color-slate-200);
48
+ --neutral-300: var(--color-slate-300);
49
+ --neutral-400: var(--color-slate-400);
50
+ --neutral-500: var(--color-slate-500);
51
+ --neutral-600: var(--color-slate-600);
52
+ --neutral-700: var(--color-slate-700);
53
+ --neutral-800: var(--color-slate-800);
54
+ --neutral-900: var(--color-slate-900);
55
+ --neutral-950: var(--color-slate-950);
56
+
57
+ /* ===== UNCERTAINTY ===== */
58
+ /* One-off tokens without semantic names in
59
+ Figma. Defined here to avoid hardcoding color values across the codebase.
60
+ */
61
+ --brand-accent-300: var(--color-emerald-300);
62
+ --brand-accent-500: var(--color-emerald-500);
63
+ --brand-accent-900: var(--color-emerald-900);
64
+ /* ======================== */
65
+ }
66
+
67
+ .dark {
68
+ /* Font */
69
+ --font-primary: var(--color-white);
70
+ --font-secondary: var(--color-slate-300);
71
+ --font-tertiary: var(--color-slate-400);
72
+ --font-error: var(--color-red-400);
73
+ --font-success: var(--color-green-600);
74
+ --font-warning: var(--color-amber-500);
75
+
76
+ /* Border */
77
+ --border-default: var(--color-slate-700);
78
+ --border-hover: var(--color-indigo-400);
79
+
80
+ /* Success */
81
+ --success: var(--color-green-500);
82
+ --success-foreground: var(--color-white);
83
+
84
+ /* Background */
85
+ --bg-base: var(--color-slate-950);
86
+ --bg-muted: var(--color-slate-900);
87
+ --bg-subtle: var(--color-slate-800);
88
+ }
89
+
90
+ /* ===========================================
91
+ SHADCN TOKENS (support for shadcn components)
92
+ =========================================== */
93
+
94
+ /* Light mode (default) */
95
+ :root {
96
+ --background: var(--color-white);
97
+ --foreground: var(--color-indigo-950);
98
+
99
+ --card: var(--color-white);
100
+ --card-foreground: var(--color-indigo-950);
101
+
102
+ --popover: var(--color-white);
103
+ --popover-foreground: var(--color-indigo-950);
104
+
105
+ --primary: var(--color-indigo-500);
106
+ --primary-foreground: var(--color-white);
107
+
108
+ --secondary: var(--color-indigo-100);
109
+ --secondary-foreground: var(--color-indigo-950);
110
+
111
+ --muted: var(--color-slate-100);
112
+ --muted-foreground: var(--color-slate-500);
113
+
114
+ --accent: var(--color-slate-100);
115
+ --accent-foreground: var(--color-indigo-950);
116
+
117
+ --destructive: var(--color-red-600);
118
+ --destructive-foreground: var(--color-white);
119
+
120
+ --warning: var(--color-amber-500);
121
+ --warning-foreground: var(--color-white);
122
+
123
+ --border: var(--color-slate-200);
124
+ --input: var(--color-slate-200);
125
+ --ring: var(--color-indigo-500);
126
+
127
+ --chart-1: var(--color-indigo-400);
128
+ --chart-2: var(--color-indigo-500);
129
+ --chart-3: var(--color-indigo-600);
130
+ --chart-4: var(--color-indigo-700);
131
+ --chart-5: var(--color-indigo-800);
132
+
133
+ --sidebar-background: var(--color-white);
134
+ --sidebar-foreground: var(--color-indigo-950);
135
+ --sidebar-primary: var(--color-indigo-500);
136
+ --sidebar-primary-foreground: var(--color-white);
137
+ --sidebar-accent: var(--color-slate-100);
138
+ --sidebar-accent-foreground: var(--color-indigo-950);
139
+ --sidebar-border: var(--color-slate-200);
140
+ --sidebar-ring: var(--color-indigo-500);
141
+ }
142
+
143
+ /* Dark mode */
144
+ .dark {
145
+ --background: var(--color-slate-950);
146
+ --foreground: var(--color-white);
147
+
148
+ --card: var(--color-slate-900);
149
+ --card-foreground: var(--color-white);
150
+
151
+ --popover: var(--color-slate-800);
152
+ --popover-foreground: var(--color-white);
153
+
154
+ --primary: var(--color-indigo-300);
155
+ --primary-foreground: var(--color-indigo-950);
156
+
157
+ --secondary: var(--color-indigo-800);
158
+ --secondary-foreground: var(--color-white);
159
+
160
+ --muted: var(--color-slate-700);
161
+ --muted-foreground: var(--color-slate-300);
162
+
163
+ --accent: var(--color-slate-700);
164
+ --accent-foreground: var(--color-white);
165
+
166
+ --destructive: var(--color-red-400);
167
+ --destructive-foreground: var(--color-white);
168
+
169
+ --warning: var(--color-amber-500);
170
+ --warning-foreground: var(--color-white);
171
+
172
+ --border: var(--color-slate-700);
173
+ --input: var(--color-slate-700);
174
+ --ring: var(--color-indigo-400);
175
+
176
+ --chart-1: var(--color-indigo-300);
177
+ --chart-2: var(--color-indigo-400);
178
+ --chart-3: var(--color-indigo-500);
179
+ --chart-4: var(--color-indigo-600);
180
+ --chart-5: var(--color-indigo-700);
181
+
182
+ --sidebar-background: var(--color-slate-950);
183
+ --sidebar-foreground: var(--color-white);
184
+ --sidebar-primary: var(--color-indigo-400);
185
+ --sidebar-primary-foreground: var(--color-indigo-950);
186
+ --sidebar-accent: var(--color-slate-800);
187
+ --sidebar-accent-foreground: var(--color-white);
188
+ --sidebar-border: var(--color-slate-700);
189
+ --sidebar-ring: var(--color-indigo-400);
190
+ }
191
+
192
+ /* Expose tokens to Tailwind */
193
+ @theme inline {
194
+ /* DS tokens */
195
+ --color-font-primary: var(--font-primary);
196
+ --color-font-secondary: var(--font-secondary);
197
+ --color-font-tertiary: var(--font-tertiary);
198
+ --color-font-error: var(--font-error);
199
+ --color-font-success: var(--font-success);
200
+ --color-font-warning: var(--font-warning);
201
+ --color-border-default: var(--border-default);
202
+ --color-border-hover: var(--border-hover);
203
+ --color-bg-base: var(--bg-base);
204
+ --color-bg-muted: var(--bg-muted);
205
+ --color-bg-subtle: var(--bg-subtle);
206
+ --color-neutral-1: var(--neutral-1);
207
+ --color-neutral-50: var(--neutral-50);
208
+ --color-neutral-100: var(--neutral-100);
209
+ --color-neutral-200: var(--neutral-200);
210
+ --color-neutral-300: var(--neutral-300);
211
+ --color-neutral-400: var(--neutral-400);
212
+ --color-neutral-500: var(--neutral-500);
213
+ --color-neutral-600: var(--neutral-600);
214
+ --color-neutral-700: var(--neutral-700);
215
+ --color-neutral-800: var(--neutral-800);
216
+ --color-neutral-900: var(--neutral-900);
217
+ --color-neutral-950: var(--neutral-950);
218
+ --color-success: var(--success);
219
+ --color-success-foreground: var(--success-foreground);
220
+ --color-success-100: var(--success-100);
221
+ --color-success-300: var(--success-300);
222
+ --color-success-500: var(--success-500);
223
+
224
+ /* ===== UNCERTAINTY ===== */
225
+ --color-brand-accent-300: var(--brand-accent-300);
226
+ --color-brand-accent-500: var(--brand-accent-500);
227
+ --color-brand-accent-900: var(--brand-accent-900);
228
+ /* ======================== */
229
+
230
+ /* Shadcn tokens */
231
+ --color-background: var(--background);
232
+ --color-foreground: var(--foreground);
233
+ --color-card: var(--card);
234
+ --color-card-foreground: var(--card-foreground);
235
+ --color-popover: var(--popover);
236
+ --color-popover-foreground: var(--popover-foreground);
237
+ --color-primary: var(--primary);
238
+ --color-primary-foreground: var(--primary-foreground);
239
+ --color-secondary: var(--secondary);
240
+ --color-secondary-foreground: var(--secondary-foreground);
241
+ --color-muted: var(--muted);
242
+ --color-muted-foreground: var(--muted-foreground);
243
+ --color-accent: var(--accent);
244
+ --color-accent-foreground: var(--accent-foreground);
245
+ --color-destructive: var(--destructive);
246
+ --color-destructive-foreground: var(--destructive-foreground);
247
+ --color-warning: var(--warning);
248
+ --color-warning-foreground: var(--warning-foreground);
249
+ --color-border: var(--border);
250
+ --color-input: var(--input);
251
+ --color-ring: var(--ring);
252
+ --color-chart-1: var(--chart-1);
253
+ --color-chart-2: var(--chart-2);
254
+ --color-chart-3: var(--chart-3);
255
+ --color-chart-4: var(--chart-4);
256
+ --color-chart-5: var(--chart-5);
257
+ --color-sidebar: var(--sidebar-background);
258
+ --color-sidebar-foreground: var(--sidebar-foreground);
259
+ --color-sidebar-primary: var(--sidebar-primary);
260
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
261
+ --color-sidebar-accent: var(--sidebar-accent);
262
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
263
+ --color-sidebar-border: var(--sidebar-border);
264
+ --color-sidebar-ring: var(--sidebar-ring);
265
+
266
+ /* Radius - from primitives */
267
+ --radius-xs: var(--radius-xs);
268
+ --radius-sm: var(--radius-sm);
269
+ --radius-md: var(--radius-md);
270
+ --radius-lg: var(--radius-lg);
271
+ --radius-xl: var(--radius-xl);
272
+ --radius-2xl: var(--radius-2xl);
273
+ --radius-3xl: var(--radius-3xl);
274
+ --radius-4xl: var(--radius-4xl);
275
+ --radius-DEFAULT: var(--radius-DEFAULT);
276
+
277
+ /* Font families - from primitives */
278
+ --font-sans: var(--font-sans);
279
+ --font-mono: var(--font-mono);
280
+
281
+ @keyframes accordion-down {
282
+ from {
283
+ height: 0;
284
+ }
285
+ to {
286
+ height: var(--reka-accordion-content-height);
287
+ }
288
+ }
289
+
290
+ @keyframes accordion-up {
291
+ from {
292
+ height: var(--reka-accordion-content-height);
293
+ }
294
+ to {
295
+ height: 0;
296
+ }
297
+ }
298
+ }