@teja-app/ui 0.0.9 → 0.0.11

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 (166) hide show
  1. package/dist/components/DateInput/DateInput.d.ts.map +1 -1
  2. package/dist/components/Select/Select.d.ts.map +1 -1
  3. package/dist/index.cjs +3452 -13752
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.js +3425 -13725
  6. package/dist/index.js.map +1 -1
  7. package/dist/style-D6av97Pw.cjs +10406 -0
  8. package/dist/style-D6av97Pw.cjs.map +1 -0
  9. package/dist/style-DyXPy-7b.js +10392 -0
  10. package/dist/style-DyXPy-7b.js.map +1 -0
  11. package/dist/theme/ThemeProvider.d.ts +23 -0
  12. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  13. package/dist/theme/applyTheme.d.ts +33 -0
  14. package/dist/theme/applyTheme.d.ts.map +1 -0
  15. package/dist/theme/components/AIBadge.d.ts +20 -0
  16. package/dist/theme/components/AIBadge.d.ts.map +1 -0
  17. package/dist/theme/components/AICard.d.ts +16 -0
  18. package/dist/theme/components/AICard.d.ts.map +1 -0
  19. package/dist/theme/components/AIChip.d.ts +7 -0
  20. package/dist/theme/components/AIChip.d.ts.map +1 -0
  21. package/dist/theme/components/AIComposeButton.d.ts +14 -0
  22. package/dist/theme/components/AIComposeButton.d.ts.map +1 -0
  23. package/dist/theme/components/AIGhostText.d.ts +14 -0
  24. package/dist/theme/components/AIGhostText.d.ts.map +1 -0
  25. package/dist/theme/components/AISectionHeader.d.ts +15 -0
  26. package/dist/theme/components/AISectionHeader.d.ts.map +1 -0
  27. package/dist/theme/components/AISparkle.d.ts +12 -0
  28. package/dist/theme/components/AISparkle.d.ts.map +1 -0
  29. package/dist/theme/components/AIWorking.d.ts +12 -0
  30. package/dist/theme/components/AIWorking.d.ts.map +1 -0
  31. package/dist/theme/components/Alert.d.ts +22 -0
  32. package/dist/theme/components/Alert.d.ts.map +1 -0
  33. package/dist/theme/components/AppShell.d.ts +16 -0
  34. package/dist/theme/components/AppShell.d.ts.map +1 -0
  35. package/dist/theme/components/AskTeja.d.ts +17 -0
  36. package/dist/theme/components/AskTeja.d.ts.map +1 -0
  37. package/dist/theme/components/Avatar.d.ts +12 -0
  38. package/dist/theme/components/Avatar.d.ts.map +1 -0
  39. package/dist/theme/components/Badge.d.ts +16 -0
  40. package/dist/theme/components/Badge.d.ts.map +1 -0
  41. package/dist/theme/components/Brand.d.ts +19 -0
  42. package/dist/theme/components/Brand.d.ts.map +1 -0
  43. package/dist/theme/components/Button.d.ts +19 -0
  44. package/dist/theme/components/Button.d.ts.map +1 -0
  45. package/dist/theme/components/Card.d.ts +10 -0
  46. package/dist/theme/components/Card.d.ts.map +1 -0
  47. package/dist/theme/components/Checkbox.d.ts +23 -0
  48. package/dist/theme/components/Checkbox.d.ts.map +1 -0
  49. package/dist/theme/components/Chip.d.ts +19 -0
  50. package/dist/theme/components/Chip.d.ts.map +1 -0
  51. package/dist/theme/components/Combobox.d.ts +29 -0
  52. package/dist/theme/components/Combobox.d.ts.map +1 -0
  53. package/dist/theme/components/Compat.d.ts +34 -0
  54. package/dist/theme/components/Compat.d.ts.map +1 -0
  55. package/dist/theme/components/ConfirmDialog.d.ts +39 -0
  56. package/dist/theme/components/ConfirmDialog.d.ts.map +1 -0
  57. package/dist/theme/components/CountryPicker.d.ts +14 -0
  58. package/dist/theme/components/CountryPicker.d.ts.map +1 -0
  59. package/dist/theme/components/DateInput.d.ts +30 -0
  60. package/dist/theme/components/DateInput.d.ts.map +1 -0
  61. package/dist/theme/components/Divider.d.ts +13 -0
  62. package/dist/theme/components/Divider.d.ts.map +1 -0
  63. package/dist/theme/components/Drawer.d.ts +52 -0
  64. package/dist/theme/components/Drawer.d.ts.map +1 -0
  65. package/dist/theme/components/EmptyState.d.ts +28 -0
  66. package/dist/theme/components/EmptyState.d.ts.map +1 -0
  67. package/dist/theme/components/FactList.d.ts +21 -0
  68. package/dist/theme/components/FactList.d.ts.map +1 -0
  69. package/dist/theme/components/Field.d.ts +35 -0
  70. package/dist/theme/components/Field.d.ts.map +1 -0
  71. package/dist/theme/components/FieldHint.d.ts +17 -0
  72. package/dist/theme/components/FieldHint.d.ts.map +1 -0
  73. package/dist/theme/components/Icon.d.ts +19 -0
  74. package/dist/theme/components/Icon.d.ts.map +1 -0
  75. package/dist/theme/components/IconButton.d.ts +17 -0
  76. package/dist/theme/components/IconButton.d.ts.map +1 -0
  77. package/dist/theme/components/KV.d.ts +26 -0
  78. package/dist/theme/components/KV.d.ts.map +1 -0
  79. package/dist/theme/components/LabelGroup.d.ts +15 -0
  80. package/dist/theme/components/LabelGroup.d.ts.map +1 -0
  81. package/dist/theme/components/LangSwitcher.d.ts +30 -0
  82. package/dist/theme/components/LangSwitcher.d.ts.map +1 -0
  83. package/dist/theme/components/MiniStat.d.ts +20 -0
  84. package/dist/theme/components/MiniStat.d.ts.map +1 -0
  85. package/dist/theme/components/Modal.d.ts +57 -0
  86. package/dist/theme/components/Modal.d.ts.map +1 -0
  87. package/dist/theme/components/MultiSelect.d.ts +38 -0
  88. package/dist/theme/components/MultiSelect.d.ts.map +1 -0
  89. package/dist/theme/components/PageHeader.d.ts +24 -0
  90. package/dist/theme/components/PageHeader.d.ts.map +1 -0
  91. package/dist/theme/components/Pagination.d.ts +10 -0
  92. package/dist/theme/components/Pagination.d.ts.map +1 -0
  93. package/dist/theme/components/PersonRow.d.ts +18 -0
  94. package/dist/theme/components/PersonRow.d.ts.map +1 -0
  95. package/dist/theme/components/RoleTile.d.ts +20 -0
  96. package/dist/theme/components/RoleTile.d.ts.map +1 -0
  97. package/dist/theme/components/SectionLabel.d.ts +20 -0
  98. package/dist/theme/components/SectionLabel.d.ts.map +1 -0
  99. package/dist/theme/components/SegmentedControl.d.ts +15 -0
  100. package/dist/theme/components/SegmentedControl.d.ts.map +1 -0
  101. package/dist/theme/components/Select.d.ts +24 -0
  102. package/dist/theme/components/Select.d.ts.map +1 -0
  103. package/dist/theme/components/SettingRow.d.ts +23 -0
  104. package/dist/theme/components/SettingRow.d.ts.map +1 -0
  105. package/dist/theme/components/Sidebar.d.ts +28 -0
  106. package/dist/theme/components/Sidebar.d.ts.map +1 -0
  107. package/dist/theme/components/SidebarNavItem.d.ts +31 -0
  108. package/dist/theme/components/SidebarNavItem.d.ts.map +1 -0
  109. package/dist/theme/components/Skeleton.d.ts +32 -0
  110. package/dist/theme/components/Skeleton.d.ts.map +1 -0
  111. package/dist/theme/components/Spinner.d.ts +26 -0
  112. package/dist/theme/components/Spinner.d.ts.map +1 -0
  113. package/dist/theme/components/Stat.d.ts +23 -0
  114. package/dist/theme/components/Stat.d.ts.map +1 -0
  115. package/dist/theme/components/StatePicker.d.ts +17 -0
  116. package/dist/theme/components/StatePicker.d.ts.map +1 -0
  117. package/dist/theme/components/Stepper.d.ts +23 -0
  118. package/dist/theme/components/Stepper.d.ts.map +1 -0
  119. package/dist/theme/components/Switch.d.ts +18 -0
  120. package/dist/theme/components/Switch.d.ts.map +1 -0
  121. package/dist/theme/components/TOTP6Cells.d.ts +49 -0
  122. package/dist/theme/components/TOTP6Cells.d.ts.map +1 -0
  123. package/dist/theme/components/Tabs.d.ts +33 -0
  124. package/dist/theme/components/Tabs.d.ts.map +1 -0
  125. package/dist/theme/components/Tag.d.ts +15 -0
  126. package/dist/theme/components/Tag.d.ts.map +1 -0
  127. package/dist/theme/components/TextInput.d.ts +24 -0
  128. package/dist/theme/components/TextInput.d.ts.map +1 -0
  129. package/dist/theme/components/Textarea.d.ts +17 -0
  130. package/dist/theme/components/Textarea.d.ts.map +1 -0
  131. package/dist/theme/components/TimeZonePicker.d.ts +14 -0
  132. package/dist/theme/components/TimeZonePicker.d.ts.map +1 -0
  133. package/dist/theme/components/TimelineRow.d.ts +27 -0
  134. package/dist/theme/components/TimelineRow.d.ts.map +1 -0
  135. package/dist/theme/components/ToolbarSearch.d.ts +8 -0
  136. package/dist/theme/components/ToolbarSearch.d.ts.map +1 -0
  137. package/dist/theme/components/TopBar.d.ts +35 -0
  138. package/dist/theme/components/TopBar.d.ts.map +1 -0
  139. package/dist/theme/components/ViewToggle.d.ts +24 -0
  140. package/dist/theme/components/ViewToggle.d.ts.map +1 -0
  141. package/dist/theme/components/aiStyles.d.ts +2 -0
  142. package/dist/theme/components/aiStyles.d.ts.map +1 -0
  143. package/dist/theme/components/fieldShell.d.ts +68 -0
  144. package/dist/theme/components/fieldShell.d.ts.map +1 -0
  145. package/dist/theme/components/index.d.ts +66 -0
  146. package/dist/theme/components/index.d.ts.map +1 -0
  147. package/dist/theme/data/countries.d.ts +8 -0
  148. package/dist/theme/data/countries.d.ts.map +1 -0
  149. package/dist/theme/data/index.d.ts +4 -0
  150. package/dist/theme/data/index.d.ts.map +1 -0
  151. package/dist/theme/data/regions.d.ts +8 -0
  152. package/dist/theme/data/regions.d.ts.map +1 -0
  153. package/dist/theme/data/timezones.d.ts +8 -0
  154. package/dist/theme/data/timezones.d.ts.map +1 -0
  155. package/dist/theme/fonts.d.ts +9 -0
  156. package/dist/theme/fonts.d.ts.map +1 -0
  157. package/dist/theme/index.cjs +6168 -0
  158. package/dist/theme/index.cjs.map +1 -0
  159. package/dist/theme/index.d.ts +18 -0
  160. package/dist/theme/index.d.ts.map +1 -0
  161. package/dist/theme/index.js +6168 -0
  162. package/dist/theme/index.js.map +1 -0
  163. package/dist/theme/presets.d.ts +370 -0
  164. package/dist/theme/presets.d.ts.map +1 -0
  165. package/dist/ui.css +159 -0
  166. package/package.json +6 -1
