@lmb-it/kitsconcerto-native 0.1.248 → 0.1.251

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.
@@ -1 +1 @@
1
- {"version":3,"file":"defaultTheme.js","sources":["../../../../../../../types/src/Theme/defaultTheme.ts"],"sourcesContent":["import type {IKitsTheme} from './types';\nimport {defaultSeverityTheme} from './defaultSeverityTheme';\nimport {DEFAULT_NATIVE_SHADOWS} from './shadows';\n\nexport const defaultTheme: IKitsTheme = {\n /* ─────────────────────────────────────────────────────────────\n * Palettes\n *\n * `primary` and `brand` share the same teal scale so consumers\n * can target either name. Anchors taken from the prototype:\n * AM.tealPale '#F0F8F8' → 50\n * AM.tealSoft '#E3F5F5' → 100\n * AM.teal '#20AAB0' → 500\n * AM.tealDark '#1A8E93' → 600\n * Other shades interpolated to keep the scale usable for tints\n * (50–300) and pressed/dark text on light surfaces (700–900).\n * ───────────────────────────────────────────────────────────── */\n colors: {\n blue: {\n 50: '#EFF6FF', 100: '#DBEAFE', 200: '#BFDBFE', 300: '#93C5FD', 400: '#60A5FA',\n 500: '#3B82F6', 600: '#2563EB', 700: '#1D4ED8', 800: '#1E40AF', 900: '#1E3A8A',\n },\n green: {\n 50: '#F0FDF4', 100: '#DCFCE7', 200: '#BBF7D0', 300: '#86EFAC', 400: '#4ADE80',\n 500: '#22C55E', 600: '#16A34A', 700: '#15803D', 800: '#166534', 900: '#14532D',\n },\n red: {\n 50: '#FEF2F2', 100: '#FEE2E2', 200: '#FECACA', 300: '#FCA5A5', 400: '#F87171',\n 500: '#EF4444', 600: '#DC2626', 700: '#B91C1C', 800: '#991B1B', 900: '#7F1D1D',\n },\n yellow: {\n 50: '#FEFCE8', 100: '#FEF9C3', 200: '#FEF08A', 300: '#FDE047', 400: '#FACC15',\n 500: '#EAB308', 600: '#CA8A04', 700: '#A16207', 800: '#854D0E', 900: '#713F12',\n },\n orange: {\n 50: '#FFF7ED', 100: '#FFEDD5', 200: '#FED7AA', 300: '#FDBA74', 400: '#FB923C',\n 500: '#F97316', 600: '#EA580C', 700: '#C2410C', 800: '#9A3412', 900: '#7C2D12',\n },\n purple: {\n 50: '#FAF5FF', 100: '#F3E8FF', 200: '#E9D5FF', 300: '#D8B4FE', 400: '#C084FC',\n 500: '#8B5CF6', 600: '#7C3AED', 700: '#6D28D9', 800: '#5B21B6', 900: '#4C1D95',\n },\n teal: {\n 50: '#F0FDFA', 100: '#CCFBF1', 200: '#99F6E4', 300: '#5EEAD4', 400: '#2DD4BF',\n 500: '#14B8A6', 600: '#0D9488', 700: '#0F766E', 800: '#115E59', 900: '#134E4A',\n },\n cyan: {\n 50: '#ECFEFF', 100: '#CFFAFE', 200: '#A5F3FC', 300: '#67E8F9', 400: '#22D3EE',\n 500: '#06B6D4', 600: '#0891B2', 700: '#0E7490', 800: '#155E75', 900: '#164E63',\n },\n pink: {\n 50: '#FDF2F8', 100: '#FCE7F3', 200: '#FBCFE8', 300: '#F9A8D4', 400: '#F472B6',\n 500: '#EC4899', 600: '#DB2777', 700: '#BE185D', 800: '#9D174D', 900: '#831843',\n },\n gray: {\n 50: '#F9FAFB', 100: '#F3F4F6', 200: '#E5E7EB', 300: '#D1D5DB', 400: '#9CA3AF',\n 500: '#6B7280', 600: '#4B5563', 700: '#374151', 800: '#1F2937', 900: '#111827',\n },\n indigo: {\n 50: '#EEF2FF', 100: '#E0E7FF', 200: '#C7D2FE', 300: '#A5B4FC', 400: '#818CF8',\n 500: '#6366F1', 600: '#4F46E5', 700: '#4338CA', 800: '#3730A3', 900: '#312E81',\n },\n // Brand: warm gold. Anchors:\n // 400 = --gold-bright (#E5C661) — accents / glow / highlights\n // 500 = --gold-primary (#C9A84C) — primary brand\n // 700 = --gold-deep (#9A7E2E) — pressed / on-light text emphasis\n // 900 = --gold-muted (#5C4920) — deepest tone / dark surfaces\n // The 50–300 / 600 / 800 stops are interpolated to keep the scale usable.\n gold: {\n 50: '#FBF7E8', 100: '#F5EBC3', 200: '#EFDD9A', 300: '#E5C661', 400: '#D7B554',\n 500: '#C9A84C', 600: '#B69241', 700: '#9A7E2E', 800: '#7A632A', 900: '#5C4920',\n },\n primary: {\n 50: '#F0F8F8', // AM.tealPale\n 100: '#E3F5F5', // AM.tealSoft\n 200: '#B7E5E7',\n 300: '#85D2D6',\n 400: '#4DBEC4',\n 500: '#20AAB0', // AM.teal\n 600: '#1A8E93', // AM.tealDark\n 700: '#157479',\n 800: '#0F5A5F',\n 900: '#0A4045',\n },\n brand: {\n 50: '#F0F8F8',\n 100: '#E3F5F5',\n 200: '#B7E5E7',\n 300: '#85D2D6',\n 400: '#4DBEC4',\n 500: '#20AAB0',\n 600: '#1A8E93',\n 700: '#157479',\n 800: '#0F5A5F',\n 900: '#0A4045',\n },\n /* Ink scale — reflects the prototype's ink/inkDim/inkMute trio\n * plus a few stops above/below for shadow text and disabled. */\n ink: {\n 50: '#F5F7F7', // AM.lineSoft\n 100: '#EEEEEE', // AM.line\n 200: '#D6DCDF',\n 300: '#B7C0C5',\n 400: '#8896A0', // AM.inkMute\n 500: '#75808E', // splash text-secondary\n 600: '#546067', // AM.inkDim\n 700: '#3D464C',\n 800: '#263238', // AM.ink\n 900: '#0F1A1C',\n },\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Semantic tokens\n *\n * Light is the prototype's day mode; the user lands here. Cards\n * (`#FFFFFF`) stack on the cream `bg-page` (`#F0EEE9`).\n * Dark mirrors AM_DARK exactly — same hierarchy of bg / bgAlt /\n * bgSunk so depth reads consistently across modes.\n * ───────────────────────────────────────────────────────────── */\n semanticTokens: {\n light: {\n // Brand\n primary: 'primary.500', // #20AAB0\n 'primary-hover': 'primary.600', // #1A8E93 = AM.tealDark\n 'primary-active':'primary.700', // pressed\n secondary: 'ink.600', // #546067 = AM.inkDim\n brand: 'primary.500',\n 'brand-bright': 'primary.300',\n 'brand-deep': 'primary.700',\n 'brand-muted': 'primary.900',\n\n // Status — prototype's amber / rose / indigo, synthetic green for success\n success: '#16A34A',\n danger: '#E3595B', // AM.rose\n warning: '#F59E0B', // AM.amber\n info: '#4F5BD5', // AM.indigo\n help: '#4F5BD5',\n 'ai-accent':'#4F5BD5',\n\n // Text\n text: 'ink.800', // #263238 = AM.ink\n 'text-primary': 'ink.800',\n 'text-secondary':'ink.600', // #546067 = AM.inkDim\n 'text-subtle': 'ink.400', // #8896A0 = AM.inkMute\n 'text-muted': 'ink.400',\n 'text-on-primary':'#FFFFFF',\n 'text-link': 'primary.500',\n\n // Backgrounds — cream page, white cards\n bg: '#FFFFFF', // AM.bg\n 'bg-subtle': '#F5F7F6', // AM.bgAlt — card well\n 'bg-muted': '#EEF3F2', // AM.bgSunk — deepest layer\n 'bg-accent': '#E3F5F5', // AM.tealSoft — selected/highlight wash\n 'bg-input': '#EEF3F2', // AM.bgSunk — input wells\n 'bg-page': '#F0EEE9', // splash body background\n\n // Surfaces\n 'surface-ground': '#F0EEE9', // page (cream)\n 'surface-card': '#FFFFFF', // AM.bg\n 'surface-muted': '#F3F4F6', // subtle muted panel (chat system pill / separator / typing)\n 'surface-overlay': '#FFFFFF', // popovers / dropdowns\n 'surface-hover': '#F5F7F6', // AM.bgAlt\n 'surface-sidebar': '#FAF8F3', // slightly tinted cream for sidebar\n 'surface-border': '#EEEEEE', // AM.line\n\n // Borders\n border: '#EEEEEE', // AM.line\n 'border-default': '#EEEEEE',\n 'border-subtle': '#F5F7F7', // AM.lineSoft\n 'border-strong': '#D6DCDF', // ink.200\n divider: '#EEEEEE',\n\n // Status tints (~12–15% alpha of the named hex)\n 'success-tint': 'rgba(22,163,74,0.12)',\n 'danger-tint': 'rgba(227,89,91,0.12)', // rose 12%\n 'warning-tint': 'rgba(245,158,11,0.14)', // amber 14%\n 'info-tint': 'rgba(79,91,213,0.12)', // indigo 12%\n 'brand-tint': 'rgba(32,170,176,0.14)', // AM.tealGlow\n 'ai-tint': 'rgba(79,91,213,0.14)',\n // Status text — dark-aware, legible on the matching -tint bg (ChatBubble system tones)\n 'brand-text': '#0A4E54',\n 'success-text': '#065F46',\n 'warning-text': '#92400E',\n\n // Switch\n 'switch-bg': '#D6DCDF', // ink.200\n },\n\n dark: {\n // Brand — flip the anchor so OFF-state is brighter (AM_DARK.teal)\n primary: 'primary.400', // visually #4DBEC4 — close to AM_DARK.teal '#2DC0C7'\n 'primary-hover': 'primary.300',\n 'primary-active':'primary.600',\n secondary: '#B6C1BF', // AM_DARK.inkDim\n brand: 'primary.400',\n 'brand-bright': 'primary.300',\n 'brand-deep': 'primary.700',\n 'brand-muted': 'primary.900',\n\n // Status (slightly punchier on dark)\n success: '#22C55E',\n danger: '#FF7A7C', // lifted rose for dark\n warning: '#FBBF24',\n info: '#7C84F5', // lifted indigo for dark\n help: '#7C84F5',\n 'ai-accent':'#7C84F5',\n\n // Text — cream-ish near-white on near-black\n text: '#ECF1F0', // AM_DARK.ink\n 'text-primary': '#ECF1F0',\n 'text-secondary':'#B6C1BF', // AM_DARK.inkDim\n 'text-subtle': '#7F8C8B', // AM_DARK.inkMute\n 'text-muted': '#7F8C8B',\n 'text-on-primary':'#0F1A1C', // ink.900 — readable on bright teal in dark\n 'text-link': 'primary.300',\n\n // Backgrounds — AM_DARK trio\n bg: '#161D1E', // AM_DARK.bgAlt — card surface\n 'bg-subtle': '#10161A', // AM_DARK.bg\n 'bg-muted': '#0C1114', // AM_DARK.bgSunk\n 'bg-accent': 'rgba(45,192,199,0.12)',\n 'bg-input': '#0C1114',\n 'bg-page': '#10161A', // AM_DARK.bg\n\n // Surfaces\n 'surface-ground': '#10161A',\n 'surface-card': '#161D1E',\n 'surface-muted': '#374151',\n 'surface-overlay': '#161D1E',\n 'surface-hover': '#1B2426',\n 'surface-sidebar': '#10161A',\n 'surface-border': '#2A302F', // AM_DARK.line\n\n // Borders\n border: '#2A302F', // AM_DARK.line\n 'border-default': '#2A302F',\n 'border-subtle': '#1F2424', // AM_DARK.lineSoft\n 'border-strong': '#3D464C',\n divider: '#2A302F',\n\n // Status tints\n 'success-tint': 'rgba(34,197,94,0.18)',\n 'danger-tint': 'rgba(255,122,124,0.20)',\n 'warning-tint': 'rgba(251,191,36,0.20)',\n 'info-tint': 'rgba(124,132,245,0.18)',\n 'brand-tint': 'rgba(45,192,199,0.20)', // AM_DARK.tealGlow\n 'ai-tint': 'rgba(124,132,245,0.20)',\n // Status text — dark-aware, legible on the matching -tint bg (ChatBubble system tones)\n 'brand-text': '#B2EBF2',\n 'success-text': '#A7F3D0',\n 'warning-text': '#FDE68A',\n\n // Switch\n 'switch-bg': '#3D464C',\n },\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Severity (Button / Alert / Toast / Dialog)\n * Brand lane = teal. Other lanes use the prototype's accent colours\n * via direct hex on the slots that don't have a palette name.\n * ───────────────────────────────────────────────────────────── */\n severity: {\n brand: {\n solid: 'brand.500',\n solidText: '#FFFFFF',\n bgTint: 'brand.50',\n iconFg: 'brand.600',\n iconBg: 'brand.100',\n text: 'brand.700',\n border: 'brand.500',\n },\n success: {\n solid: 'green.500',\n solidText: '#FFFFFF',\n bgTint: 'green.50',\n iconFg: 'green.600',\n iconBg: 'green.100',\n text: 'green.700',\n border: 'green.500',\n },\n danger: {\n // AM.rose lane — kits palette has no `rose`, so we use red shades\n // and override the solid with the exact AM hex for fidelity.\n solid: '#E3595B',\n solidText: '#FFFFFF',\n bgTint: 'red.50',\n iconFg: 'red.600',\n iconBg: 'red.100',\n text: 'red.700',\n border: '#E3595B',\n },\n warning: {\n // AM.amber lane — yellow-ish palette plus exact amber on solid.\n solid: '#F59E0B',\n solidText: '#FFFFFF',\n bgTint: 'yellow.50',\n iconFg: '#B45309',\n iconBg: 'yellow.100',\n text: '#92400E',\n border: '#F59E0B',\n },\n info: {\n // AM.indigo lane.\n solid: '#4F5BD5',\n solidText: '#FFFFFF',\n bgTint: 'indigo.50',\n iconFg: 'indigo.600',\n iconBg: 'indigo.100',\n text: 'indigo.700',\n border: '#4F5BD5',\n },\n secondary: {\n solid: 'gray.500',\n solidText: '#FFFFFF',\n bgTint: 'gray.50',\n iconFg: 'gray.600',\n iconBg: 'gray.100',\n text: 'gray.700',\n border: 'gray.400',\n },\n help: {\n // Same as info — prototype uses one indigo for both lanes.\n solid: '#4F5BD5',\n solidText: '#FFFFFF',\n bgTint: 'indigo.50',\n iconFg: 'indigo.600',\n iconBg: 'indigo.100',\n text: 'indigo.700',\n border: '#4F5BD5',\n },\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Spacing — kits default scale (matches existing dashboard theme).\n * ───────────────────────────────────────────────────────────── */\n spacing: {\n '0': '0',\n '0.5': '0.125rem',\n '1': '0.25rem',\n '1.5': '0.375rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Radii — taken from the prototype's `AM.r`:\n * AM.r.sm = 8\n * AM.r.md = 12\n * AM.r.lg = 16\n * AM.r.xl = 24\n * AM.r.pill = 999\n * Slightly softer than `theme.ts` (10px lg) — matches the\n * prototype's airier card chrome.\n * ───────────────────────────────────────────────────────────── */\n radii: {\n none: '0',\n sm: '8px',\n base: '8px',\n md: '12px',\n lg: '16px',\n xl: '20px',\n '2xl':'24px',\n '3xl':'32px',\n pill: '999px',\n full: '9999px',\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Shadows — lifted from `AM.shadow` and `AM.shadowLg`. Both use\n * `rgba(15,26,28,…)` to tint the shadow toward the ink colour for\n * a softer, less neutral elevation.\n * ───────────────────────────────────────────────────────────── */\n shadows: {\n // Cross-platform presets (web `box-shadow` + native params). `native`\n // values are the single source `DEFAULT_NATIVE_SHADOWS` so the web var\n // and the native scale never drift. Override either field per consumer.\n none: {web: 'none', native: DEFAULT_NATIVE_SHADOWS.none},\n xs: {web: '0 1px 1px rgba(15,26,28,0.03)', native: DEFAULT_NATIVE_SHADOWS.xs},\n sm: {web: '0 1px 2px rgba(15,26,28,0.04)', native: DEFAULT_NATIVE_SHADOWS.sm},\n md: {web: '0 2px 4px rgba(15,26,28,0.05), 0 6px 16px rgba(15,26,28,0.06)', native: DEFAULT_NATIVE_SHADOWS.md},\n lg: {web: '0 4px 16px rgba(15,26,28,0.06), 0 20px 40px rgba(15,26,28,0.08)', native: DEFAULT_NATIVE_SHADOWS.lg},\n // Web-only legacy levels (no cross-platform native mapping).\n base: '0 1px 2px rgba(15,26,28,0.04), 0 4px 12px rgba(15,26,28,0.04)', // AM.shadow\n xl: '0 8px 24px rgba(15,26,28,0.10), 0 30px 60px rgba(15,26,28,0.12)',\n '2xl':'0 25px 50px rgba(15,26,28,0.20)',\n inner:'inset 0 2px 4px rgba(15,26,28,0.05)',\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Fonts — Roboto, mirroring the prototype's\n * font: 'Roboto, -apple-system, system-ui, sans-serif'\n * The KitsThemeProvider emits `--kits-font-body` and applies it\n * globally (see KitsThemeProvider.web.tsx — kits-global-fonts\n * style tag), so changing `body` here flips the entire app.\n * ───────────────────────────────────────────────────────────── */\n fonts: {\n heading: 'Roboto, -apple-system, system-ui, \"Segoe UI\", sans-serif',\n body: 'Roboto, -apple-system, system-ui, \"Segoe UI\", sans-serif',\n mono: '\"JetBrains Mono\", ui-monospace, \"SF Mono\", Menlo, monospace',\n serif: 'ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif',\n sans: 'Roboto, -apple-system, system-ui, \"Segoe UI\", sans-serif',\n },\n\n fontSizes: {\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl':'1.5rem',\n '3xl':'1.875rem',\n '4xl':'2.25rem',\n '5xl':'3rem',\n '6xl':'3.75rem',\n },\n\n fontWeights: {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n\n lineHeights: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Component slot defaults\n *\n * Identical structurally to `./theme.ts` — only token references\n * change (radii are `12` instead of `8` on Cards, shadows resolve\n * to `AM.shadow`, etc.). Slots that don't reference colour-bound\n * tokens (paddings, gaps, line-heights) are unchanged.\n * ───────────────────────────────────────────────────────────── */\n components: {\n // ─── Button ────────────────────────────────────────────\n Button: {\n root: {\n props: {\n rounded: true,\n size: 'sm',\n },\n style: {\n borderRadius: 12, // AM.r.md\n fontWeight: '600',\n },\n },\n },\n\n // ─── Input (base group) ────────────────────────────────\n // FormElement (label/helperText/error) is configured by the kits\n // default theme — leaving those slots off here so they inherit.\n //\n // `borderWidth: 0` is required alongside `border: 'none'` so the\n // inner input is borderless on BOTH platforms — the visual frame\n // is owned by `inputGroup`. Web reads `border: 'none'` (CSS\n // shorthand → resets borderWidth/style/color). React Native\n // silently ignores the `border` string but accepts the explicit\n // `borderWidth: 0`. Both end up with no inner border.\n Input: {\n root: {\n props: {\n inputSize: 'md',\n },\n style: {\n borderRadius: 0,\n border: 'none',\n borderWidth: 0,\n fontSize: 14,\n color: 'text',\n },\n },\n container: {\n style: { gap: 6 },\n },\n // `borderWidth: 1` is a number, not the CSS string `'1px'`.\n // RN's ViewStyle requires numeric borderWidth; web CSS accepts\n // `1` and treats it as `1px`, so both platforms render the same\n // 1px frame around the input group.\n inputGroup: {\n style: {\n borderColor: \"bg-accent\",\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n fontSize: 14,\n height:52,\n color: 'text',\n },\n },\n leftAddon: {\n style: { backgroundColor: 'transparent' },\n },\n },\n\n // Members inherit the Input chrome via baseGroup=\"Input\"\n InputText: {},\n InputNumber: {},\n InputMask: {},\n InputPassword: {},\n ColorPicker: {},\n PhoneInput: {},\n\n // ─── Datepicker ────────────────────────────────────────\n // The `panel` slot is the calendar popup (web-only; the native\n // Datepicker uses platform-native UI). Keeping `borderWidth: 1`\n // as a number for consistency with the rest of the theme.\n Datepicker: {\n panel: {\n style: {\n backgroundColor: 'surface-overlay',\n borderColor: \"bg-accent\",\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n padding: 8,\n overflow: 'hidden',\n },\n },\n calendarHeader: {\n style: {\n backgroundColor: 'transparent',\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n paddingBottom: 8,\n marginBottom: 4,\n color: 'text-primary',\n fontWeight: '600',\n },\n },\n calendarNavButton: {\n // style: { color: 'text-secondary', width: 28, height: 28, borderRadius: 8 },\n },\n weekDay: {\n style: {\n color: 'text-muted',\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n },\n },\n dayCell: {\n style: {\n color: 'text-primary',\n borderRadius: 8,\n transition: 'background-color 0.12s ease, color 0.12s ease',\n },\n },\n // Selected day — teal pill\n daySelected: {\n style: { backgroundColor: 'primary', color: 'text-on-primary', fontWeight: '600' },\n },\n // Today — teal-tinted ring + bold\n dayToday: {\n style: { color: 'brand-deep', backgroundColor: 'brand-tint', fontWeight: '700' },\n },\n dayDisabled: {\n style: { color: 'text-muted', opacity: 0.45, cursor: 'not-allowed' },\n },\n },\n\n // ─── Textarea ──────────────────────────────────────────\n // Textarea is borderless internally on native (its own visual frame\n // is drawn here on the root, not on a separate inputGroup wrapper,\n // because textareas rarely host addons). `borderWidth: 1` is a\n // number for RN compatibility.\n Textarea: {\n root: {\n props: { inputSize: 'md' },\n style: {\n borderColor: \"bg-accent\",\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n backgroundColor: 'transparent',\n fontSize: 14,\n color: 'text',\n },\n },\n },\n\n // ─── Select base group ─────────────────────────────────\n // `borderWidth: 0` alongside `border: 'none'` for RN parity — same\n // rationale as `Input.root.style` above.\n Select: {\n root: {\n props: { inputSize: 'md' },\n style: {\n borderRadius: 0,\n border: 'none',\n borderWidth: 0,\n fontSize: 14,\n color: 'text',\n backgroundColor: 'transparent',\n },\n },\n container: {\n style: { height: '100%', gap: 6 },\n },\n // `borderWidth: 1` (number, not the string `'1px'`) for RN\n // compatibility — same rationale as `Input.inputGroup` above.\n inputGroup:{\n style:{\n borderColor: \"bg-accent\",\n height:52,\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n fontSize: 14,\n color: 'text',\n }\n },\n /* Option-list (popover panel) */\n panel: {\n style: {\n backgroundColor: 'surface-overlay',\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 16, // AM.r.lg\n overflow: 'hidden',\n },\n },\n item: {\n style: {\n paddingLeft: 12,\n paddingRight: 12,\n paddingTop: 8,\n paddingBottom: 8,\n fontSize: 14,\n color: 'text-primary',\n borderRadius: 8,\n margin: 2,\n transition: 'background-color 0.12s ease, color 0.12s ease',\n },\n },\n itemSelected: {\n style: {\n backgroundColor: 'brand-tint', // AM.tealGlow\n color: 'brand-deep',\n fontWeight: '600',\n },\n },\n itemFocused: {\n style: { backgroundColor: 'bg-subtle', color: 'text-primary' },\n },\n itemHover: {\n style: { backgroundColor: 'bg-subtle', color: 'text-primary' },\n },\n itemDisabled: {\n style: { color: 'text-muted', opacity: 0.55, cursor: 'not-allowed' },\n },\n },\n\n // ─── MultiSelect (chip + per-item checkbox slots) ─────\n MultiSelect: {\n token: {\n style: {\n backgroundColor: 'brand-tint',\n color: 'brand-deep',\n borderRadius: 999, // AM.r.pill\n paddingLeft: 10,\n paddingRight: 8,\n paddingTop: 2,\n paddingBottom: 2,\n fontSize: 12,\n fontWeight: '500',\n margin: 2,\n },\n },\n tokenIcon: {\n style: { color: 'brand-deep', marginLeft: 4, fontSize: 12, cursor: 'pointer' },\n },\n checkboxBox: {\n style: {\n borderColor: 'border-strong',\n backgroundColor: 'transparent',\n borderRadius: 4,\n },\n },\n checkboxBoxChecked: {\n style: { backgroundColor: 'primary', borderColor: 'primary' },\n },\n checkboxIcon: {\n style: { color: 'text-on-primary' },\n },\n },\n\n // Select members (inherit via baseGroup=\"Select\")\n DropdownSelect: {},\n TreeSelect: {},\n ListBox: {},\n CascadeSelect: {},\n\n AutoComplete: {\n container: { style: { height: 'auto' } },\n },\n\n // ─── Switch ────────────────────────────────────────────\n // Slot keys use the post-refactor names (track / trackOn / thumb /\n // thumbOn). Prototype never animates the thumb colour, so OFF and\n // ON both stay white.\n Switch: {\n track: {\n style: {\n backgroundColor: 'switch-bg',\n borderRadius: 999,\n transition: 'background-color 0.18s ease',\n },\n },\n trackOn: {\n style: { backgroundColor: 'primary' },\n },\n thumb: { style: { backgroundColor: '#FFFFFF' } },\n thumbOn: { style: { backgroundColor: '#FFFFFF' } },\n },\n\n // ─── Checkbox / Radio ──────────────────────────────────\n Checkbox: {\n container: { style: { backgroundColor: 'transparent' } },\n },\n Radio: {\n container: { style: { backgroundColor: 'transparent' } },\n },\n\n // ─── Card ──────────────────────────────────────────────\n // Slightly larger radius and softer shadow than `theme.ts` —\n // matches the prototype's airier feel.\n Card: {\n root: {\n props: { variant: 'elevated' },\n style: {\n borderRadius: 16, // AM.r.lg\n padding: 16,\n backgroundColor: 'surface-card',\n borderWidth: 1,\n borderColor: 'border',\n },\n },\n header: { style: { paddingBottom: 12 } },\n title: { style: { fontSize: 16, fontWeight: '600', color: 'text' } },\n subTitle:{ style: { fontSize: 13, color: 'text-secondary' } },\n content: { style: { padding: 0 } },\n footer: { style: { paddingTop: 12 } },\n },\n\n // ─── Badge / Chip ─────────────────────────────────────\n Badge: {\n root: {\n style: {\n borderRadius: 999, // AM.r.pill\n paddingLeft: 12,\n paddingRight: 12,\n paddingTop: 4,\n paddingBottom: 4,\n fontSize: 12,\n fontWeight: '500',\n letterSpacing: '0.01em',\n },\n },\n },\n\n // ─── Table ────────────────────────────────────────────\n Table: {\n paginatorTemplate:\n 'PrevPageLink PageLinks NextPageLink CurrentPageReport RowsPerPageDropdown',\n currentPageReportTemplate: 'Showing {first}–{last} of {totalRecords}',\n rowsPerPageOptions: [10, 25, 50, 100],\n // NOTE: `paginatorAlign` and `paginatorLabels` are deliberately\n // left unset. Both change the paginator's layout for every\n // existing consumer, so they stay opt-in:\n // paginatorAlign: 'between' → report leading, nav trailing\n // paginatorLabels: { prev: 'Prev', next: 'Next' } → word buttons\n\n // Spacing. `paginatorGap` separates the report, the nav buttons\n // and the block of page links; `paginatorPageGap` separates the\n // numbered links from each other. The latter also makes their\n // container a flex box — PrimeReact ships it as a plain block\n // span, so without this there is nothing for a gap to act on.\n paginatorGap: 8,\n paginatorPageGap: 4,\n\n // Every toolbar control — search box included — shares one\n // height and floor width, so a text input and a dropdown line up.\n filtersLayout: 'flex',\n filterControlHeight: '2.5rem',\n filterControlMinWidth: 150,\n filterInputSize: 'sm',\n externalFilterLabelMode: 'label',\n\n cellVerticalAlign: 'middle',\n\n // `container` spans the top bar, toolbar, grid and paginator.\n // Left unstyled on purpose: the default look keeps a detached\n // filter bar above a bordered grid (`filterBar` + `root`). To get\n // the single-card look instead, move the border/radius here and\n // clear them from `root` and `filterBar`.\n container: {},\n topBar: {\n style: {\n paddingLeft: 20,\n paddingRight: 20,\n borderBottom: '1px solid',\n borderColor: 'bg-accent',\n backgroundColor: 'surface-card',\n },\n },\n bulkBar: {\n style: {\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n paddingBottom: 10,\n gap: 12,\n backgroundColor: 'bg-subtle',\n borderBottom: '1px solid',\n borderColor: 'bg-accent',\n },\n },\n bulkBarText: {\n style: { fontSize: 13, fontWeight: '600', color: 'text-primary' },\n },\n\n root: {\n style: {\n borderRadius: 16, // AM.r.lg\n overflow: 'hidden',\n backgroundColor: 'surface-card',\n border: '1px solid',\n borderColor: 'border',\n },\n },\n header: {\n style: { border: 'none', backgroundColor: 'transparent' },\n },\n headerRow: {\n style: { border: 'none', backgroundColor: 'transparent' },\n },\n headerCell: {\n style: {\n fontSize: 11,\n fontWeight: '700',\n textTransform: 'uppercase',\n letterSpacing: '0.06em',\n color: 'text-secondary',\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 14,\n paddingBottom: 14,\n border: 'none',\n backgroundColor: 'bg-subtle',\n },\n },\n bodyRow: {\n style: {\n border: 'none',\n transition: 'background-color 0.15s ease',\n },\n },\n // Selected row left accent — teal bar\n selectedRowAccent: {\n style: { boxShadow: 'inset 3px 0 0 0 var(--primary-color, #20AAB0)' },\n },\n bodyCell: {\n style: {\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 16,\n paddingBottom: 16,\n fontSize: 14,\n color: 'text-primary',\n },\n },\n tableHeader: {\n style: {\n backgroundColor: 'transparent',\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n paddingBottom: 0,\n border: 'none',\n },\n },\n\n /* In-header filter row (the <tr> containing per-column filter inputs).\n Override to re-skin the whole row (background, borders, etc.). */\n filterRow: {\n style: {\n backgroundColor: 'bg-subtle',\n borderTop: '1px solid',\n borderColor: 'bg-accent',\n },\n },\n /* In-header filter cell (each <td> inside the filter row). */\n filterCell: {\n style: {\n backgroundColor: 'bg-subtle',\n padding: '0.5rem 1rem',\n },\n },\n\n /* External filter bar */\n filterBar: {\n style: {\n backgroundColor: 'bg',\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 12,\n padding: 12,\n gap: 12,\n marginBottom: 12,\n },\n },\n /* Chrome shared by every toolbar control — the search box, each\n external filter and the column picker. It lives here rather\n than on `filterInput` / `searchInput` so `toolbarControl` is\n genuinely the one knob for \"restyle all of them\": a value on a\n more specific slot wins, so duplicating this chrome there would\n mean a consumer's `toolbarControl` override was silently beaten\n by a default it never set. Per-control slots stay free for\n genuine per-control differences. */\n toolbarControl: {\n style: {\n backgroundColor: 'bg-input',\n borderRadius: 8, // AM.r.sm\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: \"bg-accent\",\n },\n },\n filterInput: {},\n filterLabel: {\n style: {\n fontSize: 11,\n fontWeight: '600',\n letterSpacing: '0.05em',\n color: 'text-secondary',\n textTransform: 'uppercase',\n },\n },\n /* Placeholder text across every toolbar control — text inputs\n (::placeholder) and PrimeReact selects (.p-placeholder) alike. */\n filterPlaceholder: {\n style: {\n color: 'text-secondary',\n opacity: 1,\n },\n },\n /* Sizing only — the search box's chrome comes from\n `toolbarControl` along with every other control's. */\n searchInput: {\n style: {\n minWidth: 260,\n maxWidth: 460,\n },\n },\n toolbarRight: { style: { gap: 8 } },\n toolbarButton: {\n style: { height: '2.5rem', width: '2.5rem', padding: 0, borderRadius: 8 },\n },\n clearFilterButton: {\n props: { severity: 'danger', outlined: true, rounded: false },\n style: { height: '2.5rem', width: '2.5rem', padding: 0, borderRadius: 8 },\n },\n columnPicker: { style: { minWidth: 160, height: '2.5rem' } },\n\n /* Pagination */\n paginator: {\n style: {\n border: 'none',\n borderTop: '1px solid',\n borderColor: \"bg-accent\",\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 16,\n paddingRight: 16,\n backgroundColor: 'bg-subtle',\n },\n },\n paginatorPageButton: {\n style: { color: 'text-secondary', minWidth: 32, height: 32, borderRadius: 8, fontSize: 13 },\n },\n paginatorPageLink: {\n style: { color: 'text-primary', minWidth: 32, height: 32, borderRadius: 8, fontSize: 13, fontWeight: '500' },\n },\n paginatorActivePageButton: {\n style: {\n backgroundColor: 'primary',\n color: 'text-on-primary',\n height: 32,\n minWidth: 32,\n borderRadius: 8,\n fontWeight: '600',\n },\n },\n paginatorPageReport: {\n style: { color: 'text-secondary', fontSize: 13 },\n },\n paginatorRowsPerPage: {\n style: {\n height: 32,\n justifyContent: 'center',\n alignItems: 'center',\n color: 'text-secondary',\n fontSize: 13,\n margin: '0 10px',\n },\n },\n paginatorRowsPerPageDropdown: {\n style: {\n height: 32,\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 8,\n color: 'text-primary',\n fontSize: 13,\n },\n },\n emptyMessage: {\n style: {\n paddingTop: 40,\n paddingBottom: 40,\n textAlign: 'center',\n color: 'text-subtle',\n fontSize: 14,\n },\n },\n },\n\n // ─── Sidebar ──────────────────────────────────────────\n Sidebar: {\n root: {\n style: {\n backgroundColor: 'surface-sidebar',\n color: 'text',\n borderLeft: '1px solid',\n borderColor: 'border',\n },\n },\n header: {\n style: {\n paddingLeft: 24,\n paddingRight: 24,\n paddingTop: 20,\n paddingBottom: 20,\n borderBottom: '1px solid',\n borderColor: 'border',\n },\n },\n headerTitle: {\n style: { fontSize: 18, fontWeight: '700', color: 'text' },\n },\n closeButton: {\n style: { borderRadius: '50%', color: 'text-subtle' },\n },\n content: {\n style: { paddingLeft: 24, paddingRight: 24, paddingTop: 24, paddingBottom: 24 },\n },\n mask: {\n style: { backgroundColor: 'rgba(15, 26, 28, 0.40)' },\n },\n },\n\n // ─── Accordion ────────────────────────────────────────\n Accordion: {\n root: {\n style: {\n backgroundColor: 'surface-card',\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 16, // AM.r.lg\n overflow: 'hidden',\n },\n },\n title: {\n style: {\n backgroundColor: 'bg-subtle',\n color: 'text-primary',\n fontSize: 16,\n fontWeight: '600',\n padding: 16,\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n },\n },\n header: {\n style: {\n backgroundColor: 'transparent',\n color: 'text-primary',\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 14,\n paddingBottom: 14,\n fontWeight: '500',\n fontSize: 14,\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n transition: 'background-color 0.15s ease, color 0.15s ease',\n },\n },\n headerActive: {\n style: { backgroundColor: 'bg-subtle', color: 'brand-deep', fontWeight: '600' },\n },\n headerHover: {\n style: { backgroundColor: 'bg-subtle', color: 'text-primary' },\n },\n icon: {\n style: { color: 'text-secondary', transition: 'transform 0.2s ease, color 0.15s ease' },\n },\n content: {\n style: {\n backgroundColor: 'surface-card',\n color: 'text-primary',\n padding: 16,\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n },\n },\n },\n\n // ─── Group (repeatable field array) ───────────────────\n Group: {\n root: { style: { gap: 12 } },\n // No `header` slot — it was removed from IGroupElementSlots\n // because nothing ever rendered it (see the note on that type).\n body: { style: { gap: 8 } },\n row: { style: { gap: 8, paddingBottom: 8 } },\n addButton: { props: { severity: 'success', size: 'sm', outlined: true } },\n removeButton: { props: { severity: 'danger', size: 'sm', outlined: true } },\n },\n\n // ─── Header (app-shell top bar) ───────────────────────\n Header: {\n root: {\n style: {\n backgroundColor: 'bg',\n borderBottom: '1px solid',\n borderColor: 'border',\n fontFamily: 'var(--kits-font-body, Roboto, -apple-system, system-ui, sans-serif)',\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 10,\n paddingBottom: 10,\n },\n },\n container: {\n style: { minWidth: 0, paddingLeft: 8, paddingRight: 8 },\n },\n toggleModeButton: { style: { width: 36, height: 36 } },\n avatarButton: { style: { width: 36, height: 36 } },\n breadcrumb: { style: {} },\n },\n\n // ─── AlphaMatch component set (v2) — default knob values ──────────\n // `root.props` carry each component's default props; user props always\n // win (merged by useComponentDefaults). Colour values are theme tokens\n // that resolve per platform — one source for web AND native.\n Avatar: { root: { props: { size: 'md', shape: 'circle', status: 'none', ring: false, ringColor: 'brand', maskFillColor: 'indigo.600' } } },\n AvatarStack: { root: { props: { max: 4, size: 'md', overlap: 0.35, ringColor: 'brand' } } },\n Stepper: { root: { props: { variant: 'bar', size: 'md', activeColor: 'brand', trackColor: 'gray.200' } } },\n StatCard: { root: { props: { variant: 'card', size: 'md', align: 'left', accentColor: 'brand' } } },\n StatGroup: { root: { props: { gap: 8 } } },\n ProgressBar: { root: { props: { max: 100, color: 'brand', trackColor: 'gray.200', thickness: 8, rounded: true } } },\n Timeline: { root: { props: { size: 'md', activeColor: 'brand', trackColor: 'gray.200' } } },\n EmptyState: { root: { props: { size: 'md', accentColor: 'brand' } } },\n Tabs: { root: { props: { size: 'md', activeColor: 'brand', scrollable: true, gap: 8, countVariant: 'suffix', activeBadgeBackground: 'surface-card', activeBadgeTextColor: 'text-primary', inactiveBadgeBackground: 'gray.200', inactiveBadgeTextColor: 'text-secondary', inactiveBackground: 'gray.100', inactiveTextColor: 'text-secondary', sizeHeights: { sm: 28, md: 32, lg: 40 } } } },\n BottomTabBar: { root: { props: { activeColor: 'brand', inactiveColor: 'text-secondary', background: 'surface-card', showLabels: true } } },\n Gallery: { root: { props: { columns: 2, gap: 8, aspectRatio: 1, radius: 12 } } },\n Carousel: { root: { props: { aspectRatio: 1.2, radius: 0, showCounter: true, showDots: true } } },\n ChatBubble: { root: { props: { variant: 'incoming', tone: 'neutral', incomingColor: 'gray.100', outgoingColor: 'brand', authorColor: 'text-secondary' } } },\n MessageComposer: { root: { props: { placeholder: 'Message…', accentColor: 'brand' } } },\n MessageReceipt: { root: { props: { size: 'sm', color: 'text-secondary', seenColor: 'brand', failedColor: 'danger' } } },\n DateSeparator: { root: { props: { color: 'text-secondary', backgroundColor: 'surface-muted' } } },\n TypingIndicator: { root: { props: { dotColor: 'text-secondary', bubble: true, bubbleColor: 'surface-muted' } } },\n },\n\n config: {\n initialColorMode: 'light',\n useSystemColorMode: false,\n },\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaultTheme.js","sources":["../../../../../../../types/src/Theme/defaultTheme.ts"],"sourcesContent":["import type {IKitsTheme} from './types';\nimport {defaultSeverityTheme} from './defaultSeverityTheme';\nimport {DEFAULT_NATIVE_SHADOWS} from './shadows';\n\nexport const defaultTheme: IKitsTheme = {\n /* ─────────────────────────────────────────────────────────────\n * Palettes\n *\n * `primary` and `brand` share the same teal scale so consumers\n * can target either name. Anchors taken from the prototype:\n * AM.tealPale '#F0F8F8' → 50\n * AM.tealSoft '#E3F5F5' → 100\n * AM.teal '#20AAB0' → 500\n * AM.tealDark '#1A8E93' → 600\n * Other shades interpolated to keep the scale usable for tints\n * (50–300) and pressed/dark text on light surfaces (700–900).\n * ───────────────────────────────────────────────────────────── */\n colors: {\n blue: {\n 50: '#EFF6FF', 100: '#DBEAFE', 200: '#BFDBFE', 300: '#93C5FD', 400: '#60A5FA',\n 500: '#3B82F6', 600: '#2563EB', 700: '#1D4ED8', 800: '#1E40AF', 900: '#1E3A8A',\n },\n green: {\n 50: '#F0FDF4', 100: '#DCFCE7', 200: '#BBF7D0', 300: '#86EFAC', 400: '#4ADE80',\n 500: '#22C55E', 600: '#16A34A', 700: '#15803D', 800: '#166534', 900: '#14532D',\n },\n red: {\n 50: '#FEF2F2', 100: '#FEE2E2', 200: '#FECACA', 300: '#FCA5A5', 400: '#F87171',\n 500: '#EF4444', 600: '#DC2626', 700: '#B91C1C', 800: '#991B1B', 900: '#7F1D1D',\n },\n yellow: {\n 50: '#FEFCE8', 100: '#FEF9C3', 200: '#FEF08A', 300: '#FDE047', 400: '#FACC15',\n 500: '#EAB308', 600: '#CA8A04', 700: '#A16207', 800: '#854D0E', 900: '#713F12',\n },\n orange: {\n 50: '#FFF7ED', 100: '#FFEDD5', 200: '#FED7AA', 300: '#FDBA74', 400: '#FB923C',\n 500: '#F97316', 600: '#EA580C', 700: '#C2410C', 800: '#9A3412', 900: '#7C2D12',\n },\n purple: {\n 50: '#FAF5FF', 100: '#F3E8FF', 200: '#E9D5FF', 300: '#D8B4FE', 400: '#C084FC',\n 500: '#8B5CF6', 600: '#7C3AED', 700: '#6D28D9', 800: '#5B21B6', 900: '#4C1D95',\n },\n teal: {\n 50: '#F0FDFA', 100: '#CCFBF1', 200: '#99F6E4', 300: '#5EEAD4', 400: '#2DD4BF',\n 500: '#14B8A6', 600: '#0D9488', 700: '#0F766E', 800: '#115E59', 900: '#134E4A',\n },\n cyan: {\n 50: '#ECFEFF', 100: '#CFFAFE', 200: '#A5F3FC', 300: '#67E8F9', 400: '#22D3EE',\n 500: '#06B6D4', 600: '#0891B2', 700: '#0E7490', 800: '#155E75', 900: '#164E63',\n },\n pink: {\n 50: '#FDF2F8', 100: '#FCE7F3', 200: '#FBCFE8', 300: '#F9A8D4', 400: '#F472B6',\n 500: '#EC4899', 600: '#DB2777', 700: '#BE185D', 800: '#9D174D', 900: '#831843',\n },\n gray: {\n 50: '#F9FAFB', 100: '#F3F4F6', 200: '#E5E7EB', 300: '#D1D5DB', 400: '#9CA3AF',\n 500: '#6B7280', 600: '#4B5563', 700: '#374151', 800: '#1F2937', 900: '#111827',\n },\n indigo: {\n 50: '#EEF2FF', 100: '#E0E7FF', 200: '#C7D2FE', 300: '#A5B4FC', 400: '#818CF8',\n 500: '#6366F1', 600: '#4F46E5', 700: '#4338CA', 800: '#3730A3', 900: '#312E81',\n },\n // Brand: warm gold. Anchors:\n // 400 = --gold-bright (#E5C661) — accents / glow / highlights\n // 500 = --gold-primary (#C9A84C) — primary brand\n // 700 = --gold-deep (#9A7E2E) — pressed / on-light text emphasis\n // 900 = --gold-muted (#5C4920) — deepest tone / dark surfaces\n // The 50–300 / 600 / 800 stops are interpolated to keep the scale usable.\n gold: {\n 50: '#FBF7E8', 100: '#F5EBC3', 200: '#EFDD9A', 300: '#E5C661', 400: '#D7B554',\n 500: '#C9A84C', 600: '#B69241', 700: '#9A7E2E', 800: '#7A632A', 900: '#5C4920',\n },\n primary: {\n 50: '#F0F8F8', // AM.tealPale\n 100: '#E3F5F5', // AM.tealSoft\n 200: '#B7E5E7',\n 300: '#85D2D6',\n 400: '#4DBEC4',\n 500: '#20AAB0', // AM.teal\n 600: '#1A8E93', // AM.tealDark\n 700: '#157479',\n 800: '#0F5A5F',\n 900: '#0A4045',\n },\n brand: {\n 50: '#F0F8F8',\n 100: '#E3F5F5',\n 200: '#B7E5E7',\n 300: '#85D2D6',\n 400: '#4DBEC4',\n 500: '#20AAB0',\n 600: '#1A8E93',\n 700: '#157479',\n 800: '#0F5A5F',\n 900: '#0A4045',\n },\n /* Ink scale — reflects the prototype's ink/inkDim/inkMute trio\n * plus a few stops above/below for shadow text and disabled. */\n ink: {\n 50: '#F5F7F7', // AM.lineSoft\n 100: '#EEEEEE', // AM.line\n 200: '#D6DCDF',\n 300: '#B7C0C5',\n 400: '#8896A0', // AM.inkMute\n 500: '#75808E', // splash text-secondary\n 600: '#546067', // AM.inkDim\n 700: '#3D464C',\n 800: '#263238', // AM.ink\n 900: '#0F1A1C',\n },\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Semantic tokens\n *\n * Light is the prototype's day mode; the user lands here. Cards\n * (`#FFFFFF`) stack on the cream `bg-page` (`#F0EEE9`).\n * Dark mirrors AM_DARK exactly — same hierarchy of bg / bgAlt /\n * bgSunk so depth reads consistently across modes.\n * ───────────────────────────────────────────────────────────── */\n semanticTokens: {\n light: {\n // Brand\n primary: 'primary.500', // #20AAB0\n 'primary-hover': 'primary.600', // #1A8E93 = AM.tealDark\n 'primary-active':'primary.700', // pressed\n secondary: 'ink.600', // #546067 = AM.inkDim\n brand: 'primary.500',\n 'brand-bright': 'primary.300',\n 'brand-deep': 'primary.700',\n 'brand-muted': 'primary.900',\n\n // Status — prototype's amber / rose / indigo, synthetic green for success\n success: '#16A34A',\n danger: '#E3595B', // AM.rose\n warning: '#F59E0B', // AM.amber\n info: '#4F5BD5', // AM.indigo\n help: '#4F5BD5',\n 'ai-accent':'#4F5BD5',\n\n // Text\n text: 'ink.800', // #263238 = AM.ink\n 'text-primary': 'ink.800',\n 'text-secondary':'ink.600', // #546067 = AM.inkDim\n 'text-subtle': 'ink.400', // #8896A0 = AM.inkMute\n 'text-muted': 'ink.400',\n 'text-on-primary':'#FFFFFF',\n 'text-link': 'primary.500',\n\n // Backgrounds — cream page, white cards\n bg: '#FFFFFF', // AM.bg\n 'bg-subtle': '#F5F7F6', // AM.bgAlt — card well\n 'bg-muted': '#EEF3F2', // AM.bgSunk — deepest layer\n 'bg-accent': '#E3F5F5', // AM.tealSoft — selected/highlight wash\n 'bg-input': '#EEF3F2', // AM.bgSunk — input wells\n 'bg-page': '#F0EEE9', // splash body background\n\n // Surfaces\n 'surface-ground': '#F0EEE9', // page (cream)\n 'surface-card': '#FFFFFF', // AM.bg\n 'surface-muted': '#F3F4F6', // subtle muted panel (chat system pill / separator / typing)\n 'surface-overlay': '#FFFFFF', // popovers / dropdowns\n 'surface-hover': '#F5F7F6', // AM.bgAlt\n 'surface-sidebar': '#FAF8F3', // slightly tinted cream for sidebar\n 'surface-border': '#EEEEEE', // AM.line\n\n // Borders\n border: '#EEEEEE', // AM.line\n 'border-default': '#EEEEEE',\n 'border-subtle': '#F5F7F7', // AM.lineSoft\n 'border-strong': '#D6DCDF', // ink.200\n divider: '#EEEEEE',\n\n // Status tints (~12–15% alpha of the named hex)\n 'success-tint': 'rgba(22,163,74,0.12)',\n 'danger-tint': 'rgba(227,89,91,0.12)', // rose 12%\n 'warning-tint': 'rgba(245,158,11,0.14)', // amber 14%\n 'info-tint': 'rgba(79,91,213,0.12)', // indigo 12%\n 'brand-tint': 'rgba(32,170,176,0.14)', // AM.tealGlow\n 'ai-tint': 'rgba(79,91,213,0.14)',\n // Status text — dark-aware, legible on the matching -tint bg (ChatBubble system tones)\n 'brand-text': '#0A4E54',\n 'success-text': '#065F46',\n 'warning-text': '#92400E',\n\n // Switch\n 'switch-bg': '#D6DCDF', // ink.200\n },\n\n dark: {\n // Brand — flip the anchor so OFF-state is brighter (AM_DARK.teal)\n primary: 'primary.400', // visually #4DBEC4 — close to AM_DARK.teal '#2DC0C7'\n 'primary-hover': 'primary.300',\n 'primary-active':'primary.600',\n secondary: '#B6C1BF', // AM_DARK.inkDim\n brand: 'primary.400',\n 'brand-bright': 'primary.300',\n 'brand-deep': 'primary.700',\n 'brand-muted': 'primary.900',\n\n // Status (slightly punchier on dark)\n success: '#22C55E',\n danger: '#FF7A7C', // lifted rose for dark\n warning: '#FBBF24',\n info: '#7C84F5', // lifted indigo for dark\n help: '#7C84F5',\n 'ai-accent':'#7C84F5',\n\n // Text — cream-ish near-white on near-black\n text: '#ECF1F0', // AM_DARK.ink\n 'text-primary': '#ECF1F0',\n 'text-secondary':'#B6C1BF', // AM_DARK.inkDim\n 'text-subtle': '#7F8C8B', // AM_DARK.inkMute\n 'text-muted': '#7F8C8B',\n 'text-on-primary':'#0F1A1C', // ink.900 — readable on bright teal in dark\n 'text-link': 'primary.300',\n\n // Backgrounds — AM_DARK trio\n bg: '#161D1E', // AM_DARK.bgAlt — card surface\n 'bg-subtle': '#10161A', // AM_DARK.bg\n 'bg-muted': '#0C1114', // AM_DARK.bgSunk\n 'bg-accent': 'rgba(45,192,199,0.12)',\n 'bg-input': '#0C1114',\n 'bg-page': '#10161A', // AM_DARK.bg\n\n // Surfaces\n 'surface-ground': '#10161A',\n 'surface-card': '#161D1E',\n 'surface-muted': '#374151',\n 'surface-overlay': '#161D1E',\n 'surface-hover': '#1B2426',\n 'surface-sidebar': '#10161A',\n 'surface-border': '#2A302F', // AM_DARK.line\n\n // Borders\n border: '#2A302F', // AM_DARK.line\n 'border-default': '#2A302F',\n 'border-subtle': '#1F2424', // AM_DARK.lineSoft\n 'border-strong': '#3D464C',\n divider: '#2A302F',\n\n // Status tints\n 'success-tint': 'rgba(34,197,94,0.18)',\n 'danger-tint': 'rgba(255,122,124,0.20)',\n 'warning-tint': 'rgba(251,191,36,0.20)',\n 'info-tint': 'rgba(124,132,245,0.18)',\n 'brand-tint': 'rgba(45,192,199,0.20)', // AM_DARK.tealGlow\n 'ai-tint': 'rgba(124,132,245,0.20)',\n // Status text — dark-aware, legible on the matching -tint bg (ChatBubble system tones)\n 'brand-text': '#B2EBF2',\n 'success-text': '#A7F3D0',\n 'warning-text': '#FDE68A',\n\n // Switch\n 'switch-bg': '#3D464C',\n },\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Severity (Button / Alert / Toast / Dialog)\n * Brand lane = teal. Other lanes use the prototype's accent colours\n * via direct hex on the slots that don't have a palette name.\n * ───────────────────────────────────────────────────────────── */\n severity: {\n brand: {\n solid: 'brand.500',\n solidText: '#FFFFFF',\n bgTint: 'brand.50',\n iconFg: 'brand.600',\n iconBg: 'brand.100',\n text: 'brand.700',\n border: 'brand.500',\n },\n success: {\n solid: 'green.500',\n solidText: '#FFFFFF',\n bgTint: 'green.50',\n iconFg: 'green.600',\n iconBg: 'green.100',\n text: 'green.700',\n border: 'green.500',\n },\n danger: {\n // AM.rose lane — kits palette has no `rose`, so we use red shades\n // and override the solid with the exact AM hex for fidelity.\n solid: '#E3595B',\n solidText: '#FFFFFF',\n bgTint: 'red.50',\n iconFg: 'red.600',\n iconBg: 'red.100',\n text: 'red.700',\n border: '#E3595B',\n },\n warning: {\n // AM.amber lane — yellow-ish palette plus exact amber on solid.\n solid: '#F59E0B',\n solidText: '#FFFFFF',\n bgTint: 'yellow.50',\n iconFg: '#B45309',\n iconBg: 'yellow.100',\n text: '#92400E',\n border: '#F59E0B',\n },\n info: {\n // AM.indigo lane.\n solid: '#4F5BD5',\n solidText: '#FFFFFF',\n bgTint: 'indigo.50',\n iconFg: 'indigo.600',\n iconBg: 'indigo.100',\n text: 'indigo.700',\n border: '#4F5BD5',\n },\n secondary: {\n solid: 'gray.500',\n solidText: '#FFFFFF',\n bgTint: 'gray.50',\n iconFg: 'gray.600',\n iconBg: 'gray.100',\n text: 'gray.700',\n border: 'gray.400',\n },\n help: {\n // Same as info — prototype uses one indigo for both lanes.\n solid: '#4F5BD5',\n solidText: '#FFFFFF',\n bgTint: 'indigo.50',\n iconFg: 'indigo.600',\n iconBg: 'indigo.100',\n text: 'indigo.700',\n border: '#4F5BD5',\n },\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Spacing — kits default scale (matches existing dashboard theme).\n * ───────────────────────────────────────────────────────────── */\n spacing: {\n '0': '0',\n '0.5': '0.125rem',\n '1': '0.25rem',\n '1.5': '0.375rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Radii — taken from the prototype's `AM.r`:\n * AM.r.sm = 8\n * AM.r.md = 12\n * AM.r.lg = 16\n * AM.r.xl = 24\n * AM.r.pill = 999\n * Slightly softer than `theme.ts` (10px lg) — matches the\n * prototype's airier card chrome.\n * ───────────────────────────────────────────────────────────── */\n radii: {\n none: '0',\n sm: '8px',\n base: '8px',\n md: '12px',\n lg: '16px',\n xl: '20px',\n '2xl':'24px',\n '3xl':'32px',\n pill: '999px',\n full: '9999px',\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Shadows — lifted from `AM.shadow` and `AM.shadowLg`. Both use\n * `rgba(15,26,28,…)` to tint the shadow toward the ink colour for\n * a softer, less neutral elevation.\n * ───────────────────────────────────────────────────────────── */\n shadows: {\n // Cross-platform presets (web `box-shadow` + native params). `native`\n // values are the single source `DEFAULT_NATIVE_SHADOWS` so the web var\n // and the native scale never drift. Override either field per consumer.\n none: {web: 'none', native: DEFAULT_NATIVE_SHADOWS.none},\n xs: {web: '0 1px 1px rgba(15,26,28,0.03)', native: DEFAULT_NATIVE_SHADOWS.xs},\n sm: {web: '0 1px 2px rgba(15,26,28,0.04)', native: DEFAULT_NATIVE_SHADOWS.sm},\n md: {web: '0 2px 4px rgba(15,26,28,0.05), 0 6px 16px rgba(15,26,28,0.06)', native: DEFAULT_NATIVE_SHADOWS.md},\n lg: {web: '0 4px 16px rgba(15,26,28,0.06), 0 20px 40px rgba(15,26,28,0.08)', native: DEFAULT_NATIVE_SHADOWS.lg},\n // ⛔ THE ONLY PRESET THAT CASTS UPWARD. For blocks anchored to the\n // bottom of the viewport; see the note on `up` in `shadows.ts`.\n up: {web: '0 -3px 5px rgba(15,26,28,0.05), 0 -8px 20px rgba(15,26,28,0.06)', native: DEFAULT_NATIVE_SHADOWS.up},\n // Web-only legacy levels (no cross-platform native mapping).\n base: '0 1px 2px rgba(15,26,28,0.04), 0 4px 12px rgba(15,26,28,0.04)', // AM.shadow\n xl: '0 8px 24px rgba(15,26,28,0.10), 0 30px 60px rgba(15,26,28,0.12)',\n '2xl':'0 25px 50px rgba(15,26,28,0.20)',\n inner:'inset 0 2px 4px rgba(15,26,28,0.05)',\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Fonts — Roboto, mirroring the prototype's\n * font: 'Roboto, -apple-system, system-ui, sans-serif'\n * The KitsThemeProvider emits `--kits-font-body` and applies it\n * globally (see KitsThemeProvider.web.tsx — kits-global-fonts\n * style tag), so changing `body` here flips the entire app.\n * ───────────────────────────────────────────────────────────── */\n fonts: {\n heading: 'Roboto, -apple-system, system-ui, \"Segoe UI\", sans-serif',\n body: 'Roboto, -apple-system, system-ui, \"Segoe UI\", sans-serif',\n mono: '\"JetBrains Mono\", ui-monospace, \"SF Mono\", Menlo, monospace',\n serif: 'ui-serif, Georgia, Cambria, \"Times New Roman\", Times, serif',\n sans: 'Roboto, -apple-system, system-ui, \"Segoe UI\", sans-serif',\n },\n\n fontSizes: {\n xs: '0.75rem',\n sm: '0.875rem',\n md: '1rem',\n lg: '1.125rem',\n xl: '1.25rem',\n '2xl':'1.5rem',\n '3xl':'1.875rem',\n '4xl':'2.25rem',\n '5xl':'3rem',\n '6xl':'3.75rem',\n },\n\n fontWeights: {\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n },\n\n lineHeights: {\n none: 1,\n tight: 1.25,\n snug: 1.375,\n normal: 1.5,\n relaxed: 1.625,\n loose: 2,\n },\n\n /* ─────────────────────────────────────────────────────────────\n * Component slot defaults\n *\n * Identical structurally to `./theme.ts` — only token references\n * change (radii are `12` instead of `8` on Cards, shadows resolve\n * to `AM.shadow`, etc.). Slots that don't reference colour-bound\n * tokens (paddings, gaps, line-heights) are unchanged.\n * ───────────────────────────────────────────────────────────── */\n components: {\n // ─── Button ────────────────────────────────────────────\n Button: {\n root: {\n props: {\n rounded: true,\n size: 'sm',\n },\n style: {\n borderRadius: 12, // AM.r.md\n fontWeight: '600',\n },\n },\n },\n\n // ─── Input (base group) ────────────────────────────────\n // FormElement (label/helperText/error) is configured by the kits\n // default theme — leaving those slots off here so they inherit.\n //\n // `borderWidth: 0` is required alongside `border: 'none'` so the\n // inner input is borderless on BOTH platforms — the visual frame\n // is owned by `inputGroup`. Web reads `border: 'none'` (CSS\n // shorthand → resets borderWidth/style/color). React Native\n // silently ignores the `border` string but accepts the explicit\n // `borderWidth: 0`. Both end up with no inner border.\n Input: {\n root: {\n props: {\n inputSize: 'md',\n },\n style: {\n borderRadius: 0,\n border: 'none',\n borderWidth: 0,\n fontSize: 14,\n color: 'text',\n },\n },\n container: {\n style: { gap: 6 },\n },\n // `borderWidth: 1` is a number, not the CSS string `'1px'`.\n // RN's ViewStyle requires numeric borderWidth; web CSS accepts\n // `1` and treats it as `1px`, so both platforms render the same\n // 1px frame around the input group.\n inputGroup: {\n style: {\n borderColor: \"bg-accent\",\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n fontSize: 14,\n height:52,\n color: 'text',\n },\n },\n leftAddon: {\n style: { backgroundColor: 'transparent' },\n },\n },\n\n // Members inherit the Input chrome via baseGroup=\"Input\"\n InputText: {},\n InputNumber: {},\n InputMask: {},\n InputPassword: {},\n ColorPicker: {},\n PhoneInput: {},\n\n // ─── Datepicker ────────────────────────────────────────\n // The `panel` slot is the calendar popup (web-only; the native\n // Datepicker uses platform-native UI). Keeping `borderWidth: 1`\n // as a number for consistency with the rest of the theme.\n Datepicker: {\n panel: {\n style: {\n backgroundColor: 'surface-overlay',\n borderColor: \"bg-accent\",\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n padding: 8,\n overflow: 'hidden',\n },\n },\n calendarHeader: {\n style: {\n backgroundColor: 'transparent',\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n paddingBottom: 8,\n marginBottom: 4,\n color: 'text-primary',\n fontWeight: '600',\n },\n },\n calendarNavButton: {\n // style: { color: 'text-secondary', width: 28, height: 28, borderRadius: 8 },\n },\n weekDay: {\n style: {\n color: 'text-muted',\n fontSize: 11,\n fontWeight: '600',\n textTransform: 'uppercase',\n letterSpacing: '0.04em',\n },\n },\n dayCell: {\n style: {\n color: 'text-primary',\n borderRadius: 8,\n transition: 'background-color 0.12s ease, color 0.12s ease',\n },\n },\n // Selected day — teal pill\n daySelected: {\n style: { backgroundColor: 'primary', color: 'text-on-primary', fontWeight: '600' },\n },\n // Today — teal-tinted ring + bold\n dayToday: {\n style: { color: 'brand-deep', backgroundColor: 'brand-tint', fontWeight: '700' },\n },\n dayDisabled: {\n style: { color: 'text-muted', opacity: 0.45, cursor: 'not-allowed' },\n },\n },\n\n // ─── Textarea ──────────────────────────────────────────\n // Textarea is borderless internally on native (its own visual frame\n // is drawn here on the root, not on a separate inputGroup wrapper,\n // because textareas rarely host addons). `borderWidth: 1` is a\n // number for RN compatibility.\n Textarea: {\n root: {\n props: { inputSize: 'md' },\n style: {\n borderColor: \"bg-accent\",\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n backgroundColor: 'transparent',\n fontSize: 14,\n color: 'text',\n },\n },\n },\n\n // ─── Select base group ─────────────────────────────────\n // `borderWidth: 0` alongside `border: 'none'` for RN parity — same\n // rationale as `Input.root.style` above.\n Select: {\n root: {\n props: { inputSize: 'md' },\n style: {\n borderRadius: 0,\n border: 'none',\n borderWidth: 0,\n fontSize: 14,\n color: 'text',\n backgroundColor: 'transparent',\n },\n },\n container: {\n style: { height: '100%', gap: 6 },\n },\n // `borderWidth: 1` (number, not the string `'1px'`) for RN\n // compatibility — same rationale as `Input.inputGroup` above.\n inputGroup:{\n style:{\n borderColor: \"bg-accent\",\n height:52,\n borderRadius: 10,\n borderStyle:'solid',\n borderWidth: 1,\n fontSize: 14,\n color: 'text',\n }\n },\n /* Option-list (popover panel) */\n panel: {\n style: {\n backgroundColor: 'surface-overlay',\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 16, // AM.r.lg\n overflow: 'hidden',\n },\n },\n item: {\n style: {\n paddingLeft: 12,\n paddingRight: 12,\n paddingTop: 8,\n paddingBottom: 8,\n fontSize: 14,\n color: 'text-primary',\n borderRadius: 8,\n margin: 2,\n transition: 'background-color 0.12s ease, color 0.12s ease',\n },\n },\n itemSelected: {\n style: {\n backgroundColor: 'brand-tint', // AM.tealGlow\n color: 'brand-deep',\n fontWeight: '600',\n },\n },\n itemFocused: {\n style: { backgroundColor: 'bg-subtle', color: 'text-primary' },\n },\n itemHover: {\n style: { backgroundColor: 'bg-subtle', color: 'text-primary' },\n },\n itemDisabled: {\n style: { color: 'text-muted', opacity: 0.55, cursor: 'not-allowed' },\n },\n },\n\n // ─── MultiSelect (chip + per-item checkbox slots) ─────\n MultiSelect: {\n token: {\n style: {\n backgroundColor: 'brand-tint',\n color: 'brand-deep',\n borderRadius: 999, // AM.r.pill\n paddingLeft: 10,\n paddingRight: 8,\n paddingTop: 2,\n paddingBottom: 2,\n fontSize: 12,\n fontWeight: '500',\n margin: 2,\n },\n },\n tokenIcon: {\n style: { color: 'brand-deep', marginLeft: 4, fontSize: 12, cursor: 'pointer' },\n },\n checkboxBox: {\n style: {\n borderColor: 'border-strong',\n backgroundColor: 'transparent',\n borderRadius: 4,\n },\n },\n checkboxBoxChecked: {\n style: { backgroundColor: 'primary', borderColor: 'primary' },\n },\n checkboxIcon: {\n style: { color: 'text-on-primary' },\n },\n },\n\n // Select members (inherit via baseGroup=\"Select\")\n DropdownSelect: {},\n TreeSelect: {},\n ListBox: {},\n CascadeSelect: {},\n\n AutoComplete: {\n container: { style: { height: 'auto' } },\n },\n\n // ─── Switch ────────────────────────────────────────────\n // Slot keys use the post-refactor names (track / trackOn / thumb /\n // thumbOn). Prototype never animates the thumb colour, so OFF and\n // ON both stay white.\n Switch: {\n track: {\n style: {\n backgroundColor: 'switch-bg',\n borderRadius: 999,\n transition: 'background-color 0.18s ease',\n },\n },\n trackOn: {\n style: { backgroundColor: 'primary' },\n },\n thumb: { style: { backgroundColor: '#FFFFFF' } },\n thumbOn: { style: { backgroundColor: '#FFFFFF' } },\n },\n\n // ─── Checkbox / Radio ──────────────────────────────────\n Checkbox: {\n container: { style: { backgroundColor: 'transparent' } },\n },\n Radio: {\n container: { style: { backgroundColor: 'transparent' } },\n },\n\n // ─── Card ──────────────────────────────────────────────\n // Slightly larger radius and softer shadow than `theme.ts` —\n // matches the prototype's airier feel.\n Card: {\n root: {\n props: { variant: 'elevated' },\n style: {\n borderRadius: 16, // AM.r.lg\n padding: 16,\n backgroundColor: 'surface-card',\n borderWidth: 1,\n borderColor: 'border',\n },\n },\n header: { style: { paddingBottom: 12 } },\n title: { style: { fontSize: 16, fontWeight: '600', color: 'text' } },\n subTitle:{ style: { fontSize: 13, color: 'text-secondary' } },\n content: { style: { padding: 0 } },\n footer: { style: { paddingTop: 12 } },\n },\n\n // ─── Badge / Chip ─────────────────────────────────────\n Badge: {\n root: {\n style: {\n borderRadius: 999, // AM.r.pill\n paddingLeft: 12,\n paddingRight: 12,\n paddingTop: 4,\n paddingBottom: 4,\n fontSize: 12,\n fontWeight: '500',\n letterSpacing: '0.01em',\n },\n },\n },\n\n // ─── Table ────────────────────────────────────────────\n Table: {\n paginatorTemplate:\n 'PrevPageLink PageLinks NextPageLink CurrentPageReport RowsPerPageDropdown',\n currentPageReportTemplate: 'Showing {first}–{last} of {totalRecords}',\n rowsPerPageOptions: [10, 25, 50, 100],\n // NOTE: `paginatorAlign` and `paginatorLabels` are deliberately\n // left unset. Both change the paginator's layout for every\n // existing consumer, so they stay opt-in:\n // paginatorAlign: 'between' → report leading, nav trailing\n // paginatorLabels: { prev: 'Prev', next: 'Next' } → word buttons\n\n // Spacing. `paginatorGap` separates the report, the nav buttons\n // and the block of page links; `paginatorPageGap` separates the\n // numbered links from each other. The latter also makes their\n // container a flex box — PrimeReact ships it as a plain block\n // span, so without this there is nothing for a gap to act on.\n paginatorGap: 8,\n paginatorPageGap: 4,\n\n // Every toolbar control — search box included — shares one\n // height and floor width, so a text input and a dropdown line up.\n filtersLayout: 'flex',\n filterControlHeight: '2.5rem',\n filterControlMinWidth: 150,\n filterInputSize: 'sm',\n externalFilterLabelMode: 'label',\n\n cellVerticalAlign: 'middle',\n\n // `container` spans the top bar, toolbar, grid and paginator.\n // Left unstyled on purpose: the default look keeps a detached\n // filter bar above a bordered grid (`filterBar` + `root`). To get\n // the single-card look instead, move the border/radius here and\n // clear them from `root` and `filterBar`.\n container: {},\n topBar: {\n style: {\n paddingLeft: 20,\n paddingRight: 20,\n borderBottom: '1px solid',\n borderColor: 'bg-accent',\n backgroundColor: 'surface-card',\n },\n },\n bulkBar: {\n style: {\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 10,\n paddingBottom: 10,\n gap: 12,\n backgroundColor: 'bg-subtle',\n borderBottom: '1px solid',\n borderColor: 'bg-accent',\n },\n },\n bulkBarText: {\n style: { fontSize: 13, fontWeight: '600', color: 'text-primary' },\n },\n\n root: {\n style: {\n borderRadius: 16, // AM.r.lg\n overflow: 'hidden',\n backgroundColor: 'surface-card',\n border: '1px solid',\n borderColor: 'border',\n },\n },\n header: {\n style: { border: 'none', backgroundColor: 'transparent' },\n },\n headerRow: {\n style: { border: 'none', backgroundColor: 'transparent' },\n },\n headerCell: {\n style: {\n fontSize: 11,\n fontWeight: '700',\n textTransform: 'uppercase',\n letterSpacing: '0.06em',\n color: 'text-secondary',\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 14,\n paddingBottom: 14,\n border: 'none',\n backgroundColor: 'bg-subtle',\n },\n },\n bodyRow: {\n style: {\n border: 'none',\n transition: 'background-color 0.15s ease',\n },\n },\n // Selected row left accent — teal bar\n selectedRowAccent: {\n style: { boxShadow: 'inset 3px 0 0 0 var(--primary-color, #20AAB0)' },\n },\n bodyCell: {\n style: {\n paddingLeft: 20,\n paddingRight: 20,\n paddingTop: 16,\n paddingBottom: 16,\n fontSize: 14,\n color: 'text-primary',\n },\n },\n tableHeader: {\n style: {\n backgroundColor: 'transparent',\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n paddingBottom: 0,\n border: 'none',\n },\n },\n\n /* In-header filter row (the <tr> containing per-column filter inputs).\n Override to re-skin the whole row (background, borders, etc.). */\n filterRow: {\n style: {\n backgroundColor: 'bg-subtle',\n borderTop: '1px solid',\n borderColor: 'bg-accent',\n },\n },\n /* In-header filter cell (each <td> inside the filter row). */\n filterCell: {\n style: {\n backgroundColor: 'bg-subtle',\n padding: '0.5rem 1rem',\n },\n },\n\n /* External filter bar */\n filterBar: {\n style: {\n backgroundColor: 'bg',\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 12,\n padding: 12,\n gap: 12,\n marginBottom: 12,\n },\n },\n /* Chrome shared by every toolbar control — the search box, each\n external filter and the column picker. It lives here rather\n than on `filterInput` / `searchInput` so `toolbarControl` is\n genuinely the one knob for \"restyle all of them\": a value on a\n more specific slot wins, so duplicating this chrome there would\n mean a consumer's `toolbarControl` override was silently beaten\n by a default it never set. Per-control slots stay free for\n genuine per-control differences. */\n toolbarControl: {\n style: {\n backgroundColor: 'bg-input',\n borderRadius: 8, // AM.r.sm\n borderWidth: 1,\n borderStyle: 'solid',\n borderColor: \"bg-accent\",\n },\n },\n filterInput: {},\n filterLabel: {\n style: {\n fontSize: 11,\n fontWeight: '600',\n letterSpacing: '0.05em',\n color: 'text-secondary',\n textTransform: 'uppercase',\n },\n },\n /* Placeholder text across every toolbar control — text inputs\n (::placeholder) and PrimeReact selects (.p-placeholder) alike. */\n filterPlaceholder: {\n style: {\n color: 'text-secondary',\n opacity: 1,\n },\n },\n /* Sizing only — the search box's chrome comes from\n `toolbarControl` along with every other control's. */\n searchInput: {\n style: {\n minWidth: 260,\n maxWidth: 460,\n },\n },\n toolbarRight: { style: { gap: 8 } },\n toolbarButton: {\n style: { height: '2.5rem', width: '2.5rem', padding: 0, borderRadius: 8 },\n },\n clearFilterButton: {\n props: { severity: 'danger', outlined: true, rounded: false },\n style: { height: '2.5rem', width: '2.5rem', padding: 0, borderRadius: 8 },\n },\n columnPicker: { style: { minWidth: 160, height: '2.5rem' } },\n\n /* Pagination */\n paginator: {\n style: {\n border: 'none',\n borderTop: '1px solid',\n borderColor: \"bg-accent\",\n paddingTop: 10,\n paddingBottom: 10,\n paddingLeft: 16,\n paddingRight: 16,\n backgroundColor: 'bg-subtle',\n },\n },\n paginatorPageButton: {\n style: { color: 'text-secondary', minWidth: 32, height: 32, borderRadius: 8, fontSize: 13 },\n },\n paginatorPageLink: {\n style: { color: 'text-primary', minWidth: 32, height: 32, borderRadius: 8, fontSize: 13, fontWeight: '500' },\n },\n paginatorActivePageButton: {\n style: {\n backgroundColor: 'primary',\n color: 'text-on-primary',\n height: 32,\n minWidth: 32,\n borderRadius: 8,\n fontWeight: '600',\n },\n },\n paginatorPageReport: {\n style: { color: 'text-secondary', fontSize: 13 },\n },\n paginatorRowsPerPage: {\n style: {\n height: 32,\n justifyContent: 'center',\n alignItems: 'center',\n color: 'text-secondary',\n fontSize: 13,\n margin: '0 10px',\n },\n },\n paginatorRowsPerPageDropdown: {\n style: {\n height: 32,\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 8,\n color: 'text-primary',\n fontSize: 13,\n },\n },\n emptyMessage: {\n style: {\n paddingTop: 40,\n paddingBottom: 40,\n textAlign: 'center',\n color: 'text-subtle',\n fontSize: 14,\n },\n },\n },\n\n // ─── Sidebar ──────────────────────────────────────────\n Sidebar: {\n root: {\n style: {\n backgroundColor: 'surface-sidebar',\n color: 'text',\n borderLeft: '1px solid',\n borderColor: 'border',\n },\n },\n header: {\n style: {\n paddingLeft: 24,\n paddingRight: 24,\n paddingTop: 20,\n paddingBottom: 20,\n borderBottom: '1px solid',\n borderColor: 'border',\n },\n },\n headerTitle: {\n style: { fontSize: 18, fontWeight: '700', color: 'text' },\n },\n closeButton: {\n style: { borderRadius: '50%', color: 'text-subtle' },\n },\n content: {\n style: { paddingLeft: 24, paddingRight: 24, paddingTop: 24, paddingBottom: 24 },\n },\n mask: {\n style: { backgroundColor: 'rgba(15, 26, 28, 0.40)' },\n },\n },\n\n // ─── Accordion ────────────────────────────────────────\n Accordion: {\n root: {\n style: {\n backgroundColor: 'surface-card',\n border: '1px solid',\n borderColor: \"bg-accent\",\n borderRadius: 16, // AM.r.lg\n overflow: 'hidden',\n },\n },\n title: {\n style: {\n backgroundColor: 'bg-subtle',\n color: 'text-primary',\n fontSize: 16,\n fontWeight: '600',\n padding: 16,\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n },\n },\n header: {\n style: {\n backgroundColor: 'transparent',\n color: 'text-primary',\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 14,\n paddingBottom: 14,\n fontWeight: '500',\n fontSize: 14,\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n transition: 'background-color 0.15s ease, color 0.15s ease',\n },\n },\n headerActive: {\n style: { backgroundColor: 'bg-subtle', color: 'brand-deep', fontWeight: '600' },\n },\n headerHover: {\n style: { backgroundColor: 'bg-subtle', color: 'text-primary' },\n },\n icon: {\n style: { color: 'text-secondary', transition: 'transform 0.2s ease, color 0.15s ease' },\n },\n content: {\n style: {\n backgroundColor: 'surface-card',\n color: 'text-primary',\n padding: 16,\n borderBottom: '1px solid',\n borderColor: \"bg-accent\",\n },\n },\n },\n\n // ─── Group (repeatable field array) ───────────────────\n Group: {\n root: { style: { gap: 12 } },\n // No `header` slot — it was removed from IGroupElementSlots\n // because nothing ever rendered it (see the note on that type).\n body: { style: { gap: 8 } },\n row: { style: { gap: 8, paddingBottom: 8 } },\n addButton: { props: { severity: 'success', size: 'sm', outlined: true } },\n removeButton: { props: { severity: 'danger', size: 'sm', outlined: true } },\n },\n\n // ─── Header (app-shell top bar) ───────────────────────\n Header: {\n root: {\n style: {\n backgroundColor: 'bg',\n borderBottom: '1px solid',\n borderColor: 'border',\n fontFamily: 'var(--kits-font-body, Roboto, -apple-system, system-ui, sans-serif)',\n paddingLeft: 16,\n paddingRight: 16,\n paddingTop: 10,\n paddingBottom: 10,\n },\n },\n container: {\n style: { minWidth: 0, paddingLeft: 8, paddingRight: 8 },\n },\n toggleModeButton: { style: { width: 36, height: 36 } },\n avatarButton: { style: { width: 36, height: 36 } },\n breadcrumb: { style: {} },\n },\n\n // ─── AlphaMatch component set (v2) — default knob values ──────────\n // `root.props` carry each component's default props; user props always\n // win (merged by useComponentDefaults). Colour values are theme tokens\n // that resolve per platform — one source for web AND native.\n Avatar: { root: { props: { size: 'md', shape: 'circle', status: 'none', ring: false, ringColor: 'brand', maskFillColor: 'indigo.600' } } },\n AvatarStack: { root: { props: { max: 4, size: 'md', overlap: 0.35, ringColor: 'brand' } } },\n Stepper: { root: { props: { variant: 'bar', size: 'md', activeColor: 'brand', trackColor: 'gray.200' } } },\n StatCard: { root: { props: { variant: 'card', size: 'md', align: 'left', accentColor: 'brand' } } },\n StatGroup: { root: { props: { gap: 8 } } },\n ProgressBar: { root: { props: { max: 100, color: 'brand', trackColor: 'gray.200', thickness: 8, rounded: true } } },\n Timeline: { root: { props: { size: 'md', activeColor: 'brand', trackColor: 'gray.200' } } },\n EmptyState: { root: { props: { size: 'md', accentColor: 'brand' } } },\n Tabs: { root: { props: { size: 'md', activeColor: 'brand', scrollable: true, gap: 8, countVariant: 'suffix', activeBadgeBackground: 'surface-card', activeBadgeTextColor: 'text-primary', inactiveBadgeBackground: 'gray.200', inactiveBadgeTextColor: 'text-secondary', inactiveBackground: 'gray.100', inactiveTextColor: 'text-secondary', sizeHeights: { sm: 28, md: 32, lg: 40 } } } },\n BottomTabBar: { root: { props: { activeColor: 'brand', inactiveColor: 'text-secondary', background: 'surface-card', showLabels: true } } },\n Gallery: { root: { props: { columns: 2, gap: 8, aspectRatio: 1, radius: 12 } } },\n Carousel: { root: { props: { aspectRatio: 1.2, radius: 0, showCounter: true, showDots: true } } },\n ChatBubble: { root: { props: { variant: 'incoming', tone: 'neutral', incomingColor: 'gray.100', outgoingColor: 'brand', authorColor: 'text-secondary' } } },\n MessageComposer: { root: { props: { placeholder: 'Message…', accentColor: 'brand' } } },\n MessageReceipt: { root: { props: { size: 'sm', color: 'text-secondary', seenColor: 'brand', failedColor: 'danger' } } },\n DateSeparator: { root: { props: { color: 'text-secondary', backgroundColor: 'surface-muted' } } },\n TypingIndicator: { root: { props: { dotColor: 'text-secondary', bubble: true, bubbleColor: 'surface-muted' } } },\n },\n\n config: {\n initialColorMode: 'light',\n useSystemColorMode: false,\n },\n};\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const SHADOW_PRESET_KEYS = ["none", "xs", "sm", "md", "lg"];
3
+ const SHADOW_PRESET_KEYS = ["none", "xs", "sm", "md", "lg", "up"];
4
4
  function isShadowPreset(value) {
5
5
  return typeof value === "string" && SHADOW_PRESET_KEYS.includes(value);
6
6
  }
@@ -17,7 +17,17 @@ const DEFAULT_NATIVE_SHADOWS = {
17
17
  xs: { shadowColor: "#000000", shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.18, shadowRadius: 1.5, elevation: 2 },
18
18
  sm: { shadowColor: "#000000", shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 3, elevation: 4 },
19
19
  md: { shadowColor: "#000000", shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.22, shadowRadius: 6, elevation: 8 },
20
- lg: { shadowColor: "#000000", shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12 }
20
+ lg: { shadowColor: "#000000", shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12 },
21
+ // ⛔ NEGATIVE HEIGHT — the whole point. Sized between `sm` and `md`: a bar
22
+ // that shouts is worse than one that is flat, because it competes with the
23
+ // control it is carrying.
24
+ // ⚠️ ANDROID CANNOT CAST UPWARD. `elevation` has no direction — it draws a
25
+ // shadow on every side — so an elevated bar gets a faint halo instead of a
26
+ // lift. `elevation: 4` is chosen to read as a separation rather than an
27
+ // outline; iOS gets the real thing. This asymmetry is the platform's, not a
28
+ // gap in the scale, and it is recorded here so nobody "fixes" it by raising
29
+ // the elevation until the halo is obvious.
30
+ up: { shadowColor: "#000000", shadowOffset: { width: 0, height: -3 }, shadowOpacity: 0.2, shadowRadius: 5, elevation: 4 }
21
31
  };
22
32
  let _activeNativeShadows = { ...DEFAULT_NATIVE_SHADOWS };
23
33
  function setActiveNativeShadows(scale) {
@@ -1 +1 @@
1
- {"version":3,"file":"shadows.cjs","sources":["../../../../../../../types/src/Theme/shadows.ts"],"sourcesContent":["import type {INativeShadow, IShadowValue} from './types';\n\n/**\n * Cross-platform shadow presets.\n *\n * Single source of truth for the `shadow` style key (form slots / element\n * styles via `resolveStyleRecord`) AND the `shadow` factory prop\n * (`<Box shadow=\"md\">`) on both web and native.\n *\n * - Web reads `theme.shadows[<preset>].web` as a `box-shadow` CSS string,\n * surfaced through the `--kits-shadow-<preset>` CSS variable — so consumers\n * override it by overriding `theme.shadows`.\n * - Native reads the params published here by the native `KitsThemeProvider`\n * (see `setActiveNativeShadows`), mirroring the `_activeColorMap` pattern the\n * native factory already uses for colours. Consumers override by overriding\n * `theme.shadows[<preset>].native`.\n */\n\n/** Preset names recognised by the cross-platform `shadow` key / prop. */\nexport const SHADOW_PRESET_KEYS = ['none', 'xs', 'sm', 'md', 'lg'] as const;\nexport type ShadowPreset = (typeof SHADOW_PRESET_KEYS)[number];\n\n/** Type guard: is `value` one of the cross-platform shadow presets? */\nexport function isShadowPreset(value: unknown): value is ShadowPreset {\n return typeof value === 'string' && (SHADOW_PRESET_KEYS as readonly string[]).includes(value);\n}\n\n/** Extract the web `box-shadow` CSS string from a theme shadow value. */\nexport function shadowWeb(value: IShadowValue | undefined): string {\n if (value == null) return 'none';\n return typeof value === 'string' ? value : value.web;\n}\n\n/**\n * Extract native shadow params from a theme shadow value.\n * Returns `undefined` for a bare (web-only) string value.\n */\nexport function shadowNative(value: IShadowValue | undefined): INativeShadow | undefined {\n if (value == null) return undefined;\n return typeof value === 'string' ? undefined : value.native;\n}\n\n/**\n * Built-in native shadow params per preset. The default scale AND the fallback\n * when the active theme does not define native params for a preset. iOS uses\n * `shadow*`; Android uses `elevation`. Each step's values are tuned so the iOS\n * soft shadow and the Android elevation read as roughly equivalent.\n */\nexport const DEFAULT_NATIVE_SHADOWS = {\n none: {shadowColor: '#000000', shadowOffset: {width: 0, height: 0}, shadowOpacity: 0, shadowRadius: 0, elevation: 0},\n xs: {shadowColor: '#000000', shadowOffset: {width: 0, height: 1}, shadowOpacity: 0.18, shadowRadius: 1.5, elevation: 2},\n sm: {shadowColor: '#000000', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.20, shadowRadius: 3, elevation: 4},\n md: {shadowColor: '#000000', shadowOffset: {width: 0, height: 4}, shadowOpacity: 0.22, shadowRadius: 6, elevation: 8},\n lg: {shadowColor: '#000000', shadowOffset: {width: 0, height: 8}, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12},\n} satisfies Record<string, INativeShadow>;\n\n// ── Active native shadow scale ──────────────────────────────────────────────\n// Published by the native KitsThemeProvider (synchronously during render, like\n// `setActiveColorMap`) so platform-agnostic code and the native factory can\n// read native shadow params without React context.\nlet _activeNativeShadows: Record<string, INativeShadow> = {...DEFAULT_NATIVE_SHADOWS};\n\n/** Publish the theme's native shadow scale. Merged over the built-in defaults. */\nexport function setActiveNativeShadows(scale: Record<string, INativeShadow>): void {\n _activeNativeShadows = {...DEFAULT_NATIVE_SHADOWS, ...scale};\n}\n\n/** The currently active native shadow scale. */\nexport function getActiveNativeShadows(): Record<string, INativeShadow> {\n return _activeNativeShadows;\n}\n\n/**\n * Expand a `shadow` preset name into native RN shadow props\n * (`shadowColor/shadowOffset/shadowOpacity/shadowRadius/elevation`).\n * Returns `{}` for an unknown preset.\n */\nexport function expandShadowNative(name: string): Record<string, any> {\n const preset = _activeNativeShadows[name];\n return preset ? {...preset} : {};\n}\n"],"names":[],"mappings":";;AAmBO,MAAM,qBAAqB,CAAC,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAI1D,SAAS,eAAe,KAAA,EAAuC;AAClE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAa,kBAAA,CAAyC,SAAS,KAAK,CAAA;AAChG;AAGO,SAAS,UAAU,KAAA,EAAyC;AAC/D,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,KAAA,CAAM,GAAA;AACrD;AAMO,SAAS,aAAa,KAAA,EAA4D;AACrF,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,MAAA,GAAY,KAAA,CAAM,MAAA;AACzD;AAQO,MAAM,sBAAA,GAAyB;AAAA,EAClC,MAAM,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,CAAA,EAAG,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACnH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,GAAA,EAAK,WAAW,CAAA,EAAC;AAAA,EACtH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,GAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,WAAW,EAAA;AACxH;AAMA,IAAI,oBAAA,GAAsD,EAAC,GAAG,sBAAA,EAAsB;AAG7E,SAAS,uBAAuB,KAAA,EAA4C;AAC/E,EAAA,oBAAA,GAAuB,EAAC,GAAG,sBAAA,EAAwB,GAAG,KAAA,EAAK;AAC/D;AAGO,SAAS,sBAAA,GAAwD;AACpE,EAAA,OAAO,oBAAA;AACX;AAOO,SAAS,mBAAmB,IAAA,EAAmC;AAClE,EAAA,MAAM,MAAA,GAAS,qBAAqB,IAAI,CAAA;AACxC,EAAA,OAAO,MAAA,GAAS,EAAC,GAAG,MAAA,KAAU,EAAC;AACnC;;;;;;;;;;;"}
1
+ {"version":3,"file":"shadows.cjs","sources":["../../../../../../../types/src/Theme/shadows.ts"],"sourcesContent":["import type {INativeShadow, IShadowValue} from './types';\n\n/**\n * Cross-platform shadow presets.\n *\n * Single source of truth for the `shadow` style key (form slots / element\n * styles via `resolveStyleRecord`) AND the `shadow` factory prop\n * (`<Box shadow=\"md\">`) on both web and native.\n *\n * - Web reads `theme.shadows[<preset>].web` as a `box-shadow` CSS string,\n * surfaced through the `--kits-shadow-<preset>` CSS variable — so consumers\n * override it by overriding `theme.shadows`.\n * - Native reads the params published here by the native `KitsThemeProvider`\n * (see `setActiveNativeShadows`), mirroring the `_activeColorMap` pattern the\n * native factory already uses for colours. Consumers override by overriding\n * `theme.shadows[<preset>].native`.\n */\n\n/** Preset names recognised by the cross-platform `shadow` key / prop. */\n/**\n * ⛔ `up` IS A DIRECTION, NOT A SIZE, AND THAT IS WHY IT SITS OUTSIDE THE SCALE.\n * `xs → lg` is one axis: how far off the page a thing floats. Every one of them\n * casts DOWNWARD (`shadowOffset.height` ≥ 0), which is correct for a card on a\n * page and wrong for anything anchored to the BOTTOM of the screen — a sticky\n * bid footer, a bottom sheet, a tab bar. Those need the light to come from the\n * same place it always does and the shadow to fall UPWARD, onto the content\n * they are covering. Without it a bottom-anchored block reads as painted on\n * rather than lifted.\n *\n * ⚠️ IT IS DELIBERATELY ONE PRESET, NOT A SECOND SCALE. `up-sm`/`up-md`/`up-lg`\n * would double the vocabulary for a case that has exactly one job: separating a\n * fixed bar from what scrolls beneath it. Add sizes when a second real use\n * appears, not before.\n */\nexport const SHADOW_PRESET_KEYS = ['none', 'xs', 'sm', 'md', 'lg', 'up'] as const;\nexport type ShadowPreset = (typeof SHADOW_PRESET_KEYS)[number];\n\n/** Type guard: is `value` one of the cross-platform shadow presets? */\nexport function isShadowPreset(value: unknown): value is ShadowPreset {\n return typeof value === 'string' && (SHADOW_PRESET_KEYS as readonly string[]).includes(value);\n}\n\n/** Extract the web `box-shadow` CSS string from a theme shadow value. */\nexport function shadowWeb(value: IShadowValue | undefined): string {\n if (value == null) return 'none';\n return typeof value === 'string' ? value : value.web;\n}\n\n/**\n * Extract native shadow params from a theme shadow value.\n * Returns `undefined` for a bare (web-only) string value.\n */\nexport function shadowNative(value: IShadowValue | undefined): INativeShadow | undefined {\n if (value == null) return undefined;\n return typeof value === 'string' ? undefined : value.native;\n}\n\n/**\n * Built-in native shadow params per preset. The default scale AND the fallback\n * when the active theme does not define native params for a preset. iOS uses\n * `shadow*`; Android uses `elevation`. Each step's values are tuned so the iOS\n * soft shadow and the Android elevation read as roughly equivalent.\n */\nexport const DEFAULT_NATIVE_SHADOWS = {\n none: {shadowColor: '#000000', shadowOffset: {width: 0, height: 0}, shadowOpacity: 0, shadowRadius: 0, elevation: 0},\n xs: {shadowColor: '#000000', shadowOffset: {width: 0, height: 1}, shadowOpacity: 0.18, shadowRadius: 1.5, elevation: 2},\n sm: {shadowColor: '#000000', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.20, shadowRadius: 3, elevation: 4},\n md: {shadowColor: '#000000', shadowOffset: {width: 0, height: 4}, shadowOpacity: 0.22, shadowRadius: 6, elevation: 8},\n lg: {shadowColor: '#000000', shadowOffset: {width: 0, height: 8}, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12},\n // ⛔ NEGATIVE HEIGHT — the whole point. Sized between `sm` and `md`: a bar\n // that shouts is worse than one that is flat, because it competes with the\n // control it is carrying.\n // ⚠️ ANDROID CANNOT CAST UPWARD. `elevation` has no direction — it draws a\n // shadow on every side — so an elevated bar gets a faint halo instead of a\n // lift. `elevation: 4` is chosen to read as a separation rather than an\n // outline; iOS gets the real thing. This asymmetry is the platform's, not a\n // gap in the scale, and it is recorded here so nobody \"fixes\" it by raising\n // the elevation until the halo is obvious.\n up: {shadowColor: '#000000', shadowOffset: {width: 0, height: -3}, shadowOpacity: 0.20, shadowRadius: 5, elevation: 4},\n} satisfies Record<string, INativeShadow>;\n\n// ── Active native shadow scale ──────────────────────────────────────────────\n// Published by the native KitsThemeProvider (synchronously during render, like\n// `setActiveColorMap`) so platform-agnostic code and the native factory can\n// read native shadow params without React context.\nlet _activeNativeShadows: Record<string, INativeShadow> = {...DEFAULT_NATIVE_SHADOWS};\n\n/** Publish the theme's native shadow scale. Merged over the built-in defaults. */\nexport function setActiveNativeShadows(scale: Record<string, INativeShadow>): void {\n _activeNativeShadows = {...DEFAULT_NATIVE_SHADOWS, ...scale};\n}\n\n/** The currently active native shadow scale. */\nexport function getActiveNativeShadows(): Record<string, INativeShadow> {\n return _activeNativeShadows;\n}\n\n/**\n * Expand a `shadow` preset name into native RN shadow props\n * (`shadowColor/shadowOffset/shadowOpacity/shadowRadius/elevation`).\n * Returns `{}` for an unknown preset.\n */\nexport function expandShadowNative(name: string): Record<string, any> {\n const preset = _activeNativeShadows[name];\n return preset ? {...preset} : {};\n}\n"],"names":[],"mappings":";;AAkCO,MAAM,qBAAqB,CAAC,MAAA,EAAQ,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAIhE,SAAS,eAAe,KAAA,EAAuC;AAClE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAa,kBAAA,CAAyC,SAAS,KAAK,CAAA;AAChG;AAGO,SAAS,UAAU,KAAA,EAAyC;AAC/D,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,KAAA,CAAM,GAAA;AACrD;AAMO,SAAS,aAAa,KAAA,EAA4D;AACrF,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,MAAA,GAAY,KAAA,CAAM,MAAA;AACzD;AAQO,MAAM,sBAAA,GAAyB;AAAA,EAClC,MAAM,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,CAAA,EAAG,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACnH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,GAAA,EAAK,WAAW,CAAA,EAAC;AAAA,EACtH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,GAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,WAAW,EAAA,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUtH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,EAAA,IAAK,aAAA,EAAe,GAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA;AACxH;AAMA,IAAI,oBAAA,GAAsD,EAAC,GAAG,sBAAA,EAAsB;AAG7E,SAAS,uBAAuB,KAAA,EAA4C;AAC/E,EAAA,oBAAA,GAAuB,EAAC,GAAG,sBAAA,EAAwB,GAAG,KAAA,EAAK;AAC/D;AAGO,SAAS,sBAAA,GAAwD;AACpE,EAAA,OAAO,oBAAA;AACX;AAOO,SAAS,mBAAmB,IAAA,EAAmC;AAClE,EAAA,MAAM,MAAA,GAAS,qBAAqB,IAAI,CAAA;AACxC,EAAA,OAAO,MAAA,GAAS,EAAC,GAAG,MAAA,KAAU,EAAC;AACnC;;;;;;;;;;;"}
@@ -1,4 +1,4 @@
1
- const SHADOW_PRESET_KEYS = ["none", "xs", "sm", "md", "lg"];
1
+ const SHADOW_PRESET_KEYS = ["none", "xs", "sm", "md", "lg", "up"];
2
2
  function isShadowPreset(value) {
3
3
  return typeof value === "string" && SHADOW_PRESET_KEYS.includes(value);
4
4
  }
@@ -15,7 +15,17 @@ const DEFAULT_NATIVE_SHADOWS = {
15
15
  xs: { shadowColor: "#000000", shadowOffset: { width: 0, height: 1 }, shadowOpacity: 0.18, shadowRadius: 1.5, elevation: 2 },
16
16
  sm: { shadowColor: "#000000", shadowOffset: { width: 0, height: 2 }, shadowOpacity: 0.2, shadowRadius: 3, elevation: 4 },
17
17
  md: { shadowColor: "#000000", shadowOffset: { width: 0, height: 4 }, shadowOpacity: 0.22, shadowRadius: 6, elevation: 8 },
18
- lg: { shadowColor: "#000000", shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12 }
18
+ lg: { shadowColor: "#000000", shadowOffset: { width: 0, height: 8 }, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12 },
19
+ // ⛔ NEGATIVE HEIGHT — the whole point. Sized between `sm` and `md`: a bar
20
+ // that shouts is worse than one that is flat, because it competes with the
21
+ // control it is carrying.
22
+ // ⚠️ ANDROID CANNOT CAST UPWARD. `elevation` has no direction — it draws a
23
+ // shadow on every side — so an elevated bar gets a faint halo instead of a
24
+ // lift. `elevation: 4` is chosen to read as a separation rather than an
25
+ // outline; iOS gets the real thing. This asymmetry is the platform's, not a
26
+ // gap in the scale, and it is recorded here so nobody "fixes" it by raising
27
+ // the elevation until the halo is obvious.
28
+ up: { shadowColor: "#000000", shadowOffset: { width: 0, height: -3 }, shadowOpacity: 0.2, shadowRadius: 5, elevation: 4 }
19
29
  };
20
30
  let _activeNativeShadows = { ...DEFAULT_NATIVE_SHADOWS };
21
31
  function setActiveNativeShadows(scale) {
@@ -1 +1 @@
1
- {"version":3,"file":"shadows.js","sources":["../../../../../../../types/src/Theme/shadows.ts"],"sourcesContent":["import type {INativeShadow, IShadowValue} from './types';\n\n/**\n * Cross-platform shadow presets.\n *\n * Single source of truth for the `shadow` style key (form slots / element\n * styles via `resolveStyleRecord`) AND the `shadow` factory prop\n * (`<Box shadow=\"md\">`) on both web and native.\n *\n * - Web reads `theme.shadows[<preset>].web` as a `box-shadow` CSS string,\n * surfaced through the `--kits-shadow-<preset>` CSS variable — so consumers\n * override it by overriding `theme.shadows`.\n * - Native reads the params published here by the native `KitsThemeProvider`\n * (see `setActiveNativeShadows`), mirroring the `_activeColorMap` pattern the\n * native factory already uses for colours. Consumers override by overriding\n * `theme.shadows[<preset>].native`.\n */\n\n/** Preset names recognised by the cross-platform `shadow` key / prop. */\nexport const SHADOW_PRESET_KEYS = ['none', 'xs', 'sm', 'md', 'lg'] as const;\nexport type ShadowPreset = (typeof SHADOW_PRESET_KEYS)[number];\n\n/** Type guard: is `value` one of the cross-platform shadow presets? */\nexport function isShadowPreset(value: unknown): value is ShadowPreset {\n return typeof value === 'string' && (SHADOW_PRESET_KEYS as readonly string[]).includes(value);\n}\n\n/** Extract the web `box-shadow` CSS string from a theme shadow value. */\nexport function shadowWeb(value: IShadowValue | undefined): string {\n if (value == null) return 'none';\n return typeof value === 'string' ? value : value.web;\n}\n\n/**\n * Extract native shadow params from a theme shadow value.\n * Returns `undefined` for a bare (web-only) string value.\n */\nexport function shadowNative(value: IShadowValue | undefined): INativeShadow | undefined {\n if (value == null) return undefined;\n return typeof value === 'string' ? undefined : value.native;\n}\n\n/**\n * Built-in native shadow params per preset. The default scale AND the fallback\n * when the active theme does not define native params for a preset. iOS uses\n * `shadow*`; Android uses `elevation`. Each step's values are tuned so the iOS\n * soft shadow and the Android elevation read as roughly equivalent.\n */\nexport const DEFAULT_NATIVE_SHADOWS = {\n none: {shadowColor: '#000000', shadowOffset: {width: 0, height: 0}, shadowOpacity: 0, shadowRadius: 0, elevation: 0},\n xs: {shadowColor: '#000000', shadowOffset: {width: 0, height: 1}, shadowOpacity: 0.18, shadowRadius: 1.5, elevation: 2},\n sm: {shadowColor: '#000000', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.20, shadowRadius: 3, elevation: 4},\n md: {shadowColor: '#000000', shadowOffset: {width: 0, height: 4}, shadowOpacity: 0.22, shadowRadius: 6, elevation: 8},\n lg: {shadowColor: '#000000', shadowOffset: {width: 0, height: 8}, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12},\n} satisfies Record<string, INativeShadow>;\n\n// ── Active native shadow scale ──────────────────────────────────────────────\n// Published by the native KitsThemeProvider (synchronously during render, like\n// `setActiveColorMap`) so platform-agnostic code and the native factory can\n// read native shadow params without React context.\nlet _activeNativeShadows: Record<string, INativeShadow> = {...DEFAULT_NATIVE_SHADOWS};\n\n/** Publish the theme's native shadow scale. Merged over the built-in defaults. */\nexport function setActiveNativeShadows(scale: Record<string, INativeShadow>): void {\n _activeNativeShadows = {...DEFAULT_NATIVE_SHADOWS, ...scale};\n}\n\n/** The currently active native shadow scale. */\nexport function getActiveNativeShadows(): Record<string, INativeShadow> {\n return _activeNativeShadows;\n}\n\n/**\n * Expand a `shadow` preset name into native RN shadow props\n * (`shadowColor/shadowOffset/shadowOpacity/shadowRadius/elevation`).\n * Returns `{}` for an unknown preset.\n */\nexport function expandShadowNative(name: string): Record<string, any> {\n const preset = _activeNativeShadows[name];\n return preset ? {...preset} : {};\n}\n"],"names":[],"mappings":"AAmBO,MAAM,qBAAqB,CAAC,MAAA,EAAQ,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAI1D,SAAS,eAAe,KAAA,EAAuC;AAClE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAa,kBAAA,CAAyC,SAAS,KAAK,CAAA;AAChG;AAGO,SAAS,UAAU,KAAA,EAAyC;AAC/D,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,KAAA,CAAM,GAAA;AACrD;AAMO,SAAS,aAAa,KAAA,EAA4D;AACrF,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,MAAA,GAAY,KAAA,CAAM,MAAA;AACzD;AAQO,MAAM,sBAAA,GAAyB;AAAA,EAClC,MAAM,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,CAAA,EAAG,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACnH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,GAAA,EAAK,WAAW,CAAA,EAAC;AAAA,EACtH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,GAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,WAAW,EAAA;AACxH;AAMA,IAAI,oBAAA,GAAsD,EAAC,GAAG,sBAAA,EAAsB;AAG7E,SAAS,uBAAuB,KAAA,EAA4C;AAC/E,EAAA,oBAAA,GAAuB,EAAC,GAAG,sBAAA,EAAwB,GAAG,KAAA,EAAK;AAC/D;AAGO,SAAS,sBAAA,GAAwD;AACpE,EAAA,OAAO,oBAAA;AACX;AAOO,SAAS,mBAAmB,IAAA,EAAmC;AAClE,EAAA,MAAM,MAAA,GAAS,qBAAqB,IAAI,CAAA;AACxC,EAAA,OAAO,MAAA,GAAS,EAAC,GAAG,MAAA,KAAU,EAAC;AACnC;;;;"}
1
+ {"version":3,"file":"shadows.js","sources":["../../../../../../../types/src/Theme/shadows.ts"],"sourcesContent":["import type {INativeShadow, IShadowValue} from './types';\n\n/**\n * Cross-platform shadow presets.\n *\n * Single source of truth for the `shadow` style key (form slots / element\n * styles via `resolveStyleRecord`) AND the `shadow` factory prop\n * (`<Box shadow=\"md\">`) on both web and native.\n *\n * - Web reads `theme.shadows[<preset>].web` as a `box-shadow` CSS string,\n * surfaced through the `--kits-shadow-<preset>` CSS variable — so consumers\n * override it by overriding `theme.shadows`.\n * - Native reads the params published here by the native `KitsThemeProvider`\n * (see `setActiveNativeShadows`), mirroring the `_activeColorMap` pattern the\n * native factory already uses for colours. Consumers override by overriding\n * `theme.shadows[<preset>].native`.\n */\n\n/** Preset names recognised by the cross-platform `shadow` key / prop. */\n/**\n * ⛔ `up` IS A DIRECTION, NOT A SIZE, AND THAT IS WHY IT SITS OUTSIDE THE SCALE.\n * `xs → lg` is one axis: how far off the page a thing floats. Every one of them\n * casts DOWNWARD (`shadowOffset.height` ≥ 0), which is correct for a card on a\n * page and wrong for anything anchored to the BOTTOM of the screen — a sticky\n * bid footer, a bottom sheet, a tab bar. Those need the light to come from the\n * same place it always does and the shadow to fall UPWARD, onto the content\n * they are covering. Without it a bottom-anchored block reads as painted on\n * rather than lifted.\n *\n * ⚠️ IT IS DELIBERATELY ONE PRESET, NOT A SECOND SCALE. `up-sm`/`up-md`/`up-lg`\n * would double the vocabulary for a case that has exactly one job: separating a\n * fixed bar from what scrolls beneath it. Add sizes when a second real use\n * appears, not before.\n */\nexport const SHADOW_PRESET_KEYS = ['none', 'xs', 'sm', 'md', 'lg', 'up'] as const;\nexport type ShadowPreset = (typeof SHADOW_PRESET_KEYS)[number];\n\n/** Type guard: is `value` one of the cross-platform shadow presets? */\nexport function isShadowPreset(value: unknown): value is ShadowPreset {\n return typeof value === 'string' && (SHADOW_PRESET_KEYS as readonly string[]).includes(value);\n}\n\n/** Extract the web `box-shadow` CSS string from a theme shadow value. */\nexport function shadowWeb(value: IShadowValue | undefined): string {\n if (value == null) return 'none';\n return typeof value === 'string' ? value : value.web;\n}\n\n/**\n * Extract native shadow params from a theme shadow value.\n * Returns `undefined` for a bare (web-only) string value.\n */\nexport function shadowNative(value: IShadowValue | undefined): INativeShadow | undefined {\n if (value == null) return undefined;\n return typeof value === 'string' ? undefined : value.native;\n}\n\n/**\n * Built-in native shadow params per preset. The default scale AND the fallback\n * when the active theme does not define native params for a preset. iOS uses\n * `shadow*`; Android uses `elevation`. Each step's values are tuned so the iOS\n * soft shadow and the Android elevation read as roughly equivalent.\n */\nexport const DEFAULT_NATIVE_SHADOWS = {\n none: {shadowColor: '#000000', shadowOffset: {width: 0, height: 0}, shadowOpacity: 0, shadowRadius: 0, elevation: 0},\n xs: {shadowColor: '#000000', shadowOffset: {width: 0, height: 1}, shadowOpacity: 0.18, shadowRadius: 1.5, elevation: 2},\n sm: {shadowColor: '#000000', shadowOffset: {width: 0, height: 2}, shadowOpacity: 0.20, shadowRadius: 3, elevation: 4},\n md: {shadowColor: '#000000', shadowOffset: {width: 0, height: 4}, shadowOpacity: 0.22, shadowRadius: 6, elevation: 8},\n lg: {shadowColor: '#000000', shadowOffset: {width: 0, height: 8}, shadowOpacity: 0.26, shadowRadius: 12, elevation: 12},\n // ⛔ NEGATIVE HEIGHT — the whole point. Sized between `sm` and `md`: a bar\n // that shouts is worse than one that is flat, because it competes with the\n // control it is carrying.\n // ⚠️ ANDROID CANNOT CAST UPWARD. `elevation` has no direction — it draws a\n // shadow on every side — so an elevated bar gets a faint halo instead of a\n // lift. `elevation: 4` is chosen to read as a separation rather than an\n // outline; iOS gets the real thing. This asymmetry is the platform's, not a\n // gap in the scale, and it is recorded here so nobody \"fixes\" it by raising\n // the elevation until the halo is obvious.\n up: {shadowColor: '#000000', shadowOffset: {width: 0, height: -3}, shadowOpacity: 0.20, shadowRadius: 5, elevation: 4},\n} satisfies Record<string, INativeShadow>;\n\n// ── Active native shadow scale ──────────────────────────────────────────────\n// Published by the native KitsThemeProvider (synchronously during render, like\n// `setActiveColorMap`) so platform-agnostic code and the native factory can\n// read native shadow params without React context.\nlet _activeNativeShadows: Record<string, INativeShadow> = {...DEFAULT_NATIVE_SHADOWS};\n\n/** Publish the theme's native shadow scale. Merged over the built-in defaults. */\nexport function setActiveNativeShadows(scale: Record<string, INativeShadow>): void {\n _activeNativeShadows = {...DEFAULT_NATIVE_SHADOWS, ...scale};\n}\n\n/** The currently active native shadow scale. */\nexport function getActiveNativeShadows(): Record<string, INativeShadow> {\n return _activeNativeShadows;\n}\n\n/**\n * Expand a `shadow` preset name into native RN shadow props\n * (`shadowColor/shadowOffset/shadowOpacity/shadowRadius/elevation`).\n * Returns `{}` for an unknown preset.\n */\nexport function expandShadowNative(name: string): Record<string, any> {\n const preset = _activeNativeShadows[name];\n return preset ? {...preset} : {};\n}\n"],"names":[],"mappings":"AAkCO,MAAM,qBAAqB,CAAC,MAAA,EAAQ,MAAM,IAAA,EAAM,IAAA,EAAM,MAAM,IAAI;AAIhE,SAAS,eAAe,KAAA,EAAuC;AAClE,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAa,kBAAA,CAAyC,SAAS,KAAK,CAAA;AAChG;AAGO,SAAS,UAAU,KAAA,EAAyC;AAC/D,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,KAAA,GAAQ,KAAA,CAAM,GAAA;AACrD;AAMO,SAAS,aAAa,KAAA,EAA4D;AACrF,EAAA,IAAI,KAAA,IAAS,MAAM,OAAO,MAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,MAAA,GAAY,KAAA,CAAM,MAAA;AACzD;AAQO,MAAM,sBAAA,GAAyB;AAAA,EAClC,MAAM,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,CAAA,EAAG,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACnH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,GAAA,EAAK,WAAW,CAAA,EAAC;AAAA,EACtH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,GAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA,EAAC;AAAA,EACpH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,CAAA,IAAI,aAAA,EAAe,IAAA,EAAM,YAAA,EAAc,EAAA,EAAI,WAAW,EAAA,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUtH,IAAI,EAAC,WAAA,EAAa,SAAA,EAAW,YAAA,EAAc,EAAC,KAAA,EAAO,CAAA,EAAG,MAAA,EAAQ,EAAA,IAAK,aAAA,EAAe,GAAA,EAAM,YAAA,EAAc,CAAA,EAAG,WAAW,CAAA;AACxH;AAMA,IAAI,oBAAA,GAAsD,EAAC,GAAG,sBAAA,EAAsB;AAG7E,SAAS,uBAAuB,KAAA,EAA4C;AAC/E,EAAA,oBAAA,GAAuB,EAAC,GAAG,sBAAA,EAAwB,GAAG,KAAA,EAAK;AAC/D;AAGO,SAAS,sBAAA,GAAwD;AACpE,EAAA,OAAO,oBAAA;AACX;AAOO,SAAS,mBAAmB,IAAA,EAAmC;AAClE,EAAA,MAAM,MAAA,GAAS,qBAAqB,IAAI,CAAA;AACxC,EAAA,OAAO,MAAA,GAAS,EAAC,GAAG,MAAA,KAAU,EAAC;AACnC;;;;"}
@@ -95,18 +95,17 @@ const mapAsToSize = {
95
95
  p: "md"
96
96
  };
97
97
  const mapTextOverflowProps = (props) => {
98
- let numberOfLines;
99
- let ellipsizeMode;
98
+ const overflow = {};
100
99
  if (props.whiteSpace === "nowrap") {
101
- numberOfLines = 1;
100
+ overflow.numberOfLines = 1;
102
101
  }
103
102
  if (props.textOverflow === "ellipsis") {
104
- ellipsizeMode = "tail";
103
+ overflow.ellipsizeMode = "tail";
105
104
  }
106
105
  if (props.textOverflow === "clip") {
107
- ellipsizeMode = "clip";
106
+ overflow.ellipsizeMode = "clip";
108
107
  }
109
- return { numberOfLines, ellipsizeMode };
108
+ return overflow;
110
109
  };
111
110
  const Text = (props) => {
112
111
  const { theme } = KitsThemeProvider_native.useKitsTheme();