@newtonedev/components 0.1.13 → 0.1.14
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/_COMPONENT_TEMPLATE/ComponentName.styles.d.ts +1 -1
- package/dist/composites/actions/Button/Button.d.ts +11 -1
- package/dist/composites/actions/Button/Button.d.ts.map +1 -1
- package/dist/composites/actions/Button/Button.styles.d.ts.map +1 -1
- package/dist/composites/actions/Button/Button.types.d.ts +11 -1
- package/dist/composites/actions/Button/Button.types.d.ts.map +1 -1
- package/dist/composites/branding/LogoMonogram/LogoMonogram.d.ts +10 -0
- package/dist/composites/branding/LogoMonogram/LogoMonogram.d.ts.map +1 -0
- package/dist/composites/branding/LogoMonogram/LogoMonogram.types.d.ts +35 -0
- package/dist/composites/branding/LogoMonogram/LogoMonogram.types.d.ts.map +1 -0
- package/dist/composites/branding/LogoMonogram/index.d.ts +3 -0
- package/dist/composites/branding/LogoMonogram/index.d.ts.map +1 -0
- package/dist/composites/branding/LogoWordmark/LogoWordmark.d.ts +9 -0
- package/dist/composites/branding/LogoWordmark/LogoWordmark.d.ts.map +1 -0
- package/dist/composites/branding/LogoWordmark/LogoWordmark.types.d.ts +26 -0
- package/dist/composites/branding/LogoWordmark/LogoWordmark.types.d.ts.map +1 -0
- package/dist/composites/branding/LogoWordmark/index.d.ts +3 -0
- package/dist/composites/branding/LogoWordmark/index.d.ts.map +1 -0
- package/dist/composites/display/Chip/Chip.d.ts +25 -0
- package/dist/composites/display/Chip/Chip.d.ts.map +1 -0
- package/dist/composites/display/Chip/Chip.styles.d.ts +29 -0
- package/dist/composites/display/Chip/Chip.styles.d.ts.map +1 -0
- package/dist/composites/display/Chip/Chip.types.d.ts +63 -0
- package/dist/composites/display/Chip/Chip.types.d.ts.map +1 -0
- package/dist/composites/display/Chip/index.d.ts +3 -0
- package/dist/composites/display/Chip/index.d.ts.map +1 -0
- package/dist/composites/form-controls/Select/Select.d.ts.map +1 -1
- package/dist/composites/form-controls/Select/Select.styles.d.ts +2 -2
- package/dist/composites/form-controls/Select/Select.styles.d.ts.map +1 -1
- package/dist/composites/form-controls/Select/SelectOption.d.ts.map +1 -1
- package/dist/composites/form-controls/TextInput/TextInput.d.ts.map +1 -1
- package/dist/composites/form-controls/TextInput/TextInput.styles.d.ts +2 -2
- package/dist/composites/form-controls/TextInput/TextInput.styles.d.ts.map +1 -1
- package/dist/composites/form-controls/Toggle/Toggle.d.ts.map +1 -1
- package/dist/composites/form-controls/Toggle/Toggle.styles.d.ts +2 -2
- package/dist/composites/form-controls/Toggle/Toggle.styles.d.ts.map +1 -1
- package/dist/composites/layout/AppShell/AppShell.d.ts.map +1 -1
- package/dist/composites/layout/AppShell/AppShell.styles.d.ts +2 -2
- package/dist/composites/layout/AppShell/AppShell.styles.d.ts.map +1 -1
- package/dist/composites/layout/Card/Card.d.ts.map +1 -1
- package/dist/composites/layout/Card/Card.styles.d.ts +2 -2
- package/dist/composites/layout/Card/Card.styles.d.ts.map +1 -1
- package/dist/composites/layout/ContentCard/ContentCard.d.ts +33 -0
- package/dist/composites/layout/ContentCard/ContentCard.d.ts.map +1 -0
- package/dist/composites/layout/ContentCard/ContentCard.styles.d.ts +10 -0
- package/dist/composites/layout/ContentCard/ContentCard.styles.d.ts.map +1 -0
- package/dist/composites/layout/ContentCard/ContentCard.types.d.ts +52 -0
- package/dist/composites/layout/ContentCard/ContentCard.types.d.ts.map +1 -0
- package/dist/composites/layout/ContentCard/index.d.ts +3 -0
- package/dist/composites/layout/ContentCard/index.d.ts.map +1 -0
- package/dist/composites/layout/Divider/Divider.d.ts +25 -0
- package/dist/composites/layout/Divider/Divider.d.ts.map +1 -0
- package/dist/composites/layout/Divider/Divider.styles.d.ts +8 -0
- package/dist/composites/layout/Divider/Divider.styles.d.ts.map +1 -0
- package/dist/composites/layout/Divider/Divider.types.d.ts +25 -0
- package/dist/composites/layout/Divider/Divider.types.d.ts.map +1 -0
- package/dist/composites/layout/Divider/index.d.ts +3 -0
- package/dist/composites/layout/Divider/index.d.ts.map +1 -0
- package/dist/composites/layout/Navbar/Navbar.d.ts.map +1 -1
- package/dist/composites/layout/Navbar/Navbar.styles.d.ts +4 -3
- package/dist/composites/layout/Navbar/Navbar.styles.d.ts.map +1 -1
- package/dist/composites/layout/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/composites/layout/Sidebar/Sidebar.styles.d.ts +4 -3
- package/dist/composites/layout/Sidebar/Sidebar.styles.d.ts.map +1 -1
- package/dist/composites/overlays/Popover/Popover.d.ts.map +1 -1
- package/dist/composites/overlays/Popover/Popover.styles.d.ts +2 -2
- package/dist/composites/overlays/Popover/Popover.styles.d.ts.map +1 -1
- package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.d.ts.map +1 -1
- package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.styles.d.ts +2 -2
- package/dist/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.styles.d.ts.map +1 -1
- package/dist/composites/range-inputs/HueSlider/HueSlider.styles.d.ts +2 -2
- package/dist/composites/range-inputs/HueSlider/HueSlider.styles.d.ts.map +1 -1
- package/dist/composites/range-inputs/Slider/Slider.styles.d.ts +2 -2
- package/dist/composites/range-inputs/Slider/Slider.styles.d.ts.map +1 -1
- package/dist/index.cjs +903 -396
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +12 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +830 -344
- package/dist/index.js.map +1 -1
- package/dist/primitives/Frame/Frame.d.ts +1 -35
- package/dist/primitives/Frame/Frame.d.ts.map +1 -1
- package/dist/primitives/Frame/Frame.styles.d.ts +13 -4
- package/dist/primitives/Frame/Frame.styles.d.ts.map +1 -1
- package/dist/primitives/Frame/Frame.types.d.ts +99 -1
- package/dist/primitives/Frame/Frame.types.d.ts.map +1 -1
- package/dist/primitives/Frame/index.d.ts +1 -1
- package/dist/primitives/Frame/index.d.ts.map +1 -1
- package/dist/primitives/Icon/Icon.d.ts.map +1 -1
- package/dist/primitives/Icon/Icon.types.d.ts +2 -2
- package/dist/primitives/Icon/Icon.types.d.ts.map +1 -1
- package/dist/primitives/Text/Text.d.ts +5 -3
- package/dist/primitives/Text/Text.d.ts.map +1 -1
- package/dist/primitives/Text/Text.spans.d.ts.map +1 -1
- package/dist/primitives/Text/Text.types.d.ts +3 -6
- package/dist/primitives/Text/Text.types.d.ts.map +1 -1
- package/dist/primitives/Wrapper/Wrapper.d.ts +1 -1
- package/dist/primitives/Wrapper/Wrapper.d.ts.map +1 -1
- package/dist/primitives/Wrapper/Wrapper.styles.d.ts +9 -1
- package/dist/primitives/Wrapper/Wrapper.styles.d.ts.map +1 -1
- package/dist/primitives/Wrapper/Wrapper.types.d.ts +31 -1
- package/dist/primitives/Wrapper/Wrapper.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/composites/actions/Button/Button.styles.ts +71 -55
- package/src/composites/actions/Button/Button.tsx +34 -13
- package/src/composites/actions/Button/Button.types.ts +13 -1
- package/src/composites/branding/LogoMonogram/LogoMonogram.tsx +29 -0
- package/src/composites/branding/LogoMonogram/LogoMonogram.types.ts +35 -0
- package/src/composites/branding/LogoMonogram/index.ts +2 -0
- package/src/composites/branding/LogoWordmark/LogoWordmark.tsx +29 -0
- package/src/composites/branding/LogoWordmark/LogoWordmark.types.ts +25 -0
- package/src/composites/branding/LogoWordmark/index.ts +2 -0
- package/src/composites/display/Chip/Chip.styles.ts +189 -0
- package/src/composites/display/Chip/Chip.tsx +97 -0
- package/src/composites/display/Chip/Chip.types.ts +74 -0
- package/src/composites/display/Chip/index.ts +2 -0
- package/src/composites/form-controls/Select/Select.styles.ts +10 -10
- package/src/composites/form-controls/Select/Select.tsx +9 -6
- package/src/composites/form-controls/Select/SelectOption.tsx +10 -7
- package/src/composites/form-controls/TextInput/TextInput.styles.ts +12 -8
- package/src/composites/form-controls/TextInput/TextInput.tsx +7 -4
- package/src/composites/form-controls/Toggle/Toggle.styles.ts +10 -7
- package/src/composites/form-controls/Toggle/Toggle.tsx +4 -3
- package/src/composites/layout/AppShell/AppShell.styles.ts +8 -3
- package/src/composites/layout/AppShell/AppShell.tsx +6 -2
- package/src/composites/layout/Card/Card.styles.ts +10 -4
- package/src/composites/layout/Card/Card.tsx +4 -3
- package/src/composites/layout/ContentCard/ContentCard.styles.ts +44 -0
- package/src/composites/layout/ContentCard/ContentCard.tsx +71 -0
- package/src/composites/layout/ContentCard/ContentCard.types.ts +60 -0
- package/src/composites/layout/ContentCard/index.ts +2 -0
- package/src/composites/layout/Divider/Divider.styles.ts +30 -0
- package/src/composites/layout/Divider/Divider.tsx +46 -0
- package/src/composites/layout/Divider/Divider.types.ts +28 -0
- package/src/composites/layout/Divider/index.ts +2 -0
- package/src/composites/layout/Navbar/Navbar.styles.ts +7 -5
- package/src/composites/layout/Navbar/Navbar.tsx +4 -3
- package/src/composites/layout/Sidebar/Sidebar.styles.ts +7 -5
- package/src/composites/layout/Sidebar/Sidebar.tsx +4 -3
- package/src/composites/overlays/Popover/Popover.styles.ts +7 -5
- package/src/composites/overlays/Popover/Popover.tsx +4 -3
- package/src/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.styles.ts +5 -5
- package/src/composites/range-inputs/ColorScaleSlider/ColorScaleSlider.tsx +4 -3
- package/src/composites/range-inputs/HueSlider/HueSlider.styles.ts +7 -7
- package/src/composites/range-inputs/HueSlider/HueSlider.tsx +1 -1
- package/src/composites/range-inputs/Slider/Slider.styles.ts +9 -9
- package/src/composites/range-inputs/Slider/Slider.tsx +1 -1
- package/src/index.ts +43 -9
- package/src/primitives/Frame/Frame.styles.ts +55 -12
- package/src/primitives/Frame/Frame.tsx +138 -140
- package/src/primitives/Frame/Frame.types.ts +119 -1
- package/src/primitives/Frame/index.ts +4 -0
- package/src/primitives/Icon/Icon.tsx +9 -6
- package/src/primitives/Icon/Icon.types.ts +2 -2
- package/src/primitives/Text/Text.spans.ts +9 -5
- package/src/primitives/Text/Text.tsx +26 -15
- package/src/primitives/Text/Text.types.ts +3 -6
- package/src/primitives/Wrapper/Wrapper.styles.ts +32 -0
- package/src/primitives/Wrapper/Wrapper.tsx +22 -3
- package/src/primitives/Wrapper/Wrapper.types.ts +45 -0
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useTokens, useNewtoneTheme, useBreakpoint, useTypographyCalibrations, useLocalCalibration, enqueueObservation,
|
|
2
|
-
export {
|
|
3
|
-
import
|
|
1
|
+
import { useTokens, useNewtoneTheme, useFrameContext, useBreakpoint, useTypographyCalibrations, useLocalCalibration, enqueueObservation, computeTokens, _ThemeContext, FrameContext } from 'newtone-api';
|
|
2
|
+
export { DEFAULT_FONT_SIZES, DEFAULT_LINE_HEIGHTS, DEFAULT_ROLE_SCALES, DEFAULT_THEME_CONFIG, DEFAULT_THEME_MAPPINGS, ERROR_DEFAULTS, FrameContext, NewtoneProvider, PRIMARY_DEFAULTS, SECONDARY_DEFAULTS, SUCCESS_DEFAULTS, TERTIARY_DEFAULTS, WARNING_DEFAULTS, buildGoogleFontsUrl, computeColors, computeSwatches, computeTokens, enqueueObservation, measureAvgCharWidth, resolveTheme, useBreakpoint, useFrameContext, useLocalCalibration, useNewtoneTheme, useScheme, useTokens, useTypographyCalibrations } from 'newtone-api';
|
|
3
|
+
import React16, { createContext, useState, useMemo, useEffect, useContext, useCallback, useRef } from 'react';
|
|
4
4
|
import { Text, View, Pressable, TextInput as TextInput$1, ScrollView, PanResponder, Animated, StyleSheet } from 'react-native';
|
|
5
5
|
import { SEMANTIC_WEIGHT_MAP, ROLE_DEFAULT_WEIGHTS, BREAKPOINT_ROLE_SCALE, scaleRoleStep, resolveResponsiveSize, estimateLineWidths, REFERENCE_LINE_HEIGHT_RATIO, buildFontFeatureSettings } from '@newtonedev/fonts';
|
|
6
6
|
import { srgbToHex, gamutMapToSrgb } from 'newtone';
|
|
@@ -155,8 +155,9 @@ function resolveFlexDirection(direction, reverse) {
|
|
|
155
155
|
function getFrameStyles(input) {
|
|
156
156
|
const {
|
|
157
157
|
tokens,
|
|
158
|
-
gamut,
|
|
159
158
|
frameElevation,
|
|
159
|
+
theme = "primary",
|
|
160
|
+
appearance = "main",
|
|
160
161
|
layout = "flex",
|
|
161
162
|
direction = "vertical",
|
|
162
163
|
wrap = false,
|
|
@@ -173,13 +174,22 @@ function getFrameStyles(input) {
|
|
|
173
174
|
maxWidth,
|
|
174
175
|
minHeight,
|
|
175
176
|
maxHeight,
|
|
177
|
+
position,
|
|
178
|
+
top,
|
|
179
|
+
right,
|
|
180
|
+
bottom,
|
|
181
|
+
left,
|
|
182
|
+
zIndex,
|
|
183
|
+
overflow,
|
|
184
|
+
opacity,
|
|
176
185
|
radius,
|
|
177
186
|
bordered = false,
|
|
178
187
|
disabled = false
|
|
179
188
|
} = input;
|
|
180
189
|
const container = {};
|
|
181
|
-
|
|
182
|
-
container.
|
|
190
|
+
const appearanceTokens = tokens.colors[theme][appearance];
|
|
191
|
+
container.backgroundColor = appearanceTokens.background;
|
|
192
|
+
container.color = appearanceTokens.fontPrimary;
|
|
183
193
|
if (layout === "flex") {
|
|
184
194
|
container.display = "flex";
|
|
185
195
|
container.flexDirection = resolveFlexDirection(direction, reverse);
|
|
@@ -210,6 +220,12 @@ function getFrameStyles(input) {
|
|
|
210
220
|
if (maxWidth !== void 0) container.maxWidth = maxWidth;
|
|
211
221
|
if (minHeight !== void 0) container.minHeight = minHeight;
|
|
212
222
|
if (maxHeight !== void 0) container.maxHeight = maxHeight;
|
|
223
|
+
if (position) container.position = position;
|
|
224
|
+
if (top !== void 0) container.top = top;
|
|
225
|
+
if (right !== void 0) container.right = right;
|
|
226
|
+
if (bottom !== void 0) container.bottom = bottom;
|
|
227
|
+
if (left !== void 0) container.left = left;
|
|
228
|
+
if (zIndex !== void 0) container.zIndex = zIndex;
|
|
213
229
|
if (radius !== void 0) {
|
|
214
230
|
const corners = resolveRadiusCorners(radius, tokens);
|
|
215
231
|
container.borderTopLeftRadius = corners.topLeft;
|
|
@@ -220,9 +236,10 @@ function getFrameStyles(input) {
|
|
|
220
236
|
container.overflow = "hidden";
|
|
221
237
|
}
|
|
222
238
|
}
|
|
239
|
+
if (overflow) container.overflow = overflow;
|
|
223
240
|
if (bordered) {
|
|
224
241
|
container.borderWidth = 1;
|
|
225
|
-
container.borderColor =
|
|
242
|
+
container.borderColor = appearanceTokens.fontTertiary;
|
|
226
243
|
}
|
|
227
244
|
if (frameElevation === 2) {
|
|
228
245
|
container.shadowColor = "#000";
|
|
@@ -231,11 +248,13 @@ function getFrameStyles(input) {
|
|
|
231
248
|
container.shadowRadius = 6;
|
|
232
249
|
container.elevation = 4;
|
|
233
250
|
}
|
|
234
|
-
if (
|
|
251
|
+
if (opacity !== void 0) {
|
|
252
|
+
container.opacity = opacity;
|
|
253
|
+
} else if (disabled) {
|
|
235
254
|
container.opacity = 0.5;
|
|
236
255
|
}
|
|
237
256
|
const pressed = StyleSheet.create({
|
|
238
|
-
s: { backgroundColor:
|
|
257
|
+
s: { backgroundColor: appearanceTokens.fontSecondary }
|
|
239
258
|
}).s;
|
|
240
259
|
let gridWebStyle = null;
|
|
241
260
|
if (layout === "grid") {
|
|
@@ -259,13 +278,18 @@ function getFrameStyles(input) {
|
|
|
259
278
|
|
|
260
279
|
// src/primitives/Frame/Frame.tsx
|
|
261
280
|
function wrapTextChildren(children, textStyle) {
|
|
262
|
-
return
|
|
281
|
+
return React16.Children.map(children, (child) => {
|
|
263
282
|
if (typeof child === "string" || typeof child === "number") {
|
|
264
|
-
return /* @__PURE__ */
|
|
283
|
+
return /* @__PURE__ */ React16.createElement(Text, { style: textStyle }, child);
|
|
265
284
|
}
|
|
266
285
|
return child;
|
|
267
286
|
});
|
|
268
287
|
}
|
|
288
|
+
var ELEVATION_MAP = {
|
|
289
|
+
0: "sunken",
|
|
290
|
+
1: "grounded",
|
|
291
|
+
2: "elevated"
|
|
292
|
+
};
|
|
269
293
|
function toElevationLevel(frameElevation) {
|
|
270
294
|
if (frameElevation <= -1) return 0;
|
|
271
295
|
if (frameElevation === 0) return 1;
|
|
@@ -275,6 +299,11 @@ function Frame({
|
|
|
275
299
|
children,
|
|
276
300
|
// Elevation
|
|
277
301
|
elevation,
|
|
302
|
+
// Scheme
|
|
303
|
+
scheme,
|
|
304
|
+
// Theme / Appearance
|
|
305
|
+
theme,
|
|
306
|
+
appearance,
|
|
278
307
|
// Layout
|
|
279
308
|
layout,
|
|
280
309
|
direction,
|
|
@@ -295,6 +324,16 @@ function Frame({
|
|
|
295
324
|
maxWidth,
|
|
296
325
|
minHeight,
|
|
297
326
|
maxHeight,
|
|
327
|
+
// Positioning
|
|
328
|
+
position,
|
|
329
|
+
top,
|
|
330
|
+
right,
|
|
331
|
+
bottom,
|
|
332
|
+
left,
|
|
333
|
+
zIndex,
|
|
334
|
+
overflow,
|
|
335
|
+
pointerEvents,
|
|
336
|
+
opacity,
|
|
298
337
|
// Appearance
|
|
299
338
|
radius,
|
|
300
339
|
bordered,
|
|
@@ -312,27 +351,41 @@ function Frame({
|
|
|
312
351
|
// Style override
|
|
313
352
|
style
|
|
314
353
|
}) {
|
|
315
|
-
const
|
|
354
|
+
const themeCtx = useNewtoneTheme();
|
|
355
|
+
const { mode, gamut } = themeCtx;
|
|
316
356
|
const parentFrameCtx = useFrameContext();
|
|
357
|
+
const resolvedConfig = useMemo(() => {
|
|
358
|
+
if (scheme && themeCtx.schemes) {
|
|
359
|
+
const schemeConfig = themeCtx.schemes[scheme];
|
|
360
|
+
if (schemeConfig) return schemeConfig;
|
|
361
|
+
}
|
|
362
|
+
return themeCtx.config;
|
|
363
|
+
}, [scheme, themeCtx.schemes, themeCtx.config]);
|
|
364
|
+
const isSchemeOverride = resolvedConfig !== themeCtx.config;
|
|
365
|
+
const resolvedTheme = theme ?? parentFrameCtx?.theme ?? "primary";
|
|
366
|
+
const resolvedAppearance = appearance ?? parentFrameCtx?.appearance ?? "main";
|
|
317
367
|
const resolvedFrameElevation = elevation ?? 0;
|
|
318
368
|
const resolvedElevation = elevation !== void 0 ? toElevationLevel(elevation) : parentFrameCtx?.elevation ?? 1;
|
|
319
369
|
const tokens = useMemo(() => {
|
|
320
370
|
return computeTokens(
|
|
321
|
-
|
|
371
|
+
resolvedConfig.colorSystem,
|
|
322
372
|
mode,
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
373
|
+
gamut,
|
|
374
|
+
ELEVATION_MAP[resolvedElevation],
|
|
375
|
+
resolvedConfig.spacing,
|
|
376
|
+
resolvedConfig.radius,
|
|
377
|
+
resolvedConfig.typography,
|
|
378
|
+
resolvedConfig.icons,
|
|
379
|
+
resolvedConfig.themeMappings,
|
|
380
|
+
resolvedConfig.swatchDefaults
|
|
329
381
|
);
|
|
330
|
-
}, [
|
|
382
|
+
}, [resolvedConfig, mode, gamut, resolvedElevation]);
|
|
331
383
|
const styles = useMemo(
|
|
332
384
|
() => getFrameStyles({
|
|
333
385
|
tokens,
|
|
334
|
-
gamut,
|
|
335
386
|
frameElevation: resolvedFrameElevation,
|
|
387
|
+
theme: resolvedTheme,
|
|
388
|
+
appearance: resolvedAppearance,
|
|
336
389
|
layout,
|
|
337
390
|
direction,
|
|
338
391
|
wrap,
|
|
@@ -349,14 +402,23 @@ function Frame({
|
|
|
349
402
|
maxWidth,
|
|
350
403
|
minHeight,
|
|
351
404
|
maxHeight,
|
|
405
|
+
position,
|
|
406
|
+
top,
|
|
407
|
+
right,
|
|
408
|
+
bottom,
|
|
409
|
+
left,
|
|
410
|
+
zIndex,
|
|
411
|
+
overflow,
|
|
412
|
+
opacity,
|
|
352
413
|
radius,
|
|
353
414
|
bordered,
|
|
354
415
|
disabled
|
|
355
416
|
}),
|
|
356
417
|
[
|
|
357
418
|
tokens,
|
|
358
|
-
gamut,
|
|
359
419
|
resolvedFrameElevation,
|
|
420
|
+
resolvedTheme,
|
|
421
|
+
resolvedAppearance,
|
|
360
422
|
layout,
|
|
361
423
|
direction,
|
|
362
424
|
wrap,
|
|
@@ -373,15 +435,38 @@ function Frame({
|
|
|
373
435
|
maxWidth,
|
|
374
436
|
minHeight,
|
|
375
437
|
maxHeight,
|
|
438
|
+
position,
|
|
439
|
+
top,
|
|
440
|
+
right,
|
|
441
|
+
bottom,
|
|
442
|
+
left,
|
|
443
|
+
zIndex,
|
|
444
|
+
overflow,
|
|
445
|
+
opacity,
|
|
376
446
|
radius,
|
|
377
447
|
bordered,
|
|
378
448
|
disabled
|
|
379
449
|
]
|
|
380
450
|
);
|
|
451
|
+
const resolvedScheme = scheme ?? parentFrameCtx?.scheme;
|
|
381
452
|
const contextValue = useMemo(
|
|
382
|
-
() => ({
|
|
383
|
-
|
|
453
|
+
() => ({
|
|
454
|
+
elevation: resolvedElevation,
|
|
455
|
+
tokens,
|
|
456
|
+
scheme: resolvedScheme,
|
|
457
|
+
theme: resolvedTheme,
|
|
458
|
+
appearance: resolvedAppearance
|
|
459
|
+
}),
|
|
460
|
+
[resolvedElevation, tokens, resolvedScheme, resolvedTheme, resolvedAppearance]
|
|
384
461
|
);
|
|
462
|
+
const schemeThemeCtx = useMemo(() => {
|
|
463
|
+
if (!isSchemeOverride) return null;
|
|
464
|
+
return {
|
|
465
|
+
...themeCtx,
|
|
466
|
+
config: resolvedConfig,
|
|
467
|
+
activeScheme: scheme ?? themeCtx.activeScheme
|
|
468
|
+
};
|
|
469
|
+
}, [isSchemeOverride, themeCtx, resolvedConfig, scheme]);
|
|
385
470
|
const webOverrides = [];
|
|
386
471
|
if (styles.gridWebStyle) {
|
|
387
472
|
webOverrides.push(styles.gridWebStyle);
|
|
@@ -395,68 +480,65 @@ function Frame({
|
|
|
395
480
|
const focusRingStyle = isFocusVisible && !disabled ? {
|
|
396
481
|
outlineWidth: 2,
|
|
397
482
|
outlineStyle: "solid",
|
|
398
|
-
outlineColor: tokens.
|
|
483
|
+
outlineColor: tokens.colors[resolvedTheme].emphasis.background,
|
|
399
484
|
outlineOffset: 2
|
|
400
485
|
} : void 0;
|
|
401
486
|
const webFocusProps = isInteractive ? focusProps : {};
|
|
402
487
|
const textStyle = useMemo(
|
|
403
488
|
() => ({
|
|
404
|
-
color: tokens.
|
|
489
|
+
color: tokens.colors[resolvedTheme][resolvedAppearance].fontPrimary,
|
|
405
490
|
fontSize: tokens.typography.fontSizes["05"],
|
|
406
491
|
fontFamily: tokens.typography.fonts.main.family,
|
|
407
492
|
lineHeight: tokens.typography.lineHeights["06"]
|
|
408
493
|
}),
|
|
409
|
-
[tokens]
|
|
494
|
+
[tokens, resolvedTheme, resolvedAppearance]
|
|
410
495
|
);
|
|
411
496
|
const wrappedChildren = useMemo(
|
|
412
497
|
() => wrapTextChildren(children, textStyle),
|
|
413
498
|
[children, textStyle]
|
|
414
499
|
);
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
wrappedChildren
|
|
454
|
-
)
|
|
455
|
-
));
|
|
500
|
+
const content = isInteractive ? /* @__PURE__ */ React16.createElement(
|
|
501
|
+
Pressable,
|
|
502
|
+
{
|
|
503
|
+
ref,
|
|
504
|
+
testID,
|
|
505
|
+
nativeID,
|
|
506
|
+
pointerEvents,
|
|
507
|
+
accessibilityLabel,
|
|
508
|
+
accessibilityHint,
|
|
509
|
+
accessibilityState: disabled ? { disabled: true } : void 0,
|
|
510
|
+
onPress,
|
|
511
|
+
disabled,
|
|
512
|
+
...href ? { href, accessibilityRole: "link" } : { accessibilityRole: "button" },
|
|
513
|
+
...webFocusProps,
|
|
514
|
+
style: ({ pressed }) => [
|
|
515
|
+
styles.container,
|
|
516
|
+
pressed && !disabled && styles.pressed,
|
|
517
|
+
focusRingStyle,
|
|
518
|
+
...webOverrides,
|
|
519
|
+
...userStyles
|
|
520
|
+
]
|
|
521
|
+
},
|
|
522
|
+
wrappedChildren
|
|
523
|
+
) : /* @__PURE__ */ React16.createElement(
|
|
524
|
+
View,
|
|
525
|
+
{
|
|
526
|
+
ref,
|
|
527
|
+
testID,
|
|
528
|
+
nativeID,
|
|
529
|
+
pointerEvents,
|
|
530
|
+
accessibilityLabel,
|
|
531
|
+
accessibilityHint,
|
|
532
|
+
style: [styles.container, ...webOverrides, ...userStyles]
|
|
533
|
+
},
|
|
534
|
+
wrappedChildren
|
|
535
|
+
);
|
|
536
|
+
const wrappedContent = schemeThemeCtx ? /* @__PURE__ */ React16.createElement(_ThemeContext.Provider, { value: schemeThemeCtx }, content) : content;
|
|
537
|
+
return /* @__PURE__ */ React16.createElement(FrameContext.Provider, { value: contextValue }, wrappedContent);
|
|
456
538
|
}
|
|
457
539
|
function Icon({
|
|
458
|
-
name,
|
|
459
|
-
size,
|
|
540
|
+
name = "add",
|
|
541
|
+
size = 24,
|
|
460
542
|
opticalSize,
|
|
461
543
|
fill = 0,
|
|
462
544
|
color,
|
|
@@ -469,6 +551,9 @@ function Icon({
|
|
|
469
551
|
ref
|
|
470
552
|
}) {
|
|
471
553
|
const tokens = useTokens();
|
|
554
|
+
const frameCtx = useFrameContext();
|
|
555
|
+
const resolvedTheme = frameCtx?.theme ?? "primary";
|
|
556
|
+
const resolvedAppearance = frameCtx?.appearance ?? "main";
|
|
472
557
|
const iconStyle = useMemo(() => {
|
|
473
558
|
const fontSize = size ?? tokens.typography.fontSizes["05"];
|
|
474
559
|
const getOpticalSize = (size2) => {
|
|
@@ -478,7 +563,7 @@ function Icon({
|
|
|
478
563
|
return 48;
|
|
479
564
|
};
|
|
480
565
|
const opsz = opticalSize ?? getOpticalSize(fontSize);
|
|
481
|
-
const iconColor = color ?? tokens.
|
|
566
|
+
const iconColor = color ?? tokens.colors[resolvedTheme][resolvedAppearance].fontPrimary;
|
|
482
567
|
const fontFamily = `Material Symbols ${tokens.icons.variant.charAt(0).toUpperCase() + tokens.icons.variant.slice(1)}`;
|
|
483
568
|
const fillValue = typeof fill === "boolean" ? fill ? 1 : 0 : fill;
|
|
484
569
|
const fontVariationSettings = `'FILL' ${fillValue}, 'wght' ${tokens.icons.weight}, 'GRAD' ${tokens.icons.grade}, 'opsz' ${opsz}`;
|
|
@@ -498,8 +583,8 @@ function Icon({
|
|
|
498
583
|
// web-only: controls the variable font axes listed above
|
|
499
584
|
...style
|
|
500
585
|
};
|
|
501
|
-
}, [tokens, size, opticalSize, fill, color, style]);
|
|
502
|
-
return /* @__PURE__ */
|
|
586
|
+
}, [tokens, size, opticalSize, fill, color, style, resolvedTheme, resolvedAppearance]);
|
|
587
|
+
return /* @__PURE__ */ React16.createElement(
|
|
503
588
|
Text,
|
|
504
589
|
{
|
|
505
590
|
ref,
|
|
@@ -527,7 +612,15 @@ function getWrapperStyles(input) {
|
|
|
527
612
|
minWidth,
|
|
528
613
|
maxWidth,
|
|
529
614
|
minHeight,
|
|
530
|
-
maxHeight
|
|
615
|
+
maxHeight,
|
|
616
|
+
position,
|
|
617
|
+
top,
|
|
618
|
+
right,
|
|
619
|
+
bottom,
|
|
620
|
+
left,
|
|
621
|
+
zIndex,
|
|
622
|
+
overflow,
|
|
623
|
+
opacity
|
|
531
624
|
} = input;
|
|
532
625
|
const container = {};
|
|
533
626
|
container.flexDirection = resolveFlexDirection(direction, reverse);
|
|
@@ -551,6 +644,14 @@ function getWrapperStyles(input) {
|
|
|
551
644
|
if (maxWidth !== void 0) container.maxWidth = maxWidth;
|
|
552
645
|
if (minHeight !== void 0) container.minHeight = minHeight;
|
|
553
646
|
if (maxHeight !== void 0) container.maxHeight = maxHeight;
|
|
647
|
+
if (position) container.position = position;
|
|
648
|
+
if (top !== void 0) container.top = top;
|
|
649
|
+
if (right !== void 0) container.right = right;
|
|
650
|
+
if (bottom !== void 0) container.bottom = bottom;
|
|
651
|
+
if (left !== void 0) container.left = left;
|
|
652
|
+
if (zIndex !== void 0) container.zIndex = zIndex;
|
|
653
|
+
if (overflow) container.overflow = overflow;
|
|
654
|
+
if (opacity !== void 0) container.opacity = opacity;
|
|
554
655
|
return StyleSheet.create({ c: container }).c;
|
|
555
656
|
}
|
|
556
657
|
function Wrapper({
|
|
@@ -568,13 +669,23 @@ function Wrapper({
|
|
|
568
669
|
maxWidth,
|
|
569
670
|
minHeight,
|
|
570
671
|
maxHeight,
|
|
672
|
+
// Positioning
|
|
673
|
+
position,
|
|
674
|
+
top,
|
|
675
|
+
right,
|
|
676
|
+
bottom,
|
|
677
|
+
left,
|
|
678
|
+
zIndex,
|
|
679
|
+
overflow,
|
|
680
|
+
pointerEvents,
|
|
681
|
+
opacity,
|
|
571
682
|
style,
|
|
572
683
|
// Testing & platform
|
|
573
684
|
testID,
|
|
574
685
|
nativeID,
|
|
575
686
|
ref
|
|
576
687
|
}) {
|
|
577
|
-
const tokens = useTokens(
|
|
688
|
+
const tokens = useTokens();
|
|
578
689
|
const containerStyle = useMemo(
|
|
579
690
|
() => getWrapperStyles({
|
|
580
691
|
tokens,
|
|
@@ -590,7 +701,15 @@ function Wrapper({
|
|
|
590
701
|
minWidth,
|
|
591
702
|
maxWidth,
|
|
592
703
|
minHeight,
|
|
593
|
-
maxHeight
|
|
704
|
+
maxHeight,
|
|
705
|
+
position,
|
|
706
|
+
top,
|
|
707
|
+
right,
|
|
708
|
+
bottom,
|
|
709
|
+
left,
|
|
710
|
+
zIndex,
|
|
711
|
+
overflow,
|
|
712
|
+
opacity
|
|
594
713
|
}),
|
|
595
714
|
[
|
|
596
715
|
tokens,
|
|
@@ -606,16 +725,25 @@ function Wrapper({
|
|
|
606
725
|
minWidth,
|
|
607
726
|
maxWidth,
|
|
608
727
|
minHeight,
|
|
609
|
-
maxHeight
|
|
728
|
+
maxHeight,
|
|
729
|
+
position,
|
|
730
|
+
top,
|
|
731
|
+
right,
|
|
732
|
+
bottom,
|
|
733
|
+
left,
|
|
734
|
+
zIndex,
|
|
735
|
+
overflow,
|
|
736
|
+
opacity
|
|
610
737
|
]
|
|
611
738
|
);
|
|
612
739
|
const userStyles = Array.isArray(style) ? style : style ? [style] : [];
|
|
613
|
-
return /* @__PURE__ */
|
|
740
|
+
return /* @__PURE__ */ React16.createElement(
|
|
614
741
|
View,
|
|
615
742
|
{
|
|
616
743
|
ref,
|
|
617
744
|
testID,
|
|
618
745
|
nativeID,
|
|
746
|
+
pointerEvents,
|
|
619
747
|
accessibilityRole: "none",
|
|
620
748
|
style: [containerStyle, ...userStyles]
|
|
621
749
|
},
|
|
@@ -623,25 +751,19 @@ function Wrapper({
|
|
|
623
751
|
);
|
|
624
752
|
}
|
|
625
753
|
var TextScopeContext = createContext(null);
|
|
626
|
-
|
|
627
|
-
|
|
754
|
+
var LARGE_TEXT_ROLES = /* @__PURE__ */ new Set(["headline", "title", "heading", "subheading"]);
|
|
755
|
+
function resolveTextColor(color, tokens, theme = "primary", appearance = "main", role = "body") {
|
|
628
756
|
switch (color) {
|
|
629
757
|
case "primary":
|
|
630
|
-
return tokens.
|
|
758
|
+
return tokens.colors[theme][appearance].fontPrimary;
|
|
631
759
|
case "secondary":
|
|
632
|
-
return tokens.
|
|
760
|
+
return tokens.colors[theme][appearance].fontSecondary;
|
|
633
761
|
case "tertiary":
|
|
634
|
-
return tokens.
|
|
762
|
+
return tokens.colors[theme][appearance].fontTertiary;
|
|
635
763
|
case "disabled":
|
|
636
|
-
return tokens.
|
|
764
|
+
return tokens.colors[theme][appearance].fontDisabled;
|
|
637
765
|
case "accent":
|
|
638
|
-
return tokens.
|
|
639
|
-
case "success":
|
|
640
|
-
return tokens.success.fill[gamut];
|
|
641
|
-
case "warning":
|
|
642
|
-
return tokens.warning.fill[gamut];
|
|
643
|
-
case "error":
|
|
644
|
-
return tokens.error.fill[gamut];
|
|
766
|
+
return tokens.colors[theme][appearance][LARGE_TEXT_ROLES.has(role) ? "accentLarge" : "accentSmall"];
|
|
645
767
|
}
|
|
646
768
|
}
|
|
647
769
|
var ADAPTIVE_ROLES = /* @__PURE__ */ new Set(["headline", "title", "heading", "subheading"]);
|
|
@@ -671,7 +793,7 @@ function TextBase({
|
|
|
671
793
|
weight: weightOverride,
|
|
672
794
|
align,
|
|
673
795
|
numberOfLines,
|
|
674
|
-
elevation
|
|
796
|
+
elevation,
|
|
675
797
|
style,
|
|
676
798
|
accessibilityRole: accessibilityRoleOverride,
|
|
677
799
|
testID,
|
|
@@ -683,6 +805,9 @@ function TextBase({
|
|
|
683
805
|
}) {
|
|
684
806
|
const tokens = useTokens(elevation);
|
|
685
807
|
const { config, reportingEndpoint } = useNewtoneTheme();
|
|
808
|
+
const frameCtx = useFrameContext();
|
|
809
|
+
const resolvedTheme = frameCtx?.theme ?? "primary";
|
|
810
|
+
const resolvedAppearance = frameCtx?.appearance ?? "main";
|
|
686
811
|
const size = sizeOverride ?? "md";
|
|
687
812
|
const fontSlot = tokens.typography.fonts[scope];
|
|
688
813
|
const resolvedFontWeight = weightOverride ? SEMANTIC_WEIGHT_MAP[weightOverride] : config.typography.roleWeights?.[role] ?? ROLE_DEFAULT_WEIGHTS[role];
|
|
@@ -745,18 +870,18 @@ function TextBase({
|
|
|
745
870
|
fontFamily: fontSlot.family,
|
|
746
871
|
fontSize: activeStep.fontSize,
|
|
747
872
|
fontWeight: String(resolvedFontWeight),
|
|
748
|
-
color: resolveTextColor(color, tokens),
|
|
873
|
+
color: resolveTextColor(color, tokens, resolvedTheme, resolvedAppearance, role),
|
|
749
874
|
lineHeight: correctedLineHeight,
|
|
750
875
|
textAlign: align,
|
|
751
876
|
...vcOffset !== 0 ? { transform: [{ translateY: vcOffset }] } : {},
|
|
752
877
|
...featureSettings ? { fontFeatureSettings: featureSettings } : {}
|
|
753
878
|
};
|
|
754
|
-
}, [tokens, fontSlot, step, resolvedStep, responsive, isAdaptive, resolvedFontWeight, color, align, config.typography.fontMetrics, centerVertically, features]);
|
|
879
|
+
}, [tokens, fontSlot, step, resolvedStep, responsive, isAdaptive, resolvedFontWeight, color, align, config.typography.fontMetrics, centerVertically, features, resolvedTheme, resolvedAppearance]);
|
|
755
880
|
const inferredA11yRole = role === "headline" || role === "title" || role === "heading" ? "header" : void 0;
|
|
756
881
|
const effectiveA11yRole = accessibilityRoleOverride ?? inferredA11yRole;
|
|
757
882
|
const ariaLevel = effectiveA11yRole === "header" ? ROLE_HEADING_LEVEL[role] : void 0;
|
|
758
883
|
const scopeCtx = useMemo(() => ({ weights: SEMANTIC_WEIGHT_MAP }), []);
|
|
759
|
-
const textNode = /* @__PURE__ */
|
|
884
|
+
const textNode = /* @__PURE__ */ React16.createElement(TextScopeContext.Provider, { value: scopeCtx }, /* @__PURE__ */ React16.createElement(
|
|
760
885
|
Text,
|
|
761
886
|
{
|
|
762
887
|
ref,
|
|
@@ -770,7 +895,7 @@ function TextBase({
|
|
|
770
895
|
children
|
|
771
896
|
));
|
|
772
897
|
if (responsive && isAdaptive) {
|
|
773
|
-
return /* @__PURE__ */
|
|
898
|
+
return /* @__PURE__ */ React16.createElement(
|
|
774
899
|
View,
|
|
775
900
|
{
|
|
776
901
|
onLayout: (e) => {
|
|
@@ -785,37 +910,40 @@ function TextBase({
|
|
|
785
910
|
return textNode;
|
|
786
911
|
}
|
|
787
912
|
function TextSpan({ children, color, weight, italic, underline, highlight, style }) {
|
|
788
|
-
const tokens = useTokens(
|
|
913
|
+
const tokens = useTokens();
|
|
789
914
|
const scopeCtx = useContext(TextScopeContext);
|
|
915
|
+
const frameCtx = useFrameContext();
|
|
916
|
+
const resolvedTheme = frameCtx?.theme ?? "primary";
|
|
917
|
+
const resolvedAppearance = frameCtx?.appearance ?? "main";
|
|
790
918
|
const spanStyle = useMemo(() => {
|
|
791
919
|
const s = {};
|
|
792
|
-
if (color) s.color = resolveTextColor(color, tokens);
|
|
920
|
+
if (color) s.color = resolveTextColor(color, tokens, resolvedTheme, resolvedAppearance);
|
|
793
921
|
if (weight && scopeCtx) s.fontWeight = String(scopeCtx.weights[weight]);
|
|
794
922
|
if (italic) s.fontStyle = "italic";
|
|
795
923
|
if (underline) s.textDecorationLine = "underline";
|
|
796
|
-
if (highlight) s.backgroundColor = resolveTextColor(highlight, tokens);
|
|
924
|
+
if (highlight) s.backgroundColor = resolveTextColor(highlight, tokens, resolvedTheme, resolvedAppearance);
|
|
797
925
|
return s;
|
|
798
|
-
}, [tokens, scopeCtx, color, weight, italic, underline, highlight]);
|
|
799
|
-
return
|
|
926
|
+
}, [tokens, scopeCtx, color, weight, italic, underline, highlight, resolvedTheme, resolvedAppearance]);
|
|
927
|
+
return React16.createElement(
|
|
800
928
|
Text,
|
|
801
929
|
{ style: style ? [spanStyle, ...Array.isArray(style) ? style : [style]] : spanStyle },
|
|
802
930
|
children
|
|
803
931
|
);
|
|
804
932
|
}
|
|
805
933
|
function TextBold(props) {
|
|
806
|
-
return
|
|
934
|
+
return React16.createElement(TextSpan, { ...props, weight: "bold" });
|
|
807
935
|
}
|
|
808
936
|
function TextMedium(props) {
|
|
809
|
-
return
|
|
937
|
+
return React16.createElement(TextSpan, { ...props, weight: "medium" });
|
|
810
938
|
}
|
|
811
939
|
function TextItalic(props) {
|
|
812
|
-
return
|
|
940
|
+
return React16.createElement(TextSpan, { ...props, italic: true });
|
|
813
941
|
}
|
|
814
942
|
function TextUnderline(props) {
|
|
815
|
-
return
|
|
943
|
+
return React16.createElement(TextSpan, { ...props, underline: true });
|
|
816
944
|
}
|
|
817
945
|
function TextHighlight(props) {
|
|
818
|
-
return
|
|
946
|
+
return React16.createElement(TextSpan, props);
|
|
819
947
|
}
|
|
820
948
|
|
|
821
949
|
// src/primitives/Text/index.ts
|
|
@@ -877,19 +1005,9 @@ function computeButtonPadding(size, hasIcon, hasText, iconPosition) {
|
|
|
877
1005
|
paddingBottom: base
|
|
878
1006
|
};
|
|
879
1007
|
}
|
|
880
|
-
function
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
return tokens.accent;
|
|
884
|
-
case "success":
|
|
885
|
-
return tokens.success;
|
|
886
|
-
case "error":
|
|
887
|
-
return tokens.error;
|
|
888
|
-
case "warning":
|
|
889
|
-
return tokens.warning;
|
|
890
|
-
default:
|
|
891
|
-
return void 0;
|
|
892
|
-
}
|
|
1008
|
+
function semanticToTheme(semantic) {
|
|
1009
|
+
if (semantic === "accent") return "primary";
|
|
1010
|
+
return semantic;
|
|
893
1011
|
}
|
|
894
1012
|
function getButtonConfig(variant, semantic, size, disabled, tokens) {
|
|
895
1013
|
const sizeConfig = getSizeConfig(size, tokens);
|
|
@@ -937,40 +1055,38 @@ function getSizeConfig(size, tokens) {
|
|
|
937
1055
|
function getVariantColors(variant, semantic, disabled, tokens) {
|
|
938
1056
|
if (disabled) {
|
|
939
1057
|
const baseColors = getVariantColorsForState(variant, semantic, tokens);
|
|
940
|
-
const
|
|
941
|
-
const disabledBg = tokens.backgroundSunken[gamut];
|
|
1058
|
+
const disabledBg = tokens.colors.primary.main.fontSecondary;
|
|
942
1059
|
return {
|
|
943
1060
|
...baseColors,
|
|
944
1061
|
bg: disabledBg,
|
|
945
1062
|
hoveredBg: disabledBg,
|
|
946
1063
|
pressedBg: disabledBg,
|
|
947
|
-
textColor: tokens.
|
|
948
|
-
iconColor: tokens.
|
|
1064
|
+
textColor: tokens.colors.primary.main.fontTertiary,
|
|
1065
|
+
iconColor: tokens.colors.primary.main.fontTertiary
|
|
949
1066
|
};
|
|
950
1067
|
}
|
|
951
1068
|
return getVariantColorsForState(variant, semantic, tokens);
|
|
952
1069
|
}
|
|
953
1070
|
function getVariantColorsForState(variant, semantic, tokens) {
|
|
954
|
-
const { gamut } = tokens;
|
|
955
|
-
const paletteTokens = getPaletteTokens(semantic, tokens);
|
|
956
1071
|
if (variant === "primary") {
|
|
957
1072
|
if (semantic === "neutral") {
|
|
958
1073
|
return {
|
|
959
|
-
bg: tokens.
|
|
960
|
-
hoveredBg: tokens.
|
|
961
|
-
pressedBg: tokens.
|
|
962
|
-
textColor: tokens.
|
|
963
|
-
iconColor: tokens.
|
|
1074
|
+
bg: tokens.colors.primary.main.fontPrimary,
|
|
1075
|
+
hoveredBg: tokens.colors.primary.main.fontSecondary,
|
|
1076
|
+
pressedBg: tokens.colors.primary.main.fontPrimary,
|
|
1077
|
+
textColor: tokens.colors.primary.main.divider,
|
|
1078
|
+
iconColor: tokens.colors.primary.main.divider,
|
|
964
1079
|
borderWidth: 1,
|
|
965
1080
|
borderColor: "transparent"
|
|
966
1081
|
};
|
|
967
1082
|
}
|
|
1083
|
+
const t = tokens.colors[semanticToTheme(semantic)];
|
|
968
1084
|
return {
|
|
969
|
-
bg:
|
|
970
|
-
hoveredBg:
|
|
971
|
-
pressedBg:
|
|
972
|
-
textColor:
|
|
973
|
-
iconColor:
|
|
1085
|
+
bg: t.emphasis.background,
|
|
1086
|
+
hoveredBg: t.emphasis.fontPrimary,
|
|
1087
|
+
pressedBg: t.emphasis.fontSecondary,
|
|
1088
|
+
textColor: t.main.background,
|
|
1089
|
+
iconColor: t.main.background,
|
|
974
1090
|
borderWidth: 1,
|
|
975
1091
|
borderColor: "transparent"
|
|
976
1092
|
};
|
|
@@ -979,20 +1095,21 @@ function getVariantColorsForState(variant, semantic, tokens) {
|
|
|
979
1095
|
if (semantic === "neutral") {
|
|
980
1096
|
return {
|
|
981
1097
|
bg: "transparent",
|
|
982
|
-
hoveredBg: tokens.
|
|
983
|
-
pressedBg: tokens.
|
|
984
|
-
textColor: tokens.
|
|
985
|
-
iconColor: tokens.
|
|
1098
|
+
hoveredBg: tokens.colors.primary.main.fontPrimary,
|
|
1099
|
+
pressedBg: tokens.colors.primary.main.fontSecondary,
|
|
1100
|
+
textColor: tokens.colors.primary.main.divider,
|
|
1101
|
+
iconColor: tokens.colors.primary.main.divider,
|
|
986
1102
|
borderWidth: 1,
|
|
987
|
-
borderColor: tokens.
|
|
1103
|
+
borderColor: tokens.colors.primary.main.fontSecondary
|
|
988
1104
|
};
|
|
989
1105
|
}
|
|
1106
|
+
const t = tokens.colors[semanticToTheme(semantic)];
|
|
990
1107
|
return {
|
|
991
|
-
bg:
|
|
992
|
-
hoveredBg:
|
|
993
|
-
pressedBg:
|
|
994
|
-
textColor:
|
|
995
|
-
iconColor:
|
|
1108
|
+
bg: t.tinted.background,
|
|
1109
|
+
hoveredBg: t.tinted.fontPrimary,
|
|
1110
|
+
pressedBg: t.tinted.fontSecondary,
|
|
1111
|
+
textColor: t.emphasis.divider,
|
|
1112
|
+
iconColor: t.emphasis.divider,
|
|
996
1113
|
borderWidth: 1,
|
|
997
1114
|
borderColor: "transparent"
|
|
998
1115
|
};
|
|
@@ -1001,30 +1118,54 @@ function getVariantColorsForState(variant, semantic, tokens) {
|
|
|
1001
1118
|
if (semantic === "neutral") {
|
|
1002
1119
|
return {
|
|
1003
1120
|
bg: "transparent",
|
|
1004
|
-
hoveredBg: tokens.
|
|
1005
|
-
pressedBg: tokens.
|
|
1006
|
-
textColor: tokens.
|
|
1007
|
-
iconColor: tokens.
|
|
1121
|
+
hoveredBg: tokens.colors.primary.main.fontPrimary,
|
|
1122
|
+
pressedBg: tokens.colors.primary.main.fontSecondary,
|
|
1123
|
+
textColor: tokens.colors.primary.main.divider,
|
|
1124
|
+
iconColor: tokens.colors.primary.main.divider,
|
|
1008
1125
|
borderWidth: 1,
|
|
1009
1126
|
borderColor: "transparent"
|
|
1010
1127
|
};
|
|
1011
1128
|
}
|
|
1129
|
+
const t = tokens.colors[semanticToTheme(semantic)];
|
|
1012
1130
|
return {
|
|
1013
1131
|
bg: "transparent",
|
|
1014
|
-
hoveredBg:
|
|
1015
|
-
pressedBg:
|
|
1016
|
-
textColor:
|
|
1017
|
-
iconColor:
|
|
1132
|
+
hoveredBg: t.tinted.background,
|
|
1133
|
+
pressedBg: t.tinted.fontPrimary,
|
|
1134
|
+
textColor: t.emphasis.divider,
|
|
1135
|
+
iconColor: t.emphasis.divider,
|
|
1018
1136
|
borderWidth: 1,
|
|
1019
1137
|
borderColor: "transparent"
|
|
1020
1138
|
};
|
|
1021
1139
|
}
|
|
1140
|
+
if (variant === "link") {
|
|
1141
|
+
if (semantic === "neutral") {
|
|
1142
|
+
return {
|
|
1143
|
+
bg: "transparent",
|
|
1144
|
+
hoveredBg: "transparent",
|
|
1145
|
+
pressedBg: "transparent",
|
|
1146
|
+
textColor: tokens.colors.primary.main.fontSecondary,
|
|
1147
|
+
iconColor: tokens.colors.primary.main.fontSecondary,
|
|
1148
|
+
borderWidth: 0,
|
|
1149
|
+
borderColor: "transparent"
|
|
1150
|
+
};
|
|
1151
|
+
}
|
|
1152
|
+
const t = tokens.colors[semanticToTheme(semantic)];
|
|
1153
|
+
return {
|
|
1154
|
+
bg: "transparent",
|
|
1155
|
+
hoveredBg: "transparent",
|
|
1156
|
+
pressedBg: "transparent",
|
|
1157
|
+
textColor: t.emphasis.divider,
|
|
1158
|
+
iconColor: t.emphasis.divider,
|
|
1159
|
+
borderWidth: 0,
|
|
1160
|
+
borderColor: "transparent"
|
|
1161
|
+
};
|
|
1162
|
+
}
|
|
1022
1163
|
return {
|
|
1023
1164
|
bg: "transparent",
|
|
1024
1165
|
hoveredBg: "transparent",
|
|
1025
1166
|
pressedBg: "transparent",
|
|
1026
|
-
textColor: tokens.
|
|
1027
|
-
iconColor: tokens.
|
|
1167
|
+
textColor: tokens.colors.primary.main.divider,
|
|
1168
|
+
iconColor: tokens.colors.primary.main.divider,
|
|
1028
1169
|
borderWidth: 0
|
|
1029
1170
|
};
|
|
1030
1171
|
}
|
|
@@ -1036,22 +1177,25 @@ function Button({
|
|
|
1036
1177
|
semantic = "neutral",
|
|
1037
1178
|
size = "md",
|
|
1038
1179
|
disabled = false,
|
|
1180
|
+
loading = false,
|
|
1181
|
+
fullWidth = false,
|
|
1039
1182
|
style,
|
|
1040
1183
|
textStyle,
|
|
1041
1184
|
...pressableProps
|
|
1042
1185
|
}) {
|
|
1043
1186
|
const tokens = useTokens();
|
|
1044
|
-
const
|
|
1045
|
-
|
|
1046
|
-
|
|
1187
|
+
const isDisabled = disabled || loading;
|
|
1188
|
+
const { variantColors, sizeTokens } = React16.useMemo(
|
|
1189
|
+
() => getButtonConfig(variant, semantic, size, isDisabled, tokens),
|
|
1190
|
+
[variant, semantic, size, isDisabled, tokens]
|
|
1047
1191
|
);
|
|
1048
|
-
const padding =
|
|
1049
|
-
() => computeButtonPadding(size, !!icon, !!children, iconPosition),
|
|
1050
|
-
[size, icon, children, iconPosition]
|
|
1192
|
+
const padding = React16.useMemo(
|
|
1193
|
+
() => variant === "link" ? { paddingLeft: 0, paddingRight: 0, paddingTop: 0, paddingBottom: 0 } : computeButtonPadding(size, !!icon, !!children, iconPosition),
|
|
1194
|
+
[size, icon, children, iconPosition, variant]
|
|
1051
1195
|
);
|
|
1052
|
-
return /* @__PURE__ */
|
|
1196
|
+
return /* @__PURE__ */ React16.createElement(Pressable, { disabled: isDisabled, ...pressableProps }, ({ pressed, hovered }) => (
|
|
1053
1197
|
// Wrapper handles layout: direction, gap, alignment (padding via style)
|
|
1054
|
-
/* @__PURE__ */
|
|
1198
|
+
/* @__PURE__ */ React16.createElement(
|
|
1055
1199
|
Wrapper,
|
|
1056
1200
|
{
|
|
1057
1201
|
direction: "horizontal",
|
|
@@ -1062,41 +1206,45 @@ function Button({
|
|
|
1062
1206
|
{
|
|
1063
1207
|
...padding,
|
|
1064
1208
|
// Asymmetric horizontal padding for text optical balance
|
|
1065
|
-
backgroundColor: pressed && !
|
|
1066
|
-
borderRadius: sizeTokens.borderRadius,
|
|
1209
|
+
backgroundColor: pressed && !isDisabled ? variantColors.pressedBg : hovered && !isDisabled ? variantColors.hoveredBg : variantColors.bg,
|
|
1210
|
+
borderRadius: variant === "link" ? 0 : sizeTokens.borderRadius,
|
|
1067
1211
|
borderWidth: variantColors.borderWidth,
|
|
1068
|
-
// Always 1 for consistent sizing
|
|
1069
1212
|
borderColor: variantColors.borderColor || "transparent",
|
|
1070
|
-
opacity:
|
|
1213
|
+
opacity: isDisabled ? loading ? 0.6 : 0.4 : variant === "link" && pressed ? 0.7 : 1,
|
|
1214
|
+
...fullWidth && { width: "100%", alignSelf: "stretch" }
|
|
1071
1215
|
},
|
|
1072
1216
|
...Array.isArray(style) ? style : style ? [style] : []
|
|
1073
1217
|
]
|
|
1074
1218
|
},
|
|
1075
|
-
icon && iconPosition === "left" && /* @__PURE__ */
|
|
1219
|
+
icon && iconPosition === "left" && /* @__PURE__ */ React16.createElement(Icon, { name: icon, size: sizeTokens.iconSize, color: variantColors.iconColor }),
|
|
1076
1220
|
children && // Text primitive with semantic props + color style override
|
|
1077
|
-
/* @__PURE__ */
|
|
1221
|
+
/* @__PURE__ */ React16.createElement(
|
|
1078
1222
|
Text3,
|
|
1079
1223
|
{
|
|
1080
1224
|
role: "label",
|
|
1081
1225
|
size: sizeTokens.textSize,
|
|
1082
1226
|
centerVertically: true,
|
|
1083
1227
|
style: [
|
|
1084
|
-
{
|
|
1228
|
+
{
|
|
1229
|
+
color: variantColors.textColor,
|
|
1230
|
+
...variant === "link" && hovered && { textDecorationLine: "underline" }
|
|
1231
|
+
},
|
|
1085
1232
|
...Array.isArray(textStyle) ? textStyle : textStyle ? [textStyle] : []
|
|
1086
1233
|
]
|
|
1087
1234
|
},
|
|
1088
1235
|
children
|
|
1089
1236
|
),
|
|
1090
|
-
icon && iconPosition === "right" && /* @__PURE__ */
|
|
1237
|
+
icon && iconPosition === "right" && /* @__PURE__ */ React16.createElement(Icon, { name: icon, size: sizeTokens.iconSize, color: variantColors.iconColor })
|
|
1091
1238
|
)
|
|
1092
1239
|
));
|
|
1093
1240
|
}
|
|
1094
|
-
function getCardStyles(tokens,
|
|
1241
|
+
function getCardStyles(tokens, disabled, theme = "primary", appearance = "main") {
|
|
1242
|
+
const at = tokens.colors[theme][appearance];
|
|
1095
1243
|
return StyleSheet.create({
|
|
1096
1244
|
container: {
|
|
1097
|
-
backgroundColor:
|
|
1245
|
+
backgroundColor: at.background,
|
|
1098
1246
|
borderWidth: 1,
|
|
1099
|
-
borderColor:
|
|
1247
|
+
borderColor: at.fontSecondary,
|
|
1100
1248
|
borderRadius: tokens.radius.lg,
|
|
1101
1249
|
padding: tokens.spacing["16"],
|
|
1102
1250
|
opacity: disabled ? 0.5 : 1
|
|
@@ -1112,13 +1260,286 @@ function Card({
|
|
|
1112
1260
|
disabled = false
|
|
1113
1261
|
}) {
|
|
1114
1262
|
const tokens = useTokens(elevation);
|
|
1115
|
-
const
|
|
1116
|
-
|
|
1117
|
-
|
|
1263
|
+
const frameCtx = useFrameContext();
|
|
1264
|
+
const styles = React16.useMemo(
|
|
1265
|
+
() => getCardStyles(tokens, disabled, frameCtx?.theme, frameCtx?.appearance),
|
|
1266
|
+
[tokens, disabled, frameCtx?.theme, frameCtx?.appearance]
|
|
1118
1267
|
);
|
|
1119
|
-
return /* @__PURE__ */
|
|
1268
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : [style]] }, children);
|
|
1269
|
+
}
|
|
1270
|
+
|
|
1271
|
+
// src/composites/display/Chip/Chip.styles.ts
|
|
1272
|
+
function semanticToTheme2(semantic) {
|
|
1273
|
+
if (semantic === "accent") return "primary";
|
|
1274
|
+
return semantic;
|
|
1275
|
+
}
|
|
1276
|
+
function getSizeConfig2(size) {
|
|
1277
|
+
if (size === "sm") {
|
|
1278
|
+
return { paddingX: 10, paddingY: 3, gap: 4, textRole: "caption", iconSize: 16 };
|
|
1279
|
+
}
|
|
1280
|
+
return { paddingX: 16, paddingY: 8, gap: 6, textRole: "label", iconSize: 20 };
|
|
1120
1281
|
}
|
|
1121
|
-
function
|
|
1282
|
+
function getVariantColors2(variant, semantic, selected, disabled, tokens) {
|
|
1283
|
+
if (selected) {
|
|
1284
|
+
if (semantic === "neutral") {
|
|
1285
|
+
return {
|
|
1286
|
+
bg: tokens.colors.primary.strong.background,
|
|
1287
|
+
hoveredBg: tokens.colors.primary.strong.fontPrimary,
|
|
1288
|
+
pressedBg: tokens.colors.primary.strong.background,
|
|
1289
|
+
textColor: tokens.colors.primary.strong.fontPrimary,
|
|
1290
|
+
iconColor: tokens.colors.primary.strong.fontPrimary,
|
|
1291
|
+
borderWidth: 1,
|
|
1292
|
+
borderColor: "transparent"
|
|
1293
|
+
};
|
|
1294
|
+
}
|
|
1295
|
+
const t2 = tokens.colors[semanticToTheme2(semantic)];
|
|
1296
|
+
return {
|
|
1297
|
+
bg: t2.emphasis.background,
|
|
1298
|
+
hoveredBg: t2.emphasis.fontPrimary,
|
|
1299
|
+
pressedBg: t2.emphasis.background,
|
|
1300
|
+
textColor: t2.main.background,
|
|
1301
|
+
iconColor: t2.main.background,
|
|
1302
|
+
borderWidth: 1,
|
|
1303
|
+
borderColor: "transparent"
|
|
1304
|
+
};
|
|
1305
|
+
}
|
|
1306
|
+
if (disabled) {
|
|
1307
|
+
return {
|
|
1308
|
+
bg: "transparent",
|
|
1309
|
+
hoveredBg: "transparent",
|
|
1310
|
+
pressedBg: "transparent",
|
|
1311
|
+
textColor: tokens.colors.primary.main.fontTertiary,
|
|
1312
|
+
iconColor: tokens.colors.primary.main.fontTertiary,
|
|
1313
|
+
borderWidth: 1,
|
|
1314
|
+
borderColor: tokens.colors.primary.main.divider
|
|
1315
|
+
};
|
|
1316
|
+
}
|
|
1317
|
+
if (variant === "filled") {
|
|
1318
|
+
if (semantic === "neutral") {
|
|
1319
|
+
return {
|
|
1320
|
+
bg: tokens.colors.primary.main.fontPrimary,
|
|
1321
|
+
hoveredBg: tokens.colors.primary.main.fontSecondary,
|
|
1322
|
+
pressedBg: tokens.colors.primary.main.fontPrimary,
|
|
1323
|
+
textColor: tokens.colors.primary.main.divider,
|
|
1324
|
+
iconColor: tokens.colors.primary.main.divider,
|
|
1325
|
+
borderWidth: 1,
|
|
1326
|
+
borderColor: "transparent"
|
|
1327
|
+
};
|
|
1328
|
+
}
|
|
1329
|
+
const t2 = tokens.colors[semanticToTheme2(semantic)];
|
|
1330
|
+
return {
|
|
1331
|
+
bg: t2.emphasis.background,
|
|
1332
|
+
hoveredBg: t2.emphasis.fontPrimary,
|
|
1333
|
+
pressedBg: t2.emphasis.fontSecondary,
|
|
1334
|
+
textColor: t2.main.background,
|
|
1335
|
+
iconColor: t2.main.background,
|
|
1336
|
+
borderWidth: 1,
|
|
1337
|
+
borderColor: "transparent"
|
|
1338
|
+
};
|
|
1339
|
+
}
|
|
1340
|
+
if (variant === "tinted") {
|
|
1341
|
+
if (semantic === "neutral") {
|
|
1342
|
+
return {
|
|
1343
|
+
bg: tokens.colors.primary.tinted.background,
|
|
1344
|
+
hoveredBg: tokens.colors.primary.tinted.fontPrimary,
|
|
1345
|
+
pressedBg: tokens.colors.primary.tinted.fontSecondary,
|
|
1346
|
+
textColor: tokens.colors.primary.main.fontPrimary,
|
|
1347
|
+
iconColor: tokens.colors.primary.main.fontPrimary,
|
|
1348
|
+
borderWidth: 1,
|
|
1349
|
+
borderColor: "transparent"
|
|
1350
|
+
};
|
|
1351
|
+
}
|
|
1352
|
+
const t2 = tokens.colors[semanticToTheme2(semantic)];
|
|
1353
|
+
return {
|
|
1354
|
+
bg: t2.tinted.background,
|
|
1355
|
+
hoveredBg: t2.tinted.fontPrimary,
|
|
1356
|
+
pressedBg: t2.tinted.fontSecondary,
|
|
1357
|
+
textColor: t2.emphasis.divider,
|
|
1358
|
+
iconColor: t2.emphasis.divider,
|
|
1359
|
+
borderWidth: 1,
|
|
1360
|
+
borderColor: "transparent"
|
|
1361
|
+
};
|
|
1362
|
+
}
|
|
1363
|
+
if (semantic === "neutral") {
|
|
1364
|
+
return {
|
|
1365
|
+
bg: "transparent",
|
|
1366
|
+
hoveredBg: tokens.colors.primary.tinted.background,
|
|
1367
|
+
pressedBg: tokens.colors.primary.tinted.fontPrimary,
|
|
1368
|
+
textColor: tokens.colors.primary.main.fontPrimary,
|
|
1369
|
+
iconColor: tokens.colors.primary.main.fontPrimary,
|
|
1370
|
+
borderWidth: 1,
|
|
1371
|
+
borderColor: tokens.colors.primary.main.divider
|
|
1372
|
+
};
|
|
1373
|
+
}
|
|
1374
|
+
const t = tokens.colors[semanticToTheme2(semantic)];
|
|
1375
|
+
return {
|
|
1376
|
+
bg: "transparent",
|
|
1377
|
+
hoveredBg: t.tinted.background,
|
|
1378
|
+
pressedBg: t.tinted.fontPrimary,
|
|
1379
|
+
textColor: t.emphasis.divider,
|
|
1380
|
+
iconColor: t.emphasis.divider,
|
|
1381
|
+
borderWidth: 1,
|
|
1382
|
+
borderColor: t.tinted.fontSecondary
|
|
1383
|
+
};
|
|
1384
|
+
}
|
|
1385
|
+
function getChipConfig(variant, semantic, size, selected, disabled, tokens) {
|
|
1386
|
+
return {
|
|
1387
|
+
colors: getVariantColors2(variant, semantic, selected, disabled, tokens),
|
|
1388
|
+
sizeTokens: getSizeConfig2(size)
|
|
1389
|
+
};
|
|
1390
|
+
}
|
|
1391
|
+
function Chip({
|
|
1392
|
+
children,
|
|
1393
|
+
variant = "tinted",
|
|
1394
|
+
size = "md",
|
|
1395
|
+
semantic = "neutral",
|
|
1396
|
+
selected = false,
|
|
1397
|
+
onPress,
|
|
1398
|
+
disabled = false,
|
|
1399
|
+
icon,
|
|
1400
|
+
style
|
|
1401
|
+
}) {
|
|
1402
|
+
const tokens = useTokens();
|
|
1403
|
+
const { colors, sizeTokens } = React16.useMemo(
|
|
1404
|
+
() => getChipConfig(variant, semantic, size, selected, disabled, tokens),
|
|
1405
|
+
[variant, semantic, size, selected, disabled, tokens]
|
|
1406
|
+
);
|
|
1407
|
+
const content = (state) => /* @__PURE__ */ React16.createElement(
|
|
1408
|
+
Wrapper,
|
|
1409
|
+
{
|
|
1410
|
+
direction: "horizontal",
|
|
1411
|
+
align: "center",
|
|
1412
|
+
gap: sizeTokens.gap,
|
|
1413
|
+
style: [
|
|
1414
|
+
{
|
|
1415
|
+
paddingLeft: sizeTokens.paddingX,
|
|
1416
|
+
paddingRight: sizeTokens.paddingX,
|
|
1417
|
+
paddingTop: sizeTokens.paddingY,
|
|
1418
|
+
paddingBottom: sizeTokens.paddingY,
|
|
1419
|
+
backgroundColor: state?.pressed && !disabled ? colors.pressedBg : state?.hovered && !disabled ? colors.hoveredBg : colors.bg,
|
|
1420
|
+
borderRadius: 99,
|
|
1421
|
+
borderWidth: colors.borderWidth,
|
|
1422
|
+
borderColor: colors.borderColor || "transparent",
|
|
1423
|
+
opacity: disabled ? 0.4 : 1
|
|
1424
|
+
},
|
|
1425
|
+
...Array.isArray(style) ? style : style ? [style] : []
|
|
1426
|
+
]
|
|
1427
|
+
},
|
|
1428
|
+
icon && /* @__PURE__ */ React16.createElement(Icon, { name: icon, size: sizeTokens.iconSize, color: colors.iconColor }),
|
|
1429
|
+
/* @__PURE__ */ React16.createElement(
|
|
1430
|
+
Text3,
|
|
1431
|
+
{
|
|
1432
|
+
role: sizeTokens.textRole,
|
|
1433
|
+
weight: selected ? "bold" : "medium",
|
|
1434
|
+
style: { color: colors.textColor }
|
|
1435
|
+
},
|
|
1436
|
+
children
|
|
1437
|
+
)
|
|
1438
|
+
);
|
|
1439
|
+
if (onPress) {
|
|
1440
|
+
return /* @__PURE__ */ React16.createElement(Pressable, { onPress, disabled }, ({ pressed, hovered }) => content({ pressed, hovered }));
|
|
1441
|
+
}
|
|
1442
|
+
return content();
|
|
1443
|
+
}
|
|
1444
|
+
|
|
1445
|
+
// src/composites/layout/Divider/Divider.styles.ts
|
|
1446
|
+
function getDividerStyles(orientation, spacing, tokens) {
|
|
1447
|
+
const color = tokens.colors.primary.main.divider;
|
|
1448
|
+
if (orientation === "vertical") {
|
|
1449
|
+
return {
|
|
1450
|
+
width: 1,
|
|
1451
|
+
height: "100%",
|
|
1452
|
+
backgroundColor: color,
|
|
1453
|
+
...spacing != null && { marginLeft: spacing, marginRight: spacing }
|
|
1454
|
+
};
|
|
1455
|
+
}
|
|
1456
|
+
return {
|
|
1457
|
+
height: 1,
|
|
1458
|
+
width: "100%",
|
|
1459
|
+
backgroundColor: color,
|
|
1460
|
+
...spacing != null && { marginTop: spacing, marginBottom: spacing }
|
|
1461
|
+
};
|
|
1462
|
+
}
|
|
1463
|
+
function Divider({
|
|
1464
|
+
orientation = "horizontal",
|
|
1465
|
+
spacing,
|
|
1466
|
+
style
|
|
1467
|
+
}) {
|
|
1468
|
+
const tokens = useTokens();
|
|
1469
|
+
const dividerStyle = React16.useMemo(
|
|
1470
|
+
() => getDividerStyles(orientation, spacing, tokens),
|
|
1471
|
+
[orientation, spacing, tokens]
|
|
1472
|
+
);
|
|
1473
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1474
|
+
View,
|
|
1475
|
+
{
|
|
1476
|
+
style: [dividerStyle, ...Array.isArray(style) ? style : style ? [style] : []],
|
|
1477
|
+
accessibilityRole: "none"
|
|
1478
|
+
}
|
|
1479
|
+
);
|
|
1480
|
+
}
|
|
1481
|
+
|
|
1482
|
+
// src/composites/layout/ContentCard/ContentCard.styles.ts
|
|
1483
|
+
function getContentCardStyles(variant, isInteractive, tokens) {
|
|
1484
|
+
const dividerColor = tokens.colors.primary.main.divider;
|
|
1485
|
+
const interactiveStyles = isInteractive ? { cursor: "pointer", textDecorationLine: "none" } : {};
|
|
1486
|
+
if (variant === "elevated") {
|
|
1487
|
+
return {
|
|
1488
|
+
borderRadius: 12,
|
|
1489
|
+
...interactiveStyles
|
|
1490
|
+
};
|
|
1491
|
+
}
|
|
1492
|
+
if (variant === "bordered") {
|
|
1493
|
+
return {
|
|
1494
|
+
borderWidth: 1,
|
|
1495
|
+
borderColor: dividerColor,
|
|
1496
|
+
borderStyle: "solid",
|
|
1497
|
+
borderRadius: 12,
|
|
1498
|
+
...interactiveStyles
|
|
1499
|
+
};
|
|
1500
|
+
}
|
|
1501
|
+
return {
|
|
1502
|
+
borderBottomWidth: 1,
|
|
1503
|
+
borderBottomColor: dividerColor,
|
|
1504
|
+
...interactiveStyles
|
|
1505
|
+
};
|
|
1506
|
+
}
|
|
1507
|
+
function ContentCard({
|
|
1508
|
+
children,
|
|
1509
|
+
variant = "bordered",
|
|
1510
|
+
href,
|
|
1511
|
+
onPress,
|
|
1512
|
+
padding = 20,
|
|
1513
|
+
gap = 8,
|
|
1514
|
+
disabled = false,
|
|
1515
|
+
style
|
|
1516
|
+
}) {
|
|
1517
|
+
const tokens = useTokens();
|
|
1518
|
+
const isInteractive = !!(href || onPress);
|
|
1519
|
+
const variantStyles = React16.useMemo(
|
|
1520
|
+
() => getContentCardStyles(variant, isInteractive, tokens),
|
|
1521
|
+
[variant, isInteractive, tokens]
|
|
1522
|
+
);
|
|
1523
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1524
|
+
Frame,
|
|
1525
|
+
{
|
|
1526
|
+
elevation: variant === "elevated" ? 2 : void 0,
|
|
1527
|
+
appearance: variant === "elevated" ? "tinted" : void 0,
|
|
1528
|
+
href,
|
|
1529
|
+
onPress,
|
|
1530
|
+
disabled,
|
|
1531
|
+
padding,
|
|
1532
|
+
gap,
|
|
1533
|
+
style: [
|
|
1534
|
+
variantStyles,
|
|
1535
|
+
...Array.isArray(style) ? style : style ? [style] : []
|
|
1536
|
+
]
|
|
1537
|
+
},
|
|
1538
|
+
children
|
|
1539
|
+
);
|
|
1540
|
+
}
|
|
1541
|
+
function getTextInputStyles(tokens, disabled, theme = "primary", appearance = "main") {
|
|
1542
|
+
const at = tokens.colors[theme][appearance];
|
|
1122
1543
|
return StyleSheet.create({
|
|
1123
1544
|
container: {
|
|
1124
1545
|
gap: tokens.spacing["04"]
|
|
@@ -1127,18 +1548,18 @@ function getTextInputStyles(tokens, gamut, disabled) {
|
|
|
1127
1548
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1128
1549
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1129
1550
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1130
|
-
color:
|
|
1551
|
+
color: at.fontTertiary
|
|
1131
1552
|
},
|
|
1132
1553
|
input: {
|
|
1133
1554
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1134
|
-
backgroundColor:
|
|
1555
|
+
backgroundColor: at.fontSecondary,
|
|
1135
1556
|
borderWidth: 1,
|
|
1136
|
-
borderColor:
|
|
1557
|
+
borderColor: at.fontSecondary,
|
|
1137
1558
|
borderRadius: tokens.radius.md,
|
|
1138
1559
|
paddingVertical: tokens.spacing["08"],
|
|
1139
1560
|
paddingHorizontal: tokens.spacing["12"],
|
|
1140
1561
|
fontSize: tokens.typography.fontSizes["05"],
|
|
1141
|
-
color: disabled ?
|
|
1562
|
+
color: disabled ? at.fontTertiary : at.divider,
|
|
1142
1563
|
opacity: disabled ? 0.5 : 1
|
|
1143
1564
|
}
|
|
1144
1565
|
});
|
|
@@ -1152,21 +1573,25 @@ function TextInput({
|
|
|
1152
1573
|
...textInputProps
|
|
1153
1574
|
}) {
|
|
1154
1575
|
const tokens = useTokens(1);
|
|
1155
|
-
const
|
|
1156
|
-
|
|
1157
|
-
|
|
1576
|
+
const frameCtx = useFrameContext();
|
|
1577
|
+
const theme = frameCtx?.theme ?? "primary";
|
|
1578
|
+
const appearance = frameCtx?.appearance ?? "main";
|
|
1579
|
+
const styles = React16.useMemo(
|
|
1580
|
+
() => getTextInputStyles(tokens, disabled, theme, appearance),
|
|
1581
|
+
[tokens, disabled, theme, appearance]
|
|
1158
1582
|
);
|
|
1159
|
-
return /* @__PURE__ */
|
|
1583
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : [style]] }, label && /* @__PURE__ */ React16.createElement(Text, { style: styles.label }, label), /* @__PURE__ */ React16.createElement(
|
|
1160
1584
|
TextInput$1,
|
|
1161
1585
|
{
|
|
1162
1586
|
style: styles.input,
|
|
1163
1587
|
editable: !disabled,
|
|
1164
|
-
placeholderTextColor: tokens.
|
|
1588
|
+
placeholderTextColor: tokens.colors[theme][appearance].fontTertiary,
|
|
1165
1589
|
...textInputProps
|
|
1166
1590
|
}
|
|
1167
1591
|
));
|
|
1168
1592
|
}
|
|
1169
|
-
function getPopoverStyles(tokens,
|
|
1593
|
+
function getPopoverStyles(tokens, triggerHeight, offset, maxHeight, width, isOpen, theme = "primary", appearance = "main") {
|
|
1594
|
+
const at = tokens.colors[theme][appearance];
|
|
1170
1595
|
const widthStyle = width === "trigger" ? { left: 0, right: 0 } : typeof width === "number" ? { width, left: 0 } : { left: 0 };
|
|
1171
1596
|
return StyleSheet.create({
|
|
1172
1597
|
container: {
|
|
@@ -1177,9 +1602,9 @@ function getPopoverStyles(tokens, gamut, triggerHeight, offset, maxHeight, width
|
|
|
1177
1602
|
position: "absolute",
|
|
1178
1603
|
top: triggerHeight + offset,
|
|
1179
1604
|
...widthStyle,
|
|
1180
|
-
backgroundColor:
|
|
1605
|
+
backgroundColor: at.fontPrimary,
|
|
1181
1606
|
borderWidth: 1,
|
|
1182
|
-
borderColor:
|
|
1607
|
+
borderColor: at.fontSecondary,
|
|
1183
1608
|
borderRadius: tokens.radius.md,
|
|
1184
1609
|
maxHeight,
|
|
1185
1610
|
zIndex: 1e3,
|
|
@@ -1208,6 +1633,7 @@ function Popover({
|
|
|
1208
1633
|
contentStyle
|
|
1209
1634
|
}) {
|
|
1210
1635
|
const tokens = useTokens(1);
|
|
1636
|
+
const frameCtx = useFrameContext();
|
|
1211
1637
|
const containerRef = useRef(null);
|
|
1212
1638
|
const [triggerHeight, setTriggerHeight] = useState(0);
|
|
1213
1639
|
const onTriggerLayout = useCallback(
|
|
@@ -1247,8 +1673,8 @@ function Popover({
|
|
|
1247
1673
|
[closeOnEscape, onClose]
|
|
1248
1674
|
);
|
|
1249
1675
|
const styles = useMemo(
|
|
1250
|
-
() => getPopoverStyles(tokens,
|
|
1251
|
-
[tokens, triggerHeight, offset, maxHeight, width, isOpen]
|
|
1676
|
+
() => getPopoverStyles(tokens, triggerHeight, offset, maxHeight, width, isOpen, frameCtx?.theme, frameCtx?.appearance),
|
|
1677
|
+
[tokens, triggerHeight, offset, maxHeight, width, isOpen, frameCtx?.theme, frameCtx?.appearance]
|
|
1252
1678
|
);
|
|
1253
1679
|
const containerStyles = useMemo(
|
|
1254
1680
|
() => [styles.container, ...Array.isArray(style) ? style : style ? [style] : []],
|
|
@@ -1259,15 +1685,15 @@ function Popover({
|
|
|
1259
1685
|
[styles.content, contentStyle]
|
|
1260
1686
|
);
|
|
1261
1687
|
const webProps = { onKeyDown: handleKeyDown };
|
|
1262
|
-
return /* @__PURE__ */
|
|
1688
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1263
1689
|
View,
|
|
1264
1690
|
{
|
|
1265
1691
|
ref: containerRef,
|
|
1266
1692
|
style: containerStyles,
|
|
1267
1693
|
...webProps
|
|
1268
1694
|
},
|
|
1269
|
-
/* @__PURE__ */
|
|
1270
|
-
isOpen && /* @__PURE__ */
|
|
1695
|
+
/* @__PURE__ */ React16.createElement(View, { onLayout: onTriggerLayout }, trigger),
|
|
1696
|
+
isOpen && /* @__PURE__ */ React16.createElement(View, { style: mergedContentStyles }, children)
|
|
1271
1697
|
);
|
|
1272
1698
|
}
|
|
1273
1699
|
function usePopover(options) {
|
|
@@ -1294,7 +1720,8 @@ function usePopover(options) {
|
|
|
1294
1720
|
function isOptionGroup(item) {
|
|
1295
1721
|
return "options" in item;
|
|
1296
1722
|
}
|
|
1297
|
-
function getSelectStyles(tokens,
|
|
1723
|
+
function getSelectStyles(tokens, disabled, size, isOpen, theme = "primary", appearance = "main") {
|
|
1724
|
+
const at = tokens.colors[theme][appearance];
|
|
1298
1725
|
const isSm = size === "sm";
|
|
1299
1726
|
const fontSize = isSm ? tokens.typography.fontSizes["04"] : tokens.typography.fontSizes["05"];
|
|
1300
1727
|
const iconSize = fontSize + 2;
|
|
@@ -1310,14 +1737,14 @@ function getSelectStyles(tokens, gamut, disabled, size, isOpen) {
|
|
|
1310
1737
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1311
1738
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1312
1739
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1313
|
-
color:
|
|
1740
|
+
color: at.fontTertiary
|
|
1314
1741
|
},
|
|
1315
1742
|
trigger: {
|
|
1316
1743
|
flexDirection: "row",
|
|
1317
1744
|
alignItems: "center",
|
|
1318
|
-
backgroundColor:
|
|
1745
|
+
backgroundColor: at.fontSecondary,
|
|
1319
1746
|
borderWidth: 1,
|
|
1320
|
-
borderColor:
|
|
1747
|
+
borderColor: at.fontSecondary,
|
|
1321
1748
|
borderRadius: tokens.radius.md,
|
|
1322
1749
|
paddingVertical,
|
|
1323
1750
|
paddingLeft: paddingHorizontal,
|
|
@@ -1328,7 +1755,7 @@ function getSelectStyles(tokens, gamut, disabled, size, isOpen) {
|
|
|
1328
1755
|
flex: 1,
|
|
1329
1756
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1330
1757
|
fontSize,
|
|
1331
|
-
color: disabled ?
|
|
1758
|
+
color: disabled ? at.fontTertiary : at.divider
|
|
1332
1759
|
},
|
|
1333
1760
|
iconWrapper: {
|
|
1334
1761
|
position: "absolute",
|
|
@@ -1341,7 +1768,7 @@ function getSelectStyles(tokens, gamut, disabled, size, isOpen) {
|
|
|
1341
1768
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1342
1769
|
fontSize: tokens.typography.fontSizes["01"],
|
|
1343
1770
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1344
|
-
color:
|
|
1771
|
+
color: at.fontTertiary,
|
|
1345
1772
|
textTransform: "uppercase",
|
|
1346
1773
|
letterSpacing: 0.5,
|
|
1347
1774
|
paddingVertical: tokens.spacing["04"],
|
|
@@ -1460,11 +1887,14 @@ function SelectOptionRow({
|
|
|
1460
1887
|
size
|
|
1461
1888
|
}) {
|
|
1462
1889
|
const tokens = useTokens(1);
|
|
1890
|
+
const frameCtx = useFrameContext();
|
|
1891
|
+
const at = tokens.colors[frameCtx?.theme ?? "primary"][frameCtx?.appearance ?? "main"];
|
|
1892
|
+
const emphasisAt = tokens.colors[frameCtx?.theme ?? "primary"].emphasis;
|
|
1463
1893
|
const paddingVertical = size === "sm" ? tokens.spacing["04"] : tokens.spacing["08"];
|
|
1464
1894
|
const paddingHorizontal = size === "sm" ? tokens.spacing["08"] : tokens.spacing["12"];
|
|
1465
1895
|
const fontSize = size === "sm" ? tokens.typography.fontSizes["04"] : tokens.typography.fontSizes["05"];
|
|
1466
1896
|
if (renderOption) {
|
|
1467
|
-
return /* @__PURE__ */
|
|
1897
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1468
1898
|
Pressable,
|
|
1469
1899
|
{
|
|
1470
1900
|
onPress: option.disabled ? void 0 : onSelect,
|
|
@@ -1475,7 +1905,7 @@ function SelectOptionRow({
|
|
|
1475
1905
|
renderOption(option, { isSelected, isFocused })
|
|
1476
1906
|
);
|
|
1477
1907
|
}
|
|
1478
|
-
return /* @__PURE__ */
|
|
1908
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1479
1909
|
Pressable,
|
|
1480
1910
|
{
|
|
1481
1911
|
onPress: option.disabled ? void 0 : onSelect,
|
|
@@ -1491,10 +1921,10 @@ function SelectOptionRow({
|
|
|
1491
1921
|
paddingHorizontal
|
|
1492
1922
|
},
|
|
1493
1923
|
isSelected && {
|
|
1494
|
-
backgroundColor:
|
|
1924
|
+
backgroundColor: at.fontSecondary
|
|
1495
1925
|
},
|
|
1496
1926
|
isFocused && !isSelected && {
|
|
1497
|
-
backgroundColor: `${
|
|
1927
|
+
backgroundColor: `${at.fontSecondary}20`
|
|
1498
1928
|
},
|
|
1499
1929
|
option.disabled && {
|
|
1500
1930
|
opacity: 0.5
|
|
@@ -1504,7 +1934,7 @@ function SelectOptionRow({
|
|
|
1504
1934
|
}
|
|
1505
1935
|
]
|
|
1506
1936
|
},
|
|
1507
|
-
/* @__PURE__ */
|
|
1937
|
+
/* @__PURE__ */ React16.createElement(
|
|
1508
1938
|
Text,
|
|
1509
1939
|
{
|
|
1510
1940
|
style: [
|
|
@@ -1512,26 +1942,26 @@ function SelectOptionRow({
|
|
|
1512
1942
|
flex: 1,
|
|
1513
1943
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1514
1944
|
fontSize,
|
|
1515
|
-
color:
|
|
1945
|
+
color: at.divider
|
|
1516
1946
|
},
|
|
1517
1947
|
isSelected && {
|
|
1518
1948
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1519
|
-
color:
|
|
1949
|
+
color: emphasisAt.divider
|
|
1520
1950
|
},
|
|
1521
1951
|
option.disabled && {
|
|
1522
|
-
color:
|
|
1952
|
+
color: at.fontTertiary
|
|
1523
1953
|
}
|
|
1524
1954
|
],
|
|
1525
1955
|
numberOfLines: 1
|
|
1526
1956
|
},
|
|
1527
1957
|
option.label
|
|
1528
1958
|
),
|
|
1529
|
-
isSelected && /* @__PURE__ */
|
|
1959
|
+
isSelected && /* @__PURE__ */ React16.createElement(View, { style: { marginLeft: tokens.spacing["08"] } }, /* @__PURE__ */ React16.createElement(
|
|
1530
1960
|
Icon,
|
|
1531
1961
|
{
|
|
1532
1962
|
name: "check",
|
|
1533
1963
|
size: fontSize,
|
|
1534
|
-
color:
|
|
1964
|
+
color: emphasisAt.divider
|
|
1535
1965
|
}
|
|
1536
1966
|
))
|
|
1537
1967
|
);
|
|
@@ -1562,6 +1992,7 @@ function Select({
|
|
|
1562
1992
|
style
|
|
1563
1993
|
}) {
|
|
1564
1994
|
const tokens = useTokens(1);
|
|
1995
|
+
const frameCtx = useFrameContext();
|
|
1565
1996
|
const { isOpen, open, close, toggle } = usePopover();
|
|
1566
1997
|
const flatOptions = useMemo(() => flattenOptions(options), [options]);
|
|
1567
1998
|
const { focusedIndex, handleKeyDown } = useSelect({
|
|
@@ -1575,15 +2006,18 @@ function Select({
|
|
|
1575
2006
|
onClose: close,
|
|
1576
2007
|
onOpen: open
|
|
1577
2008
|
});
|
|
2009
|
+
const inheritedTheme = frameCtx?.theme;
|
|
2010
|
+
const inheritedAppearance = frameCtx?.appearance;
|
|
1578
2011
|
const styles = useMemo(
|
|
1579
|
-
() => getSelectStyles(tokens,
|
|
1580
|
-
[tokens, disabled, size, isOpen]
|
|
2012
|
+
() => getSelectStyles(tokens, disabled, size, isOpen, inheritedTheme, inheritedAppearance),
|
|
2013
|
+
[tokens, disabled, size, isOpen, inheritedTheme, inheritedAppearance]
|
|
1581
2014
|
);
|
|
1582
2015
|
const selectedOption = flatOptions.find((o) => o.value === value);
|
|
1583
2016
|
const displayLabel = selectedOption?.label ?? placeholder ?? value;
|
|
1584
|
-
const
|
|
2017
|
+
const at = tokens.colors[inheritedTheme ?? "primary"][inheritedAppearance ?? "main"];
|
|
2018
|
+
const iconColor = disabled ? at.fontTertiary : at.divider;
|
|
1585
2019
|
const triggerWebProps = { onKeyDown: handleKeyDown };
|
|
1586
|
-
const trigger = /* @__PURE__ */
|
|
2020
|
+
const trigger = /* @__PURE__ */ React16.createElement(
|
|
1587
2021
|
Pressable,
|
|
1588
2022
|
{
|
|
1589
2023
|
onPress: disabled ? void 0 : toggle,
|
|
@@ -1593,8 +2027,8 @@ function Select({
|
|
|
1593
2027
|
...triggerWebProps,
|
|
1594
2028
|
style: styles.trigger
|
|
1595
2029
|
},
|
|
1596
|
-
renderValue ? renderValue(selectedOption) : /* @__PURE__ */
|
|
1597
|
-
/* @__PURE__ */
|
|
2030
|
+
renderValue ? renderValue(selectedOption) : /* @__PURE__ */ React16.createElement(Text, { style: styles.triggerText, numberOfLines: 1 }, displayLabel),
|
|
2031
|
+
/* @__PURE__ */ React16.createElement(View, { style: styles.iconWrapper, pointerEvents: "none" }, /* @__PURE__ */ React16.createElement(
|
|
1598
2032
|
Icon,
|
|
1599
2033
|
{
|
|
1600
2034
|
name: isOpen ? "expand_less" : "expand_more",
|
|
@@ -1603,14 +2037,14 @@ function Select({
|
|
|
1603
2037
|
}
|
|
1604
2038
|
))
|
|
1605
2039
|
);
|
|
1606
|
-
return /* @__PURE__ */
|
|
2040
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : style ? [style] : []] }, label && /* @__PURE__ */ React16.createElement(Text, { style: styles.label }, label), /* @__PURE__ */ React16.createElement(
|
|
1607
2041
|
Popover,
|
|
1608
2042
|
{
|
|
1609
2043
|
isOpen: isOpen && !disabled,
|
|
1610
2044
|
onClose: close,
|
|
1611
2045
|
trigger
|
|
1612
2046
|
},
|
|
1613
|
-
/* @__PURE__ */
|
|
2047
|
+
/* @__PURE__ */ React16.createElement(
|
|
1614
2048
|
ScrollView,
|
|
1615
2049
|
{
|
|
1616
2050
|
bounces: false,
|
|
@@ -1619,7 +2053,7 @@ function Select({
|
|
|
1619
2053
|
},
|
|
1620
2054
|
options.map((item) => {
|
|
1621
2055
|
if (isOptionGroup(item)) {
|
|
1622
|
-
return /* @__PURE__ */
|
|
2056
|
+
return /* @__PURE__ */ React16.createElement(View, { key: item.label }, /* @__PURE__ */ React16.createElement(Text, { style: styles.groupLabel }, item.label), item.options.map((opt) => /* @__PURE__ */ React16.createElement(
|
|
1623
2057
|
SelectOptionRow,
|
|
1624
2058
|
{
|
|
1625
2059
|
key: opt.value,
|
|
@@ -1635,7 +2069,7 @@ function Select({
|
|
|
1635
2069
|
}
|
|
1636
2070
|
)));
|
|
1637
2071
|
}
|
|
1638
|
-
return /* @__PURE__ */
|
|
2072
|
+
return /* @__PURE__ */ React16.createElement(
|
|
1639
2073
|
SelectOptionRow,
|
|
1640
2074
|
{
|
|
1641
2075
|
key: item.value,
|
|
@@ -1658,7 +2092,9 @@ var TRACK_WIDTH = 40;
|
|
|
1658
2092
|
var TRACK_HEIGHT = 22;
|
|
1659
2093
|
var THUMB_SIZE = 18;
|
|
1660
2094
|
var THUMB_OFFSET = 2;
|
|
1661
|
-
function getToggleStyles(tokens,
|
|
2095
|
+
function getToggleStyles(tokens, value, disabled, theme = "primary", appearance = "main") {
|
|
2096
|
+
const at = tokens.colors[theme][appearance];
|
|
2097
|
+
const emphasisAt = tokens.colors[theme].emphasis;
|
|
1662
2098
|
return StyleSheet.create({
|
|
1663
2099
|
container: {
|
|
1664
2100
|
flexDirection: "row",
|
|
@@ -1670,13 +2106,13 @@ function getToggleStyles(tokens, gamut, value, disabled) {
|
|
|
1670
2106
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1671
2107
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1672
2108
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1673
|
-
color:
|
|
2109
|
+
color: at.fontTertiary
|
|
1674
2110
|
},
|
|
1675
2111
|
track: {
|
|
1676
2112
|
width: TRACK_WIDTH,
|
|
1677
2113
|
height: TRACK_HEIGHT,
|
|
1678
2114
|
borderRadius: TRACK_HEIGHT / 2,
|
|
1679
|
-
backgroundColor: value ?
|
|
2115
|
+
backgroundColor: value ? emphasisAt.divider : at.fontSecondary,
|
|
1680
2116
|
justifyContent: "center",
|
|
1681
2117
|
paddingHorizontal: THUMB_OFFSET
|
|
1682
2118
|
},
|
|
@@ -1684,7 +2120,7 @@ function getToggleStyles(tokens, gamut, value, disabled) {
|
|
|
1684
2120
|
width: THUMB_SIZE,
|
|
1685
2121
|
height: THUMB_SIZE,
|
|
1686
2122
|
borderRadius: THUMB_SIZE / 2,
|
|
1687
|
-
backgroundColor:
|
|
2123
|
+
backgroundColor: at.background,
|
|
1688
2124
|
alignSelf: value ? "flex-end" : "flex-start"
|
|
1689
2125
|
}
|
|
1690
2126
|
});
|
|
@@ -1699,16 +2135,17 @@ function Toggle({
|
|
|
1699
2135
|
style
|
|
1700
2136
|
}) {
|
|
1701
2137
|
const tokens = useTokens(1);
|
|
1702
|
-
const
|
|
1703
|
-
|
|
1704
|
-
|
|
2138
|
+
const frameCtx = useFrameContext();
|
|
2139
|
+
const styles = React16.useMemo(
|
|
2140
|
+
() => getToggleStyles(tokens, value, disabled, frameCtx?.theme, frameCtx?.appearance),
|
|
2141
|
+
[tokens, value, disabled, frameCtx?.theme, frameCtx?.appearance]
|
|
1705
2142
|
);
|
|
1706
|
-
const handlePress =
|
|
2143
|
+
const handlePress = React16.useCallback(() => {
|
|
1707
2144
|
if (!disabled) {
|
|
1708
2145
|
onValueChange(!value);
|
|
1709
2146
|
}
|
|
1710
2147
|
}, [disabled, value, onValueChange]);
|
|
1711
|
-
return /* @__PURE__ */
|
|
2148
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : [style]] }, label && /* @__PURE__ */ React16.createElement(Text, { style: styles.label }, label), /* @__PURE__ */ React16.createElement(
|
|
1712
2149
|
Pressable,
|
|
1713
2150
|
{
|
|
1714
2151
|
onPress: handlePress,
|
|
@@ -1716,12 +2153,12 @@ function Toggle({
|
|
|
1716
2153
|
accessibilityRole: "switch",
|
|
1717
2154
|
accessibilityState: { checked: value, disabled }
|
|
1718
2155
|
},
|
|
1719
|
-
/* @__PURE__ */
|
|
2156
|
+
/* @__PURE__ */ React16.createElement(View, { style: styles.track }, /* @__PURE__ */ React16.createElement(View, { style: styles.thumb }))
|
|
1720
2157
|
));
|
|
1721
2158
|
}
|
|
1722
2159
|
var TRACK_HEIGHT2 = 6;
|
|
1723
2160
|
var THUMB_SIZE2 = 16;
|
|
1724
|
-
function getSliderStyles(tokens,
|
|
2161
|
+
function getSliderStyles(tokens, disabled) {
|
|
1725
2162
|
return StyleSheet.create({
|
|
1726
2163
|
container: {
|
|
1727
2164
|
gap: tokens.spacing["04"],
|
|
@@ -1736,23 +2173,23 @@ function getSliderStyles(tokens, gamut, disabled) {
|
|
|
1736
2173
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1737
2174
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1738
2175
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1739
|
-
color: tokens.
|
|
2176
|
+
color: tokens.colors.primary.main.fontTertiary
|
|
1740
2177
|
},
|
|
1741
2178
|
value: {
|
|
1742
2179
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1743
2180
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1744
2181
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1745
|
-
color: tokens.
|
|
2182
|
+
color: tokens.colors.primary.main.divider
|
|
1746
2183
|
},
|
|
1747
2184
|
valueInput: {
|
|
1748
2185
|
width: 48,
|
|
1749
2186
|
paddingVertical: 0,
|
|
1750
2187
|
paddingHorizontal: 4,
|
|
1751
2188
|
borderWidth: 1,
|
|
1752
|
-
borderColor: tokens.
|
|
2189
|
+
borderColor: tokens.colors.primary.main.fontSecondary,
|
|
1753
2190
|
borderRadius: 4,
|
|
1754
2191
|
backgroundColor: "transparent",
|
|
1755
|
-
color: tokens.
|
|
2192
|
+
color: tokens.colors.primary.main.divider,
|
|
1756
2193
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1757
2194
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1758
2195
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
@@ -1769,21 +2206,21 @@ function getSliderStyles(tokens, gamut, disabled) {
|
|
|
1769
2206
|
right: 0,
|
|
1770
2207
|
height: TRACK_HEIGHT2,
|
|
1771
2208
|
borderRadius: TRACK_HEIGHT2 / 2,
|
|
1772
|
-
backgroundColor: tokens.
|
|
2209
|
+
backgroundColor: tokens.colors.primary.main.fontSecondary
|
|
1773
2210
|
},
|
|
1774
2211
|
trackFill: {
|
|
1775
2212
|
position: "absolute",
|
|
1776
2213
|
left: 0,
|
|
1777
2214
|
height: TRACK_HEIGHT2,
|
|
1778
2215
|
borderRadius: TRACK_HEIGHT2 / 2,
|
|
1779
|
-
backgroundColor: tokens.
|
|
2216
|
+
backgroundColor: tokens.colors.primary.emphasis.divider
|
|
1780
2217
|
},
|
|
1781
2218
|
thumb: {
|
|
1782
2219
|
position: "absolute",
|
|
1783
2220
|
width: THUMB_SIZE2,
|
|
1784
2221
|
height: THUMB_SIZE2,
|
|
1785
2222
|
borderRadius: THUMB_SIZE2 / 2,
|
|
1786
|
-
backgroundColor: tokens.
|
|
2223
|
+
backgroundColor: tokens.colors.primary.emphasis.divider
|
|
1787
2224
|
}
|
|
1788
2225
|
});
|
|
1789
2226
|
}
|
|
@@ -1802,42 +2239,42 @@ function Slider({
|
|
|
1802
2239
|
style
|
|
1803
2240
|
}) {
|
|
1804
2241
|
const tokens = useTokens(1);
|
|
1805
|
-
const styles =
|
|
1806
|
-
() => getSliderStyles(tokens,
|
|
2242
|
+
const styles = React16.useMemo(
|
|
2243
|
+
() => getSliderStyles(tokens, disabled),
|
|
1807
2244
|
[tokens, disabled]
|
|
1808
2245
|
);
|
|
1809
|
-
const trackRef =
|
|
1810
|
-
const trackWidth =
|
|
1811
|
-
const trackPageX =
|
|
1812
|
-
const [layoutWidth, setLayoutWidth] =
|
|
1813
|
-
const onValueChangeRef =
|
|
1814
|
-
const minRef =
|
|
1815
|
-
const maxRef =
|
|
1816
|
-
const stepRef =
|
|
1817
|
-
const disabledRef =
|
|
1818
|
-
|
|
2246
|
+
const trackRef = React16.useRef(null);
|
|
2247
|
+
const trackWidth = React16.useRef(0);
|
|
2248
|
+
const trackPageX = React16.useRef(0);
|
|
2249
|
+
const [layoutWidth, setLayoutWidth] = React16.useState(0);
|
|
2250
|
+
const onValueChangeRef = React16.useRef(onValueChange);
|
|
2251
|
+
const minRef = React16.useRef(min);
|
|
2252
|
+
const maxRef = React16.useRef(max);
|
|
2253
|
+
const stepRef = React16.useRef(step);
|
|
2254
|
+
const disabledRef = React16.useRef(disabled);
|
|
2255
|
+
React16.useEffect(() => {
|
|
1819
2256
|
onValueChangeRef.current = onValueChange;
|
|
1820
2257
|
}, [onValueChange]);
|
|
1821
|
-
|
|
2258
|
+
React16.useEffect(() => {
|
|
1822
2259
|
minRef.current = min;
|
|
1823
2260
|
}, [min]);
|
|
1824
|
-
|
|
2261
|
+
React16.useEffect(() => {
|
|
1825
2262
|
maxRef.current = max;
|
|
1826
2263
|
}, [max]);
|
|
1827
|
-
|
|
2264
|
+
React16.useEffect(() => {
|
|
1828
2265
|
stepRef.current = step;
|
|
1829
2266
|
}, [step]);
|
|
1830
|
-
|
|
2267
|
+
React16.useEffect(() => {
|
|
1831
2268
|
disabledRef.current = disabled;
|
|
1832
2269
|
}, [disabled]);
|
|
1833
|
-
const computeValue =
|
|
2270
|
+
const computeValue = React16.useCallback((pageX) => {
|
|
1834
2271
|
const localX = pageX - trackPageX.current;
|
|
1835
2272
|
const ratio2 = Math.min(1, Math.max(0, localX / trackWidth.current));
|
|
1836
2273
|
const raw = minRef.current + ratio2 * (maxRef.current - minRef.current);
|
|
1837
2274
|
const stepped = Math.round(raw / stepRef.current) * stepRef.current;
|
|
1838
2275
|
return Math.min(maxRef.current, Math.max(minRef.current, stepped));
|
|
1839
2276
|
}, []);
|
|
1840
|
-
const panResponder =
|
|
2277
|
+
const panResponder = React16.useRef(
|
|
1841
2278
|
PanResponder.create({
|
|
1842
2279
|
onStartShouldSetPanResponder: () => !disabledRef.current,
|
|
1843
2280
|
onMoveShouldSetPanResponder: () => !disabledRef.current,
|
|
@@ -1865,7 +2302,7 @@ function Slider({
|
|
|
1865
2302
|
fillLeft = 0;
|
|
1866
2303
|
fillWidth = thumbLeft + THUMB_SIZE2 / 2;
|
|
1867
2304
|
}
|
|
1868
|
-
const handleValueTextSubmit =
|
|
2305
|
+
const handleValueTextSubmit = React16.useCallback(
|
|
1869
2306
|
(text) => {
|
|
1870
2307
|
const raw = Number(text);
|
|
1871
2308
|
if (!Number.isNaN(raw)) {
|
|
@@ -1874,12 +2311,12 @@ function Slider({
|
|
|
1874
2311
|
},
|
|
1875
2312
|
[onValueChange, min, max]
|
|
1876
2313
|
);
|
|
1877
|
-
const [editText, setEditText] =
|
|
1878
|
-
|
|
2314
|
+
const [editText, setEditText] = React16.useState(String(value));
|
|
2315
|
+
React16.useEffect(() => {
|
|
1879
2316
|
setEditText(String(value));
|
|
1880
2317
|
}, [value]);
|
|
1881
2318
|
const showLabel = label || showValue || editableValue;
|
|
1882
|
-
return /* @__PURE__ */
|
|
2319
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : [style]] }, showLabel && /* @__PURE__ */ React16.createElement(View, { style: styles.labelRow }, label && /* @__PURE__ */ React16.createElement(Text, { style: styles.label }, label), editableValue ? /* @__PURE__ */ React16.createElement(
|
|
1883
2320
|
TextInput$1,
|
|
1884
2321
|
{
|
|
1885
2322
|
style: styles.valueInput,
|
|
@@ -1891,7 +2328,7 @@ function Slider({
|
|
|
1891
2328
|
selectTextOnFocus: true,
|
|
1892
2329
|
editable: !disabled
|
|
1893
2330
|
}
|
|
1894
|
-
) : showValue && /* @__PURE__ */
|
|
2331
|
+
) : showValue && /* @__PURE__ */ React16.createElement(Text, { style: styles.value }, value)), /* @__PURE__ */ React16.createElement(
|
|
1895
2332
|
View,
|
|
1896
2333
|
{
|
|
1897
2334
|
ref: trackRef,
|
|
@@ -1906,9 +2343,9 @@ function Slider({
|
|
|
1906
2343
|
},
|
|
1907
2344
|
...panResponder.panHandlers
|
|
1908
2345
|
},
|
|
1909
|
-
/* @__PURE__ */
|
|
1910
|
-
/* @__PURE__ */
|
|
1911
|
-
/* @__PURE__ */
|
|
2346
|
+
/* @__PURE__ */ React16.createElement(View, { style: styles.trackRail }),
|
|
2347
|
+
/* @__PURE__ */ React16.createElement(View, { style: [styles.trackFill, { left: fillLeft, width: fillWidth }] }),
|
|
2348
|
+
/* @__PURE__ */ React16.createElement(View, { style: [styles.thumb, { left: thumbLeft }] })
|
|
1912
2349
|
));
|
|
1913
2350
|
}
|
|
1914
2351
|
var TRACK_HEIGHT3 = 22;
|
|
@@ -1926,7 +2363,7 @@ function buildHueSegments(min, max) {
|
|
|
1926
2363
|
return hueToHex(hue);
|
|
1927
2364
|
});
|
|
1928
2365
|
}
|
|
1929
|
-
function getHueSliderStyles(tokens,
|
|
2366
|
+
function getHueSliderStyles(tokens, disabled) {
|
|
1930
2367
|
return StyleSheet.create({
|
|
1931
2368
|
container: {
|
|
1932
2369
|
gap: tokens.spacing["04"],
|
|
@@ -1941,23 +2378,23 @@ function getHueSliderStyles(tokens, gamut, disabled) {
|
|
|
1941
2378
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1942
2379
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1943
2380
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1944
|
-
color: tokens.
|
|
2381
|
+
color: tokens.colors.primary.main.fontTertiary
|
|
1945
2382
|
},
|
|
1946
2383
|
value: {
|
|
1947
2384
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1948
2385
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1949
2386
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
1950
|
-
color: tokens.
|
|
2387
|
+
color: tokens.colors.primary.main.divider
|
|
1951
2388
|
},
|
|
1952
2389
|
valueInput: {
|
|
1953
2390
|
width: 48,
|
|
1954
2391
|
paddingVertical: 0,
|
|
1955
2392
|
paddingHorizontal: 4,
|
|
1956
2393
|
borderWidth: 1,
|
|
1957
|
-
borderColor: tokens.
|
|
2394
|
+
borderColor: tokens.colors.primary.main.fontSecondary,
|
|
1958
2395
|
borderRadius: 4,
|
|
1959
2396
|
backgroundColor: "transparent",
|
|
1960
|
-
color: tokens.
|
|
2397
|
+
color: tokens.colors.primary.main.divider,
|
|
1961
2398
|
fontFamily: tokens.typography.fonts.main.family,
|
|
1962
2399
|
fontSize: tokens.typography.fontSizes["04"],
|
|
1963
2400
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
@@ -1987,7 +2424,7 @@ function getHueSliderStyles(tokens, gamut, disabled) {
|
|
|
1987
2424
|
borderRadius: THUMB_SIZE3 / 2,
|
|
1988
2425
|
backgroundColor: "#ffffff",
|
|
1989
2426
|
borderWidth: 2,
|
|
1990
|
-
borderColor: tokens.
|
|
2427
|
+
borderColor: tokens.colors.primary.main.fontSecondary
|
|
1991
2428
|
}
|
|
1992
2429
|
});
|
|
1993
2430
|
}
|
|
@@ -2005,42 +2442,42 @@ function HueSlider({
|
|
|
2005
2442
|
style
|
|
2006
2443
|
}) {
|
|
2007
2444
|
const tokens = useTokens(1);
|
|
2008
|
-
const styles =
|
|
2009
|
-
() => getHueSliderStyles(tokens,
|
|
2445
|
+
const styles = React16.useMemo(
|
|
2446
|
+
() => getHueSliderStyles(tokens, disabled),
|
|
2010
2447
|
[tokens, disabled]
|
|
2011
2448
|
);
|
|
2012
|
-
const segments =
|
|
2449
|
+
const segments = React16.useMemo(
|
|
2013
2450
|
() => buildHueSegments(min, max),
|
|
2014
2451
|
[min, max]
|
|
2015
2452
|
);
|
|
2016
|
-
const trackRef =
|
|
2017
|
-
const trackWidth =
|
|
2018
|
-
const trackPageX =
|
|
2019
|
-
const [layoutWidth, setLayoutWidth] =
|
|
2020
|
-
const onValueChangeRef =
|
|
2021
|
-
const minRef =
|
|
2022
|
-
const maxRef =
|
|
2023
|
-
const disabledRef =
|
|
2024
|
-
|
|
2453
|
+
const trackRef = React16.useRef(null);
|
|
2454
|
+
const trackWidth = React16.useRef(0);
|
|
2455
|
+
const trackPageX = React16.useRef(0);
|
|
2456
|
+
const [layoutWidth, setLayoutWidth] = React16.useState(0);
|
|
2457
|
+
const onValueChangeRef = React16.useRef(onValueChange);
|
|
2458
|
+
const minRef = React16.useRef(min);
|
|
2459
|
+
const maxRef = React16.useRef(max);
|
|
2460
|
+
const disabledRef = React16.useRef(disabled);
|
|
2461
|
+
React16.useEffect(() => {
|
|
2025
2462
|
onValueChangeRef.current = onValueChange;
|
|
2026
2463
|
}, [onValueChange]);
|
|
2027
|
-
|
|
2464
|
+
React16.useEffect(() => {
|
|
2028
2465
|
minRef.current = min;
|
|
2029
2466
|
}, [min]);
|
|
2030
|
-
|
|
2467
|
+
React16.useEffect(() => {
|
|
2031
2468
|
maxRef.current = max;
|
|
2032
2469
|
}, [max]);
|
|
2033
|
-
|
|
2470
|
+
React16.useEffect(() => {
|
|
2034
2471
|
disabledRef.current = disabled;
|
|
2035
2472
|
}, [disabled]);
|
|
2036
|
-
const computeHue =
|
|
2473
|
+
const computeHue = React16.useCallback((pageX) => {
|
|
2037
2474
|
const localX = pageX - trackPageX.current;
|
|
2038
2475
|
const ratio2 = Math.min(1, Math.max(0, localX / trackWidth.current));
|
|
2039
2476
|
const raw = minRef.current + ratio2 * (maxRef.current - minRef.current);
|
|
2040
2477
|
const stepped = Math.round(raw);
|
|
2041
2478
|
return (stepped % 360 + 360) % 360;
|
|
2042
2479
|
}, []);
|
|
2043
|
-
const panResponder =
|
|
2480
|
+
const panResponder = React16.useRef(
|
|
2044
2481
|
PanResponder.create({
|
|
2045
2482
|
onStartShouldSetPanResponder: () => !disabledRef.current,
|
|
2046
2483
|
onMoveShouldSetPanResponder: () => !disabledRef.current,
|
|
@@ -2056,7 +2493,7 @@ function HueSlider({
|
|
|
2056
2493
|
const ratio = max > min ? (sliderValue - min) / (max - min) : 0;
|
|
2057
2494
|
const usableWidth = Math.max(0, layoutWidth - THUMB_SIZE3);
|
|
2058
2495
|
const thumbLeft = ratio * usableWidth;
|
|
2059
|
-
const handleValueTextSubmit =
|
|
2496
|
+
const handleValueTextSubmit = React16.useCallback(
|
|
2060
2497
|
(text) => {
|
|
2061
2498
|
const raw = Number(text);
|
|
2062
2499
|
if (!Number.isNaN(raw)) {
|
|
@@ -2065,12 +2502,12 @@ function HueSlider({
|
|
|
2065
2502
|
},
|
|
2066
2503
|
[onValueChange]
|
|
2067
2504
|
);
|
|
2068
|
-
const [editText, setEditText] =
|
|
2069
|
-
|
|
2505
|
+
const [editText, setEditText] = React16.useState(String(value));
|
|
2506
|
+
React16.useEffect(() => {
|
|
2070
2507
|
setEditText(String(value));
|
|
2071
2508
|
}, [value]);
|
|
2072
2509
|
const showLabel = label || showValue || editableValue;
|
|
2073
|
-
return /* @__PURE__ */
|
|
2510
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : [style]] }, showLabel && /* @__PURE__ */ React16.createElement(View, { style: styles.labelRow }, label && /* @__PURE__ */ React16.createElement(Text, { style: styles.label }, label), editableValue ? /* @__PURE__ */ React16.createElement(
|
|
2074
2511
|
TextInput$1,
|
|
2075
2512
|
{
|
|
2076
2513
|
style: styles.valueInput,
|
|
@@ -2082,7 +2519,7 @@ function HueSlider({
|
|
|
2082
2519
|
selectTextOnFocus: true,
|
|
2083
2520
|
editable: !disabled
|
|
2084
2521
|
}
|
|
2085
|
-
) : showValue && /* @__PURE__ */
|
|
2522
|
+
) : showValue && /* @__PURE__ */ React16.createElement(Text, { style: styles.value }, value, "\xB0")), /* @__PURE__ */ React16.createElement(
|
|
2086
2523
|
View,
|
|
2087
2524
|
{
|
|
2088
2525
|
ref: trackRef,
|
|
@@ -2097,8 +2534,8 @@ function HueSlider({
|
|
|
2097
2534
|
},
|
|
2098
2535
|
...panResponder.panHandlers
|
|
2099
2536
|
},
|
|
2100
|
-
/* @__PURE__ */
|
|
2101
|
-
/* @__PURE__ */
|
|
2537
|
+
/* @__PURE__ */ React16.createElement(View, { style: styles.gradientTrack }, segments.map((color, i) => /* @__PURE__ */ React16.createElement(View, { key: i, style: [styles.segment, { backgroundColor: color }] }))),
|
|
2538
|
+
/* @__PURE__ */ React16.createElement(View, { style: [styles.thumb, { left: thumbLeft }] })
|
|
2102
2539
|
));
|
|
2103
2540
|
}
|
|
2104
2541
|
|
|
@@ -2159,7 +2596,7 @@ function oklchToP3Css(color) {
|
|
|
2159
2596
|
}
|
|
2160
2597
|
var TRACK_HEIGHT4 = 22;
|
|
2161
2598
|
var THUMB_SIZE4 = 18;
|
|
2162
|
-
function getColorScaleSliderStyles(tokens,
|
|
2599
|
+
function getColorScaleSliderStyles(tokens, disabled) {
|
|
2163
2600
|
return StyleSheet.create({
|
|
2164
2601
|
container: {
|
|
2165
2602
|
gap: tokens.spacing["04"],
|
|
@@ -2174,7 +2611,7 @@ function getColorScaleSliderStyles(tokens, gamut, disabled) {
|
|
|
2174
2611
|
fontFamily: tokens.typography.fonts.main.family,
|
|
2175
2612
|
fontSize: tokens.typography.fontSizes["04"],
|
|
2176
2613
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
2177
|
-
color: tokens.
|
|
2614
|
+
color: tokens.colors.primary.main.fontTertiary
|
|
2178
2615
|
},
|
|
2179
2616
|
trackContainer: {
|
|
2180
2617
|
height: TRACK_HEIGHT4 + THUMB_SIZE4,
|
|
@@ -2200,13 +2637,13 @@ function getColorScaleSliderStyles(tokens, gamut, disabled) {
|
|
|
2200
2637
|
borderRadius: THUMB_SIZE4 / 2,
|
|
2201
2638
|
backgroundColor: "#ffffff",
|
|
2202
2639
|
borderWidth: 2,
|
|
2203
|
-
borderColor: tokens.
|
|
2640
|
+
borderColor: tokens.colors.primary.main.fontSecondary
|
|
2204
2641
|
},
|
|
2205
2642
|
warning: {
|
|
2206
2643
|
fontFamily: tokens.typography.fonts.main.family,
|
|
2207
2644
|
fontSize: tokens.typography.fontSizes["01"],
|
|
2208
2645
|
fontWeight: tokens.typography.fonts.main.weights.medium,
|
|
2209
|
-
color: tokens.error.
|
|
2646
|
+
color: tokens.colors.error.emphasis.divider
|
|
2210
2647
|
}
|
|
2211
2648
|
});
|
|
2212
2649
|
}
|
|
@@ -2226,37 +2663,38 @@ function ColorScaleSlider({
|
|
|
2226
2663
|
style
|
|
2227
2664
|
}) {
|
|
2228
2665
|
const tokens = useTokens(1);
|
|
2229
|
-
const
|
|
2230
|
-
|
|
2666
|
+
const { gamut } = useNewtoneTheme();
|
|
2667
|
+
const styles = React16.useMemo(
|
|
2668
|
+
() => getColorScaleSliderStyles(tokens, disabled),
|
|
2231
2669
|
[tokens, disabled]
|
|
2232
2670
|
);
|
|
2233
|
-
const trackRef =
|
|
2234
|
-
const trackWidth =
|
|
2235
|
-
const trackPageX =
|
|
2236
|
-
const isDragging =
|
|
2237
|
-
const thumbAnim =
|
|
2238
|
-
const [layoutWidth, setLayoutWidth] =
|
|
2239
|
-
const onValueChangeRef =
|
|
2240
|
-
const disabledRef =
|
|
2241
|
-
const colorsLengthRef =
|
|
2242
|
-
const trimEndsRef =
|
|
2243
|
-
const snapRef =
|
|
2244
|
-
|
|
2671
|
+
const trackRef = React16.useRef(null);
|
|
2672
|
+
const trackWidth = React16.useRef(0);
|
|
2673
|
+
const trackPageX = React16.useRef(0);
|
|
2674
|
+
const isDragging = React16.useRef(false);
|
|
2675
|
+
const thumbAnim = React16.useRef(new Animated.Value(0)).current;
|
|
2676
|
+
const [layoutWidth, setLayoutWidth] = React16.useState(0);
|
|
2677
|
+
const onValueChangeRef = React16.useRef(onValueChange);
|
|
2678
|
+
const disabledRef = React16.useRef(disabled);
|
|
2679
|
+
const colorsLengthRef = React16.useRef(colors.length);
|
|
2680
|
+
const trimEndsRef = React16.useRef(trimEnds);
|
|
2681
|
+
const snapRef = React16.useRef(snap);
|
|
2682
|
+
React16.useEffect(() => {
|
|
2245
2683
|
onValueChangeRef.current = onValueChange;
|
|
2246
2684
|
}, [onValueChange]);
|
|
2247
|
-
|
|
2685
|
+
React16.useEffect(() => {
|
|
2248
2686
|
disabledRef.current = disabled;
|
|
2249
2687
|
}, [disabled]);
|
|
2250
|
-
|
|
2688
|
+
React16.useEffect(() => {
|
|
2251
2689
|
colorsLengthRef.current = colors.length;
|
|
2252
2690
|
}, [colors.length]);
|
|
2253
|
-
|
|
2691
|
+
React16.useEffect(() => {
|
|
2254
2692
|
trimEndsRef.current = trimEnds;
|
|
2255
2693
|
}, [trimEnds]);
|
|
2256
|
-
|
|
2694
|
+
React16.useEffect(() => {
|
|
2257
2695
|
snapRef.current = snap;
|
|
2258
2696
|
}, [snap]);
|
|
2259
|
-
const computeNv =
|
|
2697
|
+
const computeNv = React16.useCallback((pageX) => {
|
|
2260
2698
|
const localX = pageX - trackPageX.current;
|
|
2261
2699
|
const ratio2 = Math.min(1, Math.max(0, localX / trackWidth.current));
|
|
2262
2700
|
const totalSteps2 = colorsLengthRef.current - 1;
|
|
@@ -2271,7 +2709,7 @@ function ColorScaleSlider({
|
|
|
2271
2709
|
}
|
|
2272
2710
|
return nv;
|
|
2273
2711
|
}, []);
|
|
2274
|
-
const panResponder =
|
|
2712
|
+
const panResponder = React16.useRef(
|
|
2275
2713
|
PanResponder.create({
|
|
2276
2714
|
onStartShouldSetPanResponder: () => !disabledRef.current,
|
|
2277
2715
|
onMoveShouldSetPanResponder: () => !disabledRef.current,
|
|
@@ -2299,7 +2737,7 @@ function ColorScaleSlider({
|
|
|
2299
2737
|
const ratio = range > 0 ? (maxNV - clampedValue) / range : 0.5;
|
|
2300
2738
|
const usableWidth = Math.max(0, layoutWidth - THUMB_SIZE4);
|
|
2301
2739
|
const thumbLeft = ratio * usableWidth;
|
|
2302
|
-
|
|
2740
|
+
React16.useEffect(() => {
|
|
2303
2741
|
if (isDragging.current || !animateValue) {
|
|
2304
2742
|
thumbAnim.setValue(thumbLeft);
|
|
2305
2743
|
} else {
|
|
@@ -2310,7 +2748,7 @@ function ColorScaleSlider({
|
|
|
2310
2748
|
}).start();
|
|
2311
2749
|
}
|
|
2312
2750
|
}, [thumbLeft, animateValue, thumbAnim]);
|
|
2313
|
-
return /* @__PURE__ */
|
|
2751
|
+
return /* @__PURE__ */ React16.createElement(View, { style: [styles.container, ...Array.isArray(style) ? style : [style]] }, label && /* @__PURE__ */ React16.createElement(View, { style: styles.labelRow }, /* @__PURE__ */ React16.createElement(Text, { style: styles.label }, label)), /* @__PURE__ */ React16.createElement(
|
|
2314
2752
|
View,
|
|
2315
2753
|
{
|
|
2316
2754
|
ref: trackRef,
|
|
@@ -2325,17 +2763,18 @@ function ColorScaleSlider({
|
|
|
2325
2763
|
},
|
|
2326
2764
|
...panResponder.panHandlers
|
|
2327
2765
|
},
|
|
2328
|
-
/* @__PURE__ */
|
|
2329
|
-
/* @__PURE__ */
|
|
2330
|
-
), warning && /* @__PURE__ */
|
|
2766
|
+
/* @__PURE__ */ React16.createElement(View, { style: styles.gradientTrack }, visibleColors.map((color, i) => /* @__PURE__ */ React16.createElement(View, { key: i, style: [styles.segment, { backgroundColor: gamut === "p3" ? oklchToP3Css(color.oklch) : srgbToHex(color.srgb) }] }))),
|
|
2767
|
+
/* @__PURE__ */ React16.createElement(Animated.View, { style: [styles.thumb, { left: thumbAnim }] })
|
|
2768
|
+
), warning && /* @__PURE__ */ React16.createElement(Text, { style: styles.warning }, warning));
|
|
2331
2769
|
}
|
|
2332
|
-
function getAppShellStyles(tokens,
|
|
2770
|
+
function getAppShellStyles(tokens, theme = "primary", appearance = "main") {
|
|
2771
|
+
const at = tokens.colors[theme][appearance];
|
|
2333
2772
|
return StyleSheet.create({
|
|
2334
2773
|
container: {
|
|
2335
2774
|
flex: 1,
|
|
2336
2775
|
flexDirection: "row",
|
|
2337
2776
|
overflow: "hidden",
|
|
2338
|
-
backgroundColor:
|
|
2777
|
+
backgroundColor: at.background
|
|
2339
2778
|
},
|
|
2340
2779
|
main: {
|
|
2341
2780
|
flex: 1,
|
|
@@ -2349,17 +2788,22 @@ function getAppShellStyles(tokens, gamut) {
|
|
|
2349
2788
|
// src/composites/layout/AppShell/AppShell.tsx
|
|
2350
2789
|
function AppShell({ sidebar, children }) {
|
|
2351
2790
|
const tokens = useTokens();
|
|
2352
|
-
const
|
|
2353
|
-
|
|
2791
|
+
const frameCtx = useFrameContext();
|
|
2792
|
+
const styles = React16.useMemo(
|
|
2793
|
+
() => getAppShellStyles(tokens, frameCtx?.theme, frameCtx?.appearance),
|
|
2794
|
+
[tokens, frameCtx?.theme, frameCtx?.appearance]
|
|
2795
|
+
);
|
|
2796
|
+
return /* @__PURE__ */ React16.createElement(View, { style: styles.container }, sidebar, /* @__PURE__ */ React16.createElement(View, { style: styles.main }, children));
|
|
2354
2797
|
}
|
|
2355
|
-
function getSidebarStyles({ tokens,
|
|
2356
|
-
const
|
|
2798
|
+
function getSidebarStyles({ tokens, width, bordered, theme = "primary", appearance = "main" }) {
|
|
2799
|
+
const at = tokens.colors[theme][appearance];
|
|
2800
|
+
const borderColor = at.fontSecondary;
|
|
2357
2801
|
return StyleSheet.create({
|
|
2358
2802
|
container: {
|
|
2359
2803
|
width,
|
|
2360
2804
|
flexShrink: 0,
|
|
2361
2805
|
flexDirection: "column",
|
|
2362
|
-
backgroundColor:
|
|
2806
|
+
backgroundColor: at.background,
|
|
2363
2807
|
borderRightWidth: bordered ? 1 : 0,
|
|
2364
2808
|
borderRightColor: borderColor
|
|
2365
2809
|
},
|
|
@@ -2388,14 +2832,16 @@ function Sidebar({
|
|
|
2388
2832
|
bordered = true
|
|
2389
2833
|
}) {
|
|
2390
2834
|
const tokens = useTokens();
|
|
2391
|
-
const
|
|
2392
|
-
|
|
2393
|
-
|
|
2835
|
+
const frameCtx = useFrameContext();
|
|
2836
|
+
const styles = React16.useMemo(
|
|
2837
|
+
() => getSidebarStyles({ tokens, width, bordered, theme: frameCtx?.theme, appearance: frameCtx?.appearance }),
|
|
2838
|
+
[tokens, width, bordered, frameCtx?.theme, frameCtx?.appearance]
|
|
2394
2839
|
);
|
|
2395
|
-
return /* @__PURE__ */
|
|
2840
|
+
return /* @__PURE__ */ React16.createElement(View, { style: styles.container }, header && /* @__PURE__ */ React16.createElement(View, { style: styles.header }, header), /* @__PURE__ */ React16.createElement(ScrollView, { style: styles.body }, children), footer && /* @__PURE__ */ React16.createElement(View, { style: styles.footer }, footer));
|
|
2396
2841
|
}
|
|
2397
|
-
function getNavbarStyles({ tokens,
|
|
2398
|
-
const
|
|
2842
|
+
function getNavbarStyles({ tokens, height, bordered, theme = "primary", appearance = "main" }) {
|
|
2843
|
+
const at = tokens.colors[theme][appearance];
|
|
2844
|
+
const borderColor = at.fontSecondary;
|
|
2399
2845
|
return StyleSheet.create({
|
|
2400
2846
|
container: {
|
|
2401
2847
|
flexDirection: "row",
|
|
@@ -2403,7 +2849,7 @@ function getNavbarStyles({ tokens, gamut, height, bordered }) {
|
|
|
2403
2849
|
height,
|
|
2404
2850
|
flexShrink: 0,
|
|
2405
2851
|
paddingHorizontal: 24,
|
|
2406
|
-
backgroundColor:
|
|
2852
|
+
backgroundColor: at.background,
|
|
2407
2853
|
borderBottomWidth: bordered ? 1 : 0,
|
|
2408
2854
|
borderBottomColor: borderColor
|
|
2409
2855
|
},
|
|
@@ -2430,11 +2876,51 @@ function Navbar({
|
|
|
2430
2876
|
bordered = true
|
|
2431
2877
|
}) {
|
|
2432
2878
|
const tokens = useTokens();
|
|
2433
|
-
const
|
|
2434
|
-
|
|
2435
|
-
|
|
2879
|
+
const frameCtx = useFrameContext();
|
|
2880
|
+
const styles = React16.useMemo(
|
|
2881
|
+
() => getNavbarStyles({ tokens, height, bordered, theme: frameCtx?.theme, appearance: frameCtx?.appearance }),
|
|
2882
|
+
[tokens, height, bordered, frameCtx?.theme, frameCtx?.appearance]
|
|
2883
|
+
);
|
|
2884
|
+
return /* @__PURE__ */ React16.createElement(View, { style: styles.container }, children ? children : /* @__PURE__ */ React16.createElement(React16.Fragment, null, /* @__PURE__ */ React16.createElement(View, { style: styles.left }, left), /* @__PURE__ */ React16.createElement(View, { style: styles.right }, right)));
|
|
2885
|
+
}
|
|
2886
|
+
function LogoMonogram({ colorValue = 0, size = 32 }) {
|
|
2887
|
+
const fg = `rgb(${colorValue}, ${colorValue}, ${colorValue})`;
|
|
2888
|
+
return /* @__PURE__ */ React16.createElement(
|
|
2889
|
+
"svg",
|
|
2890
|
+
{
|
|
2891
|
+
width: size,
|
|
2892
|
+
height: size,
|
|
2893
|
+
viewBox: "0 0 168 168",
|
|
2894
|
+
fill: "none",
|
|
2895
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
2896
|
+
},
|
|
2897
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M39.3574 70H12L20 84H36L30.2681 94.0309C28.8627 96.4903 28.8627 99.5096 30.2681 101.969L36 112L49.7319 87.9691C51.1373 85.5097 51.1373 82.4903 49.7319 80.0309L46.3034 74.0309C44.879 71.5383 42.2283 70 39.3574 70Z", fill: fg }),
|
|
2898
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M84 112H36L41.6966 121.969C43.121 124.462 45.7717 126 48.6426 126H79.3574C82.2283 126 84.879 124.462 86.3034 121.969L93.7319 108.969C95.1373 106.51 95.1373 103.49 93.7319 101.031L84 84L76 98L84 112Z", fill: fg }),
|
|
2899
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M76 70L84 84H64.6426C61.7717 84 59.121 82.4617 57.6966 79.9691L50.268 66.9691C48.8626 64.5097 48.8626 61.4903 50.268 59.0309L65.6966 32.0309C67.121 29.5383 69.7717 28 72.6426 28H84L60 70H76Z", fill: fg }),
|
|
2900
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M95.3574 28H84L132 112L137.732 101.969C139.137 99.5097 139.137 96.4903 137.732 94.0309L102.303 32.0309C100.879 29.5383 98.2283 28 95.3574 28Z", fill: fg }),
|
|
2901
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M104.643 112H132L126.303 121.969C124.879 124.462 122.228 126 119.357 126H108L116 140L108 154L94.268 129.969C92.8626 127.51 92.8626 124.49 94.268 122.031L97.6966 116.031C99.121 113.538 101.772 112 104.643 112Z", fill: fg })
|
|
2902
|
+
);
|
|
2903
|
+
}
|
|
2904
|
+
function LogoWordmark({ fill = "black" }) {
|
|
2905
|
+
return /* @__PURE__ */ React16.createElement(
|
|
2906
|
+
"svg",
|
|
2907
|
+
{
|
|
2908
|
+
height: 32,
|
|
2909
|
+
viewBox: "0 0 504 168",
|
|
2910
|
+
fill: "none",
|
|
2911
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
2912
|
+
},
|
|
2913
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M8 126H22V42H14.4C12.1598 42 11.0397 42 10.184 42.436C9.43139 42.8195 8.81947 43.4314 8.43597 44.184C8 45.0397 8 46.1598 8 48.4V126Z", fill }),
|
|
2914
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M76 108.5V42H90V119.6C90 121.84 90 122.96 89.564 123.816C89.1805 124.569 88.5686 125.181 87.816 125.564C86.9603 126 85.8402 126 83.6 126H77.4281C74.7227 126 73.37 126 72.1603 125.605C71.0899 125.256 70.1054 124.684 69.271 123.928C68.328 123.074 67.6569 121.9 66.3146 119.551L22 42H30.5719C33.2773 42 34.63 42 35.8397 42.3949C36.9101 42.7442 37.8946 43.3156 38.729 44.0716C39.672 44.926 40.3431 46.1005 41.6854 48.4494L76 108.5Z", fill }),
|
|
2915
|
+
/* @__PURE__ */ React16.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M152.208 68.2077C153.395 69.3951 153.989 69.9888 154.439 70.6738C154.838 71.2814 155.152 71.9406 155.374 72.6332C155.623 73.4139 155.711 74.2489 155.886 75.9189L156.884 85.3951C157.27 89.0678 157.464 90.9042 156.867 92.3245C156.343 93.5721 155.412 94.6057 154.226 95.2577C152.876 96 151.03 96 147.337 96H112V114H154V126H115.302C113.345 126 112.367 126 111.446 125.779C110.63 125.583 109.849 125.26 109.134 124.821C108.326 124.326 107.635 123.635 106.251 122.251L101.749 117.749C100.365 116.365 99.6736 115.674 99.1789 114.866C98.7402 114.151 98.417 113.37 98.221 112.554C98 111.633 98 110.655 98 108.698V75.3019C98 73.3452 98 72.3668 98.221 71.4461C98.417 70.6299 98.7402 69.8495 99.1789 69.1337C99.6736 68.3264 100.365 67.6346 101.749 66.251L106.251 61.749C107.635 60.3654 108.326 59.6736 109.134 59.1789C109.849 58.7402 110.63 58.417 111.446 58.221C112.367 58 113.345 58 115.302 58H136.698C138.655 58 139.633 58 140.554 58.221C141.37 58.417 142.151 58.7402 142.866 59.1789C143.674 59.6736 144.365 60.3654 145.749 61.749L152.208 68.2077ZM112 70V87.5332L144.492 86.4502L141.895 70H112Z", fill }),
|
|
2916
|
+
/* @__PURE__ */ React16.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M492.208 68.2077C493.395 69.3951 493.989 69.9888 494.439 70.6738C494.838 71.2814 495.152 71.9406 495.374 72.6332C495.623 73.4139 495.711 74.2489 495.886 75.9189L496.884 85.3951C497.27 89.0678 497.464 90.9042 496.867 92.3245C496.343 93.5721 495.412 94.6057 494.226 95.2577C492.876 96 491.03 96 487.337 96H452V114H494V126H455.302C453.345 126 452.367 126 451.446 125.779C450.63 125.583 449.849 125.26 449.134 124.821C448.326 124.326 447.635 123.635 446.251 122.251L441.749 117.749C440.365 116.365 439.674 115.674 439.179 114.866C438.74 114.151 438.417 113.37 438.221 112.554C438 111.633 438 110.655 438 108.698V75.3019C438 73.3452 438 72.3668 438.221 71.4461C438.417 70.6299 438.74 69.8495 439.179 69.1337C439.674 68.3264 440.365 67.6346 441.749 66.251L446.251 61.749C447.635 60.3654 448.326 59.6736 449.134 59.1789C449.849 58.7402 450.63 58.417 451.446 58.221C452.367 58 453.345 58 455.302 58H476.698C478.655 58 479.633 58 480.554 58.221C481.37 58.417 482.151 58.7402 482.866 59.1789C483.674 59.6736 484.365 60.3654 485.749 61.749L492.208 68.2077ZM452 70V87.5332L484.492 86.4502L481.895 70H452Z", fill }),
|
|
2917
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M168.794 117.797L160 58H174L184 126H178.291C175.35 126 173.88 126 172.695 125.46C171.651 124.984 170.765 124.219 170.142 123.255C169.435 122.161 169.222 120.706 168.794 117.797Z", fill }),
|
|
2918
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M192.794 66.2033L184 126H187.674C190.626 126 192.102 126 193.29 125.457C194.337 124.979 195.224 124.209 195.846 123.241C196.551 122.141 196.76 120.68 197.177 117.758L204 70L210.823 117.758C211.24 120.68 211.449 122.141 212.154 123.241C212.776 124.209 213.663 124.979 214.71 125.457C215.898 126 217.374 126 220.326 126H224L215.206 66.2033C214.778 63.2936 214.565 61.8387 213.858 60.7448C213.235 59.7808 212.349 59.0155 211.305 58.5398C210.12 58 208.65 58 205.709 58H202.291C199.35 58 197.88 58 196.695 58.5398C195.651 59.0155 194.765 59.7808 194.142 60.7448C193.435 61.8387 193.222 63.2936 192.794 66.2033Z", fill }),
|
|
2919
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M224 126H229.709C232.65 126 234.12 126 235.305 125.46C236.349 124.984 237.235 124.219 237.858 123.255C238.565 122.161 238.778 120.706 239.206 117.797L246.235 70H298V58H251.302C249.345 58 248.367 58 247.446 58.221C246.63 58.417 245.849 58.7402 245.134 59.1789C244.326 59.6736 243.635 60.3654 242.251 61.749L234.927 69.0727C233.815 70.1845 233.26 70.7405 232.829 71.3785C232.447 71.9446 232.139 72.5573 231.913 73.2016C231.658 73.9277 231.543 74.7056 231.315 76.2613L224 126Z", fill }),
|
|
2920
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M264.251 122.251L259.749 117.749C258.365 116.365 257.674 115.674 257.179 114.866C256.74 114.151 256.417 113.37 256.221 112.554C256 111.633 256 110.655 256 108.698V69.2L260 42H270V114H298V126H273.302C271.345 126 270.367 126 269.446 125.779C268.63 125.583 267.849 125.26 267.134 124.821C266.326 124.326 265.635 123.635 264.251 122.251Z", fill }),
|
|
2921
|
+
/* @__PURE__ */ React16.createElement("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M358.251 66.251C359.635 67.6346 360.326 68.3264 360.821 69.1337C361.26 69.8495 361.583 70.6299 361.779 71.4461C362 72.3668 362 73.3452 362 75.3019V108.698C362 110.655 362 111.633 361.779 112.554C361.583 113.37 361.26 114.151 360.821 114.866C360.326 115.674 359.635 116.365 358.251 117.749L353.749 122.251C352.365 123.635 351.674 124.326 350.866 124.821C350.151 125.26 349.37 125.583 348.554 125.779C347.633 126 346.655 126 344.698 126H319.302C317.345 126 316.367 126 315.446 125.779C314.63 125.583 313.849 125.26 313.134 124.821C312.326 124.326 311.635 123.635 310.251 122.251L305.749 117.749C304.365 116.365 303.674 115.674 303.179 114.866C302.74 114.151 302.417 113.37 302.221 112.554C302 111.633 302 110.655 302 108.698V75.3019C302 73.3452 302 72.3668 302.221 71.4461C302.417 70.6299 302.74 69.8495 303.179 69.1337C303.674 68.3264 304.365 67.6346 305.749 66.251L310.224 61.7757C311.606 60.3937 312.297 59.7027 313.104 59.2083C313.818 58.77 314.598 58.4468 315.413 58.2506C316.333 58.0292 317.31 58.0284 319.264 58.0267L344.692 58.0046C346.651 58.0029 347.63 58.0021 348.552 58.2228C349.369 58.4185 350.151 58.7417 350.867 59.1807C351.676 59.6757 352.368 60.3684 353.754 61.7536L358.251 66.251ZM316 70V114H348V70H316Z", fill }),
|
|
2922
|
+
/* @__PURE__ */ React16.createElement("path", { d: "M370 64.4V126H384V70H416V126H430V75.3019C430 73.3452 430 72.3668 429.779 71.4461C429.583 70.6299 429.26 69.8495 428.821 69.1337C428.326 68.3264 427.635 67.6346 426.251 66.251L421.749 61.749C420.365 60.3654 419.674 59.6736 418.866 59.1789C418.151 58.7402 417.37 58.417 416.554 58.221C415.633 58 414.655 58 412.698 58H376.4C374.16 58 373.04 58 372.184 58.436C371.431 58.8195 370.819 59.4314 370.436 60.184C370 61.0397 370 62.1598 370 64.4Z", fill })
|
|
2436
2923
|
);
|
|
2437
|
-
return /* @__PURE__ */ React13.createElement(View, { style: styles.container }, children ? children : /* @__PURE__ */ React13.createElement(React13.Fragment, null, /* @__PURE__ */ React13.createElement(View, { style: styles.left }, left), /* @__PURE__ */ React13.createElement(View, { style: styles.right }, right)));
|
|
2438
2924
|
}
|
|
2439
2925
|
|
|
2440
2926
|
// src/registry/registry.ts
|
|
@@ -3382,6 +3868,6 @@ var ICON_CATALOG = [
|
|
|
3382
3868
|
}
|
|
3383
3869
|
];
|
|
3384
3870
|
|
|
3385
|
-
export { AppShell, Button, CATEGORIES, COMPONENTS, Card, ColorScaleSlider, Frame, HueSlider, ICON_CATALOG, Icon, Navbar, Popover, Select, Sidebar, Slider, Text3 as Text, TextInput, Toggle, Wrapper, generateComponentCode, getCategory, getComponent, getComponentsByCategory, isOptionGroup, useFocusVisible, usePopover };
|
|
3871
|
+
export { AppShell, Button, CATEGORIES, COMPONENTS, Card, Chip, ColorScaleSlider, ContentCard, Divider, Frame, HueSlider, ICON_CATALOG, Icon, LogoMonogram, LogoWordmark, Navbar, Popover, Select, Sidebar, Slider, Text3 as Text, TextInput, Toggle, Wrapper, generateComponentCode, getCategory, getComponent, getComponentsByCategory, isOptionGroup, useFocusVisible, usePopover };
|
|
3386
3872
|
//# sourceMappingURL=index.js.map
|
|
3387
3873
|
//# sourceMappingURL=index.js.map
|