@@ -0,0 +1,370 @@
1
+ /**
2
+ * Theme preset catalogues — each entry is a self-contained set of CSS variable
3
+ * overrides applied on top of the base tokens. Ported from design/components/tweaks.jsx.
4
+ *
5
+ * Why explicit derived stops (hover/soft/ring) instead of computing from one
6
+ * input: we want predictable color science across all stops without runtime
7
+ * OKLCH math, and dark-mode variants can diverge from a simple lightness flip.
8
+ */
9
+ export type CSSVarMap = Record<string, string>;
10
+ export interface PresetEntry {
11
+ label: string;
12
+ swatch?: string;
13
+ vars: CSSVarMap;
14
+ darkVars?: CSSVarMap;
15
+ }
16
+ export declare const PRIMARY_OPTIONS: {
17
+ readonly clinical: {
18
+ readonly label: "Clinical blue";
19
+ readonly swatch: "oklch(0.50 0.13 235)";
20
+ readonly vars: {
21
+ readonly '--primary': "oklch(0.50 0.13 235)";
22
+ readonly '--primary-hover': "oklch(0.45 0.13 235)";
23
+ readonly '--primary-soft': "oklch(0.95 0.035 235)";
24
+ readonly '--primary-ring': "oklch(0.50 0.13 235 / 0.18)";
25
+ };
26
+ readonly darkVars: {
27
+ readonly '--primary-soft': "oklch(0.30 0.07 235)";
28
+ };
29
+ };
30
+ readonly indigo: {
31
+ readonly label: "Indigo";
32
+ readonly swatch: "oklch(0.50 0.16 275)";
33
+ readonly vars: {
34
+ readonly '--primary': "oklch(0.50 0.16 275)";
35
+ readonly '--primary-hover': "oklch(0.45 0.16 275)";
36
+ readonly '--primary-soft': "oklch(0.95 0.04 275)";
37
+ readonly '--primary-ring': "oklch(0.50 0.16 275 / 0.18)";
38
+ };
39
+ readonly darkVars: {
40
+ readonly '--primary-soft': "oklch(0.30 0.08 275)";
41
+ };
42
+ };
43
+ readonly teal: {
44
+ readonly label: "Healthcare teal";
45
+ readonly swatch: "oklch(0.55 0.11 195)";
46
+ readonly vars: {
47
+ readonly '--primary': "oklch(0.55 0.11 195)";
48
+ readonly '--primary-hover': "oklch(0.50 0.11 195)";
49
+ readonly '--primary-soft': "oklch(0.95 0.035 195)";
50
+ readonly '--primary-ring': "oklch(0.55 0.11 195 / 0.18)";
51
+ };
52
+ readonly darkVars: {
53
+ readonly '--primary-soft': "oklch(0.30 0.07 195)";
54
+ };
55
+ };
56
+ readonly slate: {
57
+ readonly label: "Slate";
58
+ readonly swatch: "oklch(0.35 0.03 250)";
59
+ readonly vars: {
60
+ readonly '--primary': "oklch(0.30 0.03 250)";
61
+ readonly '--primary-hover': "oklch(0.25 0.03 250)";
62
+ readonly '--primary-soft': "oklch(0.94 0.008 250)";
63
+ readonly '--primary-ring': "oklch(0.30 0.03 250 / 0.18)";
64
+ };
65
+ readonly darkVars: {
66
+ readonly '--primary': "oklch(0.78 0.02 250)";
67
+ readonly '--primary-hover': "oklch(0.85 0.02 250)";
68
+ readonly '--primary-soft': "oklch(0.28 0.01 250)";
69
+ readonly '--ink-on-primary': "oklch(0.18 0.005 250)";
70
+ };
71
+ };
72
+ };
73
+ export declare const AI_OPTIONS: {
74
+ readonly violet: {
75
+ readonly label: "Warm violet";
76
+ readonly swatch: "oklch(0.55 0.18 305)";
77
+ readonly vars: {
78
+ readonly '--ai': "oklch(0.55 0.18 305)";
79
+ readonly '--ai-2': "oklch(0.62 0.15 260)";
80
+ readonly '--ai-soft': "oklch(0.96 0.035 305)";
81
+ readonly '--ai-tint': "oklch(0.985 0.012 305)";
82
+ readonly '--ai-ring': "oklch(0.55 0.18 305 / 0.20)";
83
+ readonly '--ai-gradient': "linear-gradient(135deg, oklch(0.55 0.18 305), oklch(0.62 0.15 250))";
84
+ readonly '--ai-border': "linear-gradient(135deg, oklch(0.55 0.18 305 / 0.35), oklch(0.62 0.15 250 / 0.35))";
85
+ };
86
+ readonly darkVars: {
87
+ readonly '--ai-soft': "oklch(0.30 0.08 305)";
88
+ readonly '--ai-tint': "oklch(0.22 0.04 305)";
89
+ };
90
+ };
91
+ readonly magenta: {
92
+ readonly label: "Magenta";
93
+ readonly swatch: "oklch(0.55 0.20 340)";
94
+ readonly vars: {
95
+ readonly '--ai': "oklch(0.55 0.20 340)";
96
+ readonly '--ai-2': "oklch(0.60 0.18 25)";
97
+ readonly '--ai-soft': "oklch(0.96 0.035 340)";
98
+ readonly '--ai-tint': "oklch(0.985 0.012 340)";
99
+ readonly '--ai-ring': "oklch(0.55 0.20 340 / 0.20)";
100
+ readonly '--ai-gradient': "linear-gradient(135deg, oklch(0.55 0.20 340), oklch(0.60 0.18 30))";
101
+ readonly '--ai-border': "linear-gradient(135deg, oklch(0.55 0.20 340 / 0.35), oklch(0.60 0.18 30 / 0.35))";
102
+ };
103
+ readonly darkVars: {
104
+ readonly '--ai-soft': "oklch(0.30 0.09 340)";
105
+ readonly '--ai-tint': "oklch(0.22 0.05 340)";
106
+ };
107
+ };
108
+ readonly ocean: {
109
+ readonly label: "Ocean";
110
+ readonly swatch: "oklch(0.55 0.16 240)";
111
+ readonly vars: {
112
+ readonly '--ai': "oklch(0.55 0.16 240)";
113
+ readonly '--ai-2': "oklch(0.58 0.13 195)";
114
+ readonly '--ai-soft': "oklch(0.96 0.035 240)";
115
+ readonly '--ai-tint': "oklch(0.985 0.012 240)";
116
+ readonly '--ai-ring': "oklch(0.55 0.16 240 / 0.20)";
117
+ readonly '--ai-gradient': "linear-gradient(135deg, oklch(0.55 0.16 240), oklch(0.58 0.13 195))";
118
+ readonly '--ai-border': "linear-gradient(135deg, oklch(0.55 0.16 240 / 0.35), oklch(0.58 0.13 195 / 0.35))";
119
+ };
120
+ readonly darkVars: {
121
+ readonly '--ai-soft': "oklch(0.30 0.08 240)";
122
+ readonly '--ai-tint': "oklch(0.22 0.04 240)";
123
+ };
124
+ };
125
+ readonly ember: {
126
+ readonly label: "Ember";
127
+ readonly swatch: "oklch(0.58 0.18 45)";
128
+ readonly vars: {
129
+ readonly '--ai': "oklch(0.58 0.18 45)";
130
+ readonly '--ai-2': "oklch(0.62 0.16 25)";
131
+ readonly '--ai-soft': "oklch(0.96 0.04 45)";
132
+ readonly '--ai-tint': "oklch(0.985 0.012 45)";
133
+ readonly '--ai-ring': "oklch(0.58 0.18 45 / 0.20)";
134
+ readonly '--ai-gradient': "linear-gradient(135deg, oklch(0.58 0.18 45), oklch(0.62 0.16 15))";
135
+ readonly '--ai-border': "linear-gradient(135deg, oklch(0.58 0.18 45 / 0.35), oklch(0.62 0.16 15 / 0.35))";
136
+ };
137
+ readonly darkVars: {
138
+ readonly '--ai-soft': "oklch(0.30 0.09 45)";
139
+ readonly '--ai-tint': "oklch(0.22 0.05 45)";
140
+ };
141
+ };
142
+ };
143
+ export declare const SURFACE_OPTIONS: {
144
+ readonly cool: {
145
+ readonly label: "Cool";
146
+ readonly swatch: "oklch(0.985 0.005 250)";
147
+ readonly vars: {
148
+ readonly '--bg': "oklch(0.985 0.003 250)";
149
+ readonly '--surface-0': "#ffffff";
150
+ readonly '--surface-1': "oklch(0.978 0.004 250)";
151
+ readonly '--surface-2': "oklch(0.955 0.006 250)";
152
+ readonly '--surface-3': "oklch(0.925 0.008 250)";
153
+ readonly '--sidebar': "oklch(0.975 0.004 250)";
154
+ readonly '--border': "oklch(0.925 0.006 250)";
155
+ readonly '--border-strong': "oklch(0.86 0.008 250)";
156
+ readonly '--divider': "oklch(0.94 0.005 250)";
157
+ };
158
+ readonly darkVars: {
159
+ readonly '--bg': "oklch(0.205 0.008 250)";
160
+ readonly '--surface-0': "oklch(0.165 0.010 250)";
161
+ readonly '--surface-1': "oklch(0.185 0.009 250)";
162
+ readonly '--surface-2': "oklch(0.255 0.011 250)";
163
+ readonly '--surface-3': "oklch(0.300 0.013 250)";
164
+ readonly '--sidebar': "oklch(0.175 0.009 250)";
165
+ readonly '--border': "oklch(0.305 0.012 250)";
166
+ readonly '--border-strong': "oklch(0.430 0.014 250)";
167
+ readonly '--divider': "oklch(0.255 0.010 250)";
168
+ };
169
+ };
170
+ readonly neutral: {
171
+ readonly label: "Neutral";
172
+ readonly swatch: "oklch(0.985 0 0)";
173
+ readonly vars: {
174
+ readonly '--bg': "oklch(0.985 0 0)";
175
+ readonly '--surface-0': "#ffffff";
176
+ readonly '--surface-1': "oklch(0.978 0 0)";
177
+ readonly '--surface-2': "oklch(0.955 0 0)";
178
+ readonly '--surface-3': "oklch(0.925 0 0)";
179
+ readonly '--sidebar': "oklch(0.975 0 0)";
180
+ readonly '--border': "oklch(0.925 0 0)";
181
+ readonly '--border-strong': "oklch(0.86 0 0)";
182
+ readonly '--divider': "oklch(0.94 0 0)";
183
+ };
184
+ readonly darkVars: {
185
+ readonly '--bg': "oklch(0.205 0 0)";
186
+ readonly '--surface-0': "oklch(0.165 0 0)";
187
+ readonly '--surface-1': "oklch(0.185 0 0)";
188
+ readonly '--surface-2': "oklch(0.255 0 0)";
189
+ readonly '--surface-3': "oklch(0.300 0 0)";
190
+ readonly '--sidebar': "oklch(0.175 0 0)";
191
+ readonly '--border': "oklch(0.305 0 0)";
192
+ readonly '--border-strong': "oklch(0.430 0 0)";
193
+ readonly '--divider': "oklch(0.255 0 0)";
194
+ };
195
+ };
196
+ readonly warm: {
197
+ readonly label: "Warm";
198
+ readonly swatch: "oklch(0.985 0.005 80)";
199
+ readonly vars: {
200
+ readonly '--bg': "oklch(0.985 0.004 80)";
201
+ readonly '--surface-0': "#ffffff";
202
+ readonly '--surface-1': "oklch(0.978 0.005 80)";
203
+ readonly '--surface-2': "oklch(0.955 0.007 80)";
204
+ readonly '--surface-3': "oklch(0.925 0.009 80)";
205
+ readonly '--sidebar': "oklch(0.975 0.005 80)";
206
+ readonly '--border': "oklch(0.925 0.007 80)";
207
+ readonly '--border-strong': "oklch(0.86 0.009 80)";
208
+ readonly '--divider': "oklch(0.94 0.006 80)";
209
+ };
210
+ readonly darkVars: {
211
+ readonly '--bg': "oklch(0.205 0.009 80)";
212
+ readonly '--surface-0': "oklch(0.165 0.011 80)";
213
+ readonly '--surface-1': "oklch(0.185 0.010 80)";
214
+ readonly '--surface-2': "oklch(0.255 0.012 80)";
215
+ readonly '--surface-3': "oklch(0.300 0.014 80)";
216
+ readonly '--sidebar': "oklch(0.175 0.010 80)";
217
+ readonly '--border': "oklch(0.305 0.013 80)";
218
+ readonly '--border-strong': "oklch(0.430 0.015 80)";
219
+ readonly '--divider': "oklch(0.255 0.011 80)";
220
+ };
221
+ };
222
+ };
223
+ export declare const RADIUS_OPTIONS: {
224
+ readonly sharp: {
225
+ readonly label: "Sharp";
226
+ readonly vars: {
227
+ readonly '--r-xs': "2px";
228
+ readonly '--r-sm': "3px";
229
+ readonly '--r-md': "4px";
230
+ readonly '--r-lg': "6px";
231
+ readonly '--r-xl': "8px";
232
+ readonly '--r-2xl': "10px";
233
+ };
234
+ };
235
+ readonly balanced: {
236
+ readonly label: "Balanced";
237
+ readonly vars: {
238
+ readonly '--r-xs': "4px";
239
+ readonly '--r-sm': "6px";
240
+ readonly '--r-md': "8px";
241
+ readonly '--r-lg': "12px";
242
+ readonly '--r-xl': "16px";
243
+ readonly '--r-2xl': "20px";
244
+ };
245
+ };
246
+ readonly soft: {
247
+ readonly label: "Soft";
248
+ readonly vars: {
249
+ readonly '--r-xs': "6px";
250
+ readonly '--r-sm': "8px";
251
+ readonly '--r-md': "12px";
252
+ readonly '--r-lg': "16px";
253
+ readonly '--r-xl': "20px";
254
+ readonly '--r-2xl': "28px";
255
+ };
256
+ };
257
+ };
258
+ export interface DensityEntry {
259
+ label: string;
260
+ space: number;
261
+ font: number;
262
+ }
263
+ export declare const DENSITY_OPTIONS: {
264
+ readonly compact: {
265
+ readonly label: "Compact";
266
+ readonly space: 0.8;
267
+ readonly font: 0.95;
268
+ };
269
+ readonly balanced: {
270
+ readonly label: "Balanced";
271
+ readonly space: 1;
272
+ readonly font: 1;
273
+ };
274
+ readonly spacious: {
275
+ readonly label: "Spacious";
276
+ readonly space: 1.22;
277
+ readonly font: 1.06;
278
+ };
279
+ };
280
+ export interface FontEntry {
281
+ label: string;
282
+ stack: string;
283
+ }
284
+ export declare const FONT_OPTIONS: {
285
+ readonly geist: {
286
+ readonly label: "Geist";
287
+ readonly stack: "'Geist', ui-sans-serif, -apple-system, sans-serif";
288
+ };
289
+ readonly inter: {
290
+ readonly label: "Inter";
291
+ readonly stack: "'Inter', ui-sans-serif, -apple-system, sans-serif";
292
+ };
293
+ readonly jakarta: {
294
+ readonly label: "Plus Jakarta";
295
+ readonly stack: "'Plus Jakarta Sans', ui-sans-serif, sans-serif";
296
+ };
297
+ readonly plex: {
298
+ readonly label: "IBM Plex Sans";
299
+ readonly stack: "'IBM Plex Sans', ui-sans-serif, sans-serif";
300
+ };
301
+ };
302
+ export declare const DISPLAY_OPTIONS: {
303
+ readonly sameAsBody: {
304
+ readonly label: "Same as body";
305
+ readonly stack: string | null;
306
+ };
307
+ readonly fraunces: {
308
+ readonly label: "Fraunces";
309
+ readonly stack: "'Fraunces', ui-serif, Georgia, serif";
310
+ };
311
+ readonly instrument: {
312
+ readonly label: "Instrument Serif";
313
+ readonly stack: "'Instrument Serif', ui-serif, Georgia, serif";
314
+ };
315
+ };
316
+ export interface TrackingEntry {
317
+ label: string;
318
+ value: string;
319
+ }
320
+ export declare const TRACKING_OPTIONS: {
321
+ readonly airy: {
322
+ readonly label: "Airy";
323
+ readonly value: "-0.005em";
324
+ };
325
+ readonly default: {
326
+ readonly label: "Default";
327
+ readonly value: "-0.02em";
328
+ };
329
+ readonly tight: {
330
+ readonly label: "Tight";
331
+ readonly value: "-0.035em";
332
+ };
333
+ };
334
+ export declare const THEME_OPTIONS: {
335
+ readonly light: {
336
+ readonly label: "Light";
337
+ };
338
+ readonly dark: {
339
+ readonly label: "Dark";
340
+ };
341
+ readonly system: {
342
+ readonly label: "System";
343
+ };
344
+ };
345
+ export type ThemeMode = keyof typeof THEME_OPTIONS;
346
+ export type PrimaryKey = keyof typeof PRIMARY_OPTIONS;
347
+ export type AiKey = keyof typeof AI_OPTIONS;
348
+ export type SurfaceKey = keyof typeof SURFACE_OPTIONS;
349
+ export type RadiusKey = keyof typeof RADIUS_OPTIONS;
350
+ export type DensityKey = keyof typeof DENSITY_OPTIONS;
351
+ export type FontKey = keyof typeof FONT_OPTIONS;
352
+ export type DisplayKey = keyof typeof DISPLAY_OPTIONS;
353
+ export type TrackingKey = keyof typeof TRACKING_OPTIONS;
354
+ export interface TejaThemeConfig {
355
+ mode: ThemeMode;
356
+ primary: PrimaryKey;
357
+ ai: AiKey;
358
+ surface: SurfaceKey;
359
+ radius: RadiusKey;
360
+ density: DensityKey;
361
+ font: FontKey;
362
+ display: DisplayKey;
363
+ tracking: TrackingKey;
364
+ }
365
+ /**
366
+ * Canonical defaults — matches TWEAK_DEFAULTS in design/pages/01-onboarding.html.
367
+ * Light/clinical/violet/warm/spacious/balanced/geist with airy tracking.
368
+ */
369
+ export declare const THEME_DEFAULTS: TejaThemeConfig;
370
+ //# sourceMappingURL=presets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/theme/presets.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAGD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDoB,CAAC;AAGjD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EyB,CAAC;AAGjD,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+EoB,CAAC;AAGjD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCqC,CAAC;AAGjE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CAIqB,CAAC;AAGlD,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;CAiBqB,CAAC;AAE/C,eAAO,MAAM,eAAe;;;wBAC0B,MAAM,GAAG,IAAI;;;;;;;;;;CASzD,CAAC;AAGX,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAIqB,CAAC;AAGnD,eAAO,MAAM,aAAa;;;;;;;;;;CAIhB,CAAC;AAGX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG,MAAM,OAAO,UAAU,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AACtD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,cAAc,CAAC;AACpD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AACtD,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,YAAY,CAAC;AAChD,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,eAAe,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,gBAAgB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,EAAE,EAAE,KAAK,CAAC;IACV,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,UAAU,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,UAAU,CAAC;IACpB,QAAQ,EAAE,WAAW,CAAC;CACvB;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,eAU5B,CAAC"}
package/dist/ui.css CHANGED
@@ -455,3 +455,162 @@
455
455
  animation: rdp-fade_out var(--rdp-animation_duration)
