@girumtech/gs-design-system-core 0.1.5 → 0.1.6
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.
|
@@ -55,8 +55,8 @@ var lightNeutrals = {
|
|
|
55
55
|
textMuted: "#6B7280"
|
|
56
56
|
};
|
|
57
57
|
var darkNeutrals = {
|
|
58
|
-
borderSubtle: "#
|
|
59
|
-
surfaceMuted: "#
|
|
58
|
+
borderSubtle: "#4D515C",
|
|
59
|
+
surfaceMuted: "#1B1F29",
|
|
60
60
|
iconMuted: "#8D94A3",
|
|
61
61
|
textMuted: "#9CA3AF"
|
|
62
62
|
};
|
|
@@ -171,4 +171,4 @@ export {
|
|
|
171
171
|
config,
|
|
172
172
|
config_default
|
|
173
173
|
};
|
|
174
|
-
//# sourceMappingURL=chunk-
|
|
174
|
+
//# sourceMappingURL=chunk-IXNI7NMT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/config.ts"],"sourcesContent":["import { createFont, createTamagui, createTokens } from 'tamagui'\n\nexport const tokens = createTokens({\n color: {\n white: '#FFFFFF',\n black: '#000000',\n brandRed: '#A81D1D',\n brandRedDark: '#FC2B2B',\n brandBlue: '#10106B',\n brandBlueDark: '#2323F7',\n red1: '#FFF7F8', red3: '#FFE1E5', red8: '#B4233C', red9: '#8F1530', red10: '#741026', red11: '#5B0A1D', red12: '#350611',\n blue1: '#F5F9FF', blue3: '#DCEBFF', blue8: '#2864B5', blue9: '#174A8B', blue10: '#123D75', blue11: '#0C315F', blue12: '#071F3F',\n gray1: '#FAFAFC', gray3: '#ECECF1', gray5: '#D0D1D8', gray8: '#777A86', gray10: '#4E505A', gray12: '#202127',\n dark1: '#0B0D12', dark2: '#12151C', dark3: '#1B1F29', dark5: '#343946', dark8: '#8D94A3', dark11: '#D6D9E0', dark12: '#F7F8FA',\n },\n space: { 0: 0, 1: 4, 2: 8, 3: 12, 4: 16, 5: 20, 6: 24, 8: 32, 10: 40, 12: 48, true: 16 },\n size: { 0: 0, 1: 24, 2: 32, 3: 40, 4: 48, 5: 56, 6: 64, 8: 80, 10: 96, sm: 32, md: 40, lg: 48, true: 40 },\n radius: { 0: 0, 1: 4, 2: 8, 3: 12, 4: 16, 5: 20, 6: 24, full: 9999, true: 12 },\n zIndex: { 0: 0, 1: 10, 2: 20, 3: 30, 4: 40, 5: 50 },\n})\n\nconst bodyFont = createFont({\n family: 'Inter, ui-sans-serif, system-ui, sans-serif',\n size: { 1: 12, 2: 14, 3: 16, 4: 18, 5: 22, 6: 28, 7: 36, 8: 48, sm: 14, md: 16, lg: 18, true: 16 },\n lineHeight: { 1: 16, 2: 20, 3: 24, 4: 28, 5: 30, 6: 36, 7: 44, 8: 56, sm: 20, md: 24, lg: 28, true: 24 },\n weight: { 4: '400', 5: '500', 6: '600', 7: '700', true: '400' },\n letterSpacing: { 4: 0, 6: -0.2, 7: -0.5, true: 0 },\n})\n\n// Neutral, non-branded tokens shared by a family's light / dark variant. Use\n// these for hairlines, filled surfaces and de-emphasized text/icons so consumers\n// stop hard-coding greys like #E5E7EB / #9CA3AF. `borderSubtle` is a light grey\n// hairline in light mode and the same grey, brightened, so it still reads on the\n// near-black dark background.\nconst lightNeutrals = {\n borderSubtle: '#E5E7EB',\n surfaceMuted: '#F3F4F6',\n iconMuted: '#9CA3AF',\n textMuted: '#6B7280',\n} as const\n\nconst darkNeutrals = {\n borderSubtle: '#4D515C',\n surfaceMuted: '#1B1F29',\n iconMuted: '#8D94A3',\n textMuted: '#9CA3AF',\n} as const\n\nexport const themes = {\n red: {\n background: '#FFFFFF', backgroundHover: '#FFF7F7', backgroundPress: '#FBE8E8', backgroundFocus: '#FFF7F7',\n surface: '#FFFFFF', color: '#000000', colorMuted: '#5F3030', borderColor: '#A81D1D',\n borderColorHover: '#A81D1D', borderColorPress: '#A81D1D', borderColorFocus: '#A81D1D',\n accent: '#A81D1D', accentHover: '#8F1818', accentPress: '#751414', accentText: '#FFFFFF',\n focus: '#A81D1D', danger: '#A81D1D', disabled: '#D8B8B8', shadowColor: '#A81D1D',\n ...lightNeutrals,\n },\n red_dark: {\n background: '#000000', backgroundHover: '#170606', backgroundPress: '#260808', backgroundFocus: '#170606',\n surface: '#000000', color: '#FFFFFF', colorMuted: '#F5BABA', borderColor: '#FC2B2B',\n borderColorHover: '#FC2B2B', borderColorPress: '#FC2B2B', borderColorFocus: '#FC2B2B',\n accent: '#FC2B2B', accentHover: '#FF4D4D', accentPress: '#D91F1F', accentText: '#000000',\n focus: '#FC2B2B', danger: '#FC2B2B', disabled: '#5E2020', shadowColor: '#FC2B2B',\n ...darkNeutrals,\n },\n blue: {\n background: '#FFFFFF', backgroundHover: '#F5F5FF', backgroundPress: '#E8E8F4', backgroundFocus: '#F5F5FF',\n surface: '#FFFFFF', color: '#000000', colorMuted: '#34345F', borderColor: '#10106B',\n borderColorHover: '#10106B', borderColorPress: '#10106B', borderColorFocus: '#10106B',\n accent: '#10106B', accentHover: '#0D0D59', accentPress: '#090944', accentText: '#FFFFFF',\n focus: '#10106B', danger: '#A81D1D', disabled: '#B8B8D2', shadowColor: '#10106B',\n ...lightNeutrals,\n },\n blue_dark: {\n background: '#000000', backgroundHover: '#070717', backgroundPress: '#0B0B28', backgroundFocus: '#070717',\n surface: '#000000', color: '#FFFFFF', colorMuted: '#C7C7FF', borderColor: '#2323F7',\n borderColorHover: '#2323F7', borderColorPress: '#2323F7', borderColorFocus: '#2323F7',\n accent: '#2323F7', accentHover: '#4141FF', accentPress: '#1B1BC9', accentText: '#FFFFFF',\n focus: '#2323F7', danger: '#FC2B2B', disabled: '#20205E', shadowColor: '#2323F7',\n ...darkNeutrals,\n },\n} as const\n\n// Tamagui's web CSS generator needs base light/dark themes before it emits\n// selectors for custom theme names. These aliases stay internal so the public\n// GsThemeName API remains limited to the four branded themes above.\nconst tamaguiThemes = {\n light: themes.red,\n dark: themes.red_dark,\n ...themes,\n} as const\n\nexport const config = createTamagui({\n tokens,\n themes: tamaguiThemes,\n fonts: { body: bodyFont, heading: bodyFont },\n shorthands: { p: 'padding', px: 'paddingHorizontal', py: 'paddingVertical', m: 'margin', mt: 'marginTop', mb: 'marginBottom', bg: 'backgroundColor' } as const,\n media: { sm: { maxWidth: 660 }, md: { maxWidth: 900 }, lg: { maxWidth: 1200 }, reduceMotion: { prefersReducedMotion: 'reduce' } },\n settings: { defaultFont: 'body' },\n})\n\nexport type GsConfig = typeof config\nexport type GsThemeName = keyof typeof themes\n\ndeclare module 'tamagui' {\n interface TamaguiCustomConfig extends GsConfig {}\n}\n\nexport default config\n"],"mappings":"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","names":[]}
|
package/dist/config.d.ts
CHANGED
|
@@ -194,8 +194,8 @@ declare const themes: {
|
|
|
194
194
|
readonly shadowColor: "#A81D1D";
|
|
195
195
|
};
|
|
196
196
|
readonly red_dark: {
|
|
197
|
-
readonly borderSubtle: "#
|
|
198
|
-
readonly surfaceMuted: "#
|
|
197
|
+
readonly borderSubtle: "#4D515C";
|
|
198
|
+
readonly surfaceMuted: "#1B1F29";
|
|
199
199
|
readonly iconMuted: "#8D94A3";
|
|
200
200
|
readonly textMuted: "#9CA3AF";
|
|
201
201
|
readonly background: "#000000";
|
|
@@ -244,8 +244,8 @@ declare const themes: {
|
|
|
244
244
|
readonly shadowColor: "#10106B";
|
|
245
245
|
};
|
|
246
246
|
readonly blue_dark: {
|
|
247
|
-
readonly borderSubtle: "#
|
|
248
|
-
readonly surfaceMuted: "#
|
|
247
|
+
readonly borderSubtle: "#4D515C";
|
|
248
|
+
readonly surfaceMuted: "#1B1F29";
|
|
249
249
|
readonly iconMuted: "#8D94A3";
|
|
250
250
|
readonly textMuted: "#9CA3AF";
|
|
251
251
|
readonly background: "#000000";
|
|
@@ -462,8 +462,8 @@ declare const config: tamagui.TamaguiInternalConfig<{
|
|
|
462
462
|
readonly shadowColor: "#A81D1D";
|
|
463
463
|
};
|
|
464
464
|
readonly red_dark: {
|
|
465
|
-
readonly borderSubtle: "#
|
|
466
|
-
readonly surfaceMuted: "#
|
|
465
|
+
readonly borderSubtle: "#4D515C";
|
|
466
|
+
readonly surfaceMuted: "#1B1F29";
|
|
467
467
|
readonly iconMuted: "#8D94A3";
|
|
468
468
|
readonly textMuted: "#9CA3AF";
|
|
469
469
|
readonly background: "#000000";
|
|
@@ -512,8 +512,8 @@ declare const config: tamagui.TamaguiInternalConfig<{
|
|
|
512
512
|
readonly shadowColor: "#10106B";
|
|
513
513
|
};
|
|
514
514
|
readonly blue_dark: {
|
|
515
|
-
readonly borderSubtle: "#
|
|
516
|
-
readonly surfaceMuted: "#
|
|
515
|
+
readonly borderSubtle: "#4D515C";
|
|
516
|
+
readonly surfaceMuted: "#1B1F29";
|
|
517
517
|
readonly iconMuted: "#8D94A3";
|
|
518
518
|
readonly textMuted: "#9CA3AF";
|
|
519
519
|
readonly background: "#000000";
|
|
@@ -562,8 +562,8 @@ declare const config: tamagui.TamaguiInternalConfig<{
|
|
|
562
562
|
readonly shadowColor: "#A81D1D";
|
|
563
563
|
};
|
|
564
564
|
readonly dark: {
|
|
565
|
-
readonly borderSubtle: "#
|
|
566
|
-
readonly surfaceMuted: "#
|
|
565
|
+
readonly borderSubtle: "#4D515C";
|
|
566
|
+
readonly surfaceMuted: "#1B1F29";
|
|
567
567
|
readonly iconMuted: "#8D94A3";
|
|
568
568
|
readonly textMuted: "#9CA3AF";
|
|
569
569
|
readonly background: "#000000";
|
package/dist/config.js
CHANGED
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
config,
|
|
3
3
|
themes,
|
|
4
4
|
tokens
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IXNI7NMT.js";
|
|
6
6
|
|
|
7
7
|
// src/theme.tsx
|
|
8
8
|
import { TamaguiProvider, Theme as TamaguiTheme } from "tamagui";
|
|
@@ -87,25 +87,25 @@ var StyledInput = styled3(TamaguiInput, {
|
|
|
87
87
|
name: "GsInput",
|
|
88
88
|
height: 44,
|
|
89
89
|
borderWidth: 1,
|
|
90
|
-
borderColor: "$
|
|
90
|
+
borderColor: "$borderSubtle",
|
|
91
91
|
borderRadius: "$3",
|
|
92
92
|
backgroundColor: "$background",
|
|
93
93
|
color: "$color",
|
|
94
94
|
px: "$3",
|
|
95
|
-
placeholderTextColor: "$
|
|
95
|
+
placeholderTextColor: "$textMuted",
|
|
96
96
|
focusStyle: { borderColor: "$borderColorFocus", outlineColor: "$focus", outlineWidth: 2, outlineStyle: "solid" },
|
|
97
97
|
disabledStyle: { opacity: 0.55, backgroundColor: "$surface" },
|
|
98
98
|
variants: { invalid: { true: { borderColor: "$danger" } } }
|
|
99
99
|
});
|
|
100
|
-
var Input = forwardRef2(({ borderColor, ...props }, ref) => /* @__PURE__ */ jsx3(StyledInput, { ref, borderColor: borderColor ?? "$
|
|
100
|
+
var Input = forwardRef2(({ borderColor, ...props }, ref) => /* @__PURE__ */ jsx3(StyledInput, { ref, borderColor: borderColor ?? "$borderSubtle", ...props }));
|
|
101
101
|
Input.displayName = "Input";
|
|
102
102
|
var Field = forwardRef2(
|
|
103
103
|
({ id, label, helperText, errorText, borderColor, ...props }, ref) => {
|
|
104
104
|
const messageId = `${id}-message`;
|
|
105
105
|
return /* @__PURE__ */ jsxs(YStack, { gap: "$2", children: [
|
|
106
106
|
/* @__PURE__ */ jsx3(Label, { htmlFor: id, children: /* @__PURE__ */ jsx3(Text, { variant: "label", children: label }) }),
|
|
107
|
-
/* @__PURE__ */ jsx3(StyledInput, { ref, id, borderColor: borderColor ?? (errorText ? "$danger" : "$
|
|
108
|
-
(errorText || helperText) && /* @__PURE__ */ jsx3(Text, { id: messageId, variant: "caption", tone: errorText ? "danger" : "
|
|
107
|
+
/* @__PURE__ */ jsx3(StyledInput, { ref, id, borderColor: borderColor ?? (errorText ? "$danger" : "$borderSubtle"), invalid: Boolean(errorText), "aria-invalid": Boolean(errorText), "aria-describedby": helperText || errorText ? messageId : void 0, ...props }),
|
|
108
|
+
(errorText || helperText) && /* @__PURE__ */ jsx3(Text, { id: messageId, variant: "caption", tone: errorText ? "danger" : "default", color: errorText ? void 0 : "$textMuted", children: errorText || helperText })
|
|
109
109
|
] });
|
|
110
110
|
}
|
|
111
111
|
);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme.tsx","../src/button.tsx","../src/input.tsx","../src/text.tsx","../src/icon-data.ts","../src/icon-utils.ts"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react'\nimport { TamaguiProvider, Theme as TamaguiTheme } from 'tamagui'\nimport { config, type GsThemeName } from './config'\n\nexport interface GsProviderProps {\n children: ReactNode\n defaultTheme?: GsThemeName\n}\n\nexport function GsProvider({ children, defaultTheme = 'red' }: GsProviderProps) {\n return <TamaguiProvider config={config} defaultTheme={defaultTheme}>{children}</TamaguiProvider>\n}\n\nexport interface ThemeProps extends Omit<ComponentProps<typeof TamaguiTheme>, 'name'> {\n name: GsThemeName\n}\n\nexport function Theme({ name, children, ...props }: ThemeProps) {\n return <TamaguiTheme name={name} {...props}>{children}</TamaguiTheme>\n}\n","import { forwardRef, type ComponentProps, type ReactNode } from 'react'\nimport { Button as TamaguiButton, Spinner, styled } from 'tamagui'\n\nconst StyledButton = styled(TamaguiButton, {\n name: 'GsButton',\n unstyled: true,\n justifyContent: 'center',\n alignItems: 'center',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n borderWidth: 1,\n borderColor: '$accent',\n backgroundColor: '$accent',\n color: '$accentText',\n fontWeight: '600',\n cursor: 'pointer',\n focusStyle: { outlineColor: '$focus', outlineWidth: 3, outlineStyle: 'solid' },\n hoverStyle: { backgroundColor: '$accentHover', borderColor: '$accentHover' },\n pressStyle: { backgroundColor: '$accentPress', borderColor: '$accentPress', scale: 0.98 },\n disabledStyle: { opacity: 0.5, cursor: 'not-allowed' },\n variants: {\n intent: {\n primary: {},\n secondary: { backgroundColor: '$surface', color: '$color', borderColor: '$borderColor', hoverStyle: { borderColor: '$borderColorHover', backgroundColor: '$backgroundHover' } },\n ghost: { backgroundColor: 'transparent', color: '$accent', borderColor: 'transparent', hoverStyle: { backgroundColor: 'transparent', borderColor: 'transparent' }, pressStyle: { backgroundColor: 'transparent', borderColor: 'transparent', opacity: 0.7 }, focusStyle: { outlineColor: 'transparent' } },\n danger: { backgroundColor: '$danger', borderColor: '$danger', color: '$accentText' },\n },\n size: {\n sm: { height: 32, px: '$3', borderRadius: '$2', fontSize: '$2' },\n md: { height: 40, px: '$4', borderRadius: '$3', fontSize: '$3' },\n lg: { height: 48, px: '$5', borderRadius: '$4', fontSize: '$4' },\n },\n } as const,\n defaultVariants: { intent: 'primary', size: 'md' },\n})\n\nexport interface ButtonProps extends ComponentProps<typeof StyledButton> {\n loading?: boolean\n loadingLabel?: string\n children?: ReactNode\n}\n\nexport const Button = forwardRef<React.ComponentRef<typeof StyledButton>, ButtonProps>(\n ({ loading = false, loadingLabel = '', disabled, children, icon, borderColor, ...props }, ref) => {\n const iconProps = loading\n ? { icon: <Spinner size=\"small\" color=\"currentColor\" /> }\n : icon === undefined ? {} : { icon }\n\n return (\n <StyledButton gap=\"$2\" ref={ref} disabled={disabled || loading} aria-busy={loading} borderColor={borderColor ?? '$accent'} {...iconProps} {...props}>\n {loading ? loadingLabel : children}\n </StyledButton>\n )\n },\n)\nButton.displayName = 'Button'\n","import { forwardRef, type ComponentProps, type ReactNode } from 'react'\nimport { Input as TamaguiInput, Label, styled, YStack } from 'tamagui'\nimport { Text } from './text'\n\nconst StyledInput = styled(TamaguiInput, {\n name: 'GsInput', height: 44, borderWidth: 1, borderColor: '$accent', borderRadius: '$3',\n backgroundColor: '$background', color: '$color', px: '$3',\n placeholderTextColor: '$colorMuted',\n focusStyle: { borderColor: '$borderColorFocus', outlineColor: '$focus', outlineWidth: 2, outlineStyle: 'solid' },\n disabledStyle: { opacity: 0.55, backgroundColor: '$surface' },\n variants: { invalid: { true: { borderColor: '$danger' } } } as const,\n})\n\nexport interface InputProps extends ComponentProps<typeof StyledInput> {}\n\nexport const Input = forwardRef<React.ComponentRef<typeof StyledInput>, InputProps>(({ borderColor, ...props }, ref) => (\n <StyledInput ref={ref} borderColor={borderColor ?? '$accent'} {...props} />\n))\nInput.displayName = 'Input'\n\nexport interface FieldProps extends InputProps {\n id: string\n label: string\n helperText?: ReactNode\n errorText?: ReactNode\n}\n\nexport const Field = forwardRef<React.ComponentRef<typeof StyledInput>, FieldProps>(\n ({ id, label, helperText, errorText, borderColor, ...props }, ref) => {\n const messageId = `${id}-message`\n return (\n <YStack gap=\"$2\">\n <Label htmlFor={id}><Text variant=\"label\">{label}</Text></Label>\n <StyledInput ref={ref} id={id} borderColor={borderColor ?? (errorText ? '$danger' : '$accent')} invalid={Boolean(errorText)} aria-invalid={Boolean(errorText)} aria-describedby={helperText || errorText ? messageId : undefined} {...props} />\n {(errorText || helperText) && <Text id={messageId} variant=\"caption\" tone={errorText ? 'danger' : 'muted'}>{errorText || helperText}</Text>}\n </YStack>\n )\n },\n)\nField.displayName = 'Field'\n","import { styled, Text as TamaguiText } from 'tamagui'\n\nexport const Text = styled(TamaguiText, {\n name: 'GsText',\n color: '$color',\n fontFamily: '$body',\n variants: {\n tone: { default: {}, muted: { color: '$colorMuted' }, accent: { color: '$accent' }, danger: { color: '$danger' } },\n variant: {\n caption: { fontSize: '$1', lineHeight: '$1' },\n body: { fontSize: '$3', lineHeight: '$3' },\n label: { fontSize: '$2', lineHeight: '$2', fontWeight: '600' },\n title: { fontSize: '$6', lineHeight: '$6', fontWeight: '700', letterSpacing: -0.2 },\n display: { fontSize: '$8', lineHeight: '$8', fontWeight: '700', letterSpacing: -0.8 },\n },\n } as const,\n defaultVariants: { tone: 'default', variant: 'body' },\n})\n","import type { IconPath } from './icon-utils'\n\nexport const icons = {\n arrowRight: [{ d: 'M5 12h14M13 6l6 6-6 6', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }],\n check: [{ d: 'm5 12 4 4L19 6', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }],\n heart: [{ d: 'M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1.1-1.1a5.5 5.5 0 0 0-7.8 7.8l1.1 1.1L12 21l7.7-7.5 1.1-1.1a5.5 5.5 0 0 0 0-7.8Z', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }],\n} as const satisfies Record<string, readonly IconPath[]>\n\nexport type IconName = keyof typeof icons\n","export interface IconPath {\n d: string\n fill?: string\n stroke?: string\n strokeWidth?: number\n fillRule?: 'evenodd' | 'nonzero'\n clipRule?: 'evenodd' | 'nonzero'\n}\n\nexport function normalizeIconPaths(paths: readonly IconPath[], color: string): IconPath[] {\n return paths.map((path) => {\n const normalized: IconPath = { ...path, fill: path.fill ?? (path.stroke ? 'none' : color) }\n if (path.stroke !== undefined) normalized.stroke = path.stroke === 'currentColor' ? color : path.stroke\n return normalized\n })\n}\n"],"mappings":"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","names":["jsx","forwardRef","styled","styled","jsx","styled","forwardRef"]}
|
|
1
|
+
{"version":3,"sources":["../src/theme.tsx","../src/button.tsx","../src/input.tsx","../src/text.tsx","../src/icon-data.ts","../src/icon-utils.ts"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react'\nimport { TamaguiProvider, Theme as TamaguiTheme } from 'tamagui'\nimport { config, type GsThemeName } from './config'\n\nexport interface GsProviderProps {\n children: ReactNode\n defaultTheme?: GsThemeName\n}\n\nexport function GsProvider({ children, defaultTheme = 'red' }: GsProviderProps) {\n return <TamaguiProvider config={config} defaultTheme={defaultTheme}>{children}</TamaguiProvider>\n}\n\nexport interface ThemeProps extends Omit<ComponentProps<typeof TamaguiTheme>, 'name'> {\n name: GsThemeName\n}\n\nexport function Theme({ name, children, ...props }: ThemeProps) {\n return <TamaguiTheme name={name} {...props}>{children}</TamaguiTheme>\n}\n","import { forwardRef, type ComponentProps, type ReactNode } from 'react'\nimport { Button as TamaguiButton, Spinner, styled } from 'tamagui'\n\nconst StyledButton = styled(TamaguiButton, {\n name: 'GsButton',\n unstyled: true,\n justifyContent: 'center',\n alignItems: 'center',\n flexWrap: 'nowrap',\n flexDirection: 'row',\n borderWidth: 1,\n borderColor: '$accent',\n backgroundColor: '$accent',\n color: '$accentText',\n fontWeight: '600',\n cursor: 'pointer',\n focusStyle: { outlineColor: '$focus', outlineWidth: 3, outlineStyle: 'solid' },\n hoverStyle: { backgroundColor: '$accentHover', borderColor: '$accentHover' },\n pressStyle: { backgroundColor: '$accentPress', borderColor: '$accentPress', scale: 0.98 },\n disabledStyle: { opacity: 0.5, cursor: 'not-allowed' },\n variants: {\n intent: {\n primary: {},\n secondary: { backgroundColor: '$surface', color: '$color', borderColor: '$borderColor', hoverStyle: { borderColor: '$borderColorHover', backgroundColor: '$backgroundHover' } },\n ghost: { backgroundColor: 'transparent', color: '$accent', borderColor: 'transparent', hoverStyle: { backgroundColor: 'transparent', borderColor: 'transparent' }, pressStyle: { backgroundColor: 'transparent', borderColor: 'transparent', opacity: 0.7 }, focusStyle: { outlineColor: 'transparent' } },\n danger: { backgroundColor: '$danger', borderColor: '$danger', color: '$accentText' },\n },\n size: {\n sm: { height: 32, px: '$3', borderRadius: '$2', fontSize: '$2' },\n md: { height: 40, px: '$4', borderRadius: '$3', fontSize: '$3' },\n lg: { height: 48, px: '$5', borderRadius: '$4', fontSize: '$4' },\n },\n } as const,\n defaultVariants: { intent: 'primary', size: 'md' },\n})\n\nexport interface ButtonProps extends ComponentProps<typeof StyledButton> {\n loading?: boolean\n loadingLabel?: string\n children?: ReactNode\n}\n\nexport const Button = forwardRef<React.ComponentRef<typeof StyledButton>, ButtonProps>(\n ({ loading = false, loadingLabel = '', disabled, children, icon, borderColor, ...props }, ref) => {\n const iconProps = loading\n ? { icon: <Spinner size=\"small\" color=\"currentColor\" /> }\n : icon === undefined ? {} : { icon }\n\n return (\n <StyledButton gap=\"$2\" ref={ref} disabled={disabled || loading} aria-busy={loading} borderColor={borderColor ?? '$accent'} {...iconProps} {...props}>\n {loading ? loadingLabel : children}\n </StyledButton>\n )\n },\n)\nButton.displayName = 'Button'\n","import { forwardRef, type ComponentProps, type ReactNode } from 'react'\nimport { Input as TamaguiInput, Label, styled, YStack } from 'tamagui'\nimport { Text } from './text'\n\nconst StyledInput = styled(TamaguiInput, {\n name: 'GsInput', height: 44, borderWidth: 1, borderColor: '$borderSubtle', borderRadius: '$3',\n backgroundColor: '$background', color: '$color', px: '$3',\n placeholderTextColor: '$textMuted',\n focusStyle: { borderColor: '$borderColorFocus', outlineColor: '$focus', outlineWidth: 2, outlineStyle: 'solid' },\n disabledStyle: { opacity: 0.55, backgroundColor: '$surface' },\n variants: { invalid: { true: { borderColor: '$danger' } } } as const,\n})\n\nexport interface InputProps extends ComponentProps<typeof StyledInput> {}\n\nexport const Input = forwardRef<React.ComponentRef<typeof StyledInput>, InputProps>(({ borderColor, ...props }, ref) => (\n <StyledInput ref={ref} borderColor={borderColor ?? '$borderSubtle'} {...props} />\n))\nInput.displayName = 'Input'\n\nexport interface FieldProps extends InputProps {\n id: string\n label: string\n helperText?: ReactNode\n errorText?: ReactNode\n}\n\nexport const Field = forwardRef<React.ComponentRef<typeof StyledInput>, FieldProps>(\n ({ id, label, helperText, errorText, borderColor, ...props }, ref) => {\n const messageId = `${id}-message`\n return (\n <YStack gap=\"$2\">\n <Label htmlFor={id}><Text variant=\"label\">{label}</Text></Label>\n <StyledInput ref={ref} id={id} borderColor={borderColor ?? (errorText ? '$danger' : '$borderSubtle')} invalid={Boolean(errorText)} aria-invalid={Boolean(errorText)} aria-describedby={helperText || errorText ? messageId : undefined} {...props} />\n {(errorText || helperText) && <Text id={messageId} variant=\"caption\" tone={errorText ? 'danger' : 'default'} color={errorText ? undefined : '$textMuted'}>{errorText || helperText}</Text>}\n </YStack>\n )\n },\n)\nField.displayName = 'Field'\n","import { styled, Text as TamaguiText } from 'tamagui'\n\nexport const Text = styled(TamaguiText, {\n name: 'GsText',\n color: '$color',\n fontFamily: '$body',\n variants: {\n tone: { default: {}, muted: { color: '$colorMuted' }, accent: { color: '$accent' }, danger: { color: '$danger' } },\n variant: {\n caption: { fontSize: '$1', lineHeight: '$1' },\n body: { fontSize: '$3', lineHeight: '$3' },\n label: { fontSize: '$2', lineHeight: '$2', fontWeight: '600' },\n title: { fontSize: '$6', lineHeight: '$6', fontWeight: '700', letterSpacing: -0.2 },\n display: { fontSize: '$8', lineHeight: '$8', fontWeight: '700', letterSpacing: -0.8 },\n },\n } as const,\n defaultVariants: { tone: 'default', variant: 'body' },\n})\n","import type { IconPath } from './icon-utils'\n\nexport const icons = {\n arrowRight: [{ d: 'M5 12h14M13 6l6 6-6 6', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }],\n check: [{ d: 'm5 12 4 4L19 6', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }],\n heart: [{ d: 'M20.8 4.6a5.5 5.5 0 0 0-7.8 0L12 5.7l-1.1-1.1a5.5 5.5 0 0 0-7.8 7.8l1.1 1.1L12 21l7.7-7.5 1.1-1.1a5.5 5.5 0 0 0 0-7.8Z', fill: 'none', stroke: 'currentColor', strokeWidth: 2 }],\n} as const satisfies Record<string, readonly IconPath[]>\n\nexport type IconName = keyof typeof icons\n","export interface IconPath {\n d: string\n fill?: string\n stroke?: string\n strokeWidth?: number\n fillRule?: 'evenodd' | 'nonzero'\n clipRule?: 'evenodd' | 'nonzero'\n}\n\nexport function normalizeIconPaths(paths: readonly IconPath[], color: string): IconPath[] {\n return paths.map((path) => {\n const normalized: IconPath = { ...path, fill: path.fill ?? (path.stroke ? 'none' : color) }\n if (path.stroke !== undefined) normalized.stroke = path.stroke === 'currentColor' ? color : path.stroke\n return normalized\n })\n}\n"],"mappings":"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","names":["jsx","forwardRef","styled","styled","jsx","styled","forwardRef"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/config.ts"],"sourcesContent":["import { createFont, createTamagui, createTokens } from 'tamagui'\n\nexport const tokens = createTokens({\n color: {\n white: '#FFFFFF',\n black: '#000000',\n brandRed: '#A81D1D',\n brandRedDark: '#FC2B2B',\n brandBlue: '#10106B',\n brandBlueDark: '#2323F7',\n red1: '#FFF7F8', red3: '#FFE1E5', red8: '#B4233C', red9: '#8F1530', red10: '#741026', red11: '#5B0A1D', red12: '#350611',\n blue1: '#F5F9FF', blue3: '#DCEBFF', blue8: '#2864B5', blue9: '#174A8B', blue10: '#123D75', blue11: '#0C315F', blue12: '#071F3F',\n gray1: '#FAFAFC', gray3: '#ECECF1', gray5: '#D0D1D8', gray8: '#777A86', gray10: '#4E505A', gray12: '#202127',\n dark1: '#0B0D12', dark2: '#12151C', dark3: '#1B1F29', dark5: '#343946', dark8: '#8D94A3', dark11: '#D6D9E0', dark12: '#F7F8FA',\n },\n space: { 0: 0, 1: 4, 2: 8, 3: 12, 4: 16, 5: 20, 6: 24, 8: 32, 10: 40, 12: 48, true: 16 },\n size: { 0: 0, 1: 24, 2: 32, 3: 40, 4: 48, 5: 56, 6: 64, 8: 80, 10: 96, sm: 32, md: 40, lg: 48, true: 40 },\n radius: { 0: 0, 1: 4, 2: 8, 3: 12, 4: 16, 5: 20, 6: 24, full: 9999, true: 12 },\n zIndex: { 0: 0, 1: 10, 2: 20, 3: 30, 4: 40, 5: 50 },\n})\n\nconst bodyFont = createFont({\n family: 'Inter, ui-sans-serif, system-ui, sans-serif',\n size: { 1: 12, 2: 14, 3: 16, 4: 18, 5: 22, 6: 28, 7: 36, 8: 48, sm: 14, md: 16, lg: 18, true: 16 },\n lineHeight: { 1: 16, 2: 20, 3: 24, 4: 28, 5: 30, 6: 36, 7: 44, 8: 56, sm: 20, md: 24, lg: 28, true: 24 },\n weight: { 4: '400', 5: '500', 6: '600', 7: '700', true: '400' },\n letterSpacing: { 4: 0, 6: -0.2, 7: -0.5, true: 0 },\n})\n\n// Neutral, non-branded tokens shared by a family's light / dark variant. Use\n// these for hairlines, filled surfaces and de-emphasized text/icons so consumers\n// stop hard-coding greys like #E5E7EB / #9CA3AF.\nconst lightNeutrals = {\n borderSubtle: '#E5E7EB',\n surfaceMuted: '#F3F4F6',\n iconMuted: '#9CA3AF',\n textMuted: '#6B7280',\n} as const\n\nconst darkNeutrals = {\n borderSubtle: '#2A2C34',\n surfaceMuted: '#16181D',\n iconMuted: '#8D94A3',\n textMuted: '#9CA3AF',\n} as const\n\nexport const themes = {\n red: {\n background: '#FFFFFF', backgroundHover: '#FFF7F7', backgroundPress: '#FBE8E8', backgroundFocus: '#FFF7F7',\n surface: '#FFFFFF', color: '#000000', colorMuted: '#5F3030', borderColor: '#A81D1D',\n borderColorHover: '#A81D1D', borderColorPress: '#A81D1D', borderColorFocus: '#A81D1D',\n accent: '#A81D1D', accentHover: '#8F1818', accentPress: '#751414', accentText: '#FFFFFF',\n focus: '#A81D1D', danger: '#A81D1D', disabled: '#D8B8B8', shadowColor: '#A81D1D',\n ...lightNeutrals,\n },\n red_dark: {\n background: '#000000', backgroundHover: '#170606', backgroundPress: '#260808', backgroundFocus: '#170606',\n surface: '#000000', color: '#FFFFFF', colorMuted: '#F5BABA', borderColor: '#FC2B2B',\n borderColorHover: '#FC2B2B', borderColorPress: '#FC2B2B', borderColorFocus: '#FC2B2B',\n accent: '#FC2B2B', accentHover: '#FF4D4D', accentPress: '#D91F1F', accentText: '#000000',\n focus: '#FC2B2B', danger: '#FC2B2B', disabled: '#5E2020', shadowColor: '#FC2B2B',\n ...darkNeutrals,\n },\n blue: {\n background: '#FFFFFF', backgroundHover: '#F5F5FF', backgroundPress: '#E8E8F4', backgroundFocus: '#F5F5FF',\n surface: '#FFFFFF', color: '#000000', colorMuted: '#34345F', borderColor: '#10106B',\n borderColorHover: '#10106B', borderColorPress: '#10106B', borderColorFocus: '#10106B',\n accent: '#10106B', accentHover: '#0D0D59', accentPress: '#090944', accentText: '#FFFFFF',\n focus: '#10106B', danger: '#A81D1D', disabled: '#B8B8D2', shadowColor: '#10106B',\n ...lightNeutrals,\n },\n blue_dark: {\n background: '#000000', backgroundHover: '#070717', backgroundPress: '#0B0B28', backgroundFocus: '#070717',\n surface: '#000000', color: '#FFFFFF', colorMuted: '#C7C7FF', borderColor: '#2323F7',\n borderColorHover: '#2323F7', borderColorPress: '#2323F7', borderColorFocus: '#2323F7',\n accent: '#2323F7', accentHover: '#4141FF', accentPress: '#1B1BC9', accentText: '#FFFFFF',\n focus: '#2323F7', danger: '#FC2B2B', disabled: '#20205E', shadowColor: '#2323F7',\n ...darkNeutrals,\n },\n} as const\n\n// Tamagui's web CSS generator needs base light/dark themes before it emits\n// selectors for custom theme names. These aliases stay internal so the public\n// GsThemeName API remains limited to the four branded themes above.\nconst tamaguiThemes = {\n light: themes.red,\n dark: themes.red_dark,\n ...themes,\n} as const\n\nexport const config = createTamagui({\n tokens,\n themes: tamaguiThemes,\n fonts: { body: bodyFont, heading: bodyFont },\n shorthands: { p: 'padding', px: 'paddingHorizontal', py: 'paddingVertical', m: 'margin', mt: 'marginTop', mb: 'marginBottom', bg: 'backgroundColor' } as const,\n media: { sm: { maxWidth: 660 }, md: { maxWidth: 900 }, lg: { maxWidth: 1200 }, reduceMotion: { prefersReducedMotion: 'reduce' } },\n settings: { defaultFont: 'body' },\n})\n\nexport type GsConfig = typeof config\nexport type GsThemeName = keyof typeof themes\n\ndeclare module 'tamagui' {\n interface TamaguiCustomConfig extends GsConfig {}\n}\n\nexport default config\n"],"mappings":"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","names":[]}
|