@sentropic/design-system-themes 0.3.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.
- package/css/entropic.css +186 -0
- package/css/forge.css +186 -0
- package/css/sent-tech.css +186 -0
- package/dist/compile.d.ts +7 -0
- package/dist/compile.d.ts.map +1 -0
- package/dist/compile.js +15 -0
- package/dist/compile.js.map +1 -0
- package/dist/compile.test.d.ts +2 -0
- package/dist/compile.test.d.ts.map +1 -0
- package/dist/compile.test.js +23 -0
- package/dist/compile.test.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/schema.d.ts +10 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +19 -0
- package/dist/schema.js.map +1 -0
- package/dist/themes/entropic.d.ts +3 -0
- package/dist/themes/entropic.d.ts.map +1 -0
- package/dist/themes/entropic.js +25 -0
- package/dist/themes/entropic.js.map +1 -0
- package/dist/themes/forge.d.ts +3 -0
- package/dist/themes/forge.d.ts.map +1 -0
- package/dist/themes/forge.js +18 -0
- package/dist/themes/forge.js.map +1 -0
- package/dist/themes/sent-tech.d.ts +3 -0
- package/dist/themes/sent-tech.d.ts.map +1 -0
- package/dist/themes/sent-tech.js +11 -0
- package/dist/themes/sent-tech.js.map +1 -0
- package/package.json +40 -0
package/css/entropic.css
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/* Generated by packages/themes/scripts/build-css.mjs. */
|
|
2
|
+
/* Theme: Entropic (entropic) */
|
|
3
|
+
[data-st-theme="entropic"] {
|
|
4
|
+
--st-semantic-surface-default: #ffffff;
|
|
5
|
+
--st-semantic-surface-subtle: #f8fafc;
|
|
6
|
+
--st-semantic-surface-raised: #ffffff;
|
|
7
|
+
--st-semantic-surface-inverse: #0f172a;
|
|
8
|
+
--st-semantic-surface-overlay: rgb(15 23 42 / 0.48);
|
|
9
|
+
--st-semantic-text-primary: #0f172a;
|
|
10
|
+
--st-semantic-text-secondary: #475569;
|
|
11
|
+
--st-semantic-text-muted: #64748b;
|
|
12
|
+
--st-semantic-text-inverse: #ffffff;
|
|
13
|
+
--st-semantic-text-link: oklch(50% 0.134 242.749);
|
|
14
|
+
--st-semantic-border-subtle: #e2e8f0;
|
|
15
|
+
--st-semantic-border-strong: #94a3b8;
|
|
16
|
+
--st-semantic-border-interactive: oklch(50% 0.134 242.749);
|
|
17
|
+
--st-semantic-action-primary: oklch(50% 0.134 242.749);
|
|
18
|
+
--st-semantic-action-primaryText: #ffffff;
|
|
19
|
+
--st-semantic-action-secondary: #f8fafc;
|
|
20
|
+
--st-semantic-action-secondaryText: #0f172a;
|
|
21
|
+
--st-semantic-action-danger: #dc2626;
|
|
22
|
+
--st-semantic-feedback-success: #16a34a;
|
|
23
|
+
--st-semantic-feedback-warning: #d97706;
|
|
24
|
+
--st-semantic-feedback-error: #dc2626;
|
|
25
|
+
--st-semantic-feedback-info: #2563eb;
|
|
26
|
+
--st-semantic-status-pending: #d97706;
|
|
27
|
+
--st-semantic-status-processing: #2563eb;
|
|
28
|
+
--st-semantic-status-completed: #16a34a;
|
|
29
|
+
--st-semantic-status-failed: #dc2626;
|
|
30
|
+
--st-semantic-data-category1: #4E79A7;
|
|
31
|
+
--st-semantic-data-category2: #F28E2B;
|
|
32
|
+
--st-semantic-data-category3: #E15759;
|
|
33
|
+
--st-semantic-data-category4: #76B7B2;
|
|
34
|
+
--st-semantic-data-category5: #59A14F;
|
|
35
|
+
--st-semantic-data-category6: #EDC948;
|
|
36
|
+
--st-semantic-data-category7: #B07AA1;
|
|
37
|
+
--st-semantic-data-category8: #FF9DA7;
|
|
38
|
+
--st-component-button-radius: 0.375rem;
|
|
39
|
+
--st-component-button-primaryBackground: oklch(50% 0.134 242.749);
|
|
40
|
+
--st-component-button-primaryText: #ffffff;
|
|
41
|
+
--st-component-button-secondaryBackground: #f8fafc;
|
|
42
|
+
--st-component-button-secondaryText: #0f172a;
|
|
43
|
+
--st-component-link-text: oklch(50% 0.134 242.749);
|
|
44
|
+
--st-component-link-hoverText: oklch(50% 0.134 242.749);
|
|
45
|
+
--st-component-link-disabledText: #64748b;
|
|
46
|
+
--st-component-link-focusRing: oklch(50% 0.134 242.749);
|
|
47
|
+
--st-component-alert-background: #ffffff;
|
|
48
|
+
--st-component-alert-text: #0f172a;
|
|
49
|
+
--st-component-alert-border: #e2e8f0;
|
|
50
|
+
--st-component-alert-infoBorder: #2563eb;
|
|
51
|
+
--st-component-alert-successBorder: #16a34a;
|
|
52
|
+
--st-component-alert-warningBorder: #d97706;
|
|
53
|
+
--st-component-alert-errorBorder: #dc2626;
|
|
54
|
+
--st-component-alert-radius: 0.5rem;
|
|
55
|
+
--st-component-card-background: #ffffff;
|
|
56
|
+
--st-component-card-border: #e2e8f0;
|
|
57
|
+
--st-component-card-radius: 0.5rem;
|
|
58
|
+
--st-component-card-shadow: 0 1px 2px rgb(15 23 42 / 0.08);
|
|
59
|
+
--st-component-menu-background: #ffffff;
|
|
60
|
+
--st-component-menu-border: #e2e8f0;
|
|
61
|
+
--st-component-menu-text: #0f172a;
|
|
62
|
+
--st-component-menu-itemHoverBackground: #f8fafc;
|
|
63
|
+
--st-component-menu-disabledText: #64748b;
|
|
64
|
+
--st-component-menu-radius: 0.375rem;
|
|
65
|
+
--st-component-menu-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
66
|
+
--st-component-popover-background: #ffffff;
|
|
67
|
+
--st-component-popover-border: #e2e8f0;
|
|
68
|
+
--st-component-popover-text: #0f172a;
|
|
69
|
+
--st-component-popover-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
70
|
+
--st-component-popover-radius: 0.5rem;
|
|
71
|
+
--st-component-popover-zIndex: 80;
|
|
72
|
+
--st-component-dropdown-background: #ffffff;
|
|
73
|
+
--st-component-dropdown-border: #e2e8f0;
|
|
74
|
+
--st-component-dropdown-text: #0f172a;
|
|
75
|
+
--st-component-dropdown-optionHoverBackground: #f8fafc;
|
|
76
|
+
--st-component-dropdown-selectedBackground: oklch(50% 0.134 242.749);
|
|
77
|
+
--st-component-dropdown-selectedText: #ffffff;
|
|
78
|
+
--st-component-dropdown-radius: 0.375rem;
|
|
79
|
+
--st-component-dropdown-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
80
|
+
--st-component-input-background: #ffffff;
|
|
81
|
+
--st-component-input-border: #e2e8f0;
|
|
82
|
+
--st-component-input-focusRing: oklch(50% 0.134 242.749);
|
|
83
|
+
--st-component-input-radius: 0.375rem;
|
|
84
|
+
--st-component-field-labelText: #0f172a;
|
|
85
|
+
--st-component-field-helpText: #475569;
|
|
86
|
+
--st-component-field-errorText: #dc2626;
|
|
87
|
+
--st-component-field-gap: 0.5rem;
|
|
88
|
+
--st-component-field-maxWidth: 28rem;
|
|
89
|
+
--st-component-control-background: #ffffff;
|
|
90
|
+
--st-component-control-text: #0f172a;
|
|
91
|
+
--st-component-control-placeholderText: #64748b;
|
|
92
|
+
--st-component-control-border: #e2e8f0;
|
|
93
|
+
--st-component-control-hoverBorder: #94a3b8;
|
|
94
|
+
--st-component-control-focusRing: oklch(50% 0.134 242.749);
|
|
95
|
+
--st-component-control-invalidBorder: #dc2626;
|
|
96
|
+
--st-component-control-disabledBackground: #f8fafc;
|
|
97
|
+
--st-component-control-disabledText: #64748b;
|
|
98
|
+
--st-component-control-radius: 0.375rem;
|
|
99
|
+
--st-component-control-smHeight: 2rem;
|
|
100
|
+
--st-component-control-mdHeight: 2.5rem;
|
|
101
|
+
--st-component-control-lgHeight: 3rem;
|
|
102
|
+
--st-component-selection-checkedBackground: oklch(50% 0.134 242.749);
|
|
103
|
+
--st-component-selection-checkedText: #ffffff;
|
|
104
|
+
--st-component-selection-border: #e2e8f0;
|
|
105
|
+
--st-component-selection-switchTrack: #94a3b8;
|
|
106
|
+
--st-component-selection-switchTrackChecked: oklch(50% 0.134 242.749);
|
|
107
|
+
--st-component-selection-switchThumb: #ffffff;
|
|
108
|
+
--st-component-overlay-backdrop: rgb(15 23 42 / 0.48);
|
|
109
|
+
--st-component-overlay-surface: #ffffff;
|
|
110
|
+
--st-component-overlay-border: #e2e8f0;
|
|
111
|
+
--st-component-overlay-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
112
|
+
--st-component-overlay-radius: 0.5rem;
|
|
113
|
+
--st-component-overlay-zIndex: 90;
|
|
114
|
+
--st-component-drawer-backdrop: rgb(15 23 42 / 0.48);
|
|
115
|
+
--st-component-drawer-surface: #ffffff;
|
|
116
|
+
--st-component-drawer-border: #e2e8f0;
|
|
117
|
+
--st-component-drawer-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
118
|
+
--st-component-drawer-width: 24rem;
|
|
119
|
+
--st-component-drawer-zIndex: 90;
|
|
120
|
+
--st-component-emptyState-background: #f8fafc;
|
|
121
|
+
--st-component-emptyState-border: #e2e8f0;
|
|
122
|
+
--st-component-emptyState-titleText: #0f172a;
|
|
123
|
+
--st-component-emptyState-messageText: #475569;
|
|
124
|
+
--st-component-emptyState-radius: 0.5rem;
|
|
125
|
+
--st-component-loadingState-indicator: oklch(50% 0.134 242.749);
|
|
126
|
+
--st-component-loadingState-track: #f8fafc;
|
|
127
|
+
--st-component-loadingState-text: #475569;
|
|
128
|
+
--st-component-loadingState-radius: 999px;
|
|
129
|
+
--st-component-tooltip-background: #0f172a;
|
|
130
|
+
--st-component-tooltip-text: #ffffff;
|
|
131
|
+
--st-component-tooltip-radius: 0.375rem;
|
|
132
|
+
--st-component-tooltip-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
133
|
+
--st-component-tooltip-zIndex: 80;
|
|
134
|
+
--st-component-toast-background: #ffffff;
|
|
135
|
+
--st-component-toast-text: #0f172a;
|
|
136
|
+
--st-component-toast-border: #e2e8f0;
|
|
137
|
+
--st-component-toast-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
138
|
+
--st-component-toast-radius: 0.5rem;
|
|
139
|
+
--st-component-toast-infoBorder: #2563eb;
|
|
140
|
+
--st-component-toast-successBorder: #16a34a;
|
|
141
|
+
--st-component-toast-warningBorder: #d97706;
|
|
142
|
+
--st-component-toast-errorBorder: #dc2626;
|
|
143
|
+
--st-component-toast-zIndex: 100;
|
|
144
|
+
--st-component-dataTable-headerBackground: #f8fafc;
|
|
145
|
+
--st-component-dataTable-rowBackground: #ffffff;
|
|
146
|
+
--st-component-dataTable-rowHoverBackground: #f8fafc;
|
|
147
|
+
--st-component-dataTable-border: #e2e8f0;
|
|
148
|
+
--st-component-dataTable-text: #0f172a;
|
|
149
|
+
--st-component-dataTable-captionText: #475569;
|
|
150
|
+
--st-component-dataTable-radius: 0.5rem;
|
|
151
|
+
--st-component-tabs-activeText: #0f172a;
|
|
152
|
+
--st-component-tabs-inactiveText: #475569;
|
|
153
|
+
--st-component-tabs-border: #e2e8f0;
|
|
154
|
+
--st-component-tabs-indicator: oklch(50% 0.134 242.749);
|
|
155
|
+
--st-component-tabs-panelBackground: #ffffff;
|
|
156
|
+
--st-component-pagination-background: #ffffff;
|
|
157
|
+
--st-component-pagination-border: #e2e8f0;
|
|
158
|
+
--st-component-pagination-text: #0f172a;
|
|
159
|
+
--st-component-pagination-activeBackground: oklch(50% 0.134 242.749);
|
|
160
|
+
--st-component-pagination-activeText: #ffffff;
|
|
161
|
+
--st-component-pagination-disabledText: #64748b;
|
|
162
|
+
--st-component-pagination-radius: 0.375rem;
|
|
163
|
+
--st-component-breadcrumb-text: #475569;
|
|
164
|
+
--st-component-breadcrumb-currentText: #0f172a;
|
|
165
|
+
--st-component-breadcrumb-separator: #64748b;
|
|
166
|
+
--st-component-breadcrumb-linkText: oklch(50% 0.134 242.749);
|
|
167
|
+
--st-component-sideNav-background: #ffffff;
|
|
168
|
+
--st-component-sideNav-border: #e2e8f0;
|
|
169
|
+
--st-component-sideNav-itemText: #475569;
|
|
170
|
+
--st-component-sideNav-activeBackground: #f8fafc;
|
|
171
|
+
--st-component-sideNav-activeText: #0f172a;
|
|
172
|
+
--st-component-sideNav-width: 16rem;
|
|
173
|
+
--st-component-chat-userBubbleBackground: oklch(50% 0.134 242.749);
|
|
174
|
+
--st-component-chat-userBubbleText: #ffffff;
|
|
175
|
+
--st-component-chat-assistantBubbleBackground: #f8fafc;
|
|
176
|
+
--st-component-chat-assistantBubbleText: #0f172a;
|
|
177
|
+
--st-component-chat-composerSurface: #ffffff;
|
|
178
|
+
--st-component-chat-toolCallSurface: #f8fafc;
|
|
179
|
+
--st-component-graph-panelBackground: #0f172a;
|
|
180
|
+
--st-component-graph-panelText: #ffffff;
|
|
181
|
+
--st-component-graph-edgeDefault: rgb(226 232 240 / 0.56);
|
|
182
|
+
--st-component-graph-community1: #4E79A7;
|
|
183
|
+
--st-component-graph-community2: #F28E2B;
|
|
184
|
+
--st-component-graph-community3: #E15759;
|
|
185
|
+
--st-component-graph-community4: #76B7B2;
|
|
186
|
+
}
|
package/css/forge.css
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/* Generated by packages/themes/scripts/build-css.mjs. */
|
|
2
|
+
/* Theme: Sent Tech Forge (forge) */
|
|
3
|
+
[data-st-theme="forge"] {
|
|
4
|
+
--st-semantic-surface-default: #ffffff;
|
|
5
|
+
--st-semantic-surface-subtle: #f8fafc;
|
|
6
|
+
--st-semantic-surface-raised: #ffffff;
|
|
7
|
+
--st-semantic-surface-inverse: #0f172a;
|
|
8
|
+
--st-semantic-surface-overlay: rgb(15 23 42 / 0.48);
|
|
9
|
+
--st-semantic-text-primary: #0f172a;
|
|
10
|
+
--st-semantic-text-secondary: #475569;
|
|
11
|
+
--st-semantic-text-muted: #64748b;
|
|
12
|
+
--st-semantic-text-inverse: #ffffff;
|
|
13
|
+
--st-semantic-text-link: oklch(50% 0.134 242.749);
|
|
14
|
+
--st-semantic-border-subtle: #e2e8f0;
|
|
15
|
+
--st-semantic-border-strong: #94a3b8;
|
|
16
|
+
--st-semantic-border-interactive: oklch(50% 0.134 242.749);
|
|
17
|
+
--st-semantic-action-primary: hsl(215 70% 25%);
|
|
18
|
+
--st-semantic-action-primaryText: hsl(0 0% 100%);
|
|
19
|
+
--st-semantic-action-secondary: #f8fafc;
|
|
20
|
+
--st-semantic-action-secondaryText: #0f172a;
|
|
21
|
+
--st-semantic-action-danger: #dc2626;
|
|
22
|
+
--st-semantic-feedback-success: #16a34a;
|
|
23
|
+
--st-semantic-feedback-warning: #d97706;
|
|
24
|
+
--st-semantic-feedback-error: #dc2626;
|
|
25
|
+
--st-semantic-feedback-info: #2563eb;
|
|
26
|
+
--st-semantic-status-pending: #d97706;
|
|
27
|
+
--st-semantic-status-processing: #2563eb;
|
|
28
|
+
--st-semantic-status-completed: #16a34a;
|
|
29
|
+
--st-semantic-status-failed: #dc2626;
|
|
30
|
+
--st-semantic-data-category1: #4E79A7;
|
|
31
|
+
--st-semantic-data-category2: #F28E2B;
|
|
32
|
+
--st-semantic-data-category3: #E15759;
|
|
33
|
+
--st-semantic-data-category4: #76B7B2;
|
|
34
|
+
--st-semantic-data-category5: #59A14F;
|
|
35
|
+
--st-semantic-data-category6: #EDC948;
|
|
36
|
+
--st-semantic-data-category7: #B07AA1;
|
|
37
|
+
--st-semantic-data-category8: #FF9DA7;
|
|
38
|
+
--st-component-button-radius: 0.375rem;
|
|
39
|
+
--st-component-button-primaryBackground: oklch(50% 0.134 242.749);
|
|
40
|
+
--st-component-button-primaryText: #ffffff;
|
|
41
|
+
--st-component-button-secondaryBackground: #f8fafc;
|
|
42
|
+
--st-component-button-secondaryText: #0f172a;
|
|
43
|
+
--st-component-link-text: oklch(50% 0.134 242.749);
|
|
44
|
+
--st-component-link-hoverText: oklch(50% 0.134 242.749);
|
|
45
|
+
--st-component-link-disabledText: #64748b;
|
|
46
|
+
--st-component-link-focusRing: oklch(50% 0.134 242.749);
|
|
47
|
+
--st-component-alert-background: #ffffff;
|
|
48
|
+
--st-component-alert-text: #0f172a;
|
|
49
|
+
--st-component-alert-border: #e2e8f0;
|
|
50
|
+
--st-component-alert-infoBorder: #2563eb;
|
|
51
|
+
--st-component-alert-successBorder: #16a34a;
|
|
52
|
+
--st-component-alert-warningBorder: #d97706;
|
|
53
|
+
--st-component-alert-errorBorder: #dc2626;
|
|
54
|
+
--st-component-alert-radius: 0.5rem;
|
|
55
|
+
--st-component-card-background: #ffffff;
|
|
56
|
+
--st-component-card-border: #e2e8f0;
|
|
57
|
+
--st-component-card-radius: 0.5rem;
|
|
58
|
+
--st-component-card-shadow: 0 1px 2px rgb(15 23 42 / 0.08);
|
|
59
|
+
--st-component-menu-background: #ffffff;
|
|
60
|
+
--st-component-menu-border: #e2e8f0;
|
|
61
|
+
--st-component-menu-text: #0f172a;
|
|
62
|
+
--st-component-menu-itemHoverBackground: #f8fafc;
|
|
63
|
+
--st-component-menu-disabledText: #64748b;
|
|
64
|
+
--st-component-menu-radius: 0.375rem;
|
|
65
|
+
--st-component-menu-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
66
|
+
--st-component-popover-background: #ffffff;
|
|
67
|
+
--st-component-popover-border: #e2e8f0;
|
|
68
|
+
--st-component-popover-text: #0f172a;
|
|
69
|
+
--st-component-popover-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
70
|
+
--st-component-popover-radius: 0.5rem;
|
|
71
|
+
--st-component-popover-zIndex: 80;
|
|
72
|
+
--st-component-dropdown-background: #ffffff;
|
|
73
|
+
--st-component-dropdown-border: #e2e8f0;
|
|
74
|
+
--st-component-dropdown-text: #0f172a;
|
|
75
|
+
--st-component-dropdown-optionHoverBackground: #f8fafc;
|
|
76
|
+
--st-component-dropdown-selectedBackground: oklch(50% 0.134 242.749);
|
|
77
|
+
--st-component-dropdown-selectedText: #ffffff;
|
|
78
|
+
--st-component-dropdown-radius: 0.375rem;
|
|
79
|
+
--st-component-dropdown-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
80
|
+
--st-component-input-background: #ffffff;
|
|
81
|
+
--st-component-input-border: #e2e8f0;
|
|
82
|
+
--st-component-input-focusRing: oklch(50% 0.134 242.749);
|
|
83
|
+
--st-component-input-radius: 0.375rem;
|
|
84
|
+
--st-component-field-labelText: #0f172a;
|
|
85
|
+
--st-component-field-helpText: #475569;
|
|
86
|
+
--st-component-field-errorText: #dc2626;
|
|
87
|
+
--st-component-field-gap: 0.5rem;
|
|
88
|
+
--st-component-field-maxWidth: 28rem;
|
|
89
|
+
--st-component-control-background: #ffffff;
|
|
90
|
+
--st-component-control-text: #0f172a;
|
|
91
|
+
--st-component-control-placeholderText: #64748b;
|
|
92
|
+
--st-component-control-border: #e2e8f0;
|
|
93
|
+
--st-component-control-hoverBorder: #94a3b8;
|
|
94
|
+
--st-component-control-focusRing: oklch(50% 0.134 242.749);
|
|
95
|
+
--st-component-control-invalidBorder: #dc2626;
|
|
96
|
+
--st-component-control-disabledBackground: #f8fafc;
|
|
97
|
+
--st-component-control-disabledText: #64748b;
|
|
98
|
+
--st-component-control-radius: 0.375rem;
|
|
99
|
+
--st-component-control-smHeight: 2rem;
|
|
100
|
+
--st-component-control-mdHeight: 2.5rem;
|
|
101
|
+
--st-component-control-lgHeight: 3rem;
|
|
102
|
+
--st-component-selection-checkedBackground: oklch(50% 0.134 242.749);
|
|
103
|
+
--st-component-selection-checkedText: #ffffff;
|
|
104
|
+
--st-component-selection-border: #e2e8f0;
|
|
105
|
+
--st-component-selection-switchTrack: #94a3b8;
|
|
106
|
+
--st-component-selection-switchTrackChecked: oklch(50% 0.134 242.749);
|
|
107
|
+
--st-component-selection-switchThumb: #ffffff;
|
|
108
|
+
--st-component-overlay-backdrop: rgb(15 23 42 / 0.48);
|
|
109
|
+
--st-component-overlay-surface: #ffffff;
|
|
110
|
+
--st-component-overlay-border: #e2e8f0;
|
|
111
|
+
--st-component-overlay-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
112
|
+
--st-component-overlay-radius: 0.5rem;
|
|
113
|
+
--st-component-overlay-zIndex: 90;
|
|
114
|
+
--st-component-drawer-backdrop: rgb(15 23 42 / 0.48);
|
|
115
|
+
--st-component-drawer-surface: #ffffff;
|
|
116
|
+
--st-component-drawer-border: #e2e8f0;
|
|
117
|
+
--st-component-drawer-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
118
|
+
--st-component-drawer-width: 24rem;
|
|
119
|
+
--st-component-drawer-zIndex: 90;
|
|
120
|
+
--st-component-emptyState-background: #f8fafc;
|
|
121
|
+
--st-component-emptyState-border: #e2e8f0;
|
|
122
|
+
--st-component-emptyState-titleText: #0f172a;
|
|
123
|
+
--st-component-emptyState-messageText: #475569;
|
|
124
|
+
--st-component-emptyState-radius: 0.5rem;
|
|
125
|
+
--st-component-loadingState-indicator: oklch(50% 0.134 242.749);
|
|
126
|
+
--st-component-loadingState-track: #f8fafc;
|
|
127
|
+
--st-component-loadingState-text: #475569;
|
|
128
|
+
--st-component-loadingState-radius: 999px;
|
|
129
|
+
--st-component-tooltip-background: #0f172a;
|
|
130
|
+
--st-component-tooltip-text: #ffffff;
|
|
131
|
+
--st-component-tooltip-radius: 0.375rem;
|
|
132
|
+
--st-component-tooltip-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
133
|
+
--st-component-tooltip-zIndex: 80;
|
|
134
|
+
--st-component-toast-background: #ffffff;
|
|
135
|
+
--st-component-toast-text: #0f172a;
|
|
136
|
+
--st-component-toast-border: #e2e8f0;
|
|
137
|
+
--st-component-toast-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
138
|
+
--st-component-toast-radius: 0.5rem;
|
|
139
|
+
--st-component-toast-infoBorder: #2563eb;
|
|
140
|
+
--st-component-toast-successBorder: #16a34a;
|
|
141
|
+
--st-component-toast-warningBorder: #d97706;
|
|
142
|
+
--st-component-toast-errorBorder: #dc2626;
|
|
143
|
+
--st-component-toast-zIndex: 100;
|
|
144
|
+
--st-component-dataTable-headerBackground: #f8fafc;
|
|
145
|
+
--st-component-dataTable-rowBackground: #ffffff;
|
|
146
|
+
--st-component-dataTable-rowHoverBackground: #f8fafc;
|
|
147
|
+
--st-component-dataTable-border: #e2e8f0;
|
|
148
|
+
--st-component-dataTable-text: #0f172a;
|
|
149
|
+
--st-component-dataTable-captionText: #475569;
|
|
150
|
+
--st-component-dataTable-radius: 0.5rem;
|
|
151
|
+
--st-component-tabs-activeText: #0f172a;
|
|
152
|
+
--st-component-tabs-inactiveText: #475569;
|
|
153
|
+
--st-component-tabs-border: #e2e8f0;
|
|
154
|
+
--st-component-tabs-indicator: oklch(50% 0.134 242.749);
|
|
155
|
+
--st-component-tabs-panelBackground: #ffffff;
|
|
156
|
+
--st-component-pagination-background: #ffffff;
|
|
157
|
+
--st-component-pagination-border: #e2e8f0;
|
|
158
|
+
--st-component-pagination-text: #0f172a;
|
|
159
|
+
--st-component-pagination-activeBackground: oklch(50% 0.134 242.749);
|
|
160
|
+
--st-component-pagination-activeText: #ffffff;
|
|
161
|
+
--st-component-pagination-disabledText: #64748b;
|
|
162
|
+
--st-component-pagination-radius: 0.375rem;
|
|
163
|
+
--st-component-breadcrumb-text: #475569;
|
|
164
|
+
--st-component-breadcrumb-currentText: #0f172a;
|
|
165
|
+
--st-component-breadcrumb-separator: #64748b;
|
|
166
|
+
--st-component-breadcrumb-linkText: oklch(50% 0.134 242.749);
|
|
167
|
+
--st-component-sideNav-background: #ffffff;
|
|
168
|
+
--st-component-sideNav-border: #e2e8f0;
|
|
169
|
+
--st-component-sideNav-itemText: #475569;
|
|
170
|
+
--st-component-sideNav-activeBackground: #f8fafc;
|
|
171
|
+
--st-component-sideNav-activeText: #0f172a;
|
|
172
|
+
--st-component-sideNav-width: 16rem;
|
|
173
|
+
--st-component-chat-userBubbleBackground: oklch(50% 0.134 242.749);
|
|
174
|
+
--st-component-chat-userBubbleText: #ffffff;
|
|
175
|
+
--st-component-chat-assistantBubbleBackground: #f8fafc;
|
|
176
|
+
--st-component-chat-assistantBubbleText: #0f172a;
|
|
177
|
+
--st-component-chat-composerSurface: #ffffff;
|
|
178
|
+
--st-component-chat-toolCallSurface: #f8fafc;
|
|
179
|
+
--st-component-graph-panelBackground: #0f172a;
|
|
180
|
+
--st-component-graph-panelText: #ffffff;
|
|
181
|
+
--st-component-graph-edgeDefault: rgb(226 232 240 / 0.56);
|
|
182
|
+
--st-component-graph-community1: #4E79A7;
|
|
183
|
+
--st-component-graph-community2: #F28E2B;
|
|
184
|
+
--st-component-graph-community3: #E15759;
|
|
185
|
+
--st-component-graph-community4: #76B7B2;
|
|
186
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/* Generated by packages/themes/scripts/build-css.mjs. */
|
|
2
|
+
/* Theme: Sent Tech (sent-tech) */
|
|
3
|
+
[data-st-theme="sent-tech"] {
|
|
4
|
+
--st-semantic-surface-default: #ffffff;
|
|
5
|
+
--st-semantic-surface-subtle: #f8fafc;
|
|
6
|
+
--st-semantic-surface-raised: #ffffff;
|
|
7
|
+
--st-semantic-surface-inverse: #0f172a;
|
|
8
|
+
--st-semantic-surface-overlay: rgb(15 23 42 / 0.48);
|
|
9
|
+
--st-semantic-text-primary: #0f172a;
|
|
10
|
+
--st-semantic-text-secondary: #475569;
|
|
11
|
+
--st-semantic-text-muted: #64748b;
|
|
12
|
+
--st-semantic-text-inverse: #ffffff;
|
|
13
|
+
--st-semantic-text-link: oklch(50% 0.134 242.749);
|
|
14
|
+
--st-semantic-border-subtle: #e2e8f0;
|
|
15
|
+
--st-semantic-border-strong: #94a3b8;
|
|
16
|
+
--st-semantic-border-interactive: oklch(50% 0.134 242.749);
|
|
17
|
+
--st-semantic-action-primary: oklch(50% 0.134 242.749);
|
|
18
|
+
--st-semantic-action-primaryText: #ffffff;
|
|
19
|
+
--st-semantic-action-secondary: #f8fafc;
|
|
20
|
+
--st-semantic-action-secondaryText: #0f172a;
|
|
21
|
+
--st-semantic-action-danger: #dc2626;
|
|
22
|
+
--st-semantic-feedback-success: #16a34a;
|
|
23
|
+
--st-semantic-feedback-warning: #d97706;
|
|
24
|
+
--st-semantic-feedback-error: #dc2626;
|
|
25
|
+
--st-semantic-feedback-info: #2563eb;
|
|
26
|
+
--st-semantic-status-pending: #d97706;
|
|
27
|
+
--st-semantic-status-processing: #2563eb;
|
|
28
|
+
--st-semantic-status-completed: #16a34a;
|
|
29
|
+
--st-semantic-status-failed: #dc2626;
|
|
30
|
+
--st-semantic-data-category1: #4E79A7;
|
|
31
|
+
--st-semantic-data-category2: #F28E2B;
|
|
32
|
+
--st-semantic-data-category3: #E15759;
|
|
33
|
+
--st-semantic-data-category4: #76B7B2;
|
|
34
|
+
--st-semantic-data-category5: #59A14F;
|
|
35
|
+
--st-semantic-data-category6: #EDC948;
|
|
36
|
+
--st-semantic-data-category7: #B07AA1;
|
|
37
|
+
--st-semantic-data-category8: #FF9DA7;
|
|
38
|
+
--st-component-button-radius: 0.375rem;
|
|
39
|
+
--st-component-button-primaryBackground: oklch(50% 0.134 242.749);
|
|
40
|
+
--st-component-button-primaryText: #ffffff;
|
|
41
|
+
--st-component-button-secondaryBackground: #f8fafc;
|
|
42
|
+
--st-component-button-secondaryText: #0f172a;
|
|
43
|
+
--st-component-link-text: oklch(50% 0.134 242.749);
|
|
44
|
+
--st-component-link-hoverText: oklch(50% 0.134 242.749);
|
|
45
|
+
--st-component-link-disabledText: #64748b;
|
|
46
|
+
--st-component-link-focusRing: oklch(50% 0.134 242.749);
|
|
47
|
+
--st-component-alert-background: #ffffff;
|
|
48
|
+
--st-component-alert-text: #0f172a;
|
|
49
|
+
--st-component-alert-border: #e2e8f0;
|
|
50
|
+
--st-component-alert-infoBorder: #2563eb;
|
|
51
|
+
--st-component-alert-successBorder: #16a34a;
|
|
52
|
+
--st-component-alert-warningBorder: #d97706;
|
|
53
|
+
--st-component-alert-errorBorder: #dc2626;
|
|
54
|
+
--st-component-alert-radius: 0.5rem;
|
|
55
|
+
--st-component-card-background: #ffffff;
|
|
56
|
+
--st-component-card-border: #e2e8f0;
|
|
57
|
+
--st-component-card-radius: 0.5rem;
|
|
58
|
+
--st-component-card-shadow: 0 1px 2px rgb(15 23 42 / 0.08);
|
|
59
|
+
--st-component-menu-background: #ffffff;
|
|
60
|
+
--st-component-menu-border: #e2e8f0;
|
|
61
|
+
--st-component-menu-text: #0f172a;
|
|
62
|
+
--st-component-menu-itemHoverBackground: #f8fafc;
|
|
63
|
+
--st-component-menu-disabledText: #64748b;
|
|
64
|
+
--st-component-menu-radius: 0.375rem;
|
|
65
|
+
--st-component-menu-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
66
|
+
--st-component-popover-background: #ffffff;
|
|
67
|
+
--st-component-popover-border: #e2e8f0;
|
|
68
|
+
--st-component-popover-text: #0f172a;
|
|
69
|
+
--st-component-popover-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
70
|
+
--st-component-popover-radius: 0.5rem;
|
|
71
|
+
--st-component-popover-zIndex: 80;
|
|
72
|
+
--st-component-dropdown-background: #ffffff;
|
|
73
|
+
--st-component-dropdown-border: #e2e8f0;
|
|
74
|
+
--st-component-dropdown-text: #0f172a;
|
|
75
|
+
--st-component-dropdown-optionHoverBackground: #f8fafc;
|
|
76
|
+
--st-component-dropdown-selectedBackground: oklch(50% 0.134 242.749);
|
|
77
|
+
--st-component-dropdown-selectedText: #ffffff;
|
|
78
|
+
--st-component-dropdown-radius: 0.375rem;
|
|
79
|
+
--st-component-dropdown-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
80
|
+
--st-component-input-background: #ffffff;
|
|
81
|
+
--st-component-input-border: #e2e8f0;
|
|
82
|
+
--st-component-input-focusRing: oklch(50% 0.134 242.749);
|
|
83
|
+
--st-component-input-radius: 0.375rem;
|
|
84
|
+
--st-component-field-labelText: #0f172a;
|
|
85
|
+
--st-component-field-helpText: #475569;
|
|
86
|
+
--st-component-field-errorText: #dc2626;
|
|
87
|
+
--st-component-field-gap: 0.5rem;
|
|
88
|
+
--st-component-field-maxWidth: 28rem;
|
|
89
|
+
--st-component-control-background: #ffffff;
|
|
90
|
+
--st-component-control-text: #0f172a;
|
|
91
|
+
--st-component-control-placeholderText: #64748b;
|
|
92
|
+
--st-component-control-border: #e2e8f0;
|
|
93
|
+
--st-component-control-hoverBorder: #94a3b8;
|
|
94
|
+
--st-component-control-focusRing: oklch(50% 0.134 242.749);
|
|
95
|
+
--st-component-control-invalidBorder: #dc2626;
|
|
96
|
+
--st-component-control-disabledBackground: #f8fafc;
|
|
97
|
+
--st-component-control-disabledText: #64748b;
|
|
98
|
+
--st-component-control-radius: 0.375rem;
|
|
99
|
+
--st-component-control-smHeight: 2rem;
|
|
100
|
+
--st-component-control-mdHeight: 2.5rem;
|
|
101
|
+
--st-component-control-lgHeight: 3rem;
|
|
102
|
+
--st-component-selection-checkedBackground: oklch(50% 0.134 242.749);
|
|
103
|
+
--st-component-selection-checkedText: #ffffff;
|
|
104
|
+
--st-component-selection-border: #e2e8f0;
|
|
105
|
+
--st-component-selection-switchTrack: #94a3b8;
|
|
106
|
+
--st-component-selection-switchTrackChecked: oklch(50% 0.134 242.749);
|
|
107
|
+
--st-component-selection-switchThumb: #ffffff;
|
|
108
|
+
--st-component-overlay-backdrop: rgb(15 23 42 / 0.48);
|
|
109
|
+
--st-component-overlay-surface: #ffffff;
|
|
110
|
+
--st-component-overlay-border: #e2e8f0;
|
|
111
|
+
--st-component-overlay-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
112
|
+
--st-component-overlay-radius: 0.5rem;
|
|
113
|
+
--st-component-overlay-zIndex: 90;
|
|
114
|
+
--st-component-drawer-backdrop: rgb(15 23 42 / 0.48);
|
|
115
|
+
--st-component-drawer-surface: #ffffff;
|
|
116
|
+
--st-component-drawer-border: #e2e8f0;
|
|
117
|
+
--st-component-drawer-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
118
|
+
--st-component-drawer-width: 24rem;
|
|
119
|
+
--st-component-drawer-zIndex: 90;
|
|
120
|
+
--st-component-emptyState-background: #f8fafc;
|
|
121
|
+
--st-component-emptyState-border: #e2e8f0;
|
|
122
|
+
--st-component-emptyState-titleText: #0f172a;
|
|
123
|
+
--st-component-emptyState-messageText: #475569;
|
|
124
|
+
--st-component-emptyState-radius: 0.5rem;
|
|
125
|
+
--st-component-loadingState-indicator: oklch(50% 0.134 242.749);
|
|
126
|
+
--st-component-loadingState-track: #f8fafc;
|
|
127
|
+
--st-component-loadingState-text: #475569;
|
|
128
|
+
--st-component-loadingState-radius: 999px;
|
|
129
|
+
--st-component-tooltip-background: #0f172a;
|
|
130
|
+
--st-component-tooltip-text: #ffffff;
|
|
131
|
+
--st-component-tooltip-radius: 0.375rem;
|
|
132
|
+
--st-component-tooltip-shadow: 0 8px 24px rgb(15 23 42 / 0.12);
|
|
133
|
+
--st-component-tooltip-zIndex: 80;
|
|
134
|
+
--st-component-toast-background: #ffffff;
|
|
135
|
+
--st-component-toast-text: #0f172a;
|
|
136
|
+
--st-component-toast-border: #e2e8f0;
|
|
137
|
+
--st-component-toast-shadow: 0 18px 45px rgb(15 23 42 / 0.18);
|
|
138
|
+
--st-component-toast-radius: 0.5rem;
|
|
139
|
+
--st-component-toast-infoBorder: #2563eb;
|
|
140
|
+
--st-component-toast-successBorder: #16a34a;
|
|
141
|
+
--st-component-toast-warningBorder: #d97706;
|
|
142
|
+
--st-component-toast-errorBorder: #dc2626;
|
|
143
|
+
--st-component-toast-zIndex: 100;
|
|
144
|
+
--st-component-dataTable-headerBackground: #f8fafc;
|
|
145
|
+
--st-component-dataTable-rowBackground: #ffffff;
|
|
146
|
+
--st-component-dataTable-rowHoverBackground: #f8fafc;
|
|
147
|
+
--st-component-dataTable-border: #e2e8f0;
|
|
148
|
+
--st-component-dataTable-text: #0f172a;
|
|
149
|
+
--st-component-dataTable-captionText: #475569;
|
|
150
|
+
--st-component-dataTable-radius: 0.5rem;
|
|
151
|
+
--st-component-tabs-activeText: #0f172a;
|
|
152
|
+
--st-component-tabs-inactiveText: #475569;
|
|
153
|
+
--st-component-tabs-border: #e2e8f0;
|
|
154
|
+
--st-component-tabs-indicator: oklch(50% 0.134 242.749);
|
|
155
|
+
--st-component-tabs-panelBackground: #ffffff;
|
|
156
|
+
--st-component-pagination-background: #ffffff;
|
|
157
|
+
--st-component-pagination-border: #e2e8f0;
|
|
158
|
+
--st-component-pagination-text: #0f172a;
|
|
159
|
+
--st-component-pagination-activeBackground: oklch(50% 0.134 242.749);
|
|
160
|
+
--st-component-pagination-activeText: #ffffff;
|
|
161
|
+
--st-component-pagination-disabledText: #64748b;
|
|
162
|
+
--st-component-pagination-radius: 0.375rem;
|
|
163
|
+
--st-component-breadcrumb-text: #475569;
|
|
164
|
+
--st-component-breadcrumb-currentText: #0f172a;
|
|
165
|
+
--st-component-breadcrumb-separator: #64748b;
|
|
166
|
+
--st-component-breadcrumb-linkText: oklch(50% 0.134 242.749);
|
|
167
|
+
--st-component-sideNav-background: #ffffff;
|
|
168
|
+
--st-component-sideNav-border: #e2e8f0;
|
|
169
|
+
--st-component-sideNav-itemText: #475569;
|
|
170
|
+
--st-component-sideNav-activeBackground: #f8fafc;
|
|
171
|
+
--st-component-sideNav-activeText: #0f172a;
|
|
172
|
+
--st-component-sideNav-width: 16rem;
|
|
173
|
+
--st-component-chat-userBubbleBackground: oklch(50% 0.134 242.749);
|
|
174
|
+
--st-component-chat-userBubbleText: #ffffff;
|
|
175
|
+
--st-component-chat-assistantBubbleBackground: #f8fafc;
|
|
176
|
+
--st-component-chat-assistantBubbleText: #0f172a;
|
|
177
|
+
--st-component-chat-composerSurface: #ffffff;
|
|
178
|
+
--st-component-chat-toolCallSurface: #f8fafc;
|
|
179
|
+
--st-component-graph-panelBackground: #0f172a;
|
|
180
|
+
--st-component-graph-panelText: #ffffff;
|
|
181
|
+
--st-component-graph-edgeDefault: rgb(226 232 240 / 0.56);
|
|
182
|
+
--st-component-graph-community1: #4E79A7;
|
|
183
|
+
--st-component-graph-community2: #F28E2B;
|
|
184
|
+
--st-component-graph-community3: #E15759;
|
|
185
|
+
--st-component-graph-community4: #76B7B2;
|
|
186
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export interface CompileThemeOptions {
|
|
2
|
+
selector?: string;
|
|
3
|
+
namespace?: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function compileTheme(input: unknown, options?: CompileThemeOptions): string;
|
|
6
|
+
export declare function compileThemeStyleTag(input: unknown, options?: CompileThemeOptions): string;
|
|
7
|
+
//# sourceMappingURL=compile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAMtF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM,CAI9F"}
|
package/dist/compile.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { toCssVariables } from "@sentropic/design-system-tokens";
|
|
2
|
+
import { assertTenantTheme } from "./schema.js";
|
|
3
|
+
export function compileTheme(input, options = {}) {
|
|
4
|
+
assertTenantTheme(input);
|
|
5
|
+
const theme = input;
|
|
6
|
+
const selector = options.selector ?? `[data-st-theme="${theme.id}"]`;
|
|
7
|
+
const namespace = options.namespace ?? "st";
|
|
8
|
+
return toCssVariables(theme.tokens, selector, namespace);
|
|
9
|
+
}
|
|
10
|
+
export function compileThemeStyleTag(input, options = {}) {
|
|
11
|
+
assertTenantTheme(input);
|
|
12
|
+
const theme = input;
|
|
13
|
+
return `<style data-st-theme-style="${theme.id}">\n${compileTheme(theme, options)}</style>`;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../src/compile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAoB,MAAM,aAAa,CAAC;AAOlE,MAAM,UAAU,YAAY,CAAC,KAAc,EAAE,UAA+B,EAAE;IAC5E,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,KAAoB,CAAC;IACnC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,mBAAmB,KAAK,CAAC,EAAE,IAAI,CAAC;IACrE,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;IAC5C,OAAO,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAc,EAAE,UAA+B,EAAE;IACpF,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,KAAoB,CAAC;IACnC,OAAO,+BAA+B,KAAK,CAAC,EAAE,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;AAC9F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.test.d.ts","sourceRoot":"","sources":["../src/compile.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { readFileSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { compileTheme } from "./compile.js";
|
|
5
|
+
import { sentTechTheme } from "./themes/sent-tech.js";
|
|
6
|
+
describe("compileTheme", () => {
|
|
7
|
+
it("compiles a tenant theme into scoped CSS variables", () => {
|
|
8
|
+
const css = compileTheme(sentTechTheme);
|
|
9
|
+
expect(css).toContain('[data-st-theme="sent-tech"]');
|
|
10
|
+
expect(css).toContain("--st-semantic-action-primary:");
|
|
11
|
+
expect(css).toContain("--st-component-chat-composerSurface:");
|
|
12
|
+
});
|
|
13
|
+
it("rejects malformed themes", () => {
|
|
14
|
+
expect(() => compileTheme({ id: "", label: "Broken", mode: "light", tokens: {} })).toThrow("Theme id is required");
|
|
15
|
+
});
|
|
16
|
+
it("exports build-time CSS for Forge low-coupling integration", () => {
|
|
17
|
+
const css = readFileSync(join(process.cwd(), "css", "forge.css"), "utf8");
|
|
18
|
+
expect(css).toContain('[data-st-theme="forge"]');
|
|
19
|
+
expect(css).toContain("--st-semantic-action-primary");
|
|
20
|
+
expect(css).toContain("--st-component-dataTable-headerBackground");
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=compile.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.test.js","sourceRoot":"","sources":["../src/compile.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,GAAG,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CACxF,sBAAsB,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;QACnE,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1E,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,yBAAyB,CAAC,CAAC;QACjD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,2CAA2C,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { foundation, semantic, component } from "@sentropic/design-system-tokens";
|
|
2
|
+
export type { TokenTree, TokenValue } from "@sentropic/design-system-tokens";
|
|
3
|
+
export type { TenantTheme, ThemeMode } from "./schema.js";
|
|
4
|
+
export { assertTenantTheme } from "./schema.js";
|
|
5
|
+
export { compileTheme, compileThemeStyleTag } from "./compile.js";
|
|
6
|
+
export { sentTechTheme } from "./themes/sent-tech.js";
|
|
7
|
+
export { forgeTheme } from "./themes/forge.js";
|
|
8
|
+
export { entropicTheme } from "./themes/entropic.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAClF,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { foundation, semantic, component } from "@sentropic/design-system-tokens";
|
|
2
|
+
export { assertTenantTheme } from "./schema.js";
|
|
3
|
+
export { compileTheme, compileThemeStyleTag } from "./compile.js";
|
|
4
|
+
export { sentTechTheme } from "./themes/sent-tech.js";
|
|
5
|
+
export { forgeTheme } from "./themes/forge.js";
|
|
6
|
+
export { entropicTheme } from "./themes/entropic.js";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAGlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TokenTree } from "@sentropic/design-system-tokens";
|
|
2
|
+
export type ThemeMode = "light" | "dark";
|
|
3
|
+
export interface TenantTheme {
|
|
4
|
+
id: string;
|
|
5
|
+
label: string;
|
|
6
|
+
mode: ThemeMode;
|
|
7
|
+
tokens: TokenTree;
|
|
8
|
+
}
|
|
9
|
+
export declare function assertTenantTheme(input: unknown): asserts input is TenantTheme;
|
|
10
|
+
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAEjE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,SAAS,CAAC;CACnB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,WAAW,CAiB9E"}
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function assertTenantTheme(input) {
|
|
2
|
+
if (!input || typeof input !== "object") {
|
|
3
|
+
throw new Error("Theme must be an object");
|
|
4
|
+
}
|
|
5
|
+
const theme = input;
|
|
6
|
+
if (typeof theme.id !== "string" || theme.id.trim().length === 0) {
|
|
7
|
+
throw new Error("Theme id is required");
|
|
8
|
+
}
|
|
9
|
+
if (typeof theme.label !== "string" || theme.label.trim().length === 0) {
|
|
10
|
+
throw new Error("Theme label is required");
|
|
11
|
+
}
|
|
12
|
+
if (theme.mode !== "light" && theme.mode !== "dark") {
|
|
13
|
+
throw new Error("Theme mode must be light or dark");
|
|
14
|
+
}
|
|
15
|
+
if (!theme.tokens || typeof theme.tokens !== "object") {
|
|
16
|
+
throw new Error("Theme tokens are required");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC9C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,KAAK,GAAG,KAAgC,CAAC;IAC/C,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropic.d.ts","sourceRoot":"","sources":["../../src/themes/entropic.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,WAsB3B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { component, semantic } from "@sentropic/design-system-tokens";
|
|
2
|
+
export const entropicTheme = {
|
|
3
|
+
id: "entropic",
|
|
4
|
+
label: "Entropic",
|
|
5
|
+
mode: "light",
|
|
6
|
+
tokens: {
|
|
7
|
+
semantic: {
|
|
8
|
+
...semantic,
|
|
9
|
+
action: {
|
|
10
|
+
...semantic.action,
|
|
11
|
+
primary: "oklch(50% 0.134 242.749)",
|
|
12
|
+
primaryText: "#ffffff"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
component: {
|
|
16
|
+
...component,
|
|
17
|
+
chat: {
|
|
18
|
+
...component.chat,
|
|
19
|
+
composerSurface: "#ffffff",
|
|
20
|
+
toolCallSurface: "#f8fafc"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=entropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entropic.js","sourceRoot":"","sources":["../../src/themes/entropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGtE,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,EAAE,EAAE,UAAU;IACd,KAAK,EAAE,UAAU;IACjB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,MAAM,EAAE;gBACN,GAAG,QAAQ,CAAC,MAAM;gBAClB,OAAO,EAAE,0BAA0B;gBACnC,WAAW,EAAE,SAAS;aACvB;SACF;QACD,SAAS,EAAE;YACT,GAAG,SAAS;YACZ,IAAI,EAAE;gBACJ,GAAG,SAAS,CAAC,IAAI;gBACjB,eAAe,EAAE,SAAS;gBAC1B,eAAe,EAAE,SAAS;aAC3B;SACF;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge.d.ts","sourceRoot":"","sources":["../../src/themes/forge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,UAAU,EAAE,WAexB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { component, semantic } from "@sentropic/design-system-tokens";
|
|
2
|
+
export const forgeTheme = {
|
|
3
|
+
id: "forge",
|
|
4
|
+
label: "Sent Tech Forge",
|
|
5
|
+
mode: "light",
|
|
6
|
+
tokens: {
|
|
7
|
+
semantic: {
|
|
8
|
+
...semantic,
|
|
9
|
+
action: {
|
|
10
|
+
...semantic.action,
|
|
11
|
+
primary: "hsl(215 70% 25%)",
|
|
12
|
+
primaryText: "hsl(0 0% 100%)"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
component
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=forge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"forge.js","sourceRoot":"","sources":["../../src/themes/forge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGtE,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,iBAAiB;IACxB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE;QACN,QAAQ,EAAE;YACR,GAAG,QAAQ;YACX,MAAM,EAAE;gBACN,GAAG,QAAQ,CAAC,MAAM;gBAClB,OAAO,EAAE,kBAAkB;gBAC3B,WAAW,EAAE,gBAAgB;aAC9B;SACF;QACD,SAAS;KACV;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sent-tech.d.ts","sourceRoot":"","sources":["../../src/themes/sent-tech.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,eAAO,MAAM,aAAa,EAAE,WAQ3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sent-tech.js","sourceRoot":"","sources":["../../src/themes/sent-tech.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAGtE,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE;QACN,QAAQ;QACR,SAAS;KACV;CACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sentropic/design-system-themes",
|
|
3
|
+
"version": "0.3.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/rhanka/sent-tech-design-system.git",
|
|
11
|
+
"directory": "packages/themes"
|
|
12
|
+
},
|
|
13
|
+
"sideEffects": [
|
|
14
|
+
"**/*.css"
|
|
15
|
+
],
|
|
16
|
+
"main": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./css/sent-tech.css": "./css/sent-tech.css",
|
|
24
|
+
"./css/forge.css": "./css/forge.css",
|
|
25
|
+
"./css/entropic.css": "./css/entropic.css"
|
|
26
|
+
},
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"css"
|
|
30
|
+
],
|
|
31
|
+
"dependencies": {
|
|
32
|
+
"@sentropic/design-system-tokens": "0.3.0"
|
|
33
|
+
},
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsc -p tsconfig.json && npm run build:css",
|
|
36
|
+
"build:css": "node scripts/build-css.mjs",
|
|
37
|
+
"check": "tsc -p tsconfig.json --noEmit",
|
|
38
|
+
"test": "vitest run src"
|
|
39
|
+
}
|
|
40
|
+
}
|