456
456
  var(--rdp-animation_timing) forwards;
457
457
  }
458
+ /* ============================================================
459
+ Teja Design Tokens — "Clinical Calm"
460
+ Canonical CSS variable layer for the entire @teja-app/ui system.
461
+
462
+ These are sensible LIGHT defaults. ThemeProvider injects per-preset
463
+ overrides (primary/ai/surface/radius/font/density) on top, and writes
464
+ dark-mode overrides when `[data-theme="dark"]` is set on <html>.
465
+ ============================================================ */
466
+
467
+ :root {
468
+ /* ── Surfaces ─────────────────────────────────────────── */
469
+ --bg: oklch(0.985 0.003 250);
470
+ --surface-0: #ffffff;
471
+ --surface-1: oklch(0.978 0.004 250);
472
+ --surface-2: oklch(0.955 0.006 250);
473
+ --surface-3: oklch(0.925 0.008 250);
474
+ --sidebar: oklch(0.975 0.004 250);
475
+
476
+ /* ── Borders ──────────────────────────────────────────── */
477
+ --border: oklch(0.925 0.006 250);
478
+ --border-strong:oklch(0.86 0.008 250);
479
+ --divider: oklch(0.94 0.005 250);
480
+
481
+ /* ── Ink ──────────────────────────────────────────────── */
482
+ --ink-1: oklch(0.20 0.02 250);
483
+ --ink-2: oklch(0.42 0.018 250);
484
+ --ink-3: oklch(0.58 0.014 250);
485
+ --ink-4: oklch(0.72 0.010 250);
486
+ --ink-5: oklch(0.86 0.008 250);
487
+ --ink-on-primary: #ffffff;
488
+
489
+ /* ── Brand (default = clinical blue) ──────────────────── */
490
+ --primary: oklch(0.50 0.13 235);
491
+ --primary-hover:oklch(0.45 0.13 235);
492
+ --primary-soft: oklch(0.95 0.035 235);
493
+ --primary-ring: oklch(0.50 0.13 235 / 0.18);
494
+
495
+ /* ── Semantic ─────────────────────────────────────────── */
496
+ --success: oklch(0.56 0.11 162);
497
+ --success-soft: oklch(0.94 0.04 162);
498
+ --warning: oklch(0.66 0.13 75);
499
+ --warning-soft: oklch(0.95 0.05 75);
500
+ --danger: oklch(0.56 0.17 25);
501
+ --danger-soft: oklch(0.95 0.04 25);
502
+ --info: oklch(0.55 0.13 285);
503
+ --info-soft: oklch(0.95 0.04 285);
504
+
505
+ --neutral: var(--ink-2);
506
+ --neutral-soft: var(--surface-2);
507
+
508
+ /* ── AI accent (default = warm violet) ────────────────── */
509
+ --ai: oklch(0.55 0.18 305);
510
+ --ai-2: oklch(0.62 0.15 260);
511
+ --ai-soft: oklch(0.96 0.035 305);
512
+ --ai-tint: oklch(0.985 0.012 305);
513
+ --ai-ring: oklch(0.55 0.18 305 / 0.20);
514
+ --ai-gradient: linear-gradient(135deg, oklch(0.55 0.18 305), oklch(0.62 0.15 250));
515
+ --ai-gradient-soft: linear-gradient(135deg, oklch(0.965 0.04 305), oklch(0.97 0.03 250));
516
+ --ai-border: linear-gradient(135deg, oklch(0.55 0.18 305 / 0.35), oklch(0.62 0.15 250 / 0.35));
517
+
518
+ /* ── Radii ────────────────────────────────────────────── */
519
+ --r-xs: 4px;
520
+ --r-sm: 6px;
521
+ --r-md: 8px;
522
+ --r-lg: 12px;
523
+ --r-xl: 16px;
524
+ --r-2xl: 20px;
525
+ --r-pill: 999px;
526
+
527
+ /* ── Shadows (light) ──────────────────────────────────── */
528
+ --shadow-xs: 0 1px 0 rgba(16, 24, 40, 0.04);
529
+ --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.04);
530
+ --shadow-md: 0 4px 6px -1px rgba(16, 24, 40, 0.06), 0 2px 4px -2px rgba(16, 24, 40, 0.05);
531
+ --shadow-lg: 0 12px 20px -6px rgba(16, 24, 40, 0.08), 0 4px 8px -3px rgba(16, 24, 40, 0.05);
532
+ --shadow-pop:0 10px 30px -8px rgba(16, 24, 40, 0.14), 0 4px 8px -3px rgba(16, 24, 40, 0.06);
533
+
534
+ /* ── Type ─────────────────────────────────────────────── */
535
+ --font-sans: 'Geist', ui-sans-serif, -apple-system, sans-serif;
536
+ --font-mono: 'Geist Mono', ui-monospace, 'SF Mono', monospace;
537
+ --font-display: 'Geist', ui-sans-serif, sans-serif;
538
+ --track-heading: -0.02em;
539
+
540
+ --t-xs: 11px;
541
+ --t-sm: 12px;
542
+ --t-base: 13px;
543
+ --t-md: 14px;
544
+ --t-lg: 15px;
545
+ --t-xl: 18px;
546
+ --t-2xl: 22px;
547
+ --t-3xl: 28px;
548
+ --t-4xl: 36px;
549
+
550
+ /* ── Spacing (4px base) ───────────────────────────────── */
551
+ --s-1: 4px;
552
+ --s-2: 8px;
553
+ --s-3: 12px;
554
+ --s-4: 16px;
555
+ --s-5: 20px;
556
+ --s-6: 24px;
557
+ --s-8: 32px;
558
+ --s-10:40px;
559
+ --s-12:48px;
560
+
561
+ /* ── Z-index layers (preserved from legacy preset) ────── */
562
+ --z-sticky: 20;
563
+ --z-drawer: 30;
564
+ --z-modal: 40;
565
+ --z-toast: 50;
566
+ --z-tooltip: 60;
567
+ --z-dropdown: 100;
568
+
569
+ color-scheme: light;
570
+ }
571
+
572
+ /* ────────────────────────────────────────────────────────
573
+ Dark mode — applied when <html data-theme="dark">.
574
+ Inverted elevation (surfaces lift LIGHTER on hover/selected,
575
+ like macOS). Semantic colors lift for AA contrast.
576
+ ──────────────────────────────────────────────────────── */
577
+ [data-theme="dark"] {
578
+ --bg: oklch(0.205 0.008 250);
579
+ --surface-0: oklch(0.165 0.010 250);
580
+ --surface-1: oklch(0.185 0.009 250);
581
+ --surface-2: oklch(0.255 0.011 250);
582
+ --surface-3: oklch(0.300 0.013 250);
583
+ --sidebar: oklch(0.175 0.009 250);
584
+
585
+ --border: oklch(0.305 0.012 250);
586
+ --border-strong:oklch(0.430 0.014 250);
587
+ --divider: oklch(0.255 0.010 250);
588
+
589
+ --ink-1: oklch(0.965 0.005 250);
590
+ --ink-2: oklch(0.780 0.010 250);
591
+ --ink-3: oklch(0.620 0.012 250);
592
+ --ink-4: oklch(0.470 0.010 250);
593
+ --ink-5: oklch(0.350 0.012 250);
594
+
595
+ --primary-soft: oklch(0.30 0.07 235);
596
+
597
+ --success: oklch(0.70 0.13 162);
598
+ --success-soft: oklch(0.30 0.06 162);
599
+ --warning: oklch(0.78 0.13 75);
600
+ --warning-soft: oklch(0.32 0.07 75);
601
+ --danger: oklch(0.70 0.17 25);
602
+ --danger-soft: oklch(0.32 0.08 25);
603
+ --info: oklch(0.70 0.13 285);
604
+ --info-soft: oklch(0.30 0.07 285);
605
+
606
+ --ai-soft: oklch(0.30 0.08 305);
607
+ --ai-tint: oklch(0.22 0.04 305);
608
+
609
+ --shadow-xs: 0 1px 0 rgba(0, 0, 0, 0.35);
610
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.45), 0 1px 3px rgba(0, 0, 0, 0.30);
611
+ --shadow-md: 0 4px 8px -1px rgba(0, 0, 0, 0.55), 0 2px 4px -2px rgba(0, 0, 0, 0.40);
612
+ --shadow-lg: 0 12px 24px -6px rgba(0, 0, 0, 0.60), 0 4px 10px -3px rgba(0, 0, 0, 0.45);
613
+ --shadow-pop: 0 14px 34px -8px rgba(0, 0, 0, 0.70), 0 4px 10px -3px rgba(0, 0, 0, 0.50);
614
+
615
+ color-scheme: dark;
616
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@teja-app/ui",
3
- "version": "0.0.9",
3
+ "version": "0.0.11",
4
4
  "description": "Shared UI component library for Teja applications",
5
5
  "author": "Teja App",
6
6
  "license": "MIT",
@@ -34,6 +34,11 @@
34
34
  "types": "./dist/utils/index.d.ts",
35
35
  "import": "./dist/utils/index.js"
36
36
  },
37
+ "./theme": {
38
+ "types": "./dist/theme/index.d.ts",
39
+ "import": "./dist/theme/index.js",
40
+ "require": "./dist/theme/index.cjs"
41
+ },
37
42
  "./styles.css": "./dist/ui.css"
38
43
  },
39
44
  "files": [