@newtonedev/configurator 0.1.3 → 0.1.5
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/bridge/toCSS.d.ts.map +1 -1
- package/dist/bridge/toThemeConfig.d.ts.map +1 -1
- package/dist/index.cjs +79 -178
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +79 -178
- package/dist/index.js.map +1 -1
- package/dist/panels/DesignPanel.d.ts.map +1 -1
- package/dist/panels/PreviewPanel.d.ts +1 -3
- package/dist/panels/PreviewPanel.d.ts.map +1 -1
- package/dist/state/actions.d.ts +11 -17
- package/dist/state/actions.d.ts.map +1 -1
- package/dist/state/defaults.d.ts.map +1 -1
- package/dist/state/reducer.d.ts.map +1 -1
- package/dist/types.d.ts +10 -16
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/Configurator.tsx +1 -1
- package/src/bridge/toCSS.ts +6 -8
- package/src/bridge/toThemeConfig.ts +20 -56
- package/src/index.ts +1 -1
- package/src/panels/DesignPanel.tsx +0 -31
- package/src/panels/PalettePanel.tsx +2 -2
- package/src/panels/PreviewPanel.tsx +9 -40
- package/src/state/actions.ts +6 -8
- package/src/state/defaults.ts +28 -13
- package/src/state/reducer.ts +15 -54
- package/src/types.ts +13 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toCSS.d.ts","sourceRoot":"","sources":["../../src/bridge/toCSS.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMlD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"toCSS.d.ts","sourceRoot":"","sources":["../../src/bridge/toCSS.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAMlD;;;GAGG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM,CAkCtD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toThemeConfig.d.ts","sourceRoot":"","sources":["../../src/bridge/toThemeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"toThemeConfig.d.ts","sourceRoot":"","sources":["../../src/bridge/toThemeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,UAAU,CAAC;AACjE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAgCjE;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,kBAAkB,CA8F1E"}
|
package/dist/index.cjs
CHANGED
|
@@ -4,6 +4,7 @@ var React = require('react');
|
|
|
4
4
|
var reactNative = require('react-native');
|
|
5
5
|
var components = require('@newtonedev/components');
|
|
6
6
|
var newtone = require('newtone');
|
|
7
|
+
var fonts = require('@newtonedev/fonts');
|
|
7
8
|
|
|
8
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
|
|
@@ -74,8 +75,7 @@ var DEFAULT_CONFIGURATOR_STATE = {
|
|
|
74
75
|
dark: { strength: "none", hue: 220 }
|
|
75
76
|
},
|
|
76
77
|
preview: {
|
|
77
|
-
mode: "light"
|
|
78
|
-
theme: "neutral"
|
|
78
|
+
mode: "light"
|
|
79
79
|
},
|
|
80
80
|
spacing: {
|
|
81
81
|
preset: "md"
|
|
@@ -87,23 +87,39 @@ var DEFAULT_CONFIGURATOR_STATE = {
|
|
|
87
87
|
},
|
|
88
88
|
typography: {
|
|
89
89
|
fonts: {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
90
|
+
main: {
|
|
91
|
+
config: {
|
|
92
|
+
type: "system",
|
|
93
|
+
family: "system-ui",
|
|
94
|
+
fallback: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
95
|
+
},
|
|
96
|
+
weights: { regular: 400, medium: 500, bold: 700 }
|
|
94
97
|
},
|
|
95
98
|
display: {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
+
config: {
|
|
100
|
+
type: "system",
|
|
101
|
+
family: "system-ui",
|
|
102
|
+
fallback: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
103
|
+
},
|
|
104
|
+
weights: { regular: 400, medium: 500, bold: 700 }
|
|
105
|
+
},
|
|
106
|
+
mono: {
|
|
107
|
+
config: {
|
|
108
|
+
type: "system",
|
|
109
|
+
family: "ui-monospace",
|
|
110
|
+
fallback: "SFMono-Regular, Menlo, Monaco, Consolas, monospace"
|
|
111
|
+
},
|
|
112
|
+
weights: { regular: 400, medium: 500, bold: 700 }
|
|
99
113
|
},
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
114
|
+
currency: {
|
|
115
|
+
config: {
|
|
116
|
+
type: "system",
|
|
117
|
+
family: "system-ui",
|
|
118
|
+
fallback: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
119
|
+
},
|
|
120
|
+
weights: { regular: 400, medium: 500, bold: 700 }
|
|
104
121
|
}
|
|
105
|
-
}
|
|
106
|
-
scale: { baseSize: 16, ratio: 1.25 }
|
|
122
|
+
}
|
|
107
123
|
},
|
|
108
124
|
icons: {
|
|
109
125
|
variant: "rounded",
|
|
@@ -291,71 +307,40 @@ function configuratorReducer(state, action) {
|
|
|
291
307
|
}
|
|
292
308
|
};
|
|
293
309
|
// Typography actions
|
|
294
|
-
case "
|
|
295
|
-
const defaultTypography = DEFAULT_CONFIGURATOR_STATE.typography;
|
|
296
|
-
return {
|
|
297
|
-
...state,
|
|
298
|
-
typography: {
|
|
299
|
-
fonts: state.typography?.fonts ?? defaultTypography.fonts,
|
|
300
|
-
scale: {
|
|
301
|
-
baseSize: clamp(action.baseSize, 12, 24),
|
|
302
|
-
ratio: state.typography?.scale.ratio ?? defaultTypography.scale.ratio
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
};
|
|
306
|
-
}
|
|
307
|
-
case "SET_TYPOGRAPHY_RATIO": {
|
|
310
|
+
case "SET_FONT": {
|
|
308
311
|
const defaultTypography = DEFAULT_CONFIGURATOR_STATE.typography;
|
|
312
|
+
const currentFonts = state.typography?.fonts ?? defaultTypography.fonts;
|
|
309
313
|
return {
|
|
310
314
|
...state,
|
|
311
315
|
typography: {
|
|
312
|
-
fonts:
|
|
313
|
-
scale: {
|
|
314
|
-
baseSize: state.typography?.scale.baseSize ?? defaultTypography.scale.baseSize,
|
|
315
|
-
ratio: clamp(action.ratio, 1.1, 1.5)
|
|
316
|
-
}
|
|
316
|
+
fonts: { ...currentFonts, [action.scope]: action.font }
|
|
317
317
|
}
|
|
318
318
|
};
|
|
319
319
|
}
|
|
320
|
-
case "
|
|
320
|
+
case "SET_TYPE_SCALE_OFFSET": {
|
|
321
321
|
const defaultTypography = DEFAULT_CONFIGURATOR_STATE.typography;
|
|
322
|
+
const currentFonts = state.typography?.fonts ?? defaultTypography.fonts;
|
|
322
323
|
return {
|
|
323
324
|
...state,
|
|
324
325
|
typography: {
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
default: state.typography?.fonts.default ?? defaultTypography.fonts.default
|
|
329
|
-
},
|
|
330
|
-
scale: state.typography?.scale ?? defaultTypography.scale
|
|
326
|
+
...state.typography,
|
|
327
|
+
fonts: currentFonts,
|
|
328
|
+
typeScaleOffset: clamp(action.offset, 0, 1)
|
|
331
329
|
}
|
|
332
330
|
};
|
|
333
331
|
}
|
|
334
|
-
case "
|
|
332
|
+
case "SET_ROLE_WEIGHT": {
|
|
335
333
|
const defaultTypography = DEFAULT_CONFIGURATOR_STATE.typography;
|
|
334
|
+
const currentFonts = state.typography?.fonts ?? defaultTypography.fonts;
|
|
336
335
|
return {
|
|
337
336
|
...state,
|
|
338
337
|
typography: {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
}
|
|
348
|
-
case "SET_FONT_DEFAULT": {
|
|
349
|
-
const defaultTypography = DEFAULT_CONFIGURATOR_STATE.typography;
|
|
350
|
-
return {
|
|
351
|
-
...state,
|
|
352
|
-
typography: {
|
|
353
|
-
fonts: {
|
|
354
|
-
mono: state.typography?.fonts.mono ?? defaultTypography.fonts.mono,
|
|
355
|
-
display: state.typography?.fonts.display ?? defaultTypography.fonts.display,
|
|
356
|
-
default: action.font
|
|
357
|
-
},
|
|
358
|
-
scale: state.typography?.scale ?? defaultTypography.scale
|
|
338
|
+
...state.typography,
|
|
339
|
+
fonts: currentFonts,
|
|
340
|
+
roleWeights: {
|
|
341
|
+
...state.typography?.roleWeights,
|
|
342
|
+
[action.role]: clamp(action.weight, 100, 900)
|
|
343
|
+
}
|
|
359
344
|
}
|
|
360
345
|
};
|
|
361
346
|
}
|
|
@@ -399,11 +384,6 @@ function configuratorReducer(state, action) {
|
|
|
399
384
|
...state,
|
|
400
385
|
preview: { ...state.preview, mode: action.mode }
|
|
401
386
|
};
|
|
402
|
-
case "SET_PREVIEW_THEME":
|
|
403
|
-
return {
|
|
404
|
-
...state,
|
|
405
|
-
preview: { ...state.preview, theme: action.theme }
|
|
406
|
-
};
|
|
407
387
|
// Control actions
|
|
408
388
|
case "RESET":
|
|
409
389
|
return DEFAULT_CONFIGURATOR_STATE;
|
|
@@ -461,34 +441,6 @@ var SPACING_PRESET_TO_BASE = {
|
|
|
461
441
|
function roundnessToMultiplier(intensity) {
|
|
462
442
|
return intensity * 2;
|
|
463
443
|
}
|
|
464
|
-
function computeTypographyScale(baseSize, ratio) {
|
|
465
|
-
return {
|
|
466
|
-
xs: Math.round(baseSize / ratio ** 2),
|
|
467
|
-
sm: Math.round(baseSize / ratio),
|
|
468
|
-
base: baseSize,
|
|
469
|
-
md: Math.round(baseSize * ratio),
|
|
470
|
-
lg: Math.round(baseSize * ratio ** 2),
|
|
471
|
-
xl: Math.round(baseSize * ratio ** 3),
|
|
472
|
-
xxl: Math.round(baseSize * ratio ** 4)
|
|
473
|
-
};
|
|
474
|
-
}
|
|
475
|
-
var DEFAULT_FONTS = {
|
|
476
|
-
mono: {
|
|
477
|
-
type: "system",
|
|
478
|
-
family: "ui-monospace",
|
|
479
|
-
fallback: "SFMono-Regular, Menlo, Monaco, Consolas, monospace"
|
|
480
|
-
},
|
|
481
|
-
display: {
|
|
482
|
-
type: "system",
|
|
483
|
-
family: "system-ui",
|
|
484
|
-
fallback: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
485
|
-
},
|
|
486
|
-
default: {
|
|
487
|
-
type: "system",
|
|
488
|
-
family: "system-ui",
|
|
489
|
-
fallback: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'
|
|
490
|
-
}
|
|
491
|
-
};
|
|
492
444
|
var DEFAULT_ICONS = {
|
|
493
445
|
variant: "rounded",
|
|
494
446
|
// Material Design 3 aesthetic
|
|
@@ -527,15 +479,6 @@ function toThemeConfig(state) {
|
|
|
527
479
|
const radiusMultiplier = roundnessToMultiplier(state.roundness?.intensity ?? 0.5);
|
|
528
480
|
return {
|
|
529
481
|
colorSystem: { dynamicRange, palettes },
|
|
530
|
-
themes: {
|
|
531
|
-
neutral: { paletteIndex: 0, lightModeNv: 0.95, darkModeNv: 0.1 },
|
|
532
|
-
primary: { paletteIndex: 1, lightModeNv: 0.95, darkModeNv: 0.1 },
|
|
533
|
-
secondary: { paletteIndex: 1, lightModeNv: 0.85, darkModeNv: 0.15 },
|
|
534
|
-
strong: { paletteIndex: 0, lightModeNv: 0.1, darkModeNv: 0.95 }
|
|
535
|
-
},
|
|
536
|
-
elevation: {
|
|
537
|
-
offsets: [-0.02, 0, 0.04]
|
|
538
|
-
},
|
|
539
482
|
spacing: {
|
|
540
483
|
"00": Math.round(spacingBase * 0),
|
|
541
484
|
// Always 0
|
|
@@ -561,15 +504,22 @@ function toThemeConfig(state) {
|
|
|
561
504
|
xl: Math.round(12 * radiusMultiplier),
|
|
562
505
|
pill: 999
|
|
563
506
|
},
|
|
564
|
-
typography: {
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
507
|
+
typography: (() => {
|
|
508
|
+
const roles = state.typography?.typeScaleOffset != null ? fonts.applyTypeScaleOffset(fonts.DEFAULT_ROLE_SCALES, state.typography.typeScaleOffset) : fonts.DEFAULT_ROLE_SCALES;
|
|
509
|
+
return {
|
|
510
|
+
fonts: {
|
|
511
|
+
main: fonts.migrateToFontSlot(state.typography?.fonts.main ?? state.typography?.fonts?.default, fonts.DEFAULT_FONT_SLOTS.main),
|
|
512
|
+
display: fonts.migrateToFontSlot(state.typography?.fonts.display, fonts.DEFAULT_FONT_SLOTS.display),
|
|
513
|
+
mono: fonts.migrateToFontSlot(state.typography?.fonts.mono, fonts.DEFAULT_FONT_SLOTS.mono),
|
|
514
|
+
currency: fonts.migrateToFontSlot(state.typography?.fonts.currency, fonts.DEFAULT_FONT_SLOTS.currency)
|
|
515
|
+
},
|
|
516
|
+
fontSizes: fonts.DEFAULT_FONT_SIZES,
|
|
517
|
+
lineHeights: fonts.DEFAULT_LINE_HEIGHTS,
|
|
518
|
+
roles,
|
|
519
|
+
breakpointRoles: fonts.computeBreakpointRoleScales(roles),
|
|
520
|
+
roleWeights: { ...fonts.ROLE_DEFAULT_WEIGHTS, ...state.typography?.roleWeights }
|
|
521
|
+
};
|
|
522
|
+
})(),
|
|
573
523
|
icons: state.icons ?? DEFAULT_ICONS
|
|
574
524
|
};
|
|
575
525
|
}
|
|
@@ -829,7 +779,7 @@ function PalettePanel({ palette, index, dispatch, previewColors, state }) {
|
|
|
829
779
|
onSubmitEditing: handleHexSubmit,
|
|
830
780
|
placeholder: "#000000"
|
|
831
781
|
}
|
|
832
|
-
)), effectiveKeyColor !== void 0 && /* @__PURE__ */ React__default.default.createElement(reactNative.Pressable, { onPress: handleClearKeyColor, style: styles.autoButton }, /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles.autoText, { color: newtone.srgbToHex(tokens.
|
|
782
|
+
)), effectiveKeyColor !== void 0 && /* @__PURE__ */ React__default.default.createElement(reactNative.Pressable, { onPress: handleClearKeyColor, style: styles.autoButton }, /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles.autoText, { color: newtone.srgbToHex(tokens.accent.fill.srgb) }] }, "Auto"))), hexError !== "" && /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles.errorText, { color: newtone.srgbToHex(tokens.error.fill.srgb) }] }, hexError)), isNeutral && previewColors && /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles.inlineSwatches }, previewColors.map((color, i) => /* @__PURE__ */ React__default.default.createElement(
|
|
833
783
|
reactNative.View,
|
|
834
784
|
{
|
|
835
785
|
key: i,
|
|
@@ -1027,38 +977,20 @@ var styles2 = reactNative.StyleSheet.create({
|
|
|
1027
977
|
flex: 1
|
|
1028
978
|
}
|
|
1029
979
|
});
|
|
1030
|
-
|
|
1031
|
-
{ label: "Neutral", value: "neutral" },
|
|
1032
|
-
{ label: "Primary", value: "primary" },
|
|
1033
|
-
{ label: "Secondary", value: "secondary" },
|
|
1034
|
-
{ label: "Strong", value: "strong" }
|
|
1035
|
-
];
|
|
1036
|
-
function PreviewCard({
|
|
1037
|
-
state,
|
|
1038
|
-
dispatch
|
|
1039
|
-
}) {
|
|
980
|
+
function PreviewCard() {
|
|
1040
981
|
const tokens = components.useTokens(1);
|
|
1041
|
-
return /* @__PURE__ */ React__default.default.createElement(components.Card, { elevation: 1, style: styles3.container }, /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles3.title, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Component Preview"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style:
|
|
1042
|
-
|
|
1043
|
-
{
|
|
1044
|
-
options: THEME_OPTIONS,
|
|
1045
|
-
value: state.preview.theme,
|
|
1046
|
-
onValueChange: (t) => dispatch({ type: "SET_PREVIEW_THEME", theme: t }),
|
|
1047
|
-
label: "Theme"
|
|
1048
|
-
}
|
|
1049
|
-
)), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: previewStyles.wrapper }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: previewStyles.row }, /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "primary", semantic: "accent", size: "sm" }, "Primary"), /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "primary", semantic: "neutral", size: "sm" }, "Secondary"), /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "tertiary", semantic: "neutral", size: "sm" }, "Ghost"), /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "secondary", semantic: "neutral", size: "sm" }, "Outline")), /* @__PURE__ */ React__default.default.createElement(components.TextInput, { label: "Sample Input", value: "Hello, Newtone", onChangeText: () => {
|
|
1050
|
-
} }), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: previewStyles.row }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: [previewStyles.statusDot, { backgroundColor: newtone.srgbToHex(tokens.success.srgb) }] }), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [previewStyles.statusText, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Success"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: [previewStyles.statusDot, { backgroundColor: newtone.srgbToHex(tokens.warning.srgb) }] }), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [previewStyles.statusText, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Warning"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: [previewStyles.statusDot, { backgroundColor: newtone.srgbToHex(tokens.error.srgb) }] }), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [previewStyles.statusText, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Error"))));
|
|
982
|
+
return /* @__PURE__ */ React__default.default.createElement(components.Card, { elevation: 1, style: styles3.container }, /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles3.title, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Component Preview"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: previewStyles.wrapper }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: previewStyles.row }, /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "primary", semantic: "accent", size: "sm" }, "Primary"), /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "primary", semantic: "neutral", size: "sm" }, "Secondary"), /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "tertiary", semantic: "neutral", size: "sm" }, "Ghost"), /* @__PURE__ */ React__default.default.createElement(components.Button, { variant: "secondary", semantic: "neutral", size: "sm" }, "Outline")), /* @__PURE__ */ React__default.default.createElement(components.TextInput, { label: "Sample Input", value: "Hello, Newtone", onChangeText: () => {
|
|
983
|
+
} }), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: previewStyles.row }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: [previewStyles.statusDot, { backgroundColor: newtone.srgbToHex(tokens.success.fill.srgb) }] }), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [previewStyles.statusText, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Success"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: [previewStyles.statusDot, { backgroundColor: newtone.srgbToHex(tokens.warning.fill.srgb) }] }), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [previewStyles.statusText, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Warning"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: [previewStyles.statusDot, { backgroundColor: newtone.srgbToHex(tokens.error.fill.srgb) }] }), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [previewStyles.statusText, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Error"))));
|
|
1051
984
|
}
|
|
1052
|
-
function PreviewPanel({ state,
|
|
985
|
+
function PreviewPanel({ state, themeConfig }) {
|
|
1053
986
|
return /* @__PURE__ */ React__default.default.createElement(
|
|
1054
987
|
components.NewtoneProvider,
|
|
1055
988
|
{
|
|
1056
|
-
key:
|
|
989
|
+
key: state.preview.mode,
|
|
1057
990
|
config: themeConfig,
|
|
1058
|
-
initialMode: state.preview.mode
|
|
1059
|
-
initialTheme: state.preview.theme
|
|
991
|
+
initialMode: state.preview.mode
|
|
1060
992
|
},
|
|
1061
|
-
/* @__PURE__ */ React__default.default.createElement(PreviewCard,
|
|
993
|
+
/* @__PURE__ */ React__default.default.createElement(PreviewCard, null)
|
|
1062
994
|
);
|
|
1063
995
|
}
|
|
1064
996
|
var styles3 = reactNative.StyleSheet.create({
|
|
@@ -1068,11 +1000,6 @@ var styles3 = reactNative.StyleSheet.create({
|
|
|
1068
1000
|
title: {
|
|
1069
1001
|
fontSize: 16,
|
|
1070
1002
|
fontWeight: "700"
|
|
1071
|
-
},
|
|
1072
|
-
controls: {
|
|
1073
|
-
flexDirection: "row",
|
|
1074
|
-
alignItems: "flex-end",
|
|
1075
|
-
gap: 16
|
|
1076
1003
|
}
|
|
1077
1004
|
});
|
|
1078
1005
|
var previewStyles = reactNative.StyleSheet.create({
|
|
@@ -1103,9 +1030,7 @@ function toCSS(state) {
|
|
|
1103
1030
|
const tokens = components.computeTokens(
|
|
1104
1031
|
config.colorSystem,
|
|
1105
1032
|
mode,
|
|
1106
|
-
config.themes.neutral,
|
|
1107
1033
|
1,
|
|
1108
|
-
config.elevation.offsets,
|
|
1109
1034
|
config.spacing,
|
|
1110
1035
|
config.radius,
|
|
1111
1036
|
config.typography,
|
|
@@ -1124,19 +1049,19 @@ function toCSS(state) {
|
|
|
1124
1049
|
`;
|
|
1125
1050
|
css += ` --newtone-text-secondary: ${newtone.srgbToHex(tokens.textSecondary.srgb)};
|
|
1126
1051
|
`;
|
|
1127
|
-
css += ` --newtone-
|
|
1052
|
+
css += ` --newtone-accent: ${newtone.srgbToHex(tokens.accent.fill.srgb)};
|
|
1128
1053
|
`;
|
|
1129
|
-
css += ` --newtone-
|
|
1054
|
+
css += ` --newtone-accent-hover: ${newtone.srgbToHex(tokens.accent.fillHover.srgb)};
|
|
1130
1055
|
`;
|
|
1131
|
-
css += ` --newtone-
|
|
1056
|
+
css += ` --newtone-accent-active: ${newtone.srgbToHex(tokens.accent.fillActive.srgb)};
|
|
1132
1057
|
`;
|
|
1133
1058
|
css += ` --newtone-border: ${newtone.srgbToHex(tokens.border.srgb)};
|
|
1134
1059
|
`;
|
|
1135
|
-
css += ` --newtone-success: ${newtone.srgbToHex(tokens.success.srgb)};
|
|
1060
|
+
css += ` --newtone-success: ${newtone.srgbToHex(tokens.success.fill.srgb)};
|
|
1136
1061
|
`;
|
|
1137
|
-
css += ` --newtone-warning: ${newtone.srgbToHex(tokens.warning.srgb)};
|
|
1062
|
+
css += ` --newtone-warning: ${newtone.srgbToHex(tokens.warning.fill.srgb)};
|
|
1138
1063
|
`;
|
|
1139
|
-
css += ` --newtone-error: ${newtone.srgbToHex(tokens.error.srgb)};
|
|
1064
|
+
css += ` --newtone-error: ${newtone.srgbToHex(tokens.error.fill.srgb)};
|
|
1140
1065
|
`;
|
|
1141
1066
|
css += `}
|
|
1142
1067
|
|
|
@@ -1241,8 +1166,6 @@ function DesignPanel({ state, dispatch }) {
|
|
|
1241
1166
|
const tokens = components.useTokens(1);
|
|
1242
1167
|
const spacingPreset = state.spacing?.preset ?? "md";
|
|
1243
1168
|
const intensity = state.roundness?.intensity ?? 0.5;
|
|
1244
|
-
const baseSize = state.typography?.scale.baseSize ?? 16;
|
|
1245
|
-
const ratio = state.typography?.scale.ratio ?? 1.25;
|
|
1246
1169
|
const variant = state.icons?.variant ?? "rounded";
|
|
1247
1170
|
const weight = state.icons?.weight ?? 400;
|
|
1248
1171
|
return /* @__PURE__ */ React__default.default.createElement(components.Card, { elevation: 1, style: styles5.container }, /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles5.title, { color: newtone.srgbToHex(tokens.textPrimary.srgb) }] }, "Design System"), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles5.subtitle, { color: newtone.srgbToHex(tokens.textSecondary.srgb) }] }, "Spacing"), /* @__PURE__ */ React__default.default.createElement(
|
|
@@ -1269,29 +1192,7 @@ function DesignPanel({ state, dispatch }) {
|
|
|
1269
1192
|
label: "Intensity",
|
|
1270
1193
|
showValue: true
|
|
1271
1194
|
}
|
|
1272
|
-
), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles5.subtitle, { color: newtone.srgbToHex(tokens.textSecondary.srgb) }] }, "
|
|
1273
|
-
components.Slider,
|
|
1274
|
-
{
|
|
1275
|
-
value: baseSize,
|
|
1276
|
-
onValueChange: (v) => dispatch({ type: "SET_TYPOGRAPHY_BASE_SIZE", baseSize: v }),
|
|
1277
|
-
min: 12,
|
|
1278
|
-
max: 24,
|
|
1279
|
-
step: 1,
|
|
1280
|
-
label: "Base Size",
|
|
1281
|
-
showValue: true
|
|
1282
|
-
}
|
|
1283
|
-
)), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles5.flex }, /* @__PURE__ */ React__default.default.createElement(
|
|
1284
|
-
components.Slider,
|
|
1285
|
-
{
|
|
1286
|
-
value: Math.round(ratio * 100),
|
|
1287
|
-
onValueChange: (v) => dispatch({ type: "SET_TYPOGRAPHY_RATIO", ratio: v / 100 }),
|
|
1288
|
-
min: 110,
|
|
1289
|
-
max: 150,
|
|
1290
|
-
step: 5,
|
|
1291
|
-
label: "Scale Ratio",
|
|
1292
|
-
showValue: true
|
|
1293
|
-
}
|
|
1294
|
-
))), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles5.subtitle, { color: newtone.srgbToHex(tokens.textSecondary.srgb) }] }, "Icons"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles5.row }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles5.flex }, /* @__PURE__ */ React__default.default.createElement(
|
|
1195
|
+
), /* @__PURE__ */ React__default.default.createElement(reactNative.Text, { style: [styles5.subtitle, { color: newtone.srgbToHex(tokens.textSecondary.srgb) }] }, "Icons"), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles5.row }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles5.flex }, /* @__PURE__ */ React__default.default.createElement(
|
|
1295
1196
|
components.Select,
|
|
1296
1197
|
{
|
|
1297
1198
|
options: ICON_VARIANT_OPTIONS,
|
|
@@ -1365,7 +1266,7 @@ function Configurator({
|
|
|
1365
1266
|
},
|
|
1366
1267
|
label: "Dark Mode"
|
|
1367
1268
|
}
|
|
1368
|
-
)), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.topRow }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.topRowPanel }, /* @__PURE__ */ React__default.default.createElement(GlobalPanel, { state, dispatch })), showPreview && /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.topRowPanel }, /* @__PURE__ */ React__default.default.createElement(PreviewPanel, { state,
|
|
1269
|
+
)), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.topRow }, /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.topRowPanel }, /* @__PURE__ */ React__default.default.createElement(GlobalPanel, { state, dispatch })), showPreview && /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.topRowPanel }, /* @__PURE__ */ React__default.default.createElement(PreviewPanel, { state, themeConfig }))), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.designRow }, /* @__PURE__ */ React__default.default.createElement(DesignPanel, { state, dispatch })), /* @__PURE__ */ React__default.default.createElement(reactNative.View, { style: styles6.tabBar }, state.palettes.map((palette, index) => /* @__PURE__ */ React__default.default.createElement(
|
|
1369
1270
|
reactNative.Pressable,
|
|
1370
1271
|
{
|
|
1371
1272
|
key: index,
|