@duro-app/tokens 5.2.0 → 5.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/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +45 -23
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +21 -1
- package/dist/keys.d.ts.map +1 -1
- package/dist/mockup.css +26 -0
- package/dist/raw.d.ts +17 -0
- package/dist/raw.d.ts.map +1 -1
- package/dist/raw.js +36 -11
- package/dist/raw.js.map +1 -1
- package/dist/themes/high-contrast.css.d.ts +4 -0
- package/dist/themes/high-contrast.css.d.ts.map +1 -1
- package/dist/themes/light.css.d.ts +4 -0
- package/dist/themes/light.css.d.ts.map +1 -1
- package/dist/tokens/colors.css.d.ts +4 -0
- package/dist/tokens/colors.css.d.ts.map +1 -1
- package/dist/tokens/effects.css.d.ts +5 -0
- package/dist/tokens/effects.css.d.ts.map +1 -0
- package/dist/tokens/layers.css.d.ts +13 -0
- package/dist/tokens/layers.css.d.ts.map +1 -0
- package/dist/tokens/sizes.css.d.ts +2 -0
- package/dist/tokens/sizes.css.d.ts.map +1 -1
- package/dist/vars.css +18 -0
- package/package.json +3 -1
- package/src/index.ts +2 -0
- package/src/keys.ts +39 -0
- package/src/raw.ts +30 -0
- package/src/themes/high-contrast.css.ts +6 -0
- package/src/themes/light.css.ts +6 -0
- package/src/tokens/colors.css.ts +6 -0
- package/src/tokens/effects.css.ts +12 -0
- package/src/tokens/layers.css.ts +39 -0
- package/src/tokens/sizes.css.ts +3 -0
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export { colors } from './tokens/colors.css';
|
|
|
3
3
|
export { spacing, microSpacing, radii } from './tokens/spacing.css';
|
|
4
4
|
export { sizes } from './tokens/sizes.css';
|
|
5
5
|
export { borders } from './tokens/borders.css';
|
|
6
|
+
export { layers } from './tokens/layers.css';
|
|
7
|
+
export { effects } from './tokens/effects.css';
|
|
6
8
|
export { layoutSpacing } from './tokens/layout-spacing.css';
|
|
7
9
|
export { typography, typeScale } from './tokens/typography.css';
|
|
8
10
|
export { typePresets } from './tokens/type-presets.css';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,aAAa,EAAE,KAAK,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAC,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,WAAW,EAAE,aAAa,EAAE,KAAK,UAAU,EAAC,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAC,OAAO,EAAE,YAAY,EAAE,KAAK,EAAC,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAC,KAAK,EAAC,MAAM,oBAAoB,CAAA;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAC,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAC,aAAa,EAAC,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,yBAAyB,CAAA;AAC7D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAC,OAAO,EAAC,MAAM,sBAAsB,CAAA;AAC5C,OAAO,EAAC,QAAQ,EAAE,MAAM,EAAC,MAAM,qBAAqB,CAAA;AAGpD,OAAO,EAAC,UAAU,EAAE,YAAY,EAAC,MAAM,oBAAoB,CAAA;AAC3D,OAAO,EAAC,iBAAiB,EAAE,mBAAmB,EAAC,MAAM,4BAA4B,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,10 @@ const e = {
|
|
|
38
38
|
infoBg: "var(--infoBg-xho8jir)",
|
|
39
39
|
infoBorder: "var(--infoBorder-xnevk3x)",
|
|
40
40
|
infoText: "var(--infoText-x19pseus)",
|
|
41
|
+
highlight: "var(--highlight-x14yvf5c)",
|
|
42
|
+
highlightBg: "var(--highlightBg-x5qhmj2)",
|
|
43
|
+
highlightBorder: "var(--highlightBorder-xd7ycfq)",
|
|
44
|
+
highlightText: "var(--highlightText-x1lyse6a)",
|
|
41
45
|
scrim: "var(--scrim-x2ypej7)",
|
|
42
46
|
inverseFill: "var(--inverseFill-x1il694p)",
|
|
43
47
|
inverseFillHover: "var(--inverseFillHover-xmxqxj9)",
|
|
@@ -154,6 +158,8 @@ const e = {
|
|
|
154
158
|
sliderW: "var(--sliderW-xvcfp7i)",
|
|
155
159
|
paletteMinW: "var(--paletteMinW-x1514e6j)",
|
|
156
160
|
deviceBarW: "var(--deviceBarW-xqnx4o4)",
|
|
161
|
+
timeGutterW: "var(--timeGutterW-xsc6tna)",
|
|
162
|
+
dayHeaderH: "var(--dayHeaderH-x1j7gty0)",
|
|
157
163
|
__varGroupHash__: "x1w57kmz"
|
|
158
164
|
}, x = {
|
|
159
165
|
hairline: "var(--hairline-xomm6fc)",
|
|
@@ -164,6 +170,20 @@ const e = {
|
|
|
164
170
|
focusOffsetSm: "var(--focusOffsetSm-x1xhasg3)",
|
|
165
171
|
__varGroupHash__: "xqyt3or"
|
|
166
172
|
}, s = {
|
|
173
|
+
raised: "var(--raised-xnqqeg)",
|
|
174
|
+
floating: "var(--floating-x1bmxuyp)",
|
|
175
|
+
overlay: "var(--overlay-x1pg5hea)",
|
|
176
|
+
modal: "var(--modal-x10p0ok)",
|
|
177
|
+
popover: "var(--popover-x13dty8z)",
|
|
178
|
+
popupBackdrop: "var(--popupBackdrop-x17sujb4)",
|
|
179
|
+
popup: "var(--popup-xgi3yzv)",
|
|
180
|
+
toast: "var(--toast-xt0zgmc)",
|
|
181
|
+
portal: "var(--portal-xmizwb3)",
|
|
182
|
+
__varGroupHash__: "x1xauakj"
|
|
183
|
+
}, v = {
|
|
184
|
+
overlayBlur: "var(--overlayBlur-x1i07nq9)",
|
|
185
|
+
__varGroupHash__: "x69o29g"
|
|
186
|
+
}, l = {
|
|
167
187
|
stackXs: "var(--stackXs-x1qfrfo2)",
|
|
168
188
|
stackSm: "var(--stackSm-x2rk1ut)",
|
|
169
189
|
stackMd: "var(--stackMd-xhblkt4)",
|
|
@@ -177,7 +197,7 @@ const e = {
|
|
|
177
197
|
containerMd: "var(--containerMd-x170dvin)",
|
|
178
198
|
containerLg: "var(--containerLg-x1n6aasq)",
|
|
179
199
|
__varGroupHash__: "x16nfoyr"
|
|
180
|
-
},
|
|
200
|
+
}, c = {
|
|
181
201
|
fontFamily: "var(--fontFamily-xvrmnat)",
|
|
182
202
|
fontFamilyMono: "var(--fontFamilyMono-x1bzqfky)",
|
|
183
203
|
fontSizeXs: "var(--fontSizeXs-x1w5m325)",
|
|
@@ -192,7 +212,7 @@ const e = {
|
|
|
192
212
|
fontWeightBold: "var(--fontWeightBold-x1pjkvwg)",
|
|
193
213
|
lineHeight: "var(--lineHeight-x1gubzd5)",
|
|
194
214
|
__varGroupHash__: "xs62swl"
|
|
195
|
-
},
|
|
215
|
+
}, g = {
|
|
196
216
|
fontSize1: "var(--fontSize1-xx27tux)",
|
|
197
217
|
fontSize2: "var(--fontSize2-x5hag8h)",
|
|
198
218
|
fontSize3: "var(--fontSize3-x1mf6j39)",
|
|
@@ -218,7 +238,7 @@ const e = {
|
|
|
218
238
|
letterSpacingNormal: "var(--letterSpacingNormal-x1ih41v1)",
|
|
219
239
|
letterSpacingWide: "var(--letterSpacingWide-xt8z9rj)",
|
|
220
240
|
__varGroupHash__: "x4cj49w"
|
|
221
|
-
},
|
|
241
|
+
}, p = {
|
|
222
242
|
bodySm: {
|
|
223
243
|
"fontFamily-kMv6JI": "fontFamily-xce2pww",
|
|
224
244
|
"fontSize-kGuDYH": "fontSize-x1hn3ytp",
|
|
@@ -332,14 +352,14 @@ const e = {
|
|
|
332
352
|
"letterSpacing-kb6lSQ": "letterSpacing-xql2p2a",
|
|
333
353
|
$$css: "tokens/type-presets.css.ts:104"
|
|
334
354
|
}
|
|
335
|
-
},
|
|
355
|
+
}, h = {
|
|
336
356
|
sm: "var(--sm-x17hhtln)",
|
|
337
357
|
md: "var(--md-x1oyt0aw)",
|
|
338
358
|
lg: "var(--lg-x1mxd62i)",
|
|
339
359
|
dropReady: "var(--dropReady-x19ev27m)",
|
|
340
360
|
dropOver: "var(--dropOver-x1w3k9ro)",
|
|
341
361
|
__varGroupHash__: "x13v825q"
|
|
342
|
-
},
|
|
362
|
+
}, f = {
|
|
343
363
|
instant: "var(--instant-x3tclo2)",
|
|
344
364
|
minimal: "var(--minimal-x39oeki)",
|
|
345
365
|
quick: "var(--quick-xmb6uht)",
|
|
@@ -348,22 +368,22 @@ const e = {
|
|
|
348
368
|
base: "var(--base-x13vs74m)",
|
|
349
369
|
slow: "var(--slow-xtti36c)",
|
|
350
370
|
__varGroupHash__: "x8wiu4o"
|
|
351
|
-
},
|
|
371
|
+
}, d = {
|
|
352
372
|
standard: "var(--standard-xg4ngex)",
|
|
353
373
|
linear: "var(--linear-x13iskbu)",
|
|
354
374
|
easeOut: "var(--easeOut-x1dtgzac)",
|
|
355
375
|
easeIn: "var(--easeIn-xxaysck)",
|
|
356
376
|
__varGroupHash__: "x1unb8zz"
|
|
357
|
-
},
|
|
358
|
-
xjvd03b: "
|
|
377
|
+
}, k = {
|
|
378
|
+
xjvd03b: "x27mww3 xjvd03b",
|
|
359
379
|
$$css: !0
|
|
360
|
-
},
|
|
380
|
+
}, S = {
|
|
361
381
|
x13v825q: "x1jk1o70 x13v825q",
|
|
362
382
|
$$css: !0
|
|
363
|
-
},
|
|
364
|
-
xjvd03b: "
|
|
383
|
+
}, m = {
|
|
384
|
+
xjvd03b: "x1kpt2hd xjvd03b",
|
|
365
385
|
$$css: !0
|
|
366
|
-
},
|
|
386
|
+
}, y = {
|
|
367
387
|
x13v825q: "xc8o4hb x13v825q",
|
|
368
388
|
$$css: !0
|
|
369
389
|
};
|
|
@@ -372,20 +392,22 @@ export {
|
|
|
372
392
|
e as breakpoints,
|
|
373
393
|
r as breakpointsPx,
|
|
374
394
|
t as colors,
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
395
|
+
f as duration,
|
|
396
|
+
d as easing,
|
|
397
|
+
v as effects,
|
|
398
|
+
y as highContrastShadows,
|
|
399
|
+
m as highContrastTheme,
|
|
400
|
+
s as layers,
|
|
401
|
+
l as layoutSpacing,
|
|
402
|
+
S as lightShadows,
|
|
403
|
+
k as lightTheme,
|
|
382
404
|
i as microSpacing,
|
|
383
405
|
n as radii,
|
|
384
|
-
|
|
406
|
+
h as shadows,
|
|
385
407
|
o as sizes,
|
|
386
408
|
a as spacing,
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
409
|
+
p as typePresets,
|
|
410
|
+
g as typeScale,
|
|
411
|
+
c as typography
|
|
390
412
|
};
|
|
391
413
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/tokens/breakpoints.css.ts","../src/tokens/colors.css.ts","../src/tokens/spacing.css.ts","../src/tokens/sizes.css.ts","../src/tokens/borders.css.ts","../src/tokens/layout-spacing.css.ts","../src/tokens/typography.css.ts","../src/tokens/type-presets.css.ts","../src/tokens/shadows.css.ts","../src/tokens/motion.css.ts","../src/themes/light.css.ts","../src/themes/high-contrast.css.ts"],"sourcesContent":["import {css} from 'react-strict-dom'\n\n// Breakpoint scale — the widths at which responsive layouts change.\n//\n// These use `css.defineConsts` rather than `css.defineVars` because CSS media\n// and container queries cannot read custom properties: a query threshold has\n// to be a literal. `defineConsts` values are inlined into the query text at\n// build time by the StyleX babel plugin (that's their whole reason to exist),\n// so `@container (max-width: ${breakpoints.sm})` compiles to a real `640px`.\n//\n// For runtime JS comparisons (`containerWidth < breakpointsPx.sm`) use the\n// plain-number mirror below — defineConsts values are query strings, not\n// numbers. Keep the two in sync. Values follow the common Tailwind-aligned scale.\nexport const breakpoints = css.defineConsts({\n /** Phones — dense tables card up below here. */\n xs: '480px',\n /** Large phone / small tablet. The default \"go to the mobile layout\" line. */\n sm: '640px',\n /** Tablet portrait. */\n md: '768px',\n /** Tablet landscape / small laptop. */\n lg: '1024px',\n /** Desktop. */\n xl: '1280px',\n})\n\nexport const breakpointsPx = {\n xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n} as const\n\nexport type Breakpoint = keyof typeof breakpointsPx\n","import {css} from 'react-strict-dom'\n\nexport const colors = css.defineVars({\n // Backgrounds\n bg: '#0f0f0f',\n bgCard: '#1a1a1a',\n bgCardHover: '#242424',\n\n // Text\n text: '#e5e5e5',\n textMuted: '#b0b0b0',\n\n // Accent\n accent: '#6aaffc',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n\n // Border\n border: '#333333',\n\n // Semantic — Error\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.1)',\n errorBorder: 'rgba(248, 113, 113, 0.3)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n\n // Semantic — Success\n success: '#22c55e',\n successBg: 'rgba(34, 197, 94, 0.1)',\n successBorder: 'rgba(34, 197, 94, 0.3)',\n successText: '#86efac',\n\n // Semantic — Warning\n warning: '#fbbf24',\n warningBg: 'rgba(251, 191, 36, 0.1)',\n warningBorder: 'rgba(251, 191, 36, 0.3)',\n warningText: '#fde68a',\n\n // Semantic — Info (uses accent)\n info: '#6aaffc',\n infoBg: 'rgba(106, 175, 252, 0.1)',\n infoBorder: 'rgba(106, 175, 252, 0.3)',\n infoText: '#93c5fd',\n\n // Fixed overlays — the same in every theme (a scrim darkens whatever is\n // under it; the inverse overlays sit on an accent surface).\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n // A light that does not follow the theme (the Switch knob).\n fixedLight: '#ffffff',\n // A fixed translucent white over content (the light counterpart of scrim).\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n // The opposite tone of the theme: a surface that stands out from the page\n // (toasts, coach marks), with its own text colour. Not the fixed inverse*\n // overlays above, which sit on an accent fill.\n contrastSurface: '#f5f5f5',\n onContrastSurface: '#1a1a1a',\n // A border on contrastSurface, at least 3:1 against it (non-text).\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n})\n","import {css} from 'react-strict-dom'\n\nexport const spacing = css.defineVars({\n xs: '4px',\n sm: '8px',\n ms: '12px',\n md: '16px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n xxxl: '64px',\n})\n\n// Optical micro-steps below and between the spacing scale: a 1-6px nudge that\n// aligns a glyph or tightens a dense control. Not a layout choice, so not part\n// of SpacingToken (no `gap=\"px2\"`); prefer the scale.\nexport const microSpacing = css.defineVars({\n px1: '1px',\n px2: '2px',\n px3: '3px',\n px5: '5px',\n px6: '6px',\n})\n\nexport const radii = css.defineVars({\n xs: '4px',\n px6: '6px',\n sm: '8px',\n md: '12px',\n lg: '16px',\n full: '9999px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const sizes = css.defineVars({\n touchTarget: '44px',\n controlSm: '28px',\n controlMd: '39px',\n controlLg: '40px',\n indicator: '18px',\n indicatorDot: '8px',\n checkMarkW: '5px',\n checkMarkH: '9px',\n switchTrackW: '36px',\n switchTrackH: '20px',\n switchThumb: '16px',\n iconButton: '32px',\n iconButtonSm: '28px',\n spinnerSm: '16px',\n spinnerMd: '24px',\n spinnerLg: '40px',\n glyphXs: '10px',\n glyphSm: '12px',\n glyphMd: '16px',\n iconSm: '16px',\n iconMd: '18px',\n iconLg: '24px',\n iconXl: '36px',\n iconXxl: '48px',\n navMarkerW: '3px',\n navMarkerH: '18px',\n divider: '1px',\n tabIndicator: '2px',\n edgeFade: '32px',\n scrollbar: '8px',\n swatchW: '44px',\n swatchH: '34px',\n labelMinW: '120px',\n popupMinW: '160px',\n listMaxH: '280px',\n listMaxHSm: '200px',\n dialogSm: '400px',\n dialogMd: '520px',\n dialogLg: '680px',\n panelSm: '360px',\n panelMd: '480px',\n panelLg: '640px',\n toastMaxW: '440px',\n gridColSm: '240px',\n gridColMd: '280px',\n pageSm: '600px',\n pageMd: '800px',\n pageLg: '1200px',\n sidebarW: '240px',\n pageXs: '480px',\n pageXl: '1440px',\n asideW: '320px',\n gridColXs: '200px',\n fieldMinWSm: '80px',\n fieldMinW: '160px',\n popoverWSm: '240px',\n popoverW: '320px',\n popupMaxW: '280px',\n meterH: '6px',\n skeletonChipW: '96px',\n dropZoneMinH: '128px',\n canvasMinH: '480px',\n editorMinH: '160px',\n toolbarH: '36px',\n embedW: '550px',\n colorPickerW: '196px',\n colorAreaH: '150px',\n colorTrackH: '12px',\n colorSwatch: '20px',\n colorPreviewH: '22px',\n handle: '16px',\n chip: '24px',\n placeholderMinH: '80px',\n previewMaxH: '320px',\n barH: '4px',\n readoutW: '40px',\n sliderW: '96px',\n paletteMinW: '96px',\n deviceBarW: '96px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const borders = css.defineVars({\n hairline: '1px',\n strong: '2px',\n accent: '3px',\n focusRing: '2px',\n focusOffset: '2px',\n focusOffsetSm: '1px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const layoutSpacing = css.defineVars({\n // Vertical rhythm (stack gaps)\n stackXs: '4px',\n stackSm: '8px',\n stackMd: '16px',\n stackLg: '24px',\n stackXl: '48px',\n\n // Horizontal rhythm (inline gaps)\n inlineXs: '4px',\n inlineSm: '8px',\n inlineMd: '16px',\n inlineLg: '24px',\n\n // Container insets\n containerSm: '16px',\n containerMd: '24px',\n containerLg: '32px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const typography = css.defineVars({\n fontFamily:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif',\n fontFamilyMono: '\"SF Mono\", \"Fira Code\", \"Fira Mono\", \"Roboto Mono\", \"Courier New\", monospace',\n fontSizeXs: '0.75rem',\n fontSizeSm: '0.875rem',\n fontSizeMd: '1rem',\n fontSizeLg: '1.125rem',\n fontSizeXl: '1.25rem',\n fontSizeHeading: '1.5rem',\n fontWeightNormal: '400',\n fontWeightMedium: '500',\n fontWeightSemibold: '600',\n fontWeightBold: '700',\n lineHeight: '1.5',\n})\n\nexport const typeScale = css.defineVars({\n // 9-step font size scale\n fontSize1: '0.75rem', // 12px — captions, badges\n fontSize2: '0.8125rem', // 13px — small UI\n fontSize3: '0.875rem', // 14px — default UI (buttons, inputs)\n fontSize4: '1rem', // 16px — body text\n fontSize5: '1.125rem', // 18px — body-lg\n fontSize6: '1.25rem', // 20px — subheading\n fontSize7: '1.5rem', // 24px — heading-sm\n fontSize8: '1.875rem', // 30px — heading-md\n fontSize9: '2.25rem', // 36px — heading-lg\n\n // Matched line-heights\n lineHeight1: '1rem', // 16px\n lineHeight2: '1.25rem', // 20px\n lineHeight3: '1.25rem', // 20px\n lineHeight4: '1.5rem', // 24px\n lineHeight5: '1.5rem', // 24px\n lineHeight6: '1.75rem', // 28px\n lineHeight7: '2rem', // 32px\n lineHeight8: '2.25rem', // 36px\n lineHeight9: '2.75rem', // 44px\n\n // Fluid display sizes\n displaySm: 'clamp(2.25rem, 1.5rem + 2vw, 3rem)', // 36–48px\n displayMd: 'clamp(2.75rem, 1.75rem + 2.5vw, 3.75rem)', // 44–60px\n displayLg: 'clamp(3.5rem, 2rem + 3.5vw, 4.5rem)', // 56–72px\n\n // Letter-spacing\n letterSpacingTight: '-0.02em',\n letterSpacingNormal: '0',\n letterSpacingWide: '0.04em',\n})\n","import {css} from 'react-strict-dom'\nimport {typography, typeScale} from './typography.css'\n\nexport const typePresets = css.create({\n // Body\n bodySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize4,\n lineHeight: typeScale.lineHeight4,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize5,\n lineHeight: typeScale.lineHeight5,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n\n // UI\n caption: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingWide,\n },\n label: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightMedium,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n code: {\n fontFamily: typography.fontFamilyMono,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n overline: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingWide,\n textTransform: 'uppercase' as const,\n },\n\n // Heading\n headingSm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize6,\n lineHeight: typeScale.lineHeight6,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize7,\n lineHeight: typeScale.lineHeight7,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize8,\n lineHeight: typeScale.lineHeight8,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingXl: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize9,\n lineHeight: typeScale.lineHeight9,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n\n // Display (fluid)\n displaySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displaySm,\n lineHeight: 1.2,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayMd,\n lineHeight: 1.15,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayLg,\n lineHeight: 1.1,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n})\n","import {css} from 'react-strict-dom'\n\nexport const shadows = css.defineVars({\n sm: '0 2px 4px rgba(0, 0, 0, 0.3)',\n md: '0 4px 12px rgba(0, 0, 0, 0.4)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.5)',\n // DragDrop's drop-target rings: borders.hairline in colors.border on every\n // zone that can receive, borders.strong in colors.accent on the one under the\n // pointer. Literal per theme (StyleX needs inline literals); the drift check\n // rebuilds each from the palette. Not focus: focus stays on outlines.\n dropReady: 'inset 0 0 0 1px #333333',\n dropOver: 'inset 0 0 0 2px #6aaffc',\n})\n","import {css} from 'react-strict-dom'\n\n/**\n * Motion timing tokens.\n *\n * Values are harvested from what the system already uses — nothing invented:\n * - durations: 150ms is the de-facto transition (Button, Card, and ~30 other\n * spots), 200ms the common overlay enter (Drawer), 280ms the larger panel\n * enter (DetailPanel). `instant` is for explicit no-motion.\n * `quick` (List hover, sort indicator) and `brisk` (Toast enter) are the\n * two other values components used; `minimal` is the 1ms reduced-motion\n * duration that still fires animationend.\n * - easings: `standard` is the default `ease` used throughout; `easeOut` /\n * `easeIn` are the \"Apple ease\" curves already defined for DetailPanel.\n * `linear` is the Spinner's constant rotation.\n *\n * Reduced motion is handled globally (the `@media (prefers-reduced-motion)`\n * rule in the reset neutralizes timing) plus per-component transform guards, so\n * these stay as plain timing values.\n */\nexport const duration = css.defineVars({\n instant: '0ms',\n // Non-zero so animationend still fires under reduced motion.\n minimal: '1ms',\n quick: '120ms',\n fast: '150ms',\n brisk: '160ms',\n base: '200ms',\n slow: '280ms',\n})\n\nexport const easing = css.defineVars({\n standard: 'ease',\n linear: 'linear',\n easeOut: 'cubic-bezier(0.32, 0.72, 0, 1)',\n easeIn: 'cubic-bezier(0.72, 0, 0.68, 0.28)',\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const lightTheme = css.createTheme(colors, {\n bg: '#ffffff',\n bgCard: '#f5f5f5',\n bgCardHover: '#ebebeb',\n text: '#1a1a1a',\n textMuted: '#4a4a4a',\n accent: '#1e40af',\n accentHover: '#1a3799',\n accentContrast: '#ffffff',\n border: '#d4d4d4',\n error: '#991b1b',\n errorHover: '#7f1d1d',\n errorBg: 'rgba(153, 27, 27, 0.08)',\n errorBorder: 'rgba(153, 27, 27, 0.3)',\n errorText: '#7f1d1d',\n errorContrast: '#ffffff',\n success: '#166534',\n successBg: 'rgba(22, 101, 52, 0.08)',\n successBorder: 'rgba(22, 101, 52, 0.3)',\n successText: '#14532d',\n warning: '#92400e',\n warningBg: 'rgba(146, 64, 14, 0.08)',\n warningBorder: 'rgba(146, 64, 14, 0.3)',\n warningText: '#78350f',\n info: '#1e40af',\n infoBg: 'rgba(30, 64, 175, 0.08)',\n infoBorder: 'rgba(30, 64, 175, 0.3)',\n infoText: '#1e40af',\n // Fixed overlays — the same in every theme (a scrim darkens whatever is\n // under it; the inverse overlays sit on an accent surface).\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n // A light that does not follow the theme (the Switch knob).\n fixedLight: '#ffffff',\n // A fixed translucent white over content (the light counterpart of scrim).\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n // The opposite tone of the theme: a surface that stands out from the page\n // (toasts, coach marks), with its own text colour. Not the fixed inverse*\n // overlays above, which sit on an accent fill.\n contrastSurface: '#1a1a1a',\n onContrastSurface: '#e5e5e5',\n // A border on contrastSurface, at least 3:1 against it (non-text).\n contrastBorder: 'rgba(255, 255, 255, 0.33)',\n})\n\nexport const lightShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.08)',\n md: '0 4px 12px rgba(0, 0, 0, 0.12)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.16)',\n dropReady: 'inset 0 0 0 1px #d4d4d4',\n dropOver: 'inset 0 0 0 2px #1e40af',\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const highContrastTheme = css.createTheme(colors, {\n bg: '#000000',\n bgCard: '#111111',\n bgCardHover: '#1a1a1a',\n text: '#ffffff',\n textMuted: '#b0b0b0',\n accent: '#60a5fa',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#555555',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.15)',\n errorBorder: 'rgba(248, 113, 113, 0.5)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#4ade80',\n successBg: 'rgba(74, 222, 128, 0.15)',\n successBorder: 'rgba(74, 222, 128, 0.5)',\n successText: '#86efac',\n warning: '#fcd34d',\n warningBg: 'rgba(252, 211, 77, 0.15)',\n warningBorder: 'rgba(252, 211, 77, 0.5)',\n warningText: '#fef08a',\n info: '#60a5fa',\n infoBg: 'rgba(96, 165, 250, 0.15)',\n infoBorder: 'rgba(96, 165, 250, 0.5)',\n infoText: '#bfdbfe',\n // Fixed overlays — the same in every theme (a scrim darkens whatever is\n // under it; the inverse overlays sit on an accent surface).\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n // A light that does not follow the theme (the Switch knob).\n fixedLight: '#ffffff',\n // A fixed translucent white over content (the light counterpart of scrim).\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n // The opposite tone of the theme: a surface that stands out from the page\n // (toasts, coach marks), with its own text colour. Not the fixed inverse*\n // overlays above, which sit on an accent fill.\n contrastSurface: '#ffffff',\n onContrastSurface: '#000000',\n // A border on contrastSurface, at least 3:1 against it (non-text).\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n})\n\nexport const highContrastShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.6)',\n md: '0 4px 12px rgba(0, 0, 0, 0.7)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.8)',\n dropReady: 'inset 0 0 0 1px #555555',\n dropOver: 'inset 0 0 0 2px #60a5fa',\n})\n"],"names":["breakpoints","breakpointsPx","colors","spacing","microSpacing","radii","sizes","borders","layoutSpacing","typography","typeScale","typePresets","shadows","duration","easing","lightTheme","lightShadows","highContrastTheme","highContrastShadows"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/tokens/breakpoints.css.ts","../src/tokens/colors.css.ts","../src/tokens/spacing.css.ts","../src/tokens/sizes.css.ts","../src/tokens/borders.css.ts","../src/tokens/layers.css.ts","../src/tokens/effects.css.ts","../src/tokens/layout-spacing.css.ts","../src/tokens/typography.css.ts","../src/tokens/type-presets.css.ts","../src/tokens/shadows.css.ts","../src/tokens/motion.css.ts","../src/themes/light.css.ts","../src/themes/high-contrast.css.ts"],"sourcesContent":["import {css} from 'react-strict-dom'\n\n// Breakpoint scale — the widths at which responsive layouts change.\n//\n// These use `css.defineConsts` rather than `css.defineVars` because CSS media\n// and container queries cannot read custom properties: a query threshold has\n// to be a literal. `defineConsts` values are inlined into the query text at\n// build time by the StyleX babel plugin (that's their whole reason to exist),\n// so `@container (max-width: ${breakpoints.sm})` compiles to a real `640px`.\n//\n// For runtime JS comparisons (`containerWidth < breakpointsPx.sm`) use the\n// plain-number mirror below — defineConsts values are query strings, not\n// numbers. Keep the two in sync. Values follow the common Tailwind-aligned scale.\nexport const breakpoints = css.defineConsts({\n /** Phones — dense tables card up below here. */\n xs: '480px',\n /** Large phone / small tablet. The default \"go to the mobile layout\" line. */\n sm: '640px',\n /** Tablet portrait. */\n md: '768px',\n /** Tablet landscape / small laptop. */\n lg: '1024px',\n /** Desktop. */\n xl: '1280px',\n})\n\nexport const breakpointsPx = {\n xs: 480,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n} as const\n\nexport type Breakpoint = keyof typeof breakpointsPx\n","import {css} from 'react-strict-dom'\n\nexport const colors = css.defineVars({\n // Backgrounds\n bg: '#0f0f0f',\n bgCard: '#1a1a1a',\n bgCardHover: '#242424',\n\n // Text\n text: '#e5e5e5',\n textMuted: '#b0b0b0',\n\n // Accent\n accent: '#6aaffc',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n\n // Border\n border: '#333333',\n\n // Semantic — Error\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.1)',\n errorBorder: 'rgba(248, 113, 113, 0.3)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n\n // Semantic — Success\n success: '#22c55e',\n successBg: 'rgba(34, 197, 94, 0.1)',\n successBorder: 'rgba(34, 197, 94, 0.3)',\n successText: '#86efac',\n\n // Semantic — Warning\n warning: '#fbbf24',\n warningBg: 'rgba(251, 191, 36, 0.1)',\n warningBorder: 'rgba(251, 191, 36, 0.3)',\n warningText: '#fde68a',\n\n // Semantic — Info (uses accent)\n info: '#6aaffc',\n infoBg: 'rgba(106, 175, 252, 0.1)',\n infoBorder: 'rgba(106, 175, 252, 0.3)',\n infoText: '#93c5fd',\n\n // Highlight — a non-status accent (a category, an intent); no status meaning.\n highlight: '#c084fc',\n highlightBg: 'rgba(192, 132, 252, 0.1)',\n highlightBorder: 'rgba(192, 132, 252, 0.3)',\n highlightText: '#d8b4fe',\n\n // Fixed overlays — the same in every theme (a scrim darkens whatever is\n // under it; the inverse overlays sit on an accent surface).\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n // A light that does not follow the theme (the Switch knob).\n fixedLight: '#ffffff',\n // A fixed translucent white over content (the light counterpart of scrim).\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n // The opposite tone of the theme: a surface that stands out from the page\n // (toasts, coach marks), with its own text colour. Not the fixed inverse*\n // overlays above, which sit on an accent fill.\n contrastSurface: '#f5f5f5',\n onContrastSurface: '#1a1a1a',\n // A border on contrastSurface, at least 3:1 against it (non-text).\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n})\n","import {css} from 'react-strict-dom'\n\nexport const spacing = css.defineVars({\n xs: '4px',\n sm: '8px',\n ms: '12px',\n md: '16px',\n lg: '24px',\n xl: '32px',\n xxl: '48px',\n xxxl: '64px',\n})\n\n// Optical micro-steps below and between the spacing scale: a 1-6px nudge that\n// aligns a glyph or tightens a dense control. Not a layout choice, so not part\n// of SpacingToken (no `gap=\"px2\"`); prefer the scale.\nexport const microSpacing = css.defineVars({\n px1: '1px',\n px2: '2px',\n px3: '3px',\n px5: '5px',\n px6: '6px',\n})\n\nexport const radii = css.defineVars({\n xs: '4px',\n px6: '6px',\n sm: '8px',\n md: '12px',\n lg: '16px',\n full: '9999px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const sizes = css.defineVars({\n touchTarget: '44px',\n controlSm: '28px',\n controlMd: '39px',\n controlLg: '40px',\n indicator: '18px',\n indicatorDot: '8px',\n checkMarkW: '5px',\n checkMarkH: '9px',\n switchTrackW: '36px',\n switchTrackH: '20px',\n switchThumb: '16px',\n iconButton: '32px',\n iconButtonSm: '28px',\n spinnerSm: '16px',\n spinnerMd: '24px',\n spinnerLg: '40px',\n glyphXs: '10px',\n glyphSm: '12px',\n glyphMd: '16px',\n iconSm: '16px',\n iconMd: '18px',\n iconLg: '24px',\n iconXl: '36px',\n iconXxl: '48px',\n navMarkerW: '3px',\n navMarkerH: '18px',\n divider: '1px',\n tabIndicator: '2px',\n edgeFade: '32px',\n scrollbar: '8px',\n swatchW: '44px',\n swatchH: '34px',\n labelMinW: '120px',\n popupMinW: '160px',\n listMaxH: '280px',\n listMaxHSm: '200px',\n dialogSm: '400px',\n dialogMd: '520px',\n dialogLg: '680px',\n panelSm: '360px',\n panelMd: '480px',\n panelLg: '640px',\n toastMaxW: '440px',\n gridColSm: '240px',\n gridColMd: '280px',\n pageSm: '600px',\n pageMd: '800px',\n pageLg: '1200px',\n sidebarW: '240px',\n pageXs: '480px',\n pageXl: '1440px',\n asideW: '320px',\n gridColXs: '200px',\n fieldMinWSm: '80px',\n fieldMinW: '160px',\n popoverWSm: '240px',\n popoverW: '320px',\n popupMaxW: '280px',\n meterH: '6px',\n skeletonChipW: '96px',\n dropZoneMinH: '128px',\n canvasMinH: '480px',\n editorMinH: '160px',\n toolbarH: '36px',\n embedW: '550px',\n colorPickerW: '196px',\n colorAreaH: '150px',\n colorTrackH: '12px',\n colorSwatch: '20px',\n colorPreviewH: '22px',\n handle: '16px',\n chip: '24px',\n placeholderMinH: '80px',\n previewMaxH: '320px',\n barH: '4px',\n readoutW: '40px',\n sliderW: '96px',\n paletteMinW: '96px',\n deviceBarW: '96px',\n // Calendar grids: the time-label column and the day-header row.\n timeGutterW: '64px',\n dayHeaderH: '46px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const borders = css.defineVars({\n hairline: '1px',\n strong: '2px',\n accent: '3px',\n focusRing: '2px',\n focusOffset: '2px',\n focusOffsetSm: '1px',\n})\n","import {css} from 'react-strict-dom'\nimport type {LayerToken} from '../keys'\n\n// The z-index scale. Values are unitless strings so `--duro-layer-*` exists\n// for plain CSS; React Native takes a number, so a native overlay reads the\n// numeric LAYERS map from `@duro-app/tokens/keys` instead.\n//\n// They only compete inside one stacking context. Dialog, Drawer, the popups\n// and the toast region all portal into the ThemeProvider mount (`portal`),\n// and this is the order they keep there.\n// StyleX types a var by its literal, so string values would type every layer\n// as a string, which `zIndex` (a number) refuses. Typing the literals as CSS\n// integers makes `zIndex: layers.popup` a number to TypeScript; the cast has\n// no runtime effect (StyleX and the drift check read straight through it).\ntype LayerValue = ReturnType<typeof css.types.integer<number>>\n\nexport const layers = css.defineVars({\n // A focused or sticky part above its siblings (a joined group's focus ring,\n // a scrollbar, a sticky table header).\n raised: '1',\n // Floating chrome over the page: Tooltip, ActionBar.\n floating: '50',\n // A modal's backdrop.\n overlay: '1000',\n // A modal's panel (Dialog, Drawer).\n modal: '1001',\n // A Popover inside a Dialog or Drawer: above that modal, below the popups\n // (a Select, a Menu) and the Select click-catcher opened from inside it.\n // Outside a modal a Popover is `floating`, so a modal opened later covers it.\n popover: '1040',\n // A popup's click-catcher, under the popup itself.\n popupBackdrop: '1049',\n // Popups: Select, Listbox, Menu — above a modal or Popover they open from.\n popup: '1050',\n // The toast region: above popups and modals.\n toast: '1060',\n // The ThemeProvider portal mount that holds all of the above.\n portal: '1100',\n} as unknown as Readonly<Record<LayerToken, LayerValue>>)\n","import {css} from 'react-strict-dom'\n\n// Visual effects. Not themed.\n//\n// overlayBlur: the blur behind a modal's backdrop (a command palette, a\n// lightbox). Apply it ONLY on the backdrop element itself: a backdropFilter\n// (or filter) on an ancestor becomes the containing block for every fixed\n// descendant, so a Dialog or Drawer opened inside it is positioned against\n// that ancestor instead of the viewport.\nexport const effects = css.defineVars({\n overlayBlur: 'blur(2px)',\n})\n","import {css} from 'react-strict-dom'\n\nexport const layoutSpacing = css.defineVars({\n // Vertical rhythm (stack gaps)\n stackXs: '4px',\n stackSm: '8px',\n stackMd: '16px',\n stackLg: '24px',\n stackXl: '48px',\n\n // Horizontal rhythm (inline gaps)\n inlineXs: '4px',\n inlineSm: '8px',\n inlineMd: '16px',\n inlineLg: '24px',\n\n // Container insets\n containerSm: '16px',\n containerMd: '24px',\n containerLg: '32px',\n})\n","import {css} from 'react-strict-dom'\n\nexport const typography = css.defineVars({\n fontFamily:\n '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif',\n fontFamilyMono: '\"SF Mono\", \"Fira Code\", \"Fira Mono\", \"Roboto Mono\", \"Courier New\", monospace',\n fontSizeXs: '0.75rem',\n fontSizeSm: '0.875rem',\n fontSizeMd: '1rem',\n fontSizeLg: '1.125rem',\n fontSizeXl: '1.25rem',\n fontSizeHeading: '1.5rem',\n fontWeightNormal: '400',\n fontWeightMedium: '500',\n fontWeightSemibold: '600',\n fontWeightBold: '700',\n lineHeight: '1.5',\n})\n\nexport const typeScale = css.defineVars({\n // 9-step font size scale\n fontSize1: '0.75rem', // 12px — captions, badges\n fontSize2: '0.8125rem', // 13px — small UI\n fontSize3: '0.875rem', // 14px — default UI (buttons, inputs)\n fontSize4: '1rem', // 16px — body text\n fontSize5: '1.125rem', // 18px — body-lg\n fontSize6: '1.25rem', // 20px — subheading\n fontSize7: '1.5rem', // 24px — heading-sm\n fontSize8: '1.875rem', // 30px — heading-md\n fontSize9: '2.25rem', // 36px — heading-lg\n\n // Matched line-heights\n lineHeight1: '1rem', // 16px\n lineHeight2: '1.25rem', // 20px\n lineHeight3: '1.25rem', // 20px\n lineHeight4: '1.5rem', // 24px\n lineHeight5: '1.5rem', // 24px\n lineHeight6: '1.75rem', // 28px\n lineHeight7: '2rem', // 32px\n lineHeight8: '2.25rem', // 36px\n lineHeight9: '2.75rem', // 44px\n\n // Fluid display sizes\n displaySm: 'clamp(2.25rem, 1.5rem + 2vw, 3rem)', // 36–48px\n displayMd: 'clamp(2.75rem, 1.75rem + 2.5vw, 3.75rem)', // 44–60px\n displayLg: 'clamp(3.5rem, 2rem + 3.5vw, 4.5rem)', // 56–72px\n\n // Letter-spacing\n letterSpacingTight: '-0.02em',\n letterSpacingNormal: '0',\n letterSpacingWide: '0.04em',\n})\n","import {css} from 'react-strict-dom'\nimport {typography, typeScale} from './typography.css'\n\nexport const typePresets = css.create({\n // Body\n bodySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize4,\n lineHeight: typeScale.lineHeight4,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n bodyLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize5,\n lineHeight: typeScale.lineHeight5,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n\n // UI\n caption: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingWide,\n },\n label: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightMedium,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n code: {\n fontFamily: typography.fontFamilyMono,\n fontSize: typeScale.fontSize3,\n lineHeight: typeScale.lineHeight3,\n fontWeight: typography.fontWeightNormal,\n letterSpacing: typeScale.letterSpacingNormal,\n },\n overline: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize1,\n lineHeight: typeScale.lineHeight1,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingWide,\n textTransform: 'uppercase' as const,\n },\n\n // Heading\n headingSm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize6,\n lineHeight: typeScale.lineHeight6,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize7,\n lineHeight: typeScale.lineHeight7,\n fontWeight: typography.fontWeightSemibold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize8,\n lineHeight: typeScale.lineHeight8,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n headingXl: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.fontSize9,\n lineHeight: typeScale.lineHeight9,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n\n // Display (fluid)\n displaySm: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displaySm,\n lineHeight: 1.2,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayMd: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayMd,\n lineHeight: 1.15,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n displayLg: {\n fontFamily: typography.fontFamily,\n fontSize: typeScale.displayLg,\n lineHeight: 1.1,\n fontWeight: typography.fontWeightBold,\n letterSpacing: typeScale.letterSpacingTight,\n },\n})\n","import {css} from 'react-strict-dom'\n\nexport const shadows = css.defineVars({\n sm: '0 2px 4px rgba(0, 0, 0, 0.3)',\n md: '0 4px 12px rgba(0, 0, 0, 0.4)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.5)',\n // DragDrop's drop-target rings: borders.hairline in colors.border on every\n // zone that can receive, borders.strong in colors.accent on the one under the\n // pointer. Literal per theme (StyleX needs inline literals); the drift check\n // rebuilds each from the palette. Not focus: focus stays on outlines.\n dropReady: 'inset 0 0 0 1px #333333',\n dropOver: 'inset 0 0 0 2px #6aaffc',\n})\n","import {css} from 'react-strict-dom'\n\n/**\n * Motion timing tokens.\n *\n * Values are harvested from what the system already uses — nothing invented:\n * - durations: 150ms is the de-facto transition (Button, Card, and ~30 other\n * spots), 200ms the common overlay enter (Drawer), 280ms the larger panel\n * enter (DetailPanel). `instant` is for explicit no-motion.\n * `quick` (List hover, sort indicator) and `brisk` (Toast enter) are the\n * two other values components used; `minimal` is the 1ms reduced-motion\n * duration that still fires animationend.\n * - easings: `standard` is the default `ease` used throughout; `easeOut` /\n * `easeIn` are the \"Apple ease\" curves already defined for DetailPanel.\n * `linear` is the Spinner's constant rotation.\n *\n * Reduced motion is handled globally (the `@media (prefers-reduced-motion)`\n * rule in the reset neutralizes timing) plus per-component transform guards, so\n * these stay as plain timing values.\n */\nexport const duration = css.defineVars({\n instant: '0ms',\n // Non-zero so animationend still fires under reduced motion.\n minimal: '1ms',\n quick: '120ms',\n fast: '150ms',\n brisk: '160ms',\n base: '200ms',\n slow: '280ms',\n})\n\nexport const easing = css.defineVars({\n standard: 'ease',\n linear: 'linear',\n easeOut: 'cubic-bezier(0.32, 0.72, 0, 1)',\n easeIn: 'cubic-bezier(0.72, 0, 0.68, 0.28)',\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const lightTheme = css.createTheme(colors, {\n bg: '#ffffff',\n bgCard: '#f5f5f5',\n bgCardHover: '#ebebeb',\n text: '#1a1a1a',\n textMuted: '#4a4a4a',\n accent: '#1e40af',\n accentHover: '#1a3799',\n accentContrast: '#ffffff',\n border: '#d4d4d4',\n error: '#991b1b',\n errorHover: '#7f1d1d',\n errorBg: 'rgba(153, 27, 27, 0.08)',\n errorBorder: 'rgba(153, 27, 27, 0.3)',\n errorText: '#7f1d1d',\n errorContrast: '#ffffff',\n success: '#166534',\n successBg: 'rgba(22, 101, 52, 0.08)',\n successBorder: 'rgba(22, 101, 52, 0.3)',\n successText: '#14532d',\n warning: '#92400e',\n warningBg: 'rgba(146, 64, 14, 0.08)',\n warningBorder: 'rgba(146, 64, 14, 0.3)',\n warningText: '#78350f',\n info: '#1e40af',\n infoBg: 'rgba(30, 64, 175, 0.08)',\n infoBorder: 'rgba(30, 64, 175, 0.3)',\n infoText: '#1e40af',\n\n // Highlight — a non-status accent (a category, an intent); no status meaning.\n highlight: '#6b21a8',\n highlightBg: 'rgba(107, 33, 168, 0.08)',\n highlightBorder: 'rgba(107, 33, 168, 0.3)',\n highlightText: '#581c87',\n // Fixed overlays — the same in every theme (a scrim darkens whatever is\n // under it; the inverse overlays sit on an accent surface).\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n // A light that does not follow the theme (the Switch knob).\n fixedLight: '#ffffff',\n // A fixed translucent white over content (the light counterpart of scrim).\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n // The opposite tone of the theme: a surface that stands out from the page\n // (toasts, coach marks), with its own text colour. Not the fixed inverse*\n // overlays above, which sit on an accent fill.\n contrastSurface: '#1a1a1a',\n onContrastSurface: '#e5e5e5',\n // A border on contrastSurface, at least 3:1 against it (non-text).\n contrastBorder: 'rgba(255, 255, 255, 0.33)',\n})\n\nexport const lightShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.08)',\n md: '0 4px 12px rgba(0, 0, 0, 0.12)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.16)',\n dropReady: 'inset 0 0 0 1px #d4d4d4',\n dropOver: 'inset 0 0 0 2px #1e40af',\n})\n","import {css} from 'react-strict-dom'\nimport {colors} from '../tokens/colors.css'\nimport {shadows} from '../tokens/shadows.css'\n\nexport const highContrastTheme = css.createTheme(colors, {\n bg: '#000000',\n bgCard: '#111111',\n bgCardHover: '#1a1a1a',\n text: '#ffffff',\n textMuted: '#b0b0b0',\n accent: '#60a5fa',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#555555',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.15)',\n errorBorder: 'rgba(248, 113, 113, 0.5)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#4ade80',\n successBg: 'rgba(74, 222, 128, 0.15)',\n successBorder: 'rgba(74, 222, 128, 0.5)',\n successText: '#86efac',\n warning: '#fcd34d',\n warningBg: 'rgba(252, 211, 77, 0.15)',\n warningBorder: 'rgba(252, 211, 77, 0.5)',\n warningText: '#fef08a',\n info: '#60a5fa',\n infoBg: 'rgba(96, 165, 250, 0.15)',\n infoBorder: 'rgba(96, 165, 250, 0.5)',\n infoText: '#bfdbfe',\n\n // Highlight — a non-status accent (a category, an intent); no status meaning.\n highlight: '#d8b4fe',\n highlightBg: 'rgba(216, 180, 254, 0.15)',\n highlightBorder: 'rgba(216, 180, 254, 0.5)',\n highlightText: '#e9d5ff',\n // Fixed overlays — the same in every theme (a scrim darkens whatever is\n // under it; the inverse overlays sit on an accent surface).\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n // A light that does not follow the theme (the Switch knob).\n fixedLight: '#ffffff',\n // A fixed translucent white over content (the light counterpart of scrim).\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n // The opposite tone of the theme: a surface that stands out from the page\n // (toasts, coach marks), with its own text colour. Not the fixed inverse*\n // overlays above, which sit on an accent fill.\n contrastSurface: '#ffffff',\n onContrastSurface: '#000000',\n // A border on contrastSurface, at least 3:1 against it (non-text).\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n})\n\nexport const highContrastShadows = css.createTheme(shadows, {\n sm: '0 2px 4px rgba(0, 0, 0, 0.6)',\n md: '0 4px 12px rgba(0, 0, 0, 0.7)',\n lg: '0 8px 24px rgba(0, 0, 0, 0.8)',\n dropReady: 'inset 0 0 0 1px #555555',\n dropOver: 'inset 0 0 0 2px #60a5fa',\n})\n"],"names":["breakpoints","breakpointsPx","colors","spacing","microSpacing","radii","sizes","borders","layers","effects","layoutSpacing","typography","typeScale","typePresets","shadows","duration","easing","lightTheme","lightShadows","highContrastTheme","highContrastShadows"],"mappings":"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"}
|
package/dist/keys.d.ts
CHANGED
|
@@ -42,7 +42,7 @@ export declare const DURATION_MS: {
|
|
|
42
42
|
readonly slow: 280;
|
|
43
43
|
};
|
|
44
44
|
export type DurationToken = keyof typeof DURATION_MS;
|
|
45
|
-
export declare const SIZE_KEYS: readonly ["touchTarget", "controlSm", "controlMd", "controlLg", "indicator", "indicatorDot", "checkMarkW", "checkMarkH", "switchTrackW", "switchTrackH", "switchThumb", "iconButton", "iconButtonSm", "spinnerSm", "spinnerMd", "spinnerLg", "glyphXs", "glyphSm", "glyphMd", "iconSm", "iconMd", "iconLg", "iconXl", "iconXxl", "navMarkerW", "navMarkerH", "divider", "tabIndicator", "edgeFade", "scrollbar", "swatchW", "swatchH", "labelMinW", "popupMinW", "listMaxH", "listMaxHSm", "dialogSm", "dialogMd", "dialogLg", "panelSm", "panelMd", "panelLg", "toastMaxW", "gridColSm", "gridColMd", "pageSm", "pageMd", "pageLg", "sidebarW", "pageXs", "pageXl", "asideW", "gridColXs", "fieldMinWSm", "fieldMinW", "popoverWSm", "popoverW", "popupMaxW", "meterH", "skeletonChipW", "dropZoneMinH", "canvasMinH", "editorMinH", "toolbarH", "embedW", "colorPickerW", "colorAreaH", "colorTrackH", "colorSwatch", "colorPreviewH", "handle", "chip", "placeholderMinH", "previewMaxH", "barH", "readoutW", "sliderW", "paletteMinW", "deviceBarW"];
|
|
45
|
+
export declare const SIZE_KEYS: readonly ["touchTarget", "controlSm", "controlMd", "controlLg", "indicator", "indicatorDot", "checkMarkW", "checkMarkH", "switchTrackW", "switchTrackH", "switchThumb", "iconButton", "iconButtonSm", "spinnerSm", "spinnerMd", "spinnerLg", "glyphXs", "glyphSm", "glyphMd", "iconSm", "iconMd", "iconLg", "iconXl", "iconXxl", "navMarkerW", "navMarkerH", "divider", "tabIndicator", "edgeFade", "scrollbar", "swatchW", "swatchH", "labelMinW", "popupMinW", "listMaxH", "listMaxHSm", "dialogSm", "dialogMd", "dialogLg", "panelSm", "panelMd", "panelLg", "toastMaxW", "gridColSm", "gridColMd", "pageSm", "pageMd", "pageLg", "sidebarW", "pageXs", "pageXl", "asideW", "gridColXs", "fieldMinWSm", "fieldMinW", "popoverWSm", "popoverW", "popupMaxW", "meterH", "skeletonChipW", "dropZoneMinH", "canvasMinH", "editorMinH", "toolbarH", "embedW", "colorPickerW", "colorAreaH", "colorTrackH", "colorSwatch", "colorPreviewH", "handle", "chip", "placeholderMinH", "previewMaxH", "barH", "readoutW", "sliderW", "paletteMinW", "deviceBarW", "timeGutterW", "dayHeaderH"];
|
|
46
46
|
export type SizeToken = (typeof SIZE_KEYS)[number];
|
|
47
47
|
export declare const SIZES_PX: {
|
|
48
48
|
readonly touchTarget: 44;
|
|
@@ -124,6 +124,8 @@ export declare const SIZES_PX: {
|
|
|
124
124
|
readonly sliderW: 96;
|
|
125
125
|
readonly paletteMinW: 96;
|
|
126
126
|
readonly deviceBarW: 96;
|
|
127
|
+
readonly timeGutterW: 64;
|
|
128
|
+
readonly dayHeaderH: 46;
|
|
127
129
|
};
|
|
128
130
|
export declare const BORDER_KEYS: readonly ["hairline", "strong", "accent", "focusRing", "focusOffset", "focusOffsetSm"];
|
|
129
131
|
export type BorderToken = (typeof BORDER_KEYS)[number];
|
|
@@ -135,6 +137,24 @@ export declare const BORDERS_PX: {
|
|
|
135
137
|
readonly focusOffset: 2;
|
|
136
138
|
readonly focusOffsetSm: 1;
|
|
137
139
|
};
|
|
140
|
+
export declare const LAYER_KEYS: readonly ["raised", "floating", "overlay", "modal", "popover", "popupBackdrop", "popup", "toast", "portal"];
|
|
141
|
+
export type LayerToken = (typeof LAYER_KEYS)[number];
|
|
142
|
+
export declare const LAYERS: {
|
|
143
|
+
readonly raised: 1;
|
|
144
|
+
readonly floating: 50;
|
|
145
|
+
readonly overlay: 1000;
|
|
146
|
+
readonly modal: 1001;
|
|
147
|
+
readonly popover: 1040;
|
|
148
|
+
readonly popupBackdrop: 1049;
|
|
149
|
+
readonly popup: 1050;
|
|
150
|
+
readonly toast: 1060;
|
|
151
|
+
readonly portal: 1100;
|
|
152
|
+
};
|
|
153
|
+
export declare const EFFECT_KEYS: readonly ["overlayBlur"];
|
|
154
|
+
export type EffectToken = (typeof EFFECT_KEYS)[number];
|
|
155
|
+
export declare const EFFECTS: {
|
|
156
|
+
readonly overlayBlur: "blur(2px)";
|
|
157
|
+
};
|
|
138
158
|
export declare const ICON_SIZES: {
|
|
139
159
|
readonly sm: 16;
|
|
140
160
|
readonly md: 18;
|
package/dist/keys.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,UAAU,CAAA;AAEvC,eAAO,MAAM,YAAY,8DAA+D,CAAA;AACxF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAGxD,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAA;AAGV,eAAO,MAAM,kBAAkB,8CAA+C,CAAA;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AACnE,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAA;AAEV,eAAO,MAAM,WAAW,kDAAmD,CAAA;AAC3E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAGtD,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAA;AAEV,eAAO,MAAM,WAAW,sDAAuD,CAAA;AAC/E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAGtD,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAA;AACV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAA;AAEpD,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,UAAU,CAAA;AAEvC,eAAO,MAAM,YAAY,8DAA+D,CAAA;AACxF,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAA;AAGxD,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAA;AAGV,eAAO,MAAM,kBAAkB,8CAA+C,CAAA;AAC9E,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAA;AACnE,eAAO,MAAM,gBAAgB;;;;;;CAMnB,CAAA;AAEV,eAAO,MAAM,WAAW,kDAAmD,CAAA;AAC3E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAGtD,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAA;AAEV,eAAO,MAAM,WAAW,sDAAuD,CAAA;AAC/E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAGtD,eAAO,MAAM,WAAW;;;;;;;;CAQd,CAAA;AACV,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,WAAW,CAAA;AAEpD,eAAO,MAAM,SAAS,uhCAkFZ,CAAA;AACV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAA;AAGlD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFX,CAAA;AAEV,eAAO,MAAM,WAAW,wFAOd,CAAA;AACV,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAGtD,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAA;AAEV,eAAO,MAAM,UAAU,6GAUb,CAAA;AACV,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAA;AAIpD,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAA;AAEV,eAAO,MAAM,WAAW,0BAA2B,CAAA;AACnD,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAA;AAGtD,eAAO,MAAM,OAAO;;CAEV,CAAA;AAKV,eAAO,MAAM,UAAU;;;;;;CAMb,CAAA;AACV,MAAM,MAAM,QAAQ,GAAG,MAAM,OAAO,UAAU,CAAA;AAK9C,eAAO,MAAM,eAAe,yCAA0C,CAAA;AACtE,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAA;AAGV,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAA;AAGV,eAAO,MAAM,YAAY;;;;;CAKf,CAAA;AAGV,eAAO,MAAM,wBAAwB;;;;;;;;;;CAU3B,CAAA;AAGV,eAAO,MAAM,OAAO;;;;;;CAMV,CAAA;AAGV,eAAO,MAAM,OAAO;;;;;CAKV,CAAA;AAEV,MAAM,MAAM,UAAU,GAAG,MAAM,SAAS,CAAA;AAExC,YAAY,EAAC,UAAU,EAAC,MAAM,6BAA6B,CAAA"}
|
package/dist/mockup.css
CHANGED
|
@@ -28,6 +28,10 @@
|
|
|
28
28
|
--duro-color-error-hover: #fca5a5;
|
|
29
29
|
--duro-color-error-text: #fca5a5;
|
|
30
30
|
--duro-color-fixed-light: #ffffff;
|
|
31
|
+
--duro-color-highlight: #c084fc;
|
|
32
|
+
--duro-color-highlight-bg: rgba(192, 132, 252, 0.1);
|
|
33
|
+
--duro-color-highlight-border: rgba(192, 132, 252, 0.3);
|
|
34
|
+
--duro-color-highlight-text: #d8b4fe;
|
|
31
35
|
--duro-color-info: #6aaffc;
|
|
32
36
|
--duro-color-info-bg: rgba(106, 175, 252, 0.1);
|
|
33
37
|
--duro-color-info-border: rgba(106, 175, 252, 0.3);
|
|
@@ -92,6 +96,7 @@
|
|
|
92
96
|
--duro-size-control-lg: 40px;
|
|
93
97
|
--duro-size-control-md: 39px;
|
|
94
98
|
--duro-size-control-sm: 28px;
|
|
99
|
+
--duro-size-day-header-h: 46px;
|
|
95
100
|
--duro-size-device-bar-w: 96px;
|
|
96
101
|
--duro-size-dialog-lg: 680px;
|
|
97
102
|
--duro-size-dialog-md: 520px;
|
|
@@ -154,6 +159,7 @@
|
|
|
154
159
|
--duro-size-switch-track-h: 20px;
|
|
155
160
|
--duro-size-switch-track-w: 36px;
|
|
156
161
|
--duro-size-tab-indicator: 2px;
|
|
162
|
+
--duro-size-time-gutter-w: 64px;
|
|
157
163
|
--duro-size-toast-max-w: 440px;
|
|
158
164
|
--duro-size-toolbar-h: 36px;
|
|
159
165
|
--duro-size-touch-target: 44px;
|
|
@@ -164,6 +170,18 @@
|
|
|
164
170
|
--duro-border-focus-ring: 2px;
|
|
165
171
|
--duro-border-hairline: 1px;
|
|
166
172
|
--duro-border-strong: 2px;
|
|
173
|
+
/* layers */
|
|
174
|
+
--duro-layer-floating: 50;
|
|
175
|
+
--duro-layer-modal: 1001;
|
|
176
|
+
--duro-layer-overlay: 1000;
|
|
177
|
+
--duro-layer-popover: 1040;
|
|
178
|
+
--duro-layer-popup: 1050;
|
|
179
|
+
--duro-layer-popup-backdrop: 1049;
|
|
180
|
+
--duro-layer-portal: 1100;
|
|
181
|
+
--duro-layer-raised: 1;
|
|
182
|
+
--duro-layer-toast: 1060;
|
|
183
|
+
/* effects */
|
|
184
|
+
--duro-effect-overlay-blur: blur(2px);
|
|
167
185
|
/* layoutSpacing */
|
|
168
186
|
--duro-layout-spacing-container-lg: 32px;
|
|
169
187
|
--duro-layout-spacing-container-md: 24px;
|
|
@@ -256,6 +274,10 @@
|
|
|
256
274
|
--duro-color-error-hover: #7f1d1d;
|
|
257
275
|
--duro-color-error-text: #7f1d1d;
|
|
258
276
|
--duro-color-fixed-light: #ffffff;
|
|
277
|
+
--duro-color-highlight: #6b21a8;
|
|
278
|
+
--duro-color-highlight-bg: rgba(107, 33, 168, 0.08);
|
|
279
|
+
--duro-color-highlight-border: rgba(107, 33, 168, 0.3);
|
|
280
|
+
--duro-color-highlight-text: #581c87;
|
|
259
281
|
--duro-color-info: #1e40af;
|
|
260
282
|
--duro-color-info-bg: rgba(30, 64, 175, 0.08);
|
|
261
283
|
--duro-color-info-border: rgba(30, 64, 175, 0.3);
|
|
@@ -304,6 +326,10 @@
|
|
|
304
326
|
--duro-color-error-hover: #fca5a5;
|
|
305
327
|
--duro-color-error-text: #fca5a5;
|
|
306
328
|
--duro-color-fixed-light: #ffffff;
|
|
329
|
+
--duro-color-highlight: #d8b4fe;
|
|
330
|
+
--duro-color-highlight-bg: rgba(216, 180, 254, 0.15);
|
|
331
|
+
--duro-color-highlight-border: rgba(216, 180, 254, 0.5);
|
|
332
|
+
--duro-color-highlight-text: #e9d5ff;
|
|
307
333
|
--duro-color-info: #60a5fa;
|
|
308
334
|
--duro-color-info-bg: rgba(96, 165, 250, 0.15);
|
|
309
335
|
--duro-color-info-border: rgba(96, 165, 250, 0.5);
|
package/dist/raw.d.ts
CHANGED
|
@@ -26,6 +26,10 @@ export type RawColors = {
|
|
|
26
26
|
infoBg: string;
|
|
27
27
|
infoBorder: string;
|
|
28
28
|
infoText: string;
|
|
29
|
+
highlight: string;
|
|
30
|
+
highlightBg: string;
|
|
31
|
+
highlightBorder: string;
|
|
32
|
+
highlightText: string;
|
|
29
33
|
scrim: string;
|
|
30
34
|
inverseFill: string;
|
|
31
35
|
inverseFillHover: string;
|
|
@@ -71,6 +75,17 @@ export declare const BORDERS_PX: {
|
|
|
71
75
|
readonly focusOffset: 2;
|
|
72
76
|
readonly focusOffsetSm: 1;
|
|
73
77
|
};
|
|
78
|
+
export declare const LAYERS: {
|
|
79
|
+
readonly raised: 1;
|
|
80
|
+
readonly floating: 50;
|
|
81
|
+
readonly overlay: 1000;
|
|
82
|
+
readonly modal: 1001;
|
|
83
|
+
readonly popover: 1040;
|
|
84
|
+
readonly popupBackdrop: 1049;
|
|
85
|
+
readonly popup: 1050;
|
|
86
|
+
readonly toast: 1060;
|
|
87
|
+
readonly portal: 1100;
|
|
88
|
+
};
|
|
74
89
|
export declare const SIZES_PX: {
|
|
75
90
|
readonly touchTarget: 44;
|
|
76
91
|
readonly controlSm: 28;
|
|
@@ -151,6 +166,8 @@ export declare const SIZES_PX: {
|
|
|
151
166
|
readonly sliderW: 96;
|
|
152
167
|
readonly paletteMinW: 96;
|
|
153
168
|
readonly deviceBarW: 96;
|
|
169
|
+
readonly timeGutterW: 64;
|
|
170
|
+
readonly dayHeaderH: 46;
|
|
154
171
|
};
|
|
155
172
|
export declare const EMAIL_PX: {
|
|
156
173
|
readonly emailCardW: 520;
|
package/dist/raw.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../src/raw.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAKD,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAA;AAEV,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAA;AAEV,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAA;AAEV,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"raw.d.ts","sourceRoot":"","sources":["../src/raw.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,iBAAiB,EAAE,MAAM,CAAA;IACzB,cAAc,EAAE,MAAM,CAAA;CACvB,CAAA;AAKD,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAA;AAEV,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAA;AAEV,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAA;AAEV,eAAO,MAAM,UAAU;;;;;;;CAOb,CAAA;AAEV,eAAO,MAAM,MAAM;;;;;;;;;;CAUT,CAAA;AAEV,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkFX,CAAA;AAIV,eAAO,MAAM,QAAQ;;;CAA+C,CAAA;AAGpE,eAAO,MAAM,UAAU,EAAE,SA0CxB,CAAA;AAGD,eAAO,MAAM,WAAW,EAAE,SA0CzB,CAAA;AAGD,eAAO,MAAM,kBAAkB,EAAE,SA0ChC,CAAA"}
|
package/dist/raw.js
CHANGED
|
@@ -28,7 +28,17 @@ const r = {
|
|
|
28
28
|
focusRing: 2,
|
|
29
29
|
focusOffset: 2,
|
|
30
30
|
focusOffsetSm: 1
|
|
31
|
-
},
|
|
31
|
+
}, t = {
|
|
32
|
+
raised: 1,
|
|
33
|
+
floating: 50,
|
|
34
|
+
overlay: 1e3,
|
|
35
|
+
modal: 1001,
|
|
36
|
+
popover: 1040,
|
|
37
|
+
popupBackdrop: 1049,
|
|
38
|
+
popup: 1050,
|
|
39
|
+
toast: 1060,
|
|
40
|
+
portal: 1100
|
|
41
|
+
}, g = {
|
|
32
42
|
touchTarget: 44,
|
|
33
43
|
controlSm: 28,
|
|
34
44
|
controlMd: 39,
|
|
@@ -107,11 +117,13 @@ const r = {
|
|
|
107
117
|
readoutW: 40,
|
|
108
118
|
sliderW: 96,
|
|
109
119
|
paletteMinW: 96,
|
|
110
|
-
deviceBarW: 96
|
|
111
|
-
|
|
120
|
+
deviceBarW: 96,
|
|
121
|
+
timeGutterW: 64,
|
|
122
|
+
dayHeaderH: 46
|
|
123
|
+
}, i = {
|
|
112
124
|
emailCardW: 520,
|
|
113
125
|
trackingPixel: 1
|
|
114
|
-
},
|
|
126
|
+
}, n = {
|
|
115
127
|
bg: "#0f0f0f",
|
|
116
128
|
bgCard: "#1a1a1a",
|
|
117
129
|
bgCardHover: "#242424",
|
|
@@ -139,6 +151,10 @@ const r = {
|
|
|
139
151
|
infoBg: "rgba(106, 175, 252, 0.1)",
|
|
140
152
|
infoBorder: "rgba(106, 175, 252, 0.3)",
|
|
141
153
|
infoText: "#93c5fd",
|
|
154
|
+
highlight: "#c084fc",
|
|
155
|
+
highlightBg: "rgba(192, 132, 252, 0.1)",
|
|
156
|
+
highlightBorder: "rgba(192, 132, 252, 0.3)",
|
|
157
|
+
highlightText: "#d8b4fe",
|
|
142
158
|
scrim: "rgba(0, 0, 0, 0.4)",
|
|
143
159
|
inverseFill: "rgba(0, 0, 0, 0.10)",
|
|
144
160
|
inverseFillHover: "rgba(0, 0, 0, 0.18)",
|
|
@@ -149,7 +165,7 @@ const r = {
|
|
|
149
165
|
contrastSurface: "#f5f5f5",
|
|
150
166
|
onContrastSurface: "#1a1a1a",
|
|
151
167
|
contrastBorder: "rgba(0, 0, 0, 0.42)"
|
|
152
|
-
},
|
|
168
|
+
}, f = {
|
|
153
169
|
bg: "#ffffff",
|
|
154
170
|
bgCard: "#f5f5f5",
|
|
155
171
|
bgCardHover: "#ebebeb",
|
|
@@ -177,6 +193,10 @@ const r = {
|
|
|
177
193
|
infoBg: "rgba(30, 64, 175, 0.08)",
|
|
178
194
|
infoBorder: "rgba(30, 64, 175, 0.3)",
|
|
179
195
|
infoText: "#1e40af",
|
|
196
|
+
highlight: "#6b21a8",
|
|
197
|
+
highlightBg: "rgba(107, 33, 168, 0.08)",
|
|
198
|
+
highlightBorder: "rgba(107, 33, 168, 0.3)",
|
|
199
|
+
highlightText: "#581c87",
|
|
180
200
|
scrim: "rgba(0, 0, 0, 0.4)",
|
|
181
201
|
inverseFill: "rgba(0, 0, 0, 0.10)",
|
|
182
202
|
inverseFillHover: "rgba(0, 0, 0, 0.18)",
|
|
@@ -187,7 +207,7 @@ const r = {
|
|
|
187
207
|
contrastSurface: "#1a1a1a",
|
|
188
208
|
onContrastSurface: "#e5e5e5",
|
|
189
209
|
contrastBorder: "rgba(255, 255, 255, 0.33)"
|
|
190
|
-
},
|
|
210
|
+
}, c = {
|
|
191
211
|
bg: "#000000",
|
|
192
212
|
bgCard: "#111111",
|
|
193
213
|
bgCardHover: "#1a1a1a",
|
|
@@ -215,6 +235,10 @@ const r = {
|
|
|
215
235
|
infoBg: "rgba(96, 165, 250, 0.15)",
|
|
216
236
|
infoBorder: "rgba(96, 165, 250, 0.5)",
|
|
217
237
|
infoText: "#bfdbfe",
|
|
238
|
+
highlight: "#d8b4fe",
|
|
239
|
+
highlightBg: "rgba(216, 180, 254, 0.15)",
|
|
240
|
+
highlightBorder: "rgba(216, 180, 254, 0.5)",
|
|
241
|
+
highlightText: "#e9d5ff",
|
|
218
242
|
scrim: "rgba(0, 0, 0, 0.4)",
|
|
219
243
|
inverseFill: "rgba(0, 0, 0, 0.10)",
|
|
220
244
|
inverseFillHover: "rgba(0, 0, 0, 0.18)",
|
|
@@ -228,13 +252,14 @@ const r = {
|
|
|
228
252
|
};
|
|
229
253
|
export {
|
|
230
254
|
o as BORDERS_PX,
|
|
231
|
-
|
|
255
|
+
i as EMAIL_PX,
|
|
232
256
|
a as FONT_SIZE_REM,
|
|
257
|
+
t as LAYERS,
|
|
233
258
|
e as RADII_PX,
|
|
234
|
-
|
|
259
|
+
g as SIZES_PX,
|
|
235
260
|
r as SPACING_PX,
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
261
|
+
n as darkColors,
|
|
262
|
+
c as highContrastColors,
|
|
263
|
+
f as lightColors
|
|
239
264
|
};
|
|
240
265
|
//# sourceMappingURL=raw.js.map
|
package/dist/raw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw.js","sources":["../src/raw.ts"],"sourcesContent":["// Plain hex values for non-`react-strict-dom` consumers (e.g. an MUI\n// `createTheme` palette). These mirror the literals defined in\n// `tokens/colors.css.ts`, `themes/light.css.ts`, and `themes/high-contrast.css.ts`.\n//\n// We can't make the css.ts files import from here: StyleX (the babel plugin\n// behind RSD's `css.defineVars` / `css.createTheme` on web) requires the\n// argument to be an inline object literal. So values live in two places.\n//\n// `scripts/check-token-drift.mjs` runs in `prebuild` and fails the build if\n// the literal in any css.ts file diverges from the corresponding export here.\n\nexport type RawColors = {\n bg: string\n bgCard: string\n bgCardHover: string\n text: string\n textMuted: string\n accent: string\n accentHover: string\n accentContrast: string\n border: string\n error: string\n errorHover: string\n errorBg: string\n errorBorder: string\n errorText: string\n errorContrast: string\n success: string\n successBg: string\n successBorder: string\n successText: string\n warning: string\n warningBg: string\n warningBorder: string\n warningText: string\n info: string\n infoBg: string\n infoBorder: string\n infoText: string\n scrim: string\n inverseFill: string\n inverseFillHover: string\n inverseBorder: string\n inverseBorderHover: string\n fixedLight: string\n overlayLight: string\n contrastSurface: string\n onContrastSurface: string\n contrastBorder: string\n}\n\n// Numeric maps for consumers that load only the compiled `/raw` entry (e.g.\n// ui-email, which cannot read CSS variables or the TypeScript `/keys` source).\n// Copies of the keys.ts maps; check-token-drift.mjs fails if they diverge.\nexport const SPACING_PX = {\n xs: 4,\n sm: 8,\n ms: 12,\n md: 16,\n lg: 24,\n xl: 32,\n xxl: 48,\n xxxl: 64,\n} as const\n\nexport const RADII_PX = {\n xs: 4,\n px6: 6,\n sm: 8,\n md: 12,\n lg: 16,\n full: 9999,\n} as const\n\nexport const FONT_SIZE_REM = {\n fontSizeXs: 0.75,\n fontSizeSm: 0.875,\n fontSizeMd: 1,\n fontSizeLg: 1.125,\n fontSizeXl: 1.25,\n fontSizeHeading: 1.5,\n} as const\n\nexport const BORDERS_PX = {\n hairline: 1,\n strong: 2,\n accent: 3,\n focusRing: 2,\n focusOffset: 2,\n focusOffsetSm: 1,\n} as const\n\nexport const SIZES_PX = {\n touchTarget: 44,\n controlSm: 28,\n controlMd: 39,\n controlLg: 40,\n indicator: 18,\n indicatorDot: 8,\n checkMarkW: 5,\n checkMarkH: 9,\n switchTrackW: 36,\n switchTrackH: 20,\n switchThumb: 16,\n iconButton: 32,\n iconButtonSm: 28,\n spinnerSm: 16,\n spinnerMd: 24,\n spinnerLg: 40,\n glyphXs: 10,\n glyphSm: 12,\n glyphMd: 16,\n iconSm: 16,\n iconMd: 18,\n iconLg: 24,\n iconXl: 36,\n iconXxl: 48,\n navMarkerW: 3,\n navMarkerH: 18,\n divider: 1,\n tabIndicator: 2,\n edgeFade: 32,\n scrollbar: 8,\n swatchW: 44,\n swatchH: 34,\n labelMinW: 120,\n popupMinW: 160,\n listMaxH: 280,\n listMaxHSm: 200,\n dialogSm: 400,\n dialogMd: 520,\n dialogLg: 680,\n panelSm: 360,\n panelMd: 480,\n panelLg: 640,\n toastMaxW: 440,\n gridColSm: 240,\n gridColMd: 280,\n pageSm: 600,\n pageMd: 800,\n pageLg: 1200,\n sidebarW: 240,\n pageXs: 480,\n pageXl: 1440,\n asideW: 320,\n gridColXs: 200,\n fieldMinWSm: 80,\n fieldMinW: 160,\n popoverWSm: 240,\n popoverW: 320,\n popupMaxW: 280,\n meterH: 6,\n skeletonChipW: 96,\n dropZoneMinH: 128,\n canvasMinH: 480,\n editorMinH: 160,\n toolbarH: 36,\n embedW: 550,\n colorPickerW: 196,\n colorAreaH: 150,\n colorTrackH: 12,\n colorSwatch: 20,\n colorPreviewH: 22,\n handle: 16,\n chip: 24,\n placeholderMinH: 80,\n previewMaxH: 320,\n barH: 4,\n readoutW: 40,\n sliderW: 96,\n paletteMinW: 96,\n deviceBarW: 96,\n} as const\n\n// Email-only measures: no CSS variable (mail clients cannot read them) and not\n// a lint candidate, so it is deliberately absent from keys.ts.\nexport const EMAIL_PX = {emailCardW: 520, trackingPixel: 1} as const\n\n// Dark theme — matches the defaults in `tokens/colors.css.ts`.\nexport const darkColors: RawColors = {\n bg: '#0f0f0f',\n bgCard: '#1a1a1a',\n bgCardHover: '#242424',\n text: '#e5e5e5',\n textMuted: '#b0b0b0',\n accent: '#6aaffc',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#333333',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.1)',\n errorBorder: 'rgba(248, 113, 113, 0.3)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#22c55e',\n successBg: 'rgba(34, 197, 94, 0.1)',\n successBorder: 'rgba(34, 197, 94, 0.3)',\n successText: '#86efac',\n warning: '#fbbf24',\n warningBg: 'rgba(251, 191, 36, 0.1)',\n warningBorder: 'rgba(251, 191, 36, 0.3)',\n warningText: '#fde68a',\n info: '#6aaffc',\n infoBg: 'rgba(106, 175, 252, 0.1)',\n infoBorder: 'rgba(106, 175, 252, 0.3)',\n infoText: '#93c5fd',\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n fixedLight: '#ffffff',\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n contrastSurface: '#f5f5f5',\n onContrastSurface: '#1a1a1a',\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n}\n\n// Light theme — matches the overrides in `themes/light.css.ts`.\nexport const lightColors: RawColors = {\n bg: '#ffffff',\n bgCard: '#f5f5f5',\n bgCardHover: '#ebebeb',\n text: '#1a1a1a',\n textMuted: '#4a4a4a',\n accent: '#1e40af',\n accentHover: '#1a3799',\n accentContrast: '#ffffff',\n border: '#d4d4d4',\n error: '#991b1b',\n errorHover: '#7f1d1d',\n errorBg: 'rgba(153, 27, 27, 0.08)',\n errorBorder: 'rgba(153, 27, 27, 0.3)',\n errorText: '#7f1d1d',\n errorContrast: '#ffffff',\n success: '#166534',\n successBg: 'rgba(22, 101, 52, 0.08)',\n successBorder: 'rgba(22, 101, 52, 0.3)',\n successText: '#14532d',\n warning: '#92400e',\n warningBg: 'rgba(146, 64, 14, 0.08)',\n warningBorder: 'rgba(146, 64, 14, 0.3)',\n warningText: '#78350f',\n info: '#1e40af',\n infoBg: 'rgba(30, 64, 175, 0.08)',\n infoBorder: 'rgba(30, 64, 175, 0.3)',\n infoText: '#1e40af',\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n fixedLight: '#ffffff',\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n contrastSurface: '#1a1a1a',\n onContrastSurface: '#e5e5e5',\n contrastBorder: 'rgba(255, 255, 255, 0.33)',\n}\n\n// High-contrast theme — matches the overrides in `themes/high-contrast.css.ts`.\nexport const highContrastColors: RawColors = {\n bg: '#000000',\n bgCard: '#111111',\n bgCardHover: '#1a1a1a',\n text: '#ffffff',\n textMuted: '#b0b0b0',\n accent: '#60a5fa',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#555555',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.15)',\n errorBorder: 'rgba(248, 113, 113, 0.5)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#4ade80',\n successBg: 'rgba(74, 222, 128, 0.15)',\n successBorder: 'rgba(74, 222, 128, 0.5)',\n successText: '#86efac',\n warning: '#fcd34d',\n warningBg: 'rgba(252, 211, 77, 0.15)',\n warningBorder: 'rgba(252, 211, 77, 0.5)',\n warningText: '#fef08a',\n info: '#60a5fa',\n infoBg: 'rgba(96, 165, 250, 0.15)',\n infoBorder: 'rgba(96, 165, 250, 0.5)',\n infoText: '#bfdbfe',\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n fixedLight: '#ffffff',\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n contrastSurface: '#ffffff',\n onContrastSurface: '#000000',\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n}\n"],"names":["SPACING_PX","RADII_PX","FONT_SIZE_REM","BORDERS_PX","SIZES_PX","EMAIL_PX","darkColors","lightColors","highContrastColors"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"raw.js","sources":["../src/raw.ts"],"sourcesContent":["// Plain hex values for non-`react-strict-dom` consumers (e.g. an MUI\n// `createTheme` palette). These mirror the literals defined in\n// `tokens/colors.css.ts`, `themes/light.css.ts`, and `themes/high-contrast.css.ts`.\n//\n// We can't make the css.ts files import from here: StyleX (the babel plugin\n// behind RSD's `css.defineVars` / `css.createTheme` on web) requires the\n// argument to be an inline object literal. So values live in two places.\n//\n// `scripts/check-token-drift.mjs` runs in `prebuild` and fails the build if\n// the literal in any css.ts file diverges from the corresponding export here.\n\nexport type RawColors = {\n bg: string\n bgCard: string\n bgCardHover: string\n text: string\n textMuted: string\n accent: string\n accentHover: string\n accentContrast: string\n border: string\n error: string\n errorHover: string\n errorBg: string\n errorBorder: string\n errorText: string\n errorContrast: string\n success: string\n successBg: string\n successBorder: string\n successText: string\n warning: string\n warningBg: string\n warningBorder: string\n warningText: string\n info: string\n infoBg: string\n infoBorder: string\n infoText: string\n highlight: string\n highlightBg: string\n highlightBorder: string\n highlightText: string\n scrim: string\n inverseFill: string\n inverseFillHover: string\n inverseBorder: string\n inverseBorderHover: string\n fixedLight: string\n overlayLight: string\n contrastSurface: string\n onContrastSurface: string\n contrastBorder: string\n}\n\n// Numeric maps for consumers that load only the compiled `/raw` entry (e.g.\n// ui-email, which cannot read CSS variables or the TypeScript `/keys` source).\n// Copies of the keys.ts maps; check-token-drift.mjs fails if they diverge.\nexport const SPACING_PX = {\n xs: 4,\n sm: 8,\n ms: 12,\n md: 16,\n lg: 24,\n xl: 32,\n xxl: 48,\n xxxl: 64,\n} as const\n\nexport const RADII_PX = {\n xs: 4,\n px6: 6,\n sm: 8,\n md: 12,\n lg: 16,\n full: 9999,\n} as const\n\nexport const FONT_SIZE_REM = {\n fontSizeXs: 0.75,\n fontSizeSm: 0.875,\n fontSizeMd: 1,\n fontSizeLg: 1.125,\n fontSizeXl: 1.25,\n fontSizeHeading: 1.5,\n} as const\n\nexport const BORDERS_PX = {\n hairline: 1,\n strong: 2,\n accent: 3,\n focusRing: 2,\n focusOffset: 2,\n focusOffsetSm: 1,\n} as const\n\nexport const LAYERS = {\n raised: 1,\n floating: 50,\n overlay: 1000,\n modal: 1001,\n popover: 1040,\n popupBackdrop: 1049,\n popup: 1050,\n toast: 1060,\n portal: 1100,\n} as const\n\nexport const SIZES_PX = {\n touchTarget: 44,\n controlSm: 28,\n controlMd: 39,\n controlLg: 40,\n indicator: 18,\n indicatorDot: 8,\n checkMarkW: 5,\n checkMarkH: 9,\n switchTrackW: 36,\n switchTrackH: 20,\n switchThumb: 16,\n iconButton: 32,\n iconButtonSm: 28,\n spinnerSm: 16,\n spinnerMd: 24,\n spinnerLg: 40,\n glyphXs: 10,\n glyphSm: 12,\n glyphMd: 16,\n iconSm: 16,\n iconMd: 18,\n iconLg: 24,\n iconXl: 36,\n iconXxl: 48,\n navMarkerW: 3,\n navMarkerH: 18,\n divider: 1,\n tabIndicator: 2,\n edgeFade: 32,\n scrollbar: 8,\n swatchW: 44,\n swatchH: 34,\n labelMinW: 120,\n popupMinW: 160,\n listMaxH: 280,\n listMaxHSm: 200,\n dialogSm: 400,\n dialogMd: 520,\n dialogLg: 680,\n panelSm: 360,\n panelMd: 480,\n panelLg: 640,\n toastMaxW: 440,\n gridColSm: 240,\n gridColMd: 280,\n pageSm: 600,\n pageMd: 800,\n pageLg: 1200,\n sidebarW: 240,\n pageXs: 480,\n pageXl: 1440,\n asideW: 320,\n gridColXs: 200,\n fieldMinWSm: 80,\n fieldMinW: 160,\n popoverWSm: 240,\n popoverW: 320,\n popupMaxW: 280,\n meterH: 6,\n skeletonChipW: 96,\n dropZoneMinH: 128,\n canvasMinH: 480,\n editorMinH: 160,\n toolbarH: 36,\n embedW: 550,\n colorPickerW: 196,\n colorAreaH: 150,\n colorTrackH: 12,\n colorSwatch: 20,\n colorPreviewH: 22,\n handle: 16,\n chip: 24,\n placeholderMinH: 80,\n previewMaxH: 320,\n barH: 4,\n readoutW: 40,\n sliderW: 96,\n paletteMinW: 96,\n deviceBarW: 96,\n timeGutterW: 64,\n dayHeaderH: 46,\n} as const\n\n// Email-only measures: no CSS variable (mail clients cannot read them) and not\n// a lint candidate, so it is deliberately absent from keys.ts.\nexport const EMAIL_PX = {emailCardW: 520, trackingPixel: 1} as const\n\n// Dark theme — matches the defaults in `tokens/colors.css.ts`.\nexport const darkColors: RawColors = {\n bg: '#0f0f0f',\n bgCard: '#1a1a1a',\n bgCardHover: '#242424',\n text: '#e5e5e5',\n textMuted: '#b0b0b0',\n accent: '#6aaffc',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#333333',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.1)',\n errorBorder: 'rgba(248, 113, 113, 0.3)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#22c55e',\n successBg: 'rgba(34, 197, 94, 0.1)',\n successBorder: 'rgba(34, 197, 94, 0.3)',\n successText: '#86efac',\n warning: '#fbbf24',\n warningBg: 'rgba(251, 191, 36, 0.1)',\n warningBorder: 'rgba(251, 191, 36, 0.3)',\n warningText: '#fde68a',\n info: '#6aaffc',\n infoBg: 'rgba(106, 175, 252, 0.1)',\n infoBorder: 'rgba(106, 175, 252, 0.3)',\n infoText: '#93c5fd',\n highlight: '#c084fc',\n highlightBg: 'rgba(192, 132, 252, 0.1)',\n highlightBorder: 'rgba(192, 132, 252, 0.3)',\n highlightText: '#d8b4fe',\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n fixedLight: '#ffffff',\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n contrastSurface: '#f5f5f5',\n onContrastSurface: '#1a1a1a',\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n}\n\n// Light theme — matches the overrides in `themes/light.css.ts`.\nexport const lightColors: RawColors = {\n bg: '#ffffff',\n bgCard: '#f5f5f5',\n bgCardHover: '#ebebeb',\n text: '#1a1a1a',\n textMuted: '#4a4a4a',\n accent: '#1e40af',\n accentHover: '#1a3799',\n accentContrast: '#ffffff',\n border: '#d4d4d4',\n error: '#991b1b',\n errorHover: '#7f1d1d',\n errorBg: 'rgba(153, 27, 27, 0.08)',\n errorBorder: 'rgba(153, 27, 27, 0.3)',\n errorText: '#7f1d1d',\n errorContrast: '#ffffff',\n success: '#166534',\n successBg: 'rgba(22, 101, 52, 0.08)',\n successBorder: 'rgba(22, 101, 52, 0.3)',\n successText: '#14532d',\n warning: '#92400e',\n warningBg: 'rgba(146, 64, 14, 0.08)',\n warningBorder: 'rgba(146, 64, 14, 0.3)',\n warningText: '#78350f',\n info: '#1e40af',\n infoBg: 'rgba(30, 64, 175, 0.08)',\n infoBorder: 'rgba(30, 64, 175, 0.3)',\n infoText: '#1e40af',\n highlight: '#6b21a8',\n highlightBg: 'rgba(107, 33, 168, 0.08)',\n highlightBorder: 'rgba(107, 33, 168, 0.3)',\n highlightText: '#581c87',\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n fixedLight: '#ffffff',\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n contrastSurface: '#1a1a1a',\n onContrastSurface: '#e5e5e5',\n contrastBorder: 'rgba(255, 255, 255, 0.33)',\n}\n\n// High-contrast theme — matches the overrides in `themes/high-contrast.css.ts`.\nexport const highContrastColors: RawColors = {\n bg: '#000000',\n bgCard: '#111111',\n bgCardHover: '#1a1a1a',\n text: '#ffffff',\n textMuted: '#b0b0b0',\n accent: '#60a5fa',\n accentHover: '#93c5fd',\n accentContrast: '#000000',\n border: '#555555',\n error: '#f87171',\n errorHover: '#fca5a5',\n errorBg: 'rgba(248, 113, 113, 0.15)',\n errorBorder: 'rgba(248, 113, 113, 0.5)',\n errorText: '#fca5a5',\n errorContrast: '#000000',\n success: '#4ade80',\n successBg: 'rgba(74, 222, 128, 0.15)',\n successBorder: 'rgba(74, 222, 128, 0.5)',\n successText: '#86efac',\n warning: '#fcd34d',\n warningBg: 'rgba(252, 211, 77, 0.15)',\n warningBorder: 'rgba(252, 211, 77, 0.5)',\n warningText: '#fef08a',\n info: '#60a5fa',\n infoBg: 'rgba(96, 165, 250, 0.15)',\n infoBorder: 'rgba(96, 165, 250, 0.5)',\n infoText: '#bfdbfe',\n highlight: '#d8b4fe',\n highlightBg: 'rgba(216, 180, 254, 0.15)',\n highlightBorder: 'rgba(216, 180, 254, 0.5)',\n highlightText: '#e9d5ff',\n scrim: 'rgba(0, 0, 0, 0.4)',\n inverseFill: 'rgba(0, 0, 0, 0.10)',\n inverseFillHover: 'rgba(0, 0, 0, 0.18)',\n inverseBorder: 'rgba(0, 0, 0, 0.55)',\n inverseBorderHover: 'rgba(0, 0, 0, 0.70)',\n fixedLight: '#ffffff',\n overlayLight: 'rgba(255, 255, 255, 0.78)',\n contrastSurface: '#ffffff',\n onContrastSurface: '#000000',\n contrastBorder: 'rgba(0, 0, 0, 0.42)',\n}\n"],"names":["SPACING_PX","RADII_PX","FONT_SIZE_REM","BORDERS_PX","LAYERS","SIZES_PX","EMAIL_PX","darkColors","lightColors","highContrastColors"],"mappings":"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"}
|
|
@@ -27,6 +27,10 @@ export declare const highContrastTheme: css.Theme<css.VarGroup<Readonly<{
|
|
|
27
27
|
infoBg: string;
|
|
28
28
|
infoBorder: string;
|
|
29
29
|
infoText: string;
|
|
30
|
+
highlight: string;
|
|
31
|
+
highlightBg: string;
|
|
32
|
+
highlightBorder: string;
|
|
33
|
+
highlightText: string;
|
|
30
34
|
scrim: string;
|
|
31
35
|
inverseFill: string;
|
|
32
36
|
inverseFillHover: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"high-contrast.css.d.ts","sourceRoot":"","sources":["../../src/themes/high-contrast.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAIpC,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"high-contrast.css.d.ts","sourceRoot":"","sources":["../../src/themes/high-contrast.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAIpC,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAoD5B,CAAA;AAEF,eAAO,MAAM,mBAAmB;;;;;;oBAM9B,CAAA"}
|
|
@@ -27,6 +27,10 @@ export declare const lightTheme: css.Theme<css.VarGroup<Readonly<{
|
|
|
27
27
|
infoBg: string;
|
|
28
28
|
infoBorder: string;
|
|
29
29
|
infoText: string;
|
|
30
|
+
highlight: string;
|
|
31
|
+
highlightBg: string;
|
|
32
|
+
highlightBorder: string;
|
|
33
|
+
highlightText: string;
|
|
30
34
|
scrim: string;
|
|
31
35
|
inverseFill: string;
|
|
32
36
|
inverseFillHover: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"light.css.d.ts","sourceRoot":"","sources":["../../src/themes/light.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAIpC,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"light.css.d.ts","sourceRoot":"","sources":["../../src/themes/light.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAIpC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBAoDrB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;oBAMvB,CAAA"}
|
|
@@ -27,6 +27,10 @@ export declare const colors: css.VarGroup<Readonly<{
|
|
|
27
27
|
infoBg: string;
|
|
28
28
|
infoBorder: string;
|
|
29
29
|
infoText: string;
|
|
30
|
+
highlight: string;
|
|
31
|
+
highlightBg: string;
|
|
32
|
+
highlightBorder: string;
|
|
33
|
+
highlightText: string;
|
|
30
34
|
scrim: string;
|
|
31
35
|
inverseFill: string;
|
|
32
36
|
inverseFillHover: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colors.css.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAEpC,eAAO,MAAM,MAAM
|
|
1
|
+
{"version":3,"file":"colors.css.d.ts","sourceRoot":"","sources":["../../src/tokens/colors.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAEpC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAoEjB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effects.css.d.ts","sourceRoot":"","sources":["../../src/tokens/effects.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AASpC,eAAO,MAAM,OAAO;;WAElB,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { css } from 'react-strict-dom';
|
|
2
|
+
export declare const layers: css.VarGroup<Readonly<{
|
|
3
|
+
readonly raised: css.Types.Integer<number>;
|
|
4
|
+
readonly floating: css.Types.Integer<number>;
|
|
5
|
+
readonly overlay: css.Types.Integer<number>;
|
|
6
|
+
readonly modal: css.Types.Integer<number>;
|
|
7
|
+
readonly popover: css.Types.Integer<number>;
|
|
8
|
+
readonly popupBackdrop: css.Types.Integer<number>;
|
|
9
|
+
readonly popup: css.Types.Integer<number>;
|
|
10
|
+
readonly toast: css.Types.Integer<number>;
|
|
11
|
+
readonly portal: css.Types.Integer<number>;
|
|
12
|
+
}>, symbol>;
|
|
13
|
+
//# sourceMappingURL=layers.css.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layers.css.d.ts","sourceRoot":"","sources":["../../src/tokens/layers.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAgBpC,eAAO,MAAM,MAAM;;;;;;;;;;WAsBsC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sizes.css.d.ts","sourceRoot":"","sources":["../../src/tokens/sizes.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAEpC,eAAO,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"sizes.css.d.ts","sourceRoot":"","sources":["../../src/tokens/sizes.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,GAAG,EAAC,MAAM,kBAAkB,CAAA;AAEpC,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WAmFhB,CAAA"}
|
package/dist/vars.css
CHANGED
|
@@ -29,6 +29,10 @@
|
|
|
29
29
|
--duro-color-error-hover: var(--errorHover-x7eyu03);
|
|
30
30
|
--duro-color-error-text: var(--errorText-xf51nwe);
|
|
31
31
|
--duro-color-fixed-light: var(--fixedLight-xd608fw);
|
|
32
|
+
--duro-color-highlight: var(--highlight-x14yvf5c);
|
|
33
|
+
--duro-color-highlight-bg: var(--highlightBg-x5qhmj2);
|
|
34
|
+
--duro-color-highlight-border: var(--highlightBorder-xd7ycfq);
|
|
35
|
+
--duro-color-highlight-text: var(--highlightText-x1lyse6a);
|
|
32
36
|
--duro-color-info: var(--info-x97ho0r);
|
|
33
37
|
--duro-color-info-bg: var(--infoBg-xho8jir);
|
|
34
38
|
--duro-color-info-border: var(--infoBorder-xnevk3x);
|
|
@@ -93,6 +97,7 @@
|
|
|
93
97
|
--duro-size-control-lg: var(--controlLg-xf3drh3);
|
|
94
98
|
--duro-size-control-md: var(--controlMd-xkvaeme);
|
|
95
99
|
--duro-size-control-sm: var(--controlSm-x6ymn93);
|
|
100
|
+
--duro-size-day-header-h: var(--dayHeaderH-x1j7gty0);
|
|
96
101
|
--duro-size-device-bar-w: var(--deviceBarW-xqnx4o4);
|
|
97
102
|
--duro-size-dialog-lg: var(--dialogLg-xsd9wl3);
|
|
98
103
|
--duro-size-dialog-md: var(--dialogMd-x1yjoj5l);
|
|
@@ -155,6 +160,7 @@
|
|
|
155
160
|
--duro-size-switch-track-h: var(--switchTrackH-x1h3icne);
|
|
156
161
|
--duro-size-switch-track-w: var(--switchTrackW-xcah3tt);
|
|
157
162
|
--duro-size-tab-indicator: var(--tabIndicator-xeswvk3);
|
|
163
|
+
--duro-size-time-gutter-w: var(--timeGutterW-xsc6tna);
|
|
158
164
|
--duro-size-toast-max-w: var(--toastMaxW-x1po6n0z);
|
|
159
165
|
--duro-size-toolbar-h: var(--toolbarH-x16tj5lc);
|
|
160
166
|
--duro-size-touch-target: var(--touchTarget-x1u5badx);
|
|
@@ -165,6 +171,18 @@
|
|
|
165
171
|
--duro-border-focus-ring: var(--focusRing-x851k0b);
|
|
166
172
|
--duro-border-hairline: var(--hairline-xomm6fc);
|
|
167
173
|
--duro-border-strong: var(--strong-x1otbxzr);
|
|
174
|
+
/* layers */
|
|
175
|
+
--duro-layer-floating: var(--floating-x1bmxuyp);
|
|
176
|
+
--duro-layer-modal: var(--modal-x10p0ok);
|
|
177
|
+
--duro-layer-overlay: var(--overlay-x1pg5hea);
|
|
178
|
+
--duro-layer-popover: var(--popover-x13dty8z);
|
|
179
|
+
--duro-layer-popup: var(--popup-xgi3yzv);
|
|
180
|
+
--duro-layer-popup-backdrop: var(--popupBackdrop-x17sujb4);
|
|
181
|
+
--duro-layer-portal: var(--portal-xmizwb3);
|
|
182
|
+
--duro-layer-raised: var(--raised-xnqqeg);
|
|
183
|
+
--duro-layer-toast: var(--toast-xt0zgmc);
|
|
184
|
+
/* effects */
|
|
185
|
+
--duro-effect-overlay-blur: var(--overlayBlur-x1i07nq9);
|
|
168
186
|
/* layoutSpacing */
|
|
169
187
|
--duro-layout-spacing-container-lg: var(--containerLg-x1n6aasq);
|
|
170
188
|
--duro-layout-spacing-container-md: var(--containerMd-x170dvin);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@duro-app/tokens",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
"./tokens/spacing.css": "./src/tokens/spacing.css.ts",
|
|
42
42
|
"./tokens/sizes.css": "./src/tokens/sizes.css.ts",
|
|
43
43
|
"./tokens/borders.css": "./src/tokens/borders.css.ts",
|
|
44
|
+
"./tokens/layers.css": "./src/tokens/layers.css.ts",
|
|
45
|
+
"./tokens/effects.css": "./src/tokens/effects.css.ts",
|
|
44
46
|
"./tokens/typography.css": "./src/tokens/typography.css.ts",
|
|
45
47
|
"./tokens/layout-spacing.css": "./src/tokens/layout-spacing.css.ts",
|
|
46
48
|
"./tokens/shadows.css": "./src/tokens/shadows.css.ts",
|
package/src/index.ts
CHANGED
|
@@ -4,6 +4,8 @@ export {colors} from './tokens/colors.css'
|
|
|
4
4
|
export {spacing, microSpacing, radii} from './tokens/spacing.css'
|
|
5
5
|
export {sizes} from './tokens/sizes.css'
|
|
6
6
|
export {borders} from './tokens/borders.css'
|
|
7
|
+
export {layers} from './tokens/layers.css'
|
|
8
|
+
export {effects} from './tokens/effects.css'
|
|
7
9
|
export {layoutSpacing} from './tokens/layout-spacing.css'
|
|
8
10
|
export {typography, typeScale} from './tokens/typography.css'
|
|
9
11
|
export {typePresets} from './tokens/type-presets.css'
|
package/src/keys.ts
CHANGED
|
@@ -150,6 +150,8 @@ export const SIZE_KEYS = [
|
|
|
150
150
|
'sliderW',
|
|
151
151
|
'paletteMinW',
|
|
152
152
|
'deviceBarW',
|
|
153
|
+
'timeGutterW',
|
|
154
|
+
'dayHeaderH',
|
|
153
155
|
] as const
|
|
154
156
|
export type SizeToken = (typeof SIZE_KEYS)[number]
|
|
155
157
|
|
|
@@ -234,6 +236,8 @@ export const SIZES_PX = {
|
|
|
234
236
|
sliderW: 96,
|
|
235
237
|
paletteMinW: 96,
|
|
236
238
|
deviceBarW: 96,
|
|
239
|
+
timeGutterW: 64,
|
|
240
|
+
dayHeaderH: 46,
|
|
237
241
|
} as const
|
|
238
242
|
|
|
239
243
|
export const BORDER_KEYS = [
|
|
@@ -256,6 +260,41 @@ export const BORDERS_PX = {
|
|
|
256
260
|
focusOffsetSm: 1,
|
|
257
261
|
} as const
|
|
258
262
|
|
|
263
|
+
export const LAYER_KEYS = [
|
|
264
|
+
'raised',
|
|
265
|
+
'floating',
|
|
266
|
+
'overlay',
|
|
267
|
+
'modal',
|
|
268
|
+
'popover',
|
|
269
|
+
'popupBackdrop',
|
|
270
|
+
'popup',
|
|
271
|
+
'toast',
|
|
272
|
+
'portal',
|
|
273
|
+
] as const
|
|
274
|
+
export type LayerToken = (typeof LAYER_KEYS)[number]
|
|
275
|
+
|
|
276
|
+
// Mirrors tokens/layers.css.ts `layers` (unitless), as numbers: React Native
|
|
277
|
+
// takes a number for zIndex, not the CSS variable string.
|
|
278
|
+
export const LAYERS = {
|
|
279
|
+
raised: 1,
|
|
280
|
+
floating: 50,
|
|
281
|
+
overlay: 1000,
|
|
282
|
+
modal: 1001,
|
|
283
|
+
popover: 1040,
|
|
284
|
+
popupBackdrop: 1049,
|
|
285
|
+
popup: 1050,
|
|
286
|
+
toast: 1060,
|
|
287
|
+
portal: 1100,
|
|
288
|
+
} as const
|
|
289
|
+
|
|
290
|
+
export const EFFECT_KEYS = ['overlayBlur'] as const
|
|
291
|
+
export type EffectToken = (typeof EFFECT_KEYS)[number]
|
|
292
|
+
|
|
293
|
+
// Mirrors tokens/effects.css.ts `effects` verbatim.
|
|
294
|
+
export const EFFECTS = {
|
|
295
|
+
overlayBlur: 'blur(2px)',
|
|
296
|
+
} as const
|
|
297
|
+
|
|
259
298
|
// Icon rendering sizes (SVG width/height, px). Not its own css.defineVars
|
|
260
299
|
// scale — icons size via attributes — so it is derived from the `sizes` group
|
|
261
300
|
// (iconSm…iconXxl), keeping one source.
|
package/src/raw.ts
CHANGED
|
@@ -37,6 +37,10 @@ export type RawColors = {
|
|
|
37
37
|
infoBg: string
|
|
38
38
|
infoBorder: string
|
|
39
39
|
infoText: string
|
|
40
|
+
highlight: string
|
|
41
|
+
highlightBg: string
|
|
42
|
+
highlightBorder: string
|
|
43
|
+
highlightText: string
|
|
40
44
|
scrim: string
|
|
41
45
|
inverseFill: string
|
|
42
46
|
inverseFillHover: string
|
|
@@ -90,6 +94,18 @@ export const BORDERS_PX = {
|
|
|
90
94
|
focusOffsetSm: 1,
|
|
91
95
|
} as const
|
|
92
96
|
|
|
97
|
+
export const LAYERS = {
|
|
98
|
+
raised: 1,
|
|
99
|
+
floating: 50,
|
|
100
|
+
overlay: 1000,
|
|
101
|
+
modal: 1001,
|
|
102
|
+
popover: 1040,
|
|
103
|
+
popupBackdrop: 1049,
|
|
104
|
+
popup: 1050,
|
|
105
|
+
toast: 1060,
|
|
106
|
+
portal: 1100,
|
|
107
|
+
} as const
|
|
108
|
+
|
|
93
109
|
export const SIZES_PX = {
|
|
94
110
|
touchTarget: 44,
|
|
95
111
|
controlSm: 28,
|
|
@@ -170,6 +186,8 @@ export const SIZES_PX = {
|
|
|
170
186
|
sliderW: 96,
|
|
171
187
|
paletteMinW: 96,
|
|
172
188
|
deviceBarW: 96,
|
|
189
|
+
timeGutterW: 64,
|
|
190
|
+
dayHeaderH: 46,
|
|
173
191
|
} as const
|
|
174
192
|
|
|
175
193
|
// Email-only measures: no CSS variable (mail clients cannot read them) and not
|
|
@@ -205,6 +223,10 @@ export const darkColors: RawColors = {
|
|
|
205
223
|
infoBg: 'rgba(106, 175, 252, 0.1)',
|
|
206
224
|
infoBorder: 'rgba(106, 175, 252, 0.3)',
|
|
207
225
|
infoText: '#93c5fd',
|
|
226
|
+
highlight: '#c084fc',
|
|
227
|
+
highlightBg: 'rgba(192, 132, 252, 0.1)',
|
|
228
|
+
highlightBorder: 'rgba(192, 132, 252, 0.3)',
|
|
229
|
+
highlightText: '#d8b4fe',
|
|
208
230
|
scrim: 'rgba(0, 0, 0, 0.4)',
|
|
209
231
|
inverseFill: 'rgba(0, 0, 0, 0.10)',
|
|
210
232
|
inverseFillHover: 'rgba(0, 0, 0, 0.18)',
|
|
@@ -246,6 +268,10 @@ export const lightColors: RawColors = {
|
|
|
246
268
|
infoBg: 'rgba(30, 64, 175, 0.08)',
|
|
247
269
|
infoBorder: 'rgba(30, 64, 175, 0.3)',
|
|
248
270
|
infoText: '#1e40af',
|
|
271
|
+
highlight: '#6b21a8',
|
|
272
|
+
highlightBg: 'rgba(107, 33, 168, 0.08)',
|
|
273
|
+
highlightBorder: 'rgba(107, 33, 168, 0.3)',
|
|
274
|
+
highlightText: '#581c87',
|
|
249
275
|
scrim: 'rgba(0, 0, 0, 0.4)',
|
|
250
276
|
inverseFill: 'rgba(0, 0, 0, 0.10)',
|
|
251
277
|
inverseFillHover: 'rgba(0, 0, 0, 0.18)',
|
|
@@ -287,6 +313,10 @@ export const highContrastColors: RawColors = {
|
|
|
287
313
|
infoBg: 'rgba(96, 165, 250, 0.15)',
|
|
288
314
|
infoBorder: 'rgba(96, 165, 250, 0.5)',
|
|
289
315
|
infoText: '#bfdbfe',
|
|
316
|
+
highlight: '#d8b4fe',
|
|
317
|
+
highlightBg: 'rgba(216, 180, 254, 0.15)',
|
|
318
|
+
highlightBorder: 'rgba(216, 180, 254, 0.5)',
|
|
319
|
+
highlightText: '#e9d5ff',
|
|
290
320
|
scrim: 'rgba(0, 0, 0, 0.4)',
|
|
291
321
|
inverseFill: 'rgba(0, 0, 0, 0.10)',
|
|
292
322
|
inverseFillHover: 'rgba(0, 0, 0, 0.18)',
|
|
@@ -30,6 +30,12 @@ export const highContrastTheme = css.createTheme(colors, {
|
|
|
30
30
|
infoBg: 'rgba(96, 165, 250, 0.15)',
|
|
31
31
|
infoBorder: 'rgba(96, 165, 250, 0.5)',
|
|
32
32
|
infoText: '#bfdbfe',
|
|
33
|
+
|
|
34
|
+
// Highlight — a non-status accent (a category, an intent); no status meaning.
|
|
35
|
+
highlight: '#d8b4fe',
|
|
36
|
+
highlightBg: 'rgba(216, 180, 254, 0.15)',
|
|
37
|
+
highlightBorder: 'rgba(216, 180, 254, 0.5)',
|
|
38
|
+
highlightText: '#e9d5ff',
|
|
33
39
|
// Fixed overlays — the same in every theme (a scrim darkens whatever is
|
|
34
40
|
// under it; the inverse overlays sit on an accent surface).
|
|
35
41
|
scrim: 'rgba(0, 0, 0, 0.4)',
|
package/src/themes/light.css.ts
CHANGED
|
@@ -30,6 +30,12 @@ export const lightTheme = css.createTheme(colors, {
|
|
|
30
30
|
infoBg: 'rgba(30, 64, 175, 0.08)',
|
|
31
31
|
infoBorder: 'rgba(30, 64, 175, 0.3)',
|
|
32
32
|
infoText: '#1e40af',
|
|
33
|
+
|
|
34
|
+
// Highlight — a non-status accent (a category, an intent); no status meaning.
|
|
35
|
+
highlight: '#6b21a8',
|
|
36
|
+
highlightBg: 'rgba(107, 33, 168, 0.08)',
|
|
37
|
+
highlightBorder: 'rgba(107, 33, 168, 0.3)',
|
|
38
|
+
highlightText: '#581c87',
|
|
33
39
|
// Fixed overlays — the same in every theme (a scrim darkens whatever is
|
|
34
40
|
// under it; the inverse overlays sit on an accent surface).
|
|
35
41
|
scrim: 'rgba(0, 0, 0, 0.4)',
|
package/src/tokens/colors.css.ts
CHANGED
|
@@ -44,6 +44,12 @@ export const colors = css.defineVars({
|
|
|
44
44
|
infoBorder: 'rgba(106, 175, 252, 0.3)',
|
|
45
45
|
infoText: '#93c5fd',
|
|
46
46
|
|
|
47
|
+
// Highlight — a non-status accent (a category, an intent); no status meaning.
|
|
48
|
+
highlight: '#c084fc',
|
|
49
|
+
highlightBg: 'rgba(192, 132, 252, 0.1)',
|
|
50
|
+
highlightBorder: 'rgba(192, 132, 252, 0.3)',
|
|
51
|
+
highlightText: '#d8b4fe',
|
|
52
|
+
|
|
47
53
|
// Fixed overlays — the same in every theme (a scrim darkens whatever is
|
|
48
54
|
// under it; the inverse overlays sit on an accent surface).
|
|
49
55
|
scrim: 'rgba(0, 0, 0, 0.4)',
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {css} from 'react-strict-dom'
|
|
2
|
+
|
|
3
|
+
// Visual effects. Not themed.
|
|
4
|
+
//
|
|
5
|
+
// overlayBlur: the blur behind a modal's backdrop (a command palette, a
|
|
6
|
+
// lightbox). Apply it ONLY on the backdrop element itself: a backdropFilter
|
|
7
|
+
// (or filter) on an ancestor becomes the containing block for every fixed
|
|
8
|
+
// descendant, so a Dialog or Drawer opened inside it is positioned against
|
|
9
|
+
// that ancestor instead of the viewport.
|
|
10
|
+
export const effects = css.defineVars({
|
|
11
|
+
overlayBlur: 'blur(2px)',
|
|
12
|
+
})
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {css} from 'react-strict-dom'
|
|
2
|
+
import type {LayerToken} from '../keys'
|
|
3
|
+
|
|
4
|
+
// The z-index scale. Values are unitless strings so `--duro-layer-*` exists
|
|
5
|
+
// for plain CSS; React Native takes a number, so a native overlay reads the
|
|
6
|
+
// numeric LAYERS map from `@duro-app/tokens/keys` instead.
|
|
7
|
+
//
|
|
8
|
+
// They only compete inside one stacking context. Dialog, Drawer, the popups
|
|
9
|
+
// and the toast region all portal into the ThemeProvider mount (`portal`),
|
|
10
|
+
// and this is the order they keep there.
|
|
11
|
+
// StyleX types a var by its literal, so string values would type every layer
|
|
12
|
+
// as a string, which `zIndex` (a number) refuses. Typing the literals as CSS
|
|
13
|
+
// integers makes `zIndex: layers.popup` a number to TypeScript; the cast has
|
|
14
|
+
// no runtime effect (StyleX and the drift check read straight through it).
|
|
15
|
+
type LayerValue = ReturnType<typeof css.types.integer<number>>
|
|
16
|
+
|
|
17
|
+
export const layers = css.defineVars({
|
|
18
|
+
// A focused or sticky part above its siblings (a joined group's focus ring,
|
|
19
|
+
// a scrollbar, a sticky table header).
|
|
20
|
+
raised: '1',
|
|
21
|
+
// Floating chrome over the page: Tooltip, ActionBar.
|
|
22
|
+
floating: '50',
|
|
23
|
+
// A modal's backdrop.
|
|
24
|
+
overlay: '1000',
|
|
25
|
+
// A modal's panel (Dialog, Drawer).
|
|
26
|
+
modal: '1001',
|
|
27
|
+
// A Popover inside a Dialog or Drawer: above that modal, below the popups
|
|
28
|
+
// (a Select, a Menu) and the Select click-catcher opened from inside it.
|
|
29
|
+
// Outside a modal a Popover is `floating`, so a modal opened later covers it.
|
|
30
|
+
popover: '1040',
|
|
31
|
+
// A popup's click-catcher, under the popup itself.
|
|
32
|
+
popupBackdrop: '1049',
|
|
33
|
+
// Popups: Select, Listbox, Menu — above a modal or Popover they open from.
|
|
34
|
+
popup: '1050',
|
|
35
|
+
// The toast region: above popups and modals.
|
|
36
|
+
toast: '1060',
|
|
37
|
+
// The ThemeProvider portal mount that holds all of the above.
|
|
38
|
+
portal: '1100',
|
|
39
|
+
} as unknown as Readonly<Record<LayerToken, LayerValue>>)
|
package/src/tokens/sizes.css.ts
CHANGED