tempest-react-sdk 0.24.0 → 0.25.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/README.md +11 -3
- package/dist/charts/AreaChart.cjs +1 -1
- package/dist/charts/AreaChart.cjs.map +1 -1
- package/dist/charts/AreaChart.js +7 -7
- package/dist/charts/AreaChart.js.map +1 -1
- package/dist/charts/BarChart.cjs +1 -1
- package/dist/charts/BarChart.cjs.map +1 -1
- package/dist/charts/BarChart.js +7 -7
- package/dist/charts/BarChart.js.map +1 -1
- package/dist/charts/LineChart.cjs +1 -1
- package/dist/charts/LineChart.cjs.map +1 -1
- package/dist/charts/LineChart.js +6 -6
- package/dist/charts/LineChart.js.map +1 -1
- package/dist/charts/PieChart.cjs +1 -1
- package/dist/charts/PieChart.cjs.map +1 -1
- package/dist/charts/PieChart.js +6 -6
- package/dist/charts/PieChart.js.map +1 -1
- package/dist/charts/RadarChart.cjs +1 -1
- package/dist/charts/RadarChart.cjs.map +1 -1
- package/dist/charts/RadarChart.js +6 -6
- package/dist/charts/RadarChart.js.map +1 -1
- package/dist/charts/palette.cjs +1 -1
- package/dist/charts/palette.cjs.map +1 -1
- package/dist/charts/palette.js +19 -2
- package/dist/charts/palette.js.map +1 -1
- package/dist/charts/use-chart-colors.cjs +2 -0
- package/dist/charts/use-chart-colors.cjs.map +1 -0
- package/dist/charts/use-chart-colors.js +29 -0
- package/dist/charts/use-chart-colors.js.map +1 -0
- package/dist/charts.cjs +1 -1
- package/dist/charts.d.ts +59 -10
- package/dist/charts.js +8 -7
- package/dist/components/AvatarGroup/AvatarGroup.cjs +2 -0
- package/dist/components/AvatarGroup/AvatarGroup.cjs.map +1 -0
- package/dist/components/AvatarGroup/AvatarGroup.js +39 -0
- package/dist/components/AvatarGroup/AvatarGroup.js.map +1 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.cjs +2 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.cjs.map +1 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.js +16 -0
- package/dist/components/AvatarGroup/AvatarGroup.module.js.map +1 -0
- package/dist/components/Lightbox/Lightbox.cjs +2 -0
- package/dist/components/Lightbox/Lightbox.cjs.map +1 -0
- package/dist/components/Lightbox/Lightbox.js +148 -0
- package/dist/components/Lightbox/Lightbox.js.map +1 -0
- package/dist/components/Lightbox/Lightbox.module.cjs +2 -0
- package/dist/components/Lightbox/Lightbox.module.cjs.map +1 -0
- package/dist/components/Lightbox/Lightbox.module.js +21 -0
- package/dist/components/Lightbox/Lightbox.module.js.map +1 -0
- package/dist/components/SignaturePad/SignaturePad.cjs +2 -0
- package/dist/components/SignaturePad/SignaturePad.cjs.map +1 -0
- package/dist/components/SignaturePad/SignaturePad.js +115 -0
- package/dist/components/SignaturePad/SignaturePad.js.map +1 -0
- package/dist/components/SignaturePad/SignaturePad.module.cjs +2 -0
- package/dist/components/SignaturePad/SignaturePad.module.cjs.map +1 -0
- package/dist/components/SignaturePad/SignaturePad.module.js +11 -0
- package/dist/components/SignaturePad/SignaturePad.module.js.map +1 -0
- package/dist/components/Stepper/Stepper.cjs +1 -1
- package/dist/components/Stepper/Stepper.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.js +43 -19
- package/dist/components/Stepper/Stepper.js.map +1 -1
- package/dist/components/Stepper/Stepper.module.cjs +1 -1
- package/dist/components/Stepper/Stepper.module.cjs.map +1 -1
- package/dist/components/Stepper/Stepper.module.js +6 -3
- package/dist/components/Stepper/Stepper.module.js.map +1 -1
- package/dist/components/TreeView/TreeView.cjs +2 -0
- package/dist/components/TreeView/TreeView.cjs.map +1 -0
- package/dist/components/TreeView/TreeView.js +124 -0
- package/dist/components/TreeView/TreeView.js.map +1 -0
- package/dist/components/TreeView/TreeView.module.cjs +2 -0
- package/dist/components/TreeView/TreeView.module.cjs.map +1 -0
- package/dist/components/TreeView/TreeView.module.js +17 -0
- package/dist/components/TreeView/TreeView.module.js.map +1 -0
- package/dist/components/Wizard/Wizard.cjs +2 -0
- package/dist/components/Wizard/Wizard.cjs.map +1 -0
- package/dist/components/Wizard/Wizard.js +111 -0
- package/dist/components/Wizard/Wizard.js.map +1 -0
- package/dist/components/Wizard/Wizard.module.cjs +2 -0
- package/dist/components/Wizard/Wizard.module.cjs.map +1 -0
- package/dist/components/Wizard/Wizard.module.js +10 -0
- package/dist/components/Wizard/Wizard.module.js.map +1 -0
- package/dist/offline/create-offline-sync.cjs +1 -1
- package/dist/offline/create-offline-sync.cjs.map +1 -1
- package/dist/offline/create-offline-sync.js +8 -2
- package/dist/offline/create-offline-sync.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tempest-react-sdk.cjs +1 -1
- package/dist/tempest-react-sdk.d.ts +605 -2
- package/dist/tempest-react-sdk.js +255 -246
- package/dist/theme/apply-theme.cjs +2 -0
- package/dist/theme/apply-theme.cjs.map +1 -0
- package/dist/theme/apply-theme.js +24 -0
- package/dist/theme/apply-theme.js.map +1 -0
- package/dist/theme/color.cjs +2 -0
- package/dist/theme/color.cjs.map +1 -0
- package/dist/theme/color.js +130 -0
- package/dist/theme/color.js.map +1 -0
- package/dist/theme/create-theme.cjs +5 -0
- package/dist/theme/create-theme.cjs.map +1 -0
- package/dist/theme/create-theme.js +135 -0
- package/dist/theme/create-theme.js.map +1 -0
- package/dist/theme/theme-presets.cjs +2 -0
- package/dist/theme/theme-presets.cjs.map +1 -0
- package/dist/theme/theme-presets.js +82 -0
- package/dist/theme/theme-presets.js.map +1 -0
- package/dist/utilities.css +432 -0
- package/package.json +4 -3
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
/* ============================================================
|
|
2
|
+
* tempest-react-sdk/utilities.css — opt-in app-level layout layer
|
|
3
|
+
*
|
|
4
|
+
* NOT imported by `styles.css`. Import it explicitly when you want it:
|
|
5
|
+
*
|
|
6
|
+
* import "tempest-react-sdk/styles.css";
|
|
7
|
+
* import "tempest-react-sdk/utilities.css";
|
|
8
|
+
*
|
|
9
|
+
* Why it exists: the components are styled by CSS Modules, which means an app
|
|
10
|
+
* still had to hand-write CSS for the layer *around* them — a page shell, a
|
|
11
|
+
* two-column form, a row of actions, a card. This is that layer, expressed only
|
|
12
|
+
* in `--tempest-*` tokens, so it stays in step with the theme (including
|
|
13
|
+
* `createTheme` output and dark mode).
|
|
14
|
+
*
|
|
15
|
+
* Why it is opt-in: it ships ~50 global class names. An app that already has its
|
|
16
|
+
* own layout system should not pay for them, and global classes are not something
|
|
17
|
+
* to inject into someone's page uninvited.
|
|
18
|
+
*
|
|
19
|
+
* Scope rules:
|
|
20
|
+
* - Every class is prefixed `tempest-` (no collisions with app CSS).
|
|
21
|
+
* - Every value comes from a token — no literal colors, no magic numbers.
|
|
22
|
+
* - Tunable per instance through the local `--tempest-*` vars documented below.
|
|
23
|
+
* - Single class, no forced overrides, so your own CSS wins on a specificity
|
|
24
|
+
* tie instead of fighting the layer.
|
|
25
|
+
* ============================================================ */
|
|
26
|
+
|
|
27
|
+
/* ============================================================
|
|
28
|
+
* Layout — the primitives every screen repeats
|
|
29
|
+
* ============================================================ */
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Page container: centered, max-width, gutters that respect the safe area.
|
|
33
|
+
* Tune with `--tempest-container-width` and `--tempest-container-gutter`.
|
|
34
|
+
*/
|
|
35
|
+
.tempest-container {
|
|
36
|
+
width: 100%;
|
|
37
|
+
max-width: var(--tempest-container-width, 1200px);
|
|
38
|
+
margin-inline: auto;
|
|
39
|
+
padding-inline: max(
|
|
40
|
+
var(--tempest-container-gutter, var(--tempest-space-4)),
|
|
41
|
+
var(--tempest-safe-area-left)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/** Vertical flow with a single gap. Tune with `--tempest-stack-gap`. */
|
|
46
|
+
.tempest-stack {
|
|
47
|
+
display: flex;
|
|
48
|
+
flex-direction: column;
|
|
49
|
+
gap: var(--tempest-stack-gap, var(--tempest-space-4));
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/** Horizontal group that wraps instead of overflowing. Tune with `--tempest-cluster-gap`. */
|
|
53
|
+
.tempest-cluster {
|
|
54
|
+
display: flex;
|
|
55
|
+
flex-wrap: wrap;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: var(--tempest-cluster-gap, var(--tempest-space-3));
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Horizontal group that does not wrap — toolbars, inline fields. */
|
|
61
|
+
.tempest-row {
|
|
62
|
+
display: flex;
|
|
63
|
+
flex-direction: row;
|
|
64
|
+
align-items: center;
|
|
65
|
+
gap: var(--tempest-row-gap, var(--tempest-space-3));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/** Center a child both ways. */
|
|
69
|
+
.tempest-center {
|
|
70
|
+
display: flex;
|
|
71
|
+
align-items: center;
|
|
72
|
+
justify-content: center;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** Push the first and last child apart (title on the left, actions on the right). */
|
|
76
|
+
.tempest-spread {
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: center;
|
|
79
|
+
justify-content: space-between;
|
|
80
|
+
gap: var(--tempest-row-gap, var(--tempest-space-3));
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Responsive card grid with no media query: columns fit as many as
|
|
85
|
+
* `--tempest-grid-min` allows.
|
|
86
|
+
*/
|
|
87
|
+
.tempest-grid-auto {
|
|
88
|
+
display: grid;
|
|
89
|
+
gap: var(--tempest-grid-gap, var(--tempest-space-4));
|
|
90
|
+
grid-template-columns: repeat(
|
|
91
|
+
auto-fill,
|
|
92
|
+
minmax(min(var(--tempest-grid-min, 260px), 100%), 1fr)
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Sidebar + content. Collapses to one column below `--tempest-bp-md` because a
|
|
98
|
+
* fixed sidebar is unusable on a phone.
|
|
99
|
+
*/
|
|
100
|
+
.tempest-sidebar-layout {
|
|
101
|
+
display: grid;
|
|
102
|
+
gap: var(--tempest-sidebar-gap, var(--tempest-space-6));
|
|
103
|
+
grid-template-columns: 1fr;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@media (min-width: 768px) {
|
|
107
|
+
.tempest-sidebar-layout {
|
|
108
|
+
grid-template-columns: var(--tempest-sidebar-width, 260px) 1fr;
|
|
109
|
+
align-items: start;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Two-column form grid that collapses on small screens. A field spanning the
|
|
115
|
+
* full row takes `.tempest-form-span`.
|
|
116
|
+
*/
|
|
117
|
+
.tempest-form-grid {
|
|
118
|
+
display: grid;
|
|
119
|
+
gap: var(--tempest-form-gap, var(--tempest-space-4));
|
|
120
|
+
grid-template-columns: 1fr;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
@media (min-width: 640px) {
|
|
124
|
+
.tempest-form-grid {
|
|
125
|
+
grid-template-columns: repeat(var(--tempest-form-columns, 2), minmax(0, 1fr));
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.tempest-form-span {
|
|
130
|
+
grid-column: 1 / -1;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
/** Take the remaining space in a flex container. */
|
|
134
|
+
.tempest-fill {
|
|
135
|
+
flex: 1 1 auto;
|
|
136
|
+
min-width: 0;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/** Never shrink below content size (icon buttons next to a growing field). */
|
|
140
|
+
.tempest-fixed {
|
|
141
|
+
flex: 0 0 auto;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* ============================================================
|
|
145
|
+
* Spacing — gap and padding on the token scale
|
|
146
|
+
* ============================================================ */
|
|
147
|
+
|
|
148
|
+
.tempest-gap-0 {
|
|
149
|
+
gap: var(--tempest-space-0);
|
|
150
|
+
}
|
|
151
|
+
.tempest-gap-1 {
|
|
152
|
+
gap: var(--tempest-space-1);
|
|
153
|
+
}
|
|
154
|
+
.tempest-gap-2 {
|
|
155
|
+
gap: var(--tempest-space-2);
|
|
156
|
+
}
|
|
157
|
+
.tempest-gap-3 {
|
|
158
|
+
gap: var(--tempest-space-3);
|
|
159
|
+
}
|
|
160
|
+
.tempest-gap-4 {
|
|
161
|
+
gap: var(--tempest-space-4);
|
|
162
|
+
}
|
|
163
|
+
.tempest-gap-5 {
|
|
164
|
+
gap: var(--tempest-space-5);
|
|
165
|
+
}
|
|
166
|
+
.tempest-gap-6 {
|
|
167
|
+
gap: var(--tempest-space-6);
|
|
168
|
+
}
|
|
169
|
+
.tempest-gap-8 {
|
|
170
|
+
gap: var(--tempest-space-8);
|
|
171
|
+
}
|
|
172
|
+
.tempest-gap-10 {
|
|
173
|
+
gap: var(--tempest-space-10);
|
|
174
|
+
}
|
|
175
|
+
.tempest-gap-12 {
|
|
176
|
+
gap: var(--tempest-space-12);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.tempest-pad-0 {
|
|
180
|
+
padding: var(--tempest-space-0);
|
|
181
|
+
}
|
|
182
|
+
.tempest-pad-2 {
|
|
183
|
+
padding: var(--tempest-space-2);
|
|
184
|
+
}
|
|
185
|
+
.tempest-pad-3 {
|
|
186
|
+
padding: var(--tempest-space-3);
|
|
187
|
+
}
|
|
188
|
+
.tempest-pad-4 {
|
|
189
|
+
padding: var(--tempest-space-4);
|
|
190
|
+
}
|
|
191
|
+
.tempest-pad-6 {
|
|
192
|
+
padding: var(--tempest-space-6);
|
|
193
|
+
}
|
|
194
|
+
.tempest-pad-8 {
|
|
195
|
+
padding: var(--tempest-space-8);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.tempest-pad-block {
|
|
199
|
+
padding-block: var(--tempest-pad-block, var(--tempest-space-6));
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.tempest-pad-inline {
|
|
203
|
+
padding-inline: var(--tempest-pad-inline, var(--tempest-space-4));
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
/* ============================================================
|
|
207
|
+
* Text — the handful of treatments every screen needs
|
|
208
|
+
* ============================================================ */
|
|
209
|
+
|
|
210
|
+
/** One line, ellipsis. Needs a bounded width (pair with `.tempest-fill`). */
|
|
211
|
+
.tempest-truncate {
|
|
212
|
+
overflow: hidden;
|
|
213
|
+
text-overflow: ellipsis;
|
|
214
|
+
white-space: nowrap;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
/** Clamp to N lines with an ellipsis. */
|
|
218
|
+
.tempest-clamp-2,
|
|
219
|
+
.tempest-clamp-3,
|
|
220
|
+
.tempest-clamp-4 {
|
|
221
|
+
display: -webkit-box;
|
|
222
|
+
-webkit-box-orient: vertical;
|
|
223
|
+
overflow: hidden;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
.tempest-clamp-2 {
|
|
227
|
+
-webkit-line-clamp: 2;
|
|
228
|
+
line-clamp: 2;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.tempest-clamp-3 {
|
|
232
|
+
-webkit-line-clamp: 3;
|
|
233
|
+
line-clamp: 3;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.tempest-clamp-4 {
|
|
237
|
+
-webkit-line-clamp: 4;
|
|
238
|
+
line-clamp: 4;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.tempest-text-muted {
|
|
242
|
+
color: var(--tempest-text-muted);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
.tempest-text-subtle {
|
|
246
|
+
color: var(--tempest-text-subtle);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.tempest-text-xs {
|
|
250
|
+
font-size: var(--tempest-text-xs);
|
|
251
|
+
}
|
|
252
|
+
.tempest-text-sm {
|
|
253
|
+
font-size: var(--tempest-text-sm);
|
|
254
|
+
}
|
|
255
|
+
.tempest-text-base {
|
|
256
|
+
font-size: var(--tempest-text-base);
|
|
257
|
+
}
|
|
258
|
+
.tempest-text-lg {
|
|
259
|
+
font-size: var(--tempest-text-lg);
|
|
260
|
+
}
|
|
261
|
+
.tempest-text-xl {
|
|
262
|
+
font-size: var(--tempest-text-xl);
|
|
263
|
+
}
|
|
264
|
+
.tempest-text-2xl {
|
|
265
|
+
font-size: var(--tempest-text-2xl);
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
.tempest-weight-medium {
|
|
269
|
+
font-weight: var(--tempest-weight-medium);
|
|
270
|
+
}
|
|
271
|
+
.tempest-weight-semibold {
|
|
272
|
+
font-weight: var(--tempest-weight-semibold);
|
|
273
|
+
}
|
|
274
|
+
.tempest-weight-bold {
|
|
275
|
+
font-weight: var(--tempest-weight-bold);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/** Tabular figures — keeps columns of numbers from dancing as values change. */
|
|
279
|
+
.tempest-numeric {
|
|
280
|
+
font-variant-numeric: tabular-nums;
|
|
281
|
+
font-feature-settings: "tnum";
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
/* ============================================================
|
|
285
|
+
* Surfaces — card, panel, divider
|
|
286
|
+
* ============================================================ */
|
|
287
|
+
|
|
288
|
+
/** Raised surface: background, border, radius, shadow. */
|
|
289
|
+
.tempest-card {
|
|
290
|
+
background: var(--tempest-bg);
|
|
291
|
+
border: 1px solid var(--tempest-border);
|
|
292
|
+
border-radius: var(--tempest-radius-lg);
|
|
293
|
+
box-shadow: var(--tempest-shadow-sm);
|
|
294
|
+
padding: var(--tempest-card-padding, var(--tempest-space-5));
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/** Flat surface: same shape, no shadow — for a section inside a card. */
|
|
298
|
+
.tempest-panel {
|
|
299
|
+
background: var(--tempest-surface);
|
|
300
|
+
border: 1px solid var(--tempest-border);
|
|
301
|
+
border-radius: var(--tempest-radius-md);
|
|
302
|
+
padding: var(--tempest-panel-padding, var(--tempest-space-4));
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
/** Inset surface for code samples, empty states, previews. */
|
|
306
|
+
.tempest-inset {
|
|
307
|
+
background: var(--tempest-surface-2);
|
|
308
|
+
border-radius: var(--tempest-radius-md);
|
|
309
|
+
padding: var(--tempest-space-4);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
.tempest-divider {
|
|
313
|
+
border: 0;
|
|
314
|
+
border-top: 1px solid var(--tempest-border);
|
|
315
|
+
margin-block: var(--tempest-space-4);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/* ============================================================
|
|
319
|
+
* Scrolling — bounded regions that do not blow up the page
|
|
320
|
+
* ============================================================ */
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Horizontal scroll region. Wide content (a table, a chart) scrolls *here*
|
|
324
|
+
* instead of making the whole page scroll sideways.
|
|
325
|
+
*/
|
|
326
|
+
.tempest-scroll-x {
|
|
327
|
+
overflow-x: auto;
|
|
328
|
+
overscroll-behavior-x: contain;
|
|
329
|
+
-webkit-overflow-scrolling: touch;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
.tempest-scroll-y {
|
|
333
|
+
overflow-y: auto;
|
|
334
|
+
overscroll-behavior-y: contain;
|
|
335
|
+
-webkit-overflow-scrolling: touch;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
/* ============================================================
|
|
339
|
+
* Page pattern — the shell every screen shares
|
|
340
|
+
* ============================================================ */
|
|
341
|
+
|
|
342
|
+
.tempest-page {
|
|
343
|
+
display: flex;
|
|
344
|
+
flex-direction: column;
|
|
345
|
+
gap: var(--tempest-page-gap, var(--tempest-space-6));
|
|
346
|
+
padding-block: var(--tempest-space-6);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/** Title on the left, actions on the right; stacks on narrow screens. */
|
|
350
|
+
.tempest-page-header {
|
|
351
|
+
display: flex;
|
|
352
|
+
flex-wrap: wrap;
|
|
353
|
+
align-items: flex-start;
|
|
354
|
+
justify-content: space-between;
|
|
355
|
+
gap: var(--tempest-space-3);
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.tempest-page-title {
|
|
359
|
+
margin: 0;
|
|
360
|
+
font-size: var(--tempest-text-fluid-2xl);
|
|
361
|
+
font-weight: var(--tempest-weight-semibold);
|
|
362
|
+
line-height: var(--tempest-leading-tight);
|
|
363
|
+
color: var(--tempest-text);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.tempest-page-subtitle {
|
|
367
|
+
margin: 0;
|
|
368
|
+
font-size: var(--tempest-text-sm);
|
|
369
|
+
color: var(--tempest-text-muted);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/** Sticky filter/action bar above a list. */
|
|
373
|
+
.tempest-toolbar {
|
|
374
|
+
display: flex;
|
|
375
|
+
flex-wrap: wrap;
|
|
376
|
+
align-items: center;
|
|
377
|
+
gap: var(--tempest-space-3);
|
|
378
|
+
padding: var(--tempest-space-3);
|
|
379
|
+
background: var(--tempest-bg);
|
|
380
|
+
border: 1px solid var(--tempest-border);
|
|
381
|
+
border-radius: var(--tempest-radius-md);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
.tempest-toolbar-sticky {
|
|
385
|
+
position: sticky;
|
|
386
|
+
top: var(--tempest-toolbar-top, 0);
|
|
387
|
+
z-index: var(--tempest-z-sticky);
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
/* ============================================================
|
|
391
|
+
* Media — fixed ratios without layout shift
|
|
392
|
+
* ============================================================ */
|
|
393
|
+
|
|
394
|
+
.tempest-aspect-video {
|
|
395
|
+
aspect-ratio: 16 / 9;
|
|
396
|
+
width: 100%;
|
|
397
|
+
object-fit: cover;
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.tempest-aspect-square {
|
|
401
|
+
aspect-ratio: 1 / 1;
|
|
402
|
+
width: 100%;
|
|
403
|
+
object-fit: cover;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
/* ============================================================
|
|
407
|
+
* Misc
|
|
408
|
+
* ============================================================ */
|
|
409
|
+
|
|
410
|
+
/** Visually hidden, still announced by screen readers. */
|
|
411
|
+
.tempest-visually-hidden {
|
|
412
|
+
position: absolute;
|
|
413
|
+
width: 1px;
|
|
414
|
+
height: 1px;
|
|
415
|
+
margin: -1px;
|
|
416
|
+
padding: 0;
|
|
417
|
+
overflow: hidden;
|
|
418
|
+
clip-path: inset(50%);
|
|
419
|
+
white-space: nowrap;
|
|
420
|
+
border: 0;
|
|
421
|
+
}
|
|
422
|
+
|
|
423
|
+
.tempest-no-select {
|
|
424
|
+
user-select: none;
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/** Kill the pointer and dim — a region waiting on a request. */
|
|
428
|
+
.tempest-busy {
|
|
429
|
+
pointer-events: none;
|
|
430
|
+
opacity: 0.6;
|
|
431
|
+
transition: opacity var(--tempest-duration-fast) var(--tempest-ease-out);
|
|
432
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "tempest-react-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "SDK público da Tempest com componentes, hooks e integrações para projetos React.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -81,11 +81,12 @@
|
|
|
81
81
|
"require": "./dist/br.cjs"
|
|
82
82
|
},
|
|
83
83
|
"./styles.css": "./dist/styles.css",
|
|
84
|
-
"./package.json": "./package.json"
|
|
84
|
+
"./package.json": "./package.json",
|
|
85
|
+
"./utilities.css": "./dist/utilities.css"
|
|
85
86
|
},
|
|
86
87
|
"scripts": {
|
|
87
88
|
"dev": "vite build --watch",
|
|
88
|
-
"build": "tsc -b tsconfig.build.json && vite build",
|
|
89
|
+
"build": "tsc -b tsconfig.build.json && vite build && node scripts/copy-css-assets.mjs",
|
|
89
90
|
"typecheck": "tsc -b tsconfig.json --noEmit",
|
|
90
91
|
"lint": "eslint .",
|
|
91
92
|
"format": "prettier --write .",
|