@octavius2929-personal/design-system 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +307 -278
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +689 -120
- package/dist/index.css.map +1 -1
- package/dist/index.d.cts +100 -51
- package/dist/index.d.ts +100 -51
- package/dist/index.js +269 -241
- package/dist/index.js.map +1 -1
- package/package.json +4 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/theme/theme.css.ts","../src/hooks/use-previous/index.ts","../src/hooks/use-toggle/index.ts","../src/components/typography/use-styles.ts","../src/theme/context/theme-context.tsx","../src/theme/typography.css.ts","../src/components/typography/use-styles.css.ts","../src/components/typography/index.tsx","../src/components/button/use-styles.ts","../src/components/button/use-styles.css.ts","../src/components/button/index.tsx","../src/components/divider/use-styles.ts","../src/components/divider/use-styles.css.ts","../src/components/divider/index.tsx","../src/components/avatar/use-styles.ts","../src/components/avatar/use-styles.css.ts","../src/components/avatar/index.tsx","../src/components/badge/use-styles.ts","../src/components/badge/use-styles.css.ts","../src/components/badge/index.tsx","../src/components/progress/use-styles.ts","../src/components/progress/use-styles.css.ts","../src/components/progress/index.tsx","../src/components/icons/x/index.tsx","../src/components/chip/use-styles.ts","../src/components/chip/use-styles.css.ts","../src/components/chip/index.tsx","../src/components/icons/check/index.tsx","../src/components/checkbox/use-styles.ts","../src/components/checkbox/use-styles.css.ts","../src/components/checkbox/index.tsx","../src/components/radio/use-styles.ts","../src/components/radio/use-styles.css.ts","../src/components/radio/index.tsx","../src/components/switch/use-styles.ts","../src/components/switch/use-styles.css.ts","../src/components/switch/index.tsx","../src/components/base-field/index.tsx","../src/components/base-field/use-styles.ts","../src/components/base-field/use-styles.css.ts","../src/components/text-field/index.tsx","../src/components/password-field/index.tsx","../src/components/icons/eye/index.tsx","../src/components/icons/eye-off/index.tsx","../src/components/password-field/use-styles.ts","../src/components/password-field/use-styles.css.ts","../src/components/money-field/index.tsx","../src/components/icon-button/use-styles.ts","../src/components/icon-button/use-styles.css.ts","../src/components/icon-button/index.tsx","../src/components/card/use-styles.ts","../src/components/card/use-styles.css.ts","../src/components/card/index.tsx","../src/components/icons/circle-check/index.tsx","../src/components/icons/circle-x/index.tsx","../src/components/icons/info/index.tsx","../src/components/icons/triangle-alert/index.tsx","../src/components/alert/use-styles.ts","../src/components/alert/use-styles.css.ts","../src/components/alert/index.tsx","../src/components/tooltip/index.tsx","../src/components/tooltip/use-styles.ts","../src/components/tooltip/use-styles.css.ts","../src/components/select/index.tsx","../src/components/icons/chevron-down/index.tsx","../src/components/select/use-styles.ts","../src/components/select/use-styles.css.ts","../src/components/slider/use-styles.ts","../src/components/slider/use-styles.css.ts","../src/components/slider/index.tsx","../src/components/accordion/index.tsx","../src/components/accordion/use-styles.ts","../src/components/accordion/use-styles.css.ts","../src/components/breadcrumbs/index.tsx","../src/components/icons/chevron-right/index.tsx","../src/components/breadcrumbs/use-styles.ts","../src/components/breadcrumbs/use-styles.css.ts","../src/components/icons/chevron-left/index.tsx","../src/components/pagination/use-styles.ts","../src/components/pagination/use-styles.css.ts","../src/components/pagination/index.tsx","../src/components/stepper/index.tsx","../src/components/stepper/use-styles.ts","../src/components/stepper/use-styles.css.ts","../src/components/tabs/use-styles.ts","../src/components/tabs/use-styles.css.ts","../src/components/tabs/index.tsx","../src/components/menu/index.tsx","../src/components/menu/use-styles.ts","../src/components/menu/use-styles.css.ts","../src/components/dialog/index.tsx","../src/components/dialog/use-styles.ts","../src/components/dialog/use-styles.css.ts","../src/components/snackbar/index.tsx","../src/components/snackbar/use-styles.ts","../src/components/snackbar/use-styles.css.ts","../src/components/table/use-styles.ts","../src/components/table/use-styles.css.ts","../src/components/table/index.tsx","../src/components/app-bar/use-styles.ts","../src/components/app-bar/use-styles.css.ts","../src/components/app-bar/index.tsx","../src/components/list-item/use-styles.ts","../src/components/list-item/use-styles.css.ts","../src/components/list-item/index.tsx","../src/components/icons/chevron-up/index.tsx","../src/components/icons/search/index.tsx","../src/components/icons/plus/index.tsx","../src/components/icons/minus/index.tsx","../src/components/icons/more-horizontal/index.tsx"],"sourcesContent":["import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nexport var colorVars = {bg1:'var(--bg1__e3grur28)',bg2:'var(--bg2__e3grur29)',bg3:'var(--bg3__e3grur2a)',bgInset:'var(--bgInset__e3grur2b)',fg1:'var(--fg1__e3grur2c)',fg2:'var(--fg2__e3grur2d)',fg3:'var(--fg3__e3grur2e)',fgOnAccent:'var(--fgOnAccent__e3grur2f)',border1:'var(--border1__e3grur2g)',border2:'var(--border2__e3grur2h)',borderStrong:'var(--borderStrong__e3grur2i)',accent:'var(--accent__e3grur2j)',accentHover:'var(--accentHover__e3grur2k)',accentSoft:'var(--accentSoft__e3grur2l)',ok:'var(--ok__e3grur2m)',warn:'var(--warn__e3grur2n)',danger:'var(--danger__e3grur2o)',info:'var(--info__e3grur2p)',focus:'var(--focus__e3grur2q)',scrim:'var(--scrim__e3grur2r)'};\nexport var modeNames = ['light','dark','sepia','contrast'];\nexport var schemaNames = ['tinta'];\nexport var themes = {tinta:{light:'theme_themes_tinta_light__e3grur2s',dark:'theme_themes_tinta_dark__e3grur2t',sepia:'theme_themes_tinta_sepia__e3grur2u',contrast:'theme_themes_tinta_contrast__e3grur2v'}};\nexport var vars = {font:{display:'var(--font-display__e3grur0)',text:'var(--font-text__e3grur1)',mono:'var(--font-mono__e3grur2)',black:'var(--font-black__e3grur3)'},text:{eyebrow:{size:'var(--text-eyebrow-size__e3grur4)',lineHeight:'var(--text-eyebrow-lineHeight__e3grur5)',weight:'var(--text-eyebrow-weight__e3grur6)',letterSpacing:'var(--text-eyebrow-letterSpacing__e3grur7)'},display:{size:'var(--text-display-size__e3grur8)',lineHeight:'var(--text-display-lineHeight__e3grur9)',weight:'var(--text-display-weight__e3grura)',letterSpacing:'var(--text-display-letterSpacing__e3grurb)'},h1:{size:'var(--text-h1-size__e3grurc)',lineHeight:'var(--text-h1-lineHeight__e3grurd)',weight:'var(--text-h1-weight__e3grure)',letterSpacing:'var(--text-h1-letterSpacing__e3grurf)'},h2:{size:'var(--text-h2-size__e3grurg)',lineHeight:'var(--text-h2-lineHeight__e3grurh)',weight:'var(--text-h2-weight__e3gruri)',letterSpacing:'var(--text-h2-letterSpacing__e3grurj)'},h3:{size:'var(--text-h3-size__e3grurk)',lineHeight:'var(--text-h3-lineHeight__e3grurl)',weight:'var(--text-h3-weight__e3grurm)',letterSpacing:'var(--text-h3-letterSpacing__e3grurn)'},h4:{size:'var(--text-h4-size__e3gruro)',lineHeight:'var(--text-h4-lineHeight__e3grurp)',weight:'var(--text-h4-weight__e3grurq)',letterSpacing:'var(--text-h4-letterSpacing__e3grurr)'},body:{size:'var(--text-body-size__e3grurs)',lineHeight:'var(--text-body-lineHeight__e3grurt)',weight:'var(--text-body-weight__e3gruru)',letterSpacing:'var(--text-body-letterSpacing__e3grurv)'},lead:{size:'var(--text-lead-size__e3grurw)',lineHeight:'var(--text-lead-lineHeight__e3grurx)',weight:'var(--text-lead-weight__e3grury)',letterSpacing:'var(--text-lead-letterSpacing__e3grurz)'},small:{size:'var(--text-small-size__e3grur10)',lineHeight:'var(--text-small-lineHeight__e3grur11)',weight:'var(--text-small-weight__e3grur12)',letterSpacing:'var(--text-small-letterSpacing__e3grur13)'},caption:{size:'var(--text-caption-size__e3grur14)',lineHeight:'var(--text-caption-lineHeight__e3grur15)',weight:'var(--text-caption-weight__e3grur16)',letterSpacing:'var(--text-caption-letterSpacing__e3grur17)'}},space:{none:'var(--space-none__e3grur18)',xs:'var(--space-xs__e3grur19)',sm:'var(--space-sm__e3grur1a)',md:'var(--space-md__e3grur1b)',lg:'var(--space-lg__e3grur1c)',xl:'var(--space-xl__e3grur1d)','2xl':'var(--space-2xl__e3grur1e)','3xl':'var(--space-3xl__e3grur1f)','4xl':'var(--space-4xl__e3grur1g)','5xl':'var(--space-5xl__e3grur1h)'},radius:{none:'var(--radius-none__e3grur1i)',sm:'var(--radius-sm__e3grur1j)',md:'var(--radius-md__e3grur1k)',lg:'var(--radius-lg__e3grur1l)',base:'var(--radius-base__e3grur1m)',full:'var(--radius-full__e3grur1n)'},border:{hair:'var(--border-hair__e3grur1o)',rule:'var(--border-rule__e3grur1p)',heavy:'var(--border-heavy__e3grur1q)'},tracking:{tight:'var(--tracking-tight__e3grur1r)',normal:'var(--tracking-normal__e3grur1s)',wide:'var(--tracking-wide__e3grur1t)',wider:'var(--tracking-wider__e3grur1u)',widest:'var(--tracking-widest__e3grur1v)'},weight:{light:'var(--weight-light__e3grur1w)',regular:'var(--weight-regular__e3grur1x)',medium:'var(--weight-medium__e3grur1y)',semibold:'var(--weight-semibold__e3grur1z)',bold:'var(--weight-bold__e3grur20)'},dur:{fast:'var(--dur-fast__e3grur21)',base:'var(--dur-base__e3grur22)',slow:'var(--dur-slow__e3grur23)'},ease:{ink:'var(--ease-ink__e3grur24)'},shadow:{sm:'var(--shadow-sm__e3grur25)',md:'var(--shadow-md__e3grur26)',lg:'var(--shadow-lg__e3grur27)'},color:colorVars};","import { useEffect, useRef } from \"react\";\n\n// Devuelve el valor que tuvo `value` en el render anterior.\n// En el primer render devuelve `initial` (por defecto `undefined`).\nexport function usePrevious<T>(value: T, initial: T): T;\nexport function usePrevious<T>(value: T, initial?: T): T | undefined;\nexport function usePrevious<T>(value: T, initial?: T): T | undefined {\n const ref = useRef<T | undefined>(initial);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n","import { useCallback, useState } from \"react\";\n\n// Ejemplo de hook — reemplazá por los de tu librería.\nexport function useToggle(\n initial = false,\n): readonly [boolean, () => void, (value: boolean) => void] {\n const [on, setOn] = useState(initial);\n const toggle = useCallback(() => setOn((value) => !value), []);\n return [on, toggle, setOn] as const;\n}\n","// src/components/typography/use-styles.ts\nimport { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport { text } from \"../../theme/typography.css\";\nimport type { TypographyAlign, TypographyColor, TypographyVariant } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\nexport function useStyles({\n variant,\n color,\n align,\n}: {\n variant: TypographyVariant;\n color?: TypographyColor | undefined;\n align?: TypographyAlign | undefined;\n}): { text: string } {\n const { themeClass } = useTheme();\n const className = useMemo(\n () =>\n [\n themeClass,\n styles.base,\n text[variant],\n color && styles.color[color],\n align && styles.align[align],\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, variant, color, align],\n );\n return { text: className };\n}\n","import { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { type Mode, type SchemaName, modeNames, themes } from \"../theme.css\";\n\n// El usuario puede fijar un modo concreto o \"system\" (seguir las preferencias del SO).\nexport type ModePreference = Mode | \"system\";\n\ninterface ThemeContextValue {\n schema: SchemaName;\n /** Modo efectivo ya resuelto (nunca \"system\"). */\n mode: Mode;\n /** La preferencia cruda elegida (puede ser \"system\"). */\n preference: ModePreference;\n themeClass: string;\n setSchema: (schema: SchemaName) => void;\n setMode: (mode: ModePreference) => void;\n /** Alterna binario claro↔oscuro a partir del modo efectivo. */\n toggleMode: () => void;\n /** Rota por los cuatro modos en orden. */\n cycleMode: () => void;\n}\n\nconst noop = () => {};\n\n// Sin provider, los componentes usan tinta/light (las vars de :root).\nconst DEFAULT_VALUE: ThemeContextValue = {\n schema: \"tinta\",\n mode: \"light\",\n preference: \"light\",\n themeClass: themes.tinta.light,\n setSchema: noop,\n setMode: noop,\n toggleMode: noop,\n cycleMode: noop,\n};\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\n// Resuelve \"system\" leyendo las media queries del SO. prefers-contrast tiene prioridad\n// (accesibilidad) sobre prefers-color-scheme.\nfunction resolveSystemMode(): Mode {\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return \"light\";\n if (window.matchMedia(\"(prefers-contrast: more)\").matches) return \"contrast\";\n if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) return \"dark\";\n return \"light\";\n}\n\ninterface Persisted {\n schema: SchemaName;\n preference: ModePreference;\n}\n\nfunction readStored(key: string): Partial<Persisted> | null {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? (JSON.parse(raw) as Partial<Persisted>) : null;\n } catch {\n return null;\n }\n}\n\nfunction writeStored(key: string, value: Persisted): void {\n if (typeof window === \"undefined\") return;\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // localStorage puede no estar disponible (modo privado / SSR): degradamos en silencio.\n }\n}\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n defaultSchema?: SchemaName;\n defaultMode?: ModePreference;\n /** Clave de localStorage donde se persiste la elección. */\n storageKey?: string;\n /** Si es false, no persiste ni rehidrata (útil para previews/tests). */\n persist?: boolean;\n}\n\nexport function ThemeProvider({\n children,\n defaultSchema = \"tinta\",\n defaultMode = \"light\",\n storageKey = \"ds-theme\",\n persist = true,\n}: ThemeProviderProps) {\n const [schema, setSchema] = useState<SchemaName>(\n () => (persist && readStored(storageKey)?.schema) || defaultSchema,\n );\n const [preference, setPreference] = useState<ModePreference>(\n () => (persist ? readStored(storageKey)?.preference : null) ?? defaultMode,\n );\n const [systemMode, setSystemMode] = useState<Mode>(resolveSystemMode);\n\n // Mientras la preferencia sea \"system\", seguimos los cambios del SO en vivo.\n useEffect(() => {\n if (preference !== \"system\") return;\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return;\n const mqls = [\"(prefers-contrast: more)\", \"(prefers-color-scheme: dark)\"].map((q) =>\n window.matchMedia(q),\n );\n const onChange = () => setSystemMode(resolveSystemMode());\n onChange();\n for (const mql of mqls) mql.addEventListener?.(\"change\", onChange);\n return () => {\n for (const mql of mqls) mql.removeEventListener?.(\"change\", onChange);\n };\n }, [preference]);\n\n const mode: Mode = preference === \"system\" ? systemMode : preference;\n\n // Persistimos cada cambio de schema/preferencia.\n useEffect(() => {\n if (persist) writeStored(storageKey, { schema, preference });\n }, [schema, preference, persist, storageKey]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({\n schema,\n mode,\n preference,\n themeClass: themes[schema][mode],\n setSchema,\n setMode: setPreference,\n toggleMode: () => setPreference(mode === \"dark\" ? \"light\" : \"dark\"),\n cycleMode: () => {\n const next = modeNames[(modeNames.indexOf(mode) + 1) % modeNames.length];\n if (next) setPreference(next);\n },\n }),\n [schema, mode, preference],\n );\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\nexport function useTheme(): ThemeContextValue {\n return useContext(ThemeContext) ?? DEFAULT_VALUE;\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/typography.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7XW0ZKaMBQG4Hufgst6AUMA19V9gd73AZhAImQMCQ2xyHb67h2CwY1mj50tXirnP-H_xhEiPbSyUrith1zTs87pQAsl-zxHfcPfhzj4vQqCgxQ6POCG8WEf_MLqWxiarxopZJ7TtFInlazf7GTH3qmdG5eGl6Xmgp3PzDxngoY1ZVWtvYnx-ndz2eY213P6z3O9k3mZzqJaUxV2LS6ZqPzHmZEf04RNb03azGmFRXeQqtkHp7alqsQdHS-Wkks101TpjELXb6s_q-hWmbCu5XiwyghUnoennTEAfRl1oF9BaJu4h96B0DbnQuNH0PNxPujiQ7NB6Jp2rNsHQgqfMZqNSxNrsKqY2AexF7xG1jpZyrpGDnMJMtfII0xA4Rrd4NJHuOMhPtfDE10T65ou5po4rhXsmnhca9g1uXFlT-RJLU-2GE_q8BxhntTDw2Ge9IaneSJPZnk2II8ZvixGkE3m2EjYJvPYtLBNdmPzc_3fBoUk83PgZRGFcaPj0IEOZvxeQoMSJuRanB5beOpziomtv12k_rjRqd-D9c34ff0zWN-E3PqDr34y1yf--l2DObf9Xxfpb1Y6ACgGBabAPQFCoMEUcxFQ8iWFEreaSWEddou8dF6WuhLwW6eNeCw2jx6-c9b3BEZbn8vD18RSEmpR8NdR4mhHm_G7ApfHSsmTIDZcfLiJ6eWtxYSYbnGEaBPEUXbJSkXofPPTp7DGTM0d5TroJGfEGbn-AVT-jgXH5XFCs1ULsKoJ2K3pZz_R6VOoaHXi-HqP53_4k_oLOo8m2BQNAAA';\nexport var text = {eyebrow:'typography_text_eyebrow__1wmlzy0',display:'typography_text_display__1wmlzy1',h1:'typography_text_h1__1wmlzy2',h2:'typography_text_h2__1wmlzy3',h3:'typography_text_h3__1wmlzy4',h4:'typography_text_h4__1wmlzy5',body:'typography_text_body__1wmlzy6',lead:'typography_text_lead__1wmlzy7',small:'typography_text_small__1wmlzy8',caption:'typography_text_caption__1wmlzy9',code:'typography_text_code__1wmlzya',blackletter:'typography_text_blackletter__1wmlzyb'};","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/typography/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfYmFzZV9fZDc0amY2MCB7CiAgbWFyZ2luOiAwOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2ZnMV9fZDc0amY2MSB7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2ZnMl9fZDc0amY2MiB7CiAgY29sb3I6IHZhcigtLWZnMl9fZTNncnVyMmQpOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2ZnM19fZDc0amY2MyB7CiAgY29sb3I6IHZhcigtLWZnM19fZTNncnVyMmUpOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2FjY2VudF9fZDc0amY2NCB7CiAgY29sb3I6IHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2Rhbmdlcl9fZDc0amY2NSB7CiAgY29sb3I6IHZhcigtLWRhbmdlcl9fZTNncnVyMm8pOwp9Ci51c2Utc3R5bGVzX2NvbG9yX29rX19kNzRqZjY2IHsKICBjb2xvcjogdmFyKC0tb2tfX2UzZ3J1cjJtKTsKfQoudXNlLXN0eWxlc19jb2xvcl93YXJuX19kNzRqZjY3IHsKICBjb2xvcjogdmFyKC0td2Fybl9fZTNncnVyMm4pOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2luZm9fX2Q3NGpmNjggewogIGNvbG9yOiB2YXIoLS1pbmZvX19lM2dydXIycCk7Cn0KLnVzZS1zdHlsZXNfYWxpZ25fbGVmdF9fZDc0amY2OSB7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQoudXNlLXN0eWxlc19hbGlnbl9jZW50ZXJfX2Q3NGpmNmEgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoudXNlLXN0eWxlc19hbGlnbl9yaWdodF9fZDc0amY2YiB7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0';\nexport var align = {left:'use-styles_align_left__d74jf69',center:'use-styles_align_center__d74jf6a',right:'use-styles_align_right__d74jf6b'};\nexport var base = 'use-styles_base__d74jf60';\nexport var color = {fg1:'use-styles_color_fg1__d74jf61',fg2:'use-styles_color_fg2__d74jf62',fg3:'use-styles_color_fg3__d74jf63',accent:'use-styles_color_accent__d74jf64',danger:'use-styles_color_danger__d74jf65',ok:'use-styles_color_ok__d74jf66',warn:'use-styles_color_warn__d74jf67',info:'use-styles_color_info__d74jf68'};","import type { ElementType } from \"react\";\nimport type { TypographyProps, TypographyVariant } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Elemento HTML por defecto de cada rol. `as` lo sobreescribe sin cambiar el estilo.\nconst defaultElement: Record<TypographyVariant, ElementType> = {\n display: \"h1\",\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n body: \"p\",\n lead: \"p\",\n small: \"span\",\n caption: \"span\",\n eyebrow: \"span\",\n code: \"code\",\n blackletter: \"span\",\n};\n\n// Presentacional y polimórfico: el rol define el estilo; `as` define el elemento.\n// No acepta `className`/`style`: el estilo es controlado (variant/color/align).\nexport function Typography<E extends ElementType = \"span\">({\n variant,\n as,\n color,\n align,\n ...rest\n}: TypographyProps<E>) {\n const Component = (as ?? defaultElement[variant]) as ElementType;\n const { text } = useStyles({ variant, color, align });\n // `className` va DESPUÉS de `...rest`: aunque alguien fuerce un className por fuera\n // (con `as any`, saltándose el tipo), el nuestro gana — la encapsulación se respeta en runtime.\n return <Component {...rest} className={text} />;\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ButtonProps, ButtonTone } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos). El componente\n// solo aplica lo que devuelve este hook.\ntype ToneKey = keyof typeof styles.tone;\n\nfunction toneKey(variant: NonNullable<ButtonProps[\"variant\"]>, tone: ButtonTone): ToneKey {\n return `${variant}${tone === \"ink\" ? \"Ink\" : \"Accent\"}` as ToneKey;\n}\n\nexport function useStyles({\n variant = \"filled\",\n tone = \"ink\",\n size = \"md\",\n full,\n className,\n}: { [K in \"variant\" | \"tone\" | \"size\" | \"full\" | \"className\"]?: ButtonProps[K] | undefined }): {\n container: string;\n} {\n const { themeClass } = useTheme();\n const container = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n styles.size[size],\n styles.tone[toneKey(variant, tone)],\n full && styles.full,\n className,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, variant, tone, size, full, className],\n );\n return { container };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/button/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61Uu3LbMBDs9RVoMmMV8IiSndh05S6pUqRKxQGJAwULBBg89Egm_54BREJ8yZYcdxJusbvcu8OtM4CNPQgwmVbKZllS55YLsUB_ZghRbmpBDiniUnAJmAnYP80QIoKXEnMLlUlRAdKC9scvzljODrhQ0oK03VJJ6hRtib7B2NSkAGyqLINVqZ1OyNwjmJIWM1JxcWiR4ahSUrXQZUAKsBZ04OGybMFWk2LDZYl3nIKO5C5csbC3HiENU7pKkatr0AUx4Iu50hQ01oRyZ1q64z-cEwORq5p34DtO7bpFtxROnNB1Fx0yTpFRglN_XDhtlE5RrXgb0W7NLRzTSZFUO03qYN275pYrmSIiRCNIncaMGBuTSeZNBYgBzOUmVu7mT7O_s9uznU5JYfkWUqnsTUq5IbkAOg_97yQWfgpi4efN4va-3r9FylThDN5yw3MBgUw564coRct6fwwitrlwJtr9FWJrwFgxZsCGO28Its6DVk6KTamVk7RxXhMN0obklfDBN9LlKgpDt1891PEsichy3m2hVBYTIdQO6NCi4b8h85PeuEyCuZpQ2hnciX3oVUQZK8VpUzx1ipJknEsQrWgUXZ4X9aiGOu-L7kWs0JHoRDOCqHfaiK7eI7rsqMJIdTVWZU6IKHnXf7Lat6rZ02Sx-DS8bpWEjHEhgH7zC9MQ3Y9GqB2W0wgcO9Gfkk754ewsDUkuc5Su1Rb01IpO2VxGBfqKjz7qrI_nwr_i0crnM6qkgTWUL-N8WPldPvdR7Ky9CbqLHV4T1lHnq78QxTZvuBqjJ6w1D1i3i1-ufJqG0_bOcZpyck1EeeeNJK9KDBrxcNX3Tg7Q-0fjjKXrZ-OHYicxMS1WrpWx3YAfr2z16xvbu3uR_Af3NwgMoiQf3d2LvnJo4r8-9B-nbQpI_goAAA';\nexport var full = 'use-styles_full__1pbtill4';\nexport var root = 'use-styles_root__1pbtill0';\nexport var size = {sm:'use-styles_size_sm__1pbtill1',md:'use-styles_size_md__1pbtill2',lg:'use-styles_size_lg__1pbtill3'};\nexport var tone = {filledInk:'use-styles_tone_filledInk__1pbtill5',filledAccent:'use-styles_tone_filledAccent__1pbtill6',outlineInk:'use-styles_tone_outlineInk__1pbtill7',outlineAccent:'use-styles_tone_outlineAccent__1pbtill8',ghostInk:'use-styles_tone_ghostInk__1pbtill9',ghostAccent:'use-styles_tone_ghostAccent__1pbtilla'};","import type { ButtonProps, ButtonSize } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Cada talle de botón dimensiona su icono de forma consistente.\nconst ICON_SIZE: Record<ButtonSize, number> = { sm: 14, md: 16, lg: 18 };\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Los iconos son componentes (Icon); el botón los renderiza fijando el tamaño.\nexport function Button({\n variant,\n tone,\n size = \"md\",\n startIcon: StartIcon,\n endIcon: EndIcon,\n full,\n className,\n children,\n ...rest\n}: ButtonProps) {\n const { container } = useStyles({ variant, tone, size, full, className });\n const iconSize = ICON_SIZE[size];\n return (\n <button className={container} {...rest}>\n {StartIcon && <StartIcon size={iconSize} />}\n {children}\n {EndIcon && <EndIcon size={iconSize} />}\n </button>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { DividerProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. La decisión de \"qué clase aplica\" vive acá, no en el JSX.\ninterface UseStylesArgs {\n vertical?: DividerProps[\"vertical\"] | undefined;\n hasLabel?: boolean | undefined;\n}\n\nexport function useStyles({ vertical, hasLabel }: UseStylesArgs): {\n root: string;\n line: string;\n label: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n hasLabel ? styles.labelled : vertical ? styles.vertical : styles.horizontal,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, vertical, hasLabel],\n );\n return { root, line: styles.line, label: styles.label };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/divider/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMW43djd5ajAgewogIGJvcmRlcjogbm9uZTsKfQoudXNlLXN0eWxlc19ob3Jpem9udGFsX18xbjd2N3lqMSB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxcHg7CiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwp9Ci51c2Utc3R5bGVzX3ZlcnRpY2FsX18xbjd2N3lqMiB7CiAgd2lkdGg6IDFweDsKICBhbGlnbi1zZWxmOiBzdHJldGNoOwogIGhlaWdodDogMTAwJTsKICBtaW4taGVpZ2h0OiAxZW07CiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwp9Ci51c2Utc3R5bGVzX2xhYmVsbGVkX18xbjd2N3lqMyB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogdmFyKC0tc3BhY2UtbWRfX2UzZ3J1cjFiKTsKICB3aWR0aDogMTAwJTsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoudXNlLXN0eWxlc19saW5lX18xbjd2N3lqNCB7CiAgZmxleDogMTsKICBoZWlnaHQ6IDFweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7Cn0KLnVzZS1zdHlsZXNfbGFiZWxfXzFuN3Y3eWo1IHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtZXllYnJvdy1zaXplX19lM2dydXI0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXN0X19lM2dydXIxdik7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tZmczX19lM2dydXIyZSk7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQ';\nexport var horizontal = 'use-styles_horizontal__1n7v7yj1';\nexport var label = 'use-styles_label__1n7v7yj5';\nexport var labelled = 'use-styles_labelled__1n7v7yj3';\nexport var line = 'use-styles_line__1n7v7yj4';\nexport var root = 'use-styles_root__1n7v7yj0';\nexport var vertical = 'use-styles_vertical__1n7v7yj2';","import type { DividerProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Con `label` se renderiza un layout flex (dos líneas + etiqueta); si no, un hairline simple.\nexport function Divider({ vertical, label, ...rest }: DividerProps) {\n const hasLabel = label != null;\n const { root, line, label: labelClass } = useStyles({ vertical, hasLabel });\n\n if (hasLabel) {\n return (\n <div role=\"separator\" className={root} {...rest}>\n <span className={line} />\n <span className={labelClass}>{label}</span>\n <span className={line} />\n </div>\n );\n }\n\n return <div role=\"separator\" className={root} {...rest} />;\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AvatarProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos). El componente\n// solo aplica lo que devuelve este hook.\nexport function useStyles({\n size = \"md\",\n filled,\n className,\n}: { [K in \"size\" | \"filled\" | \"className\"]?: AvatarProps[K] | undefined }): {\n root: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n styles.size[size],\n filled ? styles.variant.filled : styles.variant.default,\n className,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, size, filled, className],\n );\n return { root };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/avatar/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMW1uMXJtdTAgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGxfX2UzZ3J1cjFuKTsKICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci1ydWxlX19lM2dydXIxcCk7CiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICBib3JkZXItY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXlfX2UzZ3J1cjApOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS13ZWlnaHQtc2VtaWJvbGRfX2UzZ3J1cjF6KTsKICBsaW5lLWhlaWdodDogMTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci51c2Utc3R5bGVzX3NpemVfc21fXzFtbjFybXUxIHsKICB3aWR0aDogMzJweDsKICBoZWlnaHQ6IDMycHg7CiAgZm9udC1zaXplOiAxNHB4Owp9Ci51c2Utc3R5bGVzX3NpemVfbWRfXzFtbjFybXUyIHsKICB3aWR0aDogNDBweDsKICBoZWlnaHQ6IDQwcHg7CiAgZm9udC1zaXplOiAxNnB4Owp9Ci51c2Utc3R5bGVzX3NpemVfbGdfXzFtbjFybXUzIHsKICB3aWR0aDogNTZweDsKICBoZWlnaHQ6IDU2cHg7CiAgZm9udC1zaXplOiAyMnB4Owp9Ci51c2Utc3R5bGVzX3ZhcmlhbnRfZGVmYXVsdF9fMW1uMXJtdTQgewogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGNvbG9yOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc192YXJpYW50X2ZpbGxlZF9fMW1uMXJtdTUgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKfQ';\nexport var root = 'use-styles_root__1mn1rmu0';\nexport var size = {sm:'use-styles_size_sm__1mn1rmu1',md:'use-styles_size_md__1mn1rmu2',lg:'use-styles_size_lg__1mn1rmu3'};\nexport var variant = {'default':'use-styles_variant_default__1mn1rmu4',filled:'use-styles_variant_filled__1mn1rmu5'};","import type { AvatarProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nexport function Avatar({ size, filled, className, children, ...rest }: AvatarProps) {\n const { root } = useStyles({ size, filled, className });\n return (\n <span className={root} {...rest}>\n {children}\n </span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { BadgeProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n tone = \"ink\",\n className,\n}: { [K in \"tone\" | \"className\"]?: BadgeProps[K] | undefined }): {\n root: string;\n dot: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n const dot = useMemo(() => [styles.dot, styles.tone[tone]].join(\" \"), [tone]);\n return { root, dot };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/badge/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMXdwZWk2cDAgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKfQoudXNlLXN0eWxlc19kb3RfXzF3cGVpNnAxIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiBjYWxjKHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSkgKiAtMSk7CiAgcmlnaHQ6IGNhbGModmFyKC0tc3BhY2Utc21fX2UzZ3J1cjFhKSAqIC0xKTsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgbWluLXdpZHRoOiAxOHB4OwogIGhlaWdodDogMThweDsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1ub25lX19lM2dydXIxOCkgdmFyKC0tc3BhY2UteHNfX2UzZ3J1cjE5KTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IDExcHg7CiAgZm9udC13ZWlnaHQ6IHZhcigtLXdlaWdodC1zZW1pYm9sZF9fZTNncnVyMXopOwogIGxpbmUtaGVpZ2h0OiAxOwogIGxldHRlci1zcGFjaW5nOiB2YXIoLS10cmFja2luZy13aWRlX19lM2dydXIxdCk7CiAgY29sb3I6IHZhcigtLWZnT25BY2NlbnRfX2UzZ3J1cjJmKTsKICBib3JkZXI6IHZhcigtLWJvcmRlci1oZWF2eV9fZTNncnVyMXEpIHNvbGlkIHZhcigtLWJnMV9fZTNncnVyMjgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1mdWxsX19lM2dydXIxbik7Cn0KLnVzZS1zdHlsZXNfdG9uZV9pbmtfXzF3cGVpNnAyIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc190b25lX2FjY2VudF9fMXdwZWk2cDMgewogIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9';\nexport var dot = 'use-styles_dot__1wpei6p1';\nexport var root = 'use-styles_root__1wpei6p0';\nexport var tone = {ink:'use-styles_tone_ink__1wpei6p2',accent:'use-styles_tone_accent__1wpei6p3'};","import type { BadgeProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Renderiza siempre los children; el contador solo cuando `count != null`.\nexport function Badge({ count, tone, className, children, ...rest }: BadgeProps) {\n const { root, dot } = useStyles({ tone, className });\n return (\n <span className={root} {...rest}>\n {children}\n {count != null && <span className={dot}>{count}</span>}\n </span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ProgressProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. El componente solo aplica lo que devuelve este hook.\nexport function useStyles({\n variant = \"linear\",\n value,\n className,\n}: { [K in \"variant\" | \"value\" | \"className\"]?: ProgressProps[K] | undefined }): {\n track: string;\n bar: string;\n spinner: string;\n} {\n const { themeClass } = useTheme();\n const indeterminate = value === undefined;\n\n return useMemo(() => {\n const root = (...classes: (string | false | undefined)[]) =>\n [themeClass, ...classes, className].filter(Boolean).join(\" \");\n\n if (variant === \"circular\") {\n return { track: \"\", bar: \"\", spinner: root(styles.spinner) };\n }\n return {\n track: root(styles.track),\n bar: [styles.bar, indeterminate && styles.indeterminate].filter(Boolean).join(\" \"),\n spinner: \"\",\n };\n }, [themeClass, variant, indeterminate, className]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/progress/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA62TwW6jMBCG7zyFL5WSgyNCku2KXPoYe0MDHmAWM2Ztkzaq8u4rTKChatqttCeM-Gf-b-Y3Tw2eSwstOtE7lM6fNbrMdcRZ1uSmezzF4jUSIn4IDyG8BXalsW0qrPHgcRWvj5EQl0iIbfyJbPcjVlhdtZfo6WNjTQon5-1d53DU4PHXSg6mXxDcyPdv6ku0uXH2Fopmck5Cjxqpqn0q9t3LUJFD0VTW9KxScQK7kjKvdlmGu8r2NoHQ1ZzQlto8p6ImpZBDnbEKrbSgqHdT6fgmy17rqcWWQ4tnUr5OwyTHd4w52IlwtyAcxR8hQlEg-5ny9_rbREsEYoUebUsMfg5qH2Cu4MkhoABTC54MS4YW0_shL8Wqt-GQiu0mcctvnlriSpY9F6NkBEdwKImbecj9ellHHsemsjA9-1QQl8Tk8f1ww7VnnHd8CGMpcp2G81CliVHm2hTN2xbnuzDutEY4nef9_VkLZzSphSaZQevbNLzpZGG0sf8vus9TuP3H74UQb35-FcKwFLD_vvG_YQNO0nIEAAA';\nexport var bar = 'use-styles_bar__kbop7v3';\nexport var indeterminate = 'use-styles_indeterminate__kbop7v4';\nexport var spinner = 'use-styles_spinner__kbop7v5';\nexport var track = 'use-styles_track__kbop7v2';","import type { ProgressProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Las dimensiones dinámicas (diámetro del spinner, ancho de la barra) se aplican inline.\nexport function Progress({\n variant = \"linear\",\n value,\n size = 20,\n className,\n ...rest\n}: ProgressProps) {\n const { track, bar, spinner } = useStyles({ variant, value, className });\n const indeterminate = value === undefined;\n\n if (variant === \"circular\") {\n return (\n <span\n className={spinner}\n role=\"progressbar\"\n aria-valuenow={indeterminate ? undefined : value}\n aria-valuemin={indeterminate ? undefined : 0}\n aria-valuemax={indeterminate ? undefined : 100}\n style={{ width: size, height: size }}\n {...rest}\n />\n );\n }\n\n return (\n <div\n className={track}\n role=\"progressbar\"\n aria-valuenow={indeterminate ? undefined : value}\n aria-valuemin={indeterminate ? undefined : 0}\n aria-valuemax={indeterminate ? undefined : 100}\n {...rest}\n >\n <div className={bar} style={indeterminate ? undefined : { width: `${value}%` }} />\n </div>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function XIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ChipProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. El componente solo aplica lo que devuelve este hook.\nexport function useStyles({\n selected,\n tone = \"ink\",\n clickable,\n}: { [K in \"selected\" | \"tone\"]?: ChipProps[K] | undefined } & {\n clickable?: boolean | undefined;\n}): {\n root: string;\n deleteBtn: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n selected ? styles.selected : styles.tone[tone],\n clickable && styles.clickable,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, selected, tone, clickable],\n );\n return { root, deleteBtn: styles.deleteBtn };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/chip/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA4VUwbKbMAy85yt8bA5-U5J0pnVu_RFG2ALUGJvaJiHtvH_v2IADfcm8I9J6dyUkvQ0euQ93jb501oayLGAkXZ--sr87xhT5XsNdMDKaDPJa43jeMQaaGsMpYOcFk2gCuhhuoBfsCu4L574Hidx3ZYnHxg2ugH1E1NYEXkNH-r4gU6izxi7QwwPp6Q8KVhR9UtUYArpETaZZ3gcH8kKm4TdS6LLekFgCjiEijK-t6wQb-h6dBI8x2YNSK6LJ8ugzxY_9JtOpnKkSeWWdQscdKBr8wjJ98Qo8Zni3ht9IhXZBz7EW6OHcrtHp3wjmrSYVw7eWAk6GBDP25qBPdcYSKZA1goHWM7saHK_Bh9zZYqkIwSMnc8mZ0yw6xp6npswGKjued--7t9WgBGuwTI_nYSnSsEirrct_tTlkbrUuaIOaYg9ku3-qBTLOWJY7fJRbEDPPr5eKT4BbQY8aZUCV1Y5JrQJ5aZwdjHpUWGQamfS2pa3S31_a-Z9k60VqkheoNGYzp6n0wfnI0VuaVu_TZ6K1V3QvKqmaYzYBH0wo1BjwZzCZ7dv2NnxyFDpwDRnuqGmDYPw47fLT3TPxZy9rsG5aHHWTdnbtfonNHSXToqNw_rxBT0oStZWD51fyVGlMBdohxKMn2KEfpwXMF0sO-UocfiefM5jbuvYY0pvz7v0fTcZTG18FAAA';\nexport var clickable = 'use-styles_clickable__1axilf44';\nexport var deleteBtn = 'use-styles_deleteBtn__1axilf45';\nexport var root = 'use-styles_root__1axilf40';\nexport var selected = 'use-styles_selected__1axilf43';\nexport var tone = {ink:'use-styles_tone_ink__1axilf41',accent:'use-styles_tone_accent__1axilf42'};","import type { MouseEvent } from \"react\";\nimport { XIcon } from \"../icons/x\";\nimport type { ChipProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; el botón de borrado detiene la propagación al onClick del chip.\nexport function Chip({ selected, tone, onDelete, onClick, children, ...rest }: ChipProps) {\n const clickable = Boolean(onClick);\n const { root, deleteBtn } = useStyles({ selected, tone, clickable });\n\n const handleDelete = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onDelete?.();\n };\n\n return (\n <span className={root} onClick={onClick} {...rest}>\n {children}\n {onDelete && (\n <button type=\"button\" className={deleteBtn} aria-label=\"Remove\" onClick={handleDelete}>\n <XIcon size={13} />\n </button>\n )}\n </span>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function CheckIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { CheckboxProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. La decisión de \"qué clase aplica\" vive acá, no en el JSX.\nexport function useStyles({ checked, disabled }: Pick<CheckboxProps, \"checked\" | \"disabled\">): {\n root: string;\n input: string;\n box: string;\n check: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, disabled && styles.disabled].filter(Boolean).join(\" \"),\n [themeClass, disabled],\n );\n const box = useMemo(\n () => [styles.box, checked && styles.boxChecked].filter(Boolean).join(\" \"),\n [checked],\n );\n return { root, input: styles.input, box, check: styles.check };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/checkbox/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fOXpvZ2E5MCB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSk7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRleHRfX2UzZ3J1cjEpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbWFsbC1zaXplX19lM2dydXIxMCk7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2JveF9fOXpvZ2E5MSB7CiAgd2lkdGg6IDE4cHg7CiAgaGVpZ2h0OiAxOHB4OwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXJ1bGVfX2UzZ3J1cjFwKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tZmcxX19lM2dydXIyYyk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgZmxleC1zaHJpbms6IDA7CiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWR1ci1mYXN0X19lM2dydXIyMSkgdmFyKC0tZWFzZS1pbmtfX2UzZ3J1cjI0KTsKfQouc3VyZmFjZXNfc3JPbmx5X182aHMwZmcwOmZvY3VzLXZpc2libGUgKyAudXNlLXN0eWxlc19ib3hfXzl6b2dhOTEgewogIG91dGxpbmU6IDJweCBzb2xpZCB2YXIoLS1mb2N1c19fZTNncnVyMnEpOwogIG91dGxpbmUtb2Zmc2V0OiAycHg7Cn0KLnVzZS1zdHlsZXNfYm94Q2hlY2tlZF9fOXpvZ2E5MiB7CiAgYmFja2dyb3VuZDogdmFyKC0tZmcxX19lM2dydXIyYyk7Cn0KLnVzZS1zdHlsZXNfY2hlY2tfXzl6b2dhOTMgewogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKfQoudXNlLXN0eWxlc19kaXNhYmxlZF9fOXpvZ2E5NCB7CiAgb3BhY2l0eTogMC41OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0';\nexport var box = 'use-styles_box__9zoga91';\nexport var boxChecked = 'use-styles_boxChecked__9zoga92';\nexport var check = 'use-styles_check__9zoga93';\nexport var disabled = 'use-styles_disabled__9zoga94';\nexport var input = 'surfaces_srOnly__6hs0fg0';\nexport var root = 'use-styles_root__9zoga90';","import type { ChangeEvent } from \"react\";\nimport { CheckIcon } from \"../icons/check\";\nimport type { CheckboxProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Input nativo visualmente oculto para accesibilidad; el box estilizado refleja el estado.\n// Controlado: el estado lo maneja el consumidor vía `checked` + `onChange`.\nexport function Checkbox({\n checked = false,\n onChange,\n label,\n disabled = false,\n id,\n}: CheckboxProps) {\n const { root, input, box, check } = useStyles({ checked, disabled });\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n onChange?.(e.target.checked);\n };\n\n return (\n <label className={root}>\n <input\n type=\"checkbox\"\n className={input}\n id={id}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n />\n <span className={box}>{checked && <CheckIcon size={12} className={check} />}</span>\n {label}\n </label>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { RadioProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n disabled,\n className,\n}: { disabled?: RadioProps[\"disabled\"] | undefined; className?: string | undefined }): {\n root: string;\n input: string;\n circle: string;\n dot: string;\n label: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [themeClass, styles.root, disabled && styles.disabled, className].filter(Boolean).join(\" \"),\n [themeClass, disabled, className],\n );\n return {\n root,\n input: styles.input,\n circle: styles.circle,\n dot: styles.dot,\n label: styles.label,\n };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/radio/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51TQZLbIBC8-xUc40qxZdmurYT9QG55ggrBIM0ag8KA10oqf0-BhNZ2DlvJkemmp2canhIBpzhZoDZ4H9v2Mj033XHHfm0Y00ijlZNg6Cw64MbC9WXDmLTYO44RziSYAhch5HIvR8EuMnzinEapgNO5beHQhxQauc0M413kRp7RTpVZShGucaUWpvLWh5XTNxXdqxlOgTI-epy7_9483YyikWRnQddxmjLOg-Zh1YQ7Tecjl9b6N9CPugqDslBV9_-zpNdEEc3ElXcRXLyF3lDHQbDmy1gEBsB-iO_nzgcNgS-seYqlFlJ2texv3N6wi3HByFvUN-UP1ltlpcZElTafuEnWrr3cHKuFK6choDsJtsuVGKQjjOiduGu5SOkUuJG0Zr5vtgsCkoCjO63IcVtCoBSMVEAthe_OTm37PNDO9DthvErEL0jYWWCf2Udx-RRzTILtx-u8lvUhqkRr2x9lsIXMvTEEsdz566m9f5pDabDk8_U-xOXYSXXqg09O161KlR_A2vf13_d_78fKDmx1dCyOyhcj_AlVKX833nk9lWoVo9K6zFtdP9Iz-K1g9VLMBv4AyDXKoUYEAAA';\nexport var circle = 'use-styles_circle__vy61b42';\nexport var disabled = 'use-styles_disabled__vy61b41';\nexport var dot = 'use-styles_dot__vy61b43';\nexport var input = 'surfaces_srOnly__6hs0fg0';\nexport var label = 'use-styles_label__vy61b44';\nexport var root = 'use-styles_root__vy61b40';","import type { RadioProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Input nativo oculto + círculo/punto estilizados + label.\nexport function Radio({ checked, onChange, label, name, value, disabled }: RadioProps) {\n const { root, input, circle, dot, label: labelClass } = useStyles({ disabled });\n return (\n <label className={root}>\n <input\n className={input}\n type=\"radio\"\n name={name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <span className={circle}>{checked && <span className={dot} />}</span>\n {label != null && <span className={labelClass}>{label}</span>}\n </label>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { SwitchProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ checked }: Pick<SwitchProps, \"checked\">): {\n root: string;\n input: string;\n track: string;\n knob: string;\n label: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n input: styles.input,\n track: [styles.track, checked && styles.trackChecked].filter(Boolean).join(\" \"),\n knob: [styles.knob, checked && styles.knobChecked].filter(Boolean).join(\" \"),\n label: styles.label,\n }),\n [themeClass, checked],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/switch/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VUy47bMAy85yt03KBQ4DjZbaEee-mtn2DQNm0LZiRXlLJJi_33wrKtZpMsArRH8THDGRLaBEbJ_kzIhbPWF8XWvfR4-JyJ3yshas0DwVkJbUgblA3h6etKCCDdGqk9HliJCo1HN4ZbGJQ4gnuSkgeoUPKhKHDXuuC2sB4rGmu8bOCg6bxUxpDHk0-lsbKyZF2qabdLNq-mdHA85gerJ_a31eZDLaoDflK1ZigJ63WUtgAY6yUQ2Ves79DuEi2urzm8g6pPJNuIOljWXlujhEMCr484gr7q2ndK7PMhutehbjuvRD6_S6j61tlgaiW8A8MDODQ-pqyr0ckZYJpqjrlAmCwb1hfVcT4l2JKuL8IPHF1godaBl7LpJZtAlLhMLI-Dzlr_Cpjb6uBkCZzmy_P1nEFglNr0KbOf7oLwJLlz2vRKZNFpDq6BCrlg98PQuSheOs6aNlONrQLLo2ZdEopP4tFObPDj8SqRD6fJlHR5VeA0yM84yFwsbdMw-thzd-_fOqx6rBNVHqkuN3nf5_dQvbFlgthdXRCUbCn4eEHeDkrkm-fpYAgbr8Ruesy3sd2_P67l_Xik_1o9EP3bzm-NuLZ0H_2YtELwdqR2k7jdR9rKC21fblgISqSE_xzx4_fD-hcuEONXJPkARDGctGdRezyOxeObhjH7PSZT2_ibvf0B90nunGcFAAA';\nexport var input = 'surfaces_srOnly__6hs0fg0';\nexport var knob = 'use-styles_knob__1r6kem73';\nexport var knobChecked = 'use-styles_knobChecked__1r6kem74';\nexport var label = 'use-styles_label__1r6kem75';\nexport var root = 'use-styles_root__1r6kem70';\nexport var track = 'use-styles_track__1r6kem71';\nexport var trackChecked = 'use-styles_trackChecked__1r6kem72';","import type { SwitchProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Input nativo visualmente oculto (role=\"switch\") + track/knob estilizados + label.\nexport function Switch({ checked = false, onChange, label, disabled }: SwitchProps) {\n const { root, input, track, knob, label: labelClass } = useStyles({ checked });\n return (\n <label className={root}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n aria-checked={checked}\n className={input}\n checked={checked}\n disabled={disabled}\n onChange={(event) => {\n if (disabled) return;\n onChange?.(event.target.checked);\n }}\n />\n <span className={track}>\n <span className={knob} />\n </span>\n {label != null && <span className={labelClass}>{label}</span>}\n </label>\n );\n}\n","// src/components/base-field/index.tsx\nimport { useId } from \"react\";\nimport type { BaseFieldProps, FieldControlProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Shell presentacional del campo: label + wrapper + startIcon + trailing + help,\n// con el cableado de accesibilidad. Entrega las props del control por render-prop.\nexport function BaseField({\n label,\n help,\n error,\n startIcon: StartIcon,\n trailing,\n id,\n className,\n children,\n}: BaseFieldProps) {\n const autoId = useId();\n const controlId = id ?? autoId;\n const helpId = help != null ? `${controlId}-help` : undefined;\n const classes = useStyles({\n error,\n hasStartIcon: StartIcon != null,\n hasTrailing: trailing != null,\n className,\n });\n\n const control: FieldControlProps = {\n id: controlId,\n className: classes.input,\n \"aria-describedby\": helpId,\n \"aria-invalid\": error ? true : undefined,\n };\n\n return (\n <div className={classes.root}>\n {label != null && (\n <label htmlFor={controlId} className={classes.labelText}>\n {label}\n </label>\n )}\n <div className={classes.field}>\n {StartIcon != null && (\n <span className={classes.startIconSlot}>\n <StartIcon size={18} />\n </span>\n )}\n {children(control)}\n {trailing != null && <span className={classes.trailingSlot}>{trailing}</span>}\n </div>\n {help != null && (\n <span id={helpId} className={classes.helpText}>\n {help}\n </span>\n )}\n </div>\n );\n}\n","// src/components/base-field/use-styles.ts\nimport { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\ninterface UseStylesArgs {\n error?: boolean | undefined;\n hasStartIcon?: boolean | undefined;\n hasTrailing?: boolean | undefined;\n className?: string | undefined;\n}\n\nexport function useStyles({ error, hasStartIcon, hasTrailing, className }: UseStylesArgs): {\n root: string;\n labelText: string;\n field: string;\n input: string;\n helpText: string;\n startIconSlot: string;\n trailingSlot: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const root = [themeClass, styles.root].filter(Boolean).join(\" \");\n const labelText = [styles.labelText, error && styles.labelTextError].filter(Boolean).join(\" \");\n const input = [\n styles.input,\n error && styles.inputError,\n hasStartIcon && styles.inputStartPad,\n hasTrailing && styles.inputTrailingPad,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n const helpText = [styles.helpText, error && styles.helpTextError].filter(Boolean).join(\" \");\n return {\n root,\n labelText,\n field: styles.field,\n input,\n helpText,\n startIconSlot: styles.startIconSlot,\n trailingSlot: styles.trailingSlot,\n };\n }, [themeClass, error, hasStartIcon, hasTrailing, className]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/base-field/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61VTW_bMAy951foMmA5qIiT7qPOeYfdBrT3gJZoW60sGpKcOBv23wfJsWo3TYoWQw6BQvLxkY9kbjqH3PmjRrezRH63y8RGVHLF_iwYk8q1Go45KzX22wWL31wqi8IrMjkTpLvGBEsFbc72YD9z7loQyHu32-Gmsp3N7pbbxd_FzSSVhgL1A_YpXxbzlWQ8L6FR-jiCxZ8aMjSirZfb0dOp3zj6eew9xyMWlg7RMPrfRn-N3qON1JSpUpAF8aRMxQ9KovOJ8D7GREhvwbiSbJOzrm3RCnAYjII02USy2iR6eLnYH9aSHStex4pnMBJMhTYh0RlSqVDLEWATAVpyatDCogav9pHdmXCgVWW48ti4nAk0Hu1LcGXaLulxe1UPH5U7NeuKHgXJ40wMt3yld1mqWERzAeKpstQZOfoU1Tr53A0-ZCUmjOHFa1CpexktmSOt5MzlGaaewHALUnVuRBtevACXeGdNdG9Bysn4DIPeyORVLC9bQvxBSV_nLFutPoUndV4rgzkzZHCg04d2xRQnagX114XKSxKdi3KdQmbtBRHUTmU_LlOeGiQdcraKn3XbzwLuqXwO0meDGCnMxvnLRQZvTnUEu_dg_S9I0_11mO6h4Vxj6eddX_c6Nfd85SLkgwWllakmqN9mqFZV9btga9Tt9Gp9_y9bIqANGzxblOx2EhCShyGxDeh33p6R8Uyruw-cHhf0-SnI3Ovnfwl4cYKgcKQ7j8PFfSnZ2TqkK6VM2AN-9Vi9UXagoYInxz0a78almlfhTyMxLaK4UsQrE-KaVAV8pIrHznlVHrkg49H4yTX-Bw-3nXGMBwAA';\nexport var field = 'use-styles_field__1c3cgd3';\nexport var helpText = 'use-styles_helpText__1c3cgd8';\nexport var helpTextError = 'use-styles_helpTextError__1c3cgd9';\nexport var input = 'use-styles_input__1c3cgd4';\nexport var inputError = 'use-styles_inputError__1c3cgd5';\nexport var inputStartPad = 'use-styles_inputStartPad__1c3cgd6';\nexport var inputTrailingPad = 'use-styles_inputTrailingPad__1c3cgd7';\nexport var labelText = 'use-styles_labelText__1c3cgd1';\nexport var labelTextError = 'use-styles_labelTextError__1c3cgd2';\nexport var root = 'use-styles_root__1c3cgd0';\nexport var startIconSlot = 'use-styles_startIconSlot__1c3cgda';\nexport var trailingSlot = 'use-styles_trailingSlot__1c3cgdb';","import type { ChangeEvent, TextareaHTMLAttributes } from \"react\";\nimport { BaseField } from \"../base-field\";\nimport type { TextFieldProps } from \"./types\";\n\n// Presentacional: delega el shell (label, help, startIcon, a11y) a BaseField.\n// Controlado vía onChange(value); soporta startIcon y multiline.\nexport function TextField({\n label,\n help,\n error,\n startIcon,\n multiline,\n rows,\n type = \"text\",\n onChange,\n className,\n id,\n ...rest\n}: TextFieldProps) {\n return (\n <BaseField\n label={label}\n help={help}\n error={error}\n startIcon={startIcon}\n id={id}\n className={className}\n >\n {(control) =>\n multiline ? (\n <textarea\n {...(rest as TextareaHTMLAttributes<HTMLTextAreaElement>)}\n {...control}\n rows={rows ?? 4}\n onChange={(e: ChangeEvent<HTMLTextAreaElement>) => onChange?.(e.target.value)}\n />\n ) : (\n <input\n {...rest}\n {...control}\n type={type}\n onChange={(e: ChangeEvent<HTMLInputElement>) => onChange?.(e.target.value)}\n />\n )\n }\n </BaseField>\n );\n}\n","// src/components/password-field/index.tsx\nimport { type ChangeEvent, type MouseEvent, useState } from \"react\";\nimport { BaseField } from \"../base-field\";\nimport { EyeIcon } from \"../icons/eye\";\nimport { EyeOffIcon } from \"../icons/eye-off\";\nimport type { PasswordFieldProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Envuelve BaseField, gestiona el reveal de contraseña y pasa el toggle como trailing slot.\nexport function PasswordField({\n label,\n help,\n error,\n startIcon,\n onChange,\n id,\n className,\n ...rest\n}: PasswordFieldProps) {\n const [reveal, setReveal] = useState(false);\n const classes = useStyles();\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.value);\n };\n\n const handleToggleMouseDown = (e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n };\n\n const toggleButton = (\n <button\n type=\"button\"\n tabIndex={-1}\n className={classes.revealButton}\n aria-label={reveal ? \"Ocultar contraseña\" : \"Mostrar contraseña\"}\n onMouseDown={handleToggleMouseDown}\n onClick={() => setReveal((r) => !r)}\n >\n {reveal ? <EyeOffIcon size={18} /> : <EyeIcon size={18} />}\n </button>\n );\n\n return (\n <BaseField\n label={label}\n help={help}\n error={error}\n startIcon={startIcon}\n trailing={toggleButton}\n id={id}\n className={className}\n >\n {(control) => (\n <input {...rest} {...control} type={reveal ? \"text\" : \"password\"} onChange={handleChange} />\n )}\n </BaseField>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function EyeIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function EyeOffIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9.88 9.88a3 3 0 1 0 4.24 4.24\" />\n <path d=\"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\" />\n <path d=\"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n","// src/components/password-field/use-styles.ts\nimport { useMemo } from \"react\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: devuelve un objeto de clases por slot, memoizado.\n// PasswordField delega el layout al BaseField; solo gestiona el revealButton.\nexport function useStyles(): { revealButton: string } {\n return useMemo(() => ({ revealButton: styles.revealButton }), []);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/password-field/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcmV2ZWFsQnV0dG9uX19yc3U5ZDUwIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSk7CiAgYm9yZGVyOiBub25lOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGNvbG9yOiB2YXIoLS1mZzNfX2UzZ3J1cjJlKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKfQoudXNlLXN0eWxlc19yZXZlYWxCdXR0b25fX3JzdTlkNTA6aG92ZXIgewogIGNvbG9yOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc19yZXZlYWxCdXR0b25fX3JzdTlkNTA6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQ';\nexport var revealButton = 'use-styles_revealButton__rsu9d50';","// src/components/money-field/index.tsx\nimport { type ChangeEvent, type FocusEvent, useMemo, useState } from \"react\";\nimport { BaseField } from \"../base-field\";\nimport type { MoneyFieldProps } from \"./types\";\n\n// Quita todo salvo dígitos, signo y punto decimal; \"\", \"-\" y \".\" → null.\nfunction parseAmount(raw: string): number | null {\n const cleaned = raw.replace(/[^0-9.-]/g, \"\");\n if (cleaned === \"\" || cleaned === \"-\" || cleaned === \".\") return null;\n const n = Number.parseFloat(cleaned);\n return Number.isNaN(n) ? null : n;\n}\n\n// MoneyField: input de dinero controlado.\n// - Sin foco: muestra Intl.NumberFormat (currency style).\n// - Con foco: muestra el draft crudo para edición.\n// - onBlur: parsea el draft y llama onChange(number | null).\nexport function MoneyField({\n value,\n onChange,\n currency = \"USD\",\n locale = \"en-US\",\n label,\n help,\n error,\n startIcon,\n id,\n className,\n onFocus,\n onBlur,\n ...rest\n}: MoneyFieldProps) {\n const [focused, setFocused] = useState(false);\n const [draft, setDraft] = useState(\"\");\n const formatter = useMemo(\n () => new Intl.NumberFormat(locale, { style: \"currency\", currency }),\n [locale, currency],\n );\n\n const displayValue = focused ? draft : value != null ? formatter.format(value) : \"\";\n\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setDraft(value != null ? String(value) : \"\");\n setFocused(true);\n onFocus?.(e);\n };\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => setDraft(e.target.value);\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n onChange?.(parseAmount(draft));\n onBlur?.(e);\n };\n\n return (\n <BaseField\n label={label}\n help={help}\n error={error}\n startIcon={startIcon}\n id={id}\n className={className}\n >\n {(control) => (\n <input\n {...rest}\n {...control}\n inputMode=\"decimal\"\n value={displayValue}\n onFocus={handleFocus}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n )}\n </BaseField>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { IconButtonProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n active = false,\n tone = \"ink\",\n}: { [K in \"active\" | \"tone\"]?: IconButtonProps[K] | undefined }): {\n root: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [themeClass, styles.root, tone === \"accent\" && styles.accent, active && styles.active]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, active, tone],\n );\n return { root };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/icon-button/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMThucDBxMDAgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgcGFkZGluZzogdmFyKC0tc3BhY2Utc21fX2UzZ3J1cjFhKTsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBjb2xvcjogdmFyKC0tZmcyX19lM2dydXIyZCk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtYmFzZV9fZTNncnVyMW0pOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGFsbCB2YXIoLS1kdXItZmFzdF9fZTNncnVyMjEpIHZhcigtLWVhc2UtaW5rX19lM2dydXIyNCk7Cn0KLnVzZS1zdHlsZXNfcm9vdF9fMThucDBxMDA6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogIGJhY2tncm91bmQ6IHZhcigtLWJnM19fZTNncnVyMmEpOwp9Ci51c2Utc3R5bGVzX3Jvb3RfXzE4bnAwcTAwOmRpc2FibGVkIHsKICBjb2xvcjogdmFyKC0tZmczX19lM2dydXIyZSk7CiAgb3BhY2l0eTogMC41OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KLnVzZS1zdHlsZXNfcm9vdF9fMThucDBxMDA6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19hY3RpdmVfXzE4bnAwcTAxIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzNfX2UzZ3J1cjJhKTsKICBjb2xvcjogdmFyKC0tYWNjZW50X19lM2dydXIyaik7Cn0KLnVzZS1zdHlsZXNfYWNjZW50X18xOG5wMHEwMiB7CiAgY29sb3I6IHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9';\nexport var accent = 'use-styles_accent__18np0q02';\nexport var active = 'use-styles_active__18np0q01';\nexport var root = 'use-styles_root__18np0q00';","import type { IconButtonProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// El icono es un componente (Icon); el botón lo renderiza fijando el tamaño.\nexport function IconButton({ icon: Icon, active, tone, title, ...rest }: IconButtonProps) {\n const { root } = useStyles({ active, tone });\n return (\n <button className={root} aria-label={title} title={title} {...rest}>\n <Icon size={18} />\n </button>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve este\n// hook. El themeClass va en el slot raíz; los demás slots heredan las vars desde ahí.\nexport function useStyles(): {\n root: string;\n header: string;\n body: string;\n footer: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(() => `${themeClass} ${styles.root}`, [themeClass]);\n return { root, header: styles.header, body: styles.body, footer: styles.footer };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/card/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMWZ1dmQwMjAgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlcjogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKSBzb2xpZCB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnX19lM2dydXIxbCk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoudXNlLXN0eWxlc19oZWFkZXJfXzFmdXZkMDIxIHsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1sZ19fZTNncnVyMWMpOwogIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci1oYWlyX19lM2dydXIxbykgc29saWQgdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLnVzZS1zdHlsZXNfYm9keV9fMWZ1dmQwMjIgewogIHBhZGRpbmc6IHZhcigtLXNwYWNlLWxnX19lM2dydXIxYyk7Cn0KLnVzZS1zdHlsZXNfZm9vdGVyX18xZnV2ZDAyMyB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtbGdfX2UzZ3J1cjFjKTsKICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pIHNvbGlkIHZhcigtLWJvcmRlcjFfX2UzZ3J1cjJnKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9';\nexport var body = 'use-styles_body__1fuvd022';\nexport var footer = 'use-styles_footer__1fuvd023';\nexport var header = 'use-styles_header__1fuvd021';\nexport var root = 'use-styles_root__1fuvd020';","import type { CardProps, CardSectionProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Compound component: el consumidor compone las secciones explícitamente\n// (Card.Header / Card.Body / Card.Footer) en vez de pasar nodos por props.\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nfunction CardRoot({ children, ...rest }: CardProps) {\n const { root } = useStyles();\n return (\n <div className={root} {...rest}>\n {children}\n </div>\n );\n}\n\nfunction CardHeader({ children, ...rest }: CardSectionProps) {\n const { header } = useStyles();\n return (\n <div className={header} {...rest}>\n {children}\n </div>\n );\n}\n\nfunction CardBody({ children, ...rest }: CardSectionProps) {\n const { body } = useStyles();\n return (\n <div className={body} {...rest}>\n {children}\n </div>\n );\n}\n\nfunction CardFooter({ children, ...rest }: CardSectionProps) {\n const { footer } = useStyles();\n return (\n <div className={footer} {...rest}>\n {children}\n </div>\n );\n}\n\nCardRoot.displayName = \"Card\";\nCardHeader.displayName = \"Card.Header\";\nCardBody.displayName = \"Card.Body\";\nCardFooter.displayName = \"Card.Footer\";\n\nexport const Card = Object.assign(CardRoot, {\n Header: CardHeader,\n Body: CardBody,\n Footer: CardFooter,\n});\n","import type { IconProps } from \"../types\";\n\nexport function CircleCheckIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function CircleXIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m15 9-6 6\" />\n <path d=\"m9 9 6 6\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function InfoIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function TriangleAlertIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AlertProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. El componente solo aplica lo que devuelve este hook.\nexport function useStyles({\n severity = \"info\",\n className,\n}: Pick<AlertProps, \"severity\" | \"className\">): {\n root: string;\n iconSlot: string;\n content: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, styles.severity[severity], className].filter(Boolean).join(\" \"),\n [themeClass, severity, className],\n );\n return {\n root,\n iconSlot: styles.iconSlot,\n content: styles.content,\n };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/alert/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA32TzY7CIBRG930KluMCM-qMifUx5gEaCpTeSLkNUK0z8d0n_QGr1a4a8n2cA6R33ThJnb9q6TKL6LMMzq7cN5_kLyFEgKs1u6ak0LI9JoQoVqfkzOwHpa5mXNJKZJncKdvYTb7qGjUTAoxaaD0kWsWE9_tzxk_KYmNEQORqGzrbw9BBK6SNeb-iJQMbWbgiDjWIh8omYtQEQ7UsPL2A8GVKdnU7SSwT0LjgGVY0Z05GTzWCWurgt7_2uDXH9pjckvXkeZ08Swv-moEpMLzzpn_n6Uk4aox3G6rjqetetpy_UeIpCLfLwq444qq57il9I7swa4Jut6wbqiPSzIWz_I1SMKOkDdKvZWkoj1ica180HsXA0fzo-7h8vx6X7ktdacGcUvI50YApu4M_YzkaL02k7heoAqzkHtCkHbOpzMvxbF38VQ_zaxbqPhLd9N3-AdO34koOBAAA';\nexport var content = 'use-styles_content__ivsh6u6';\nexport var iconSlot = 'use-styles_iconSlot__ivsh6u5';\nexport var root = 'use-styles_root__ivsh6u0';\nexport var severity = {info:'use-styles_severity_info__ivsh6u1',ok:'use-styles_severity_ok__ivsh6u2',warn:'use-styles_severity_warn__ivsh6u3',danger:'use-styles_severity_danger__ivsh6u4'};","import { CircleCheckIcon } from \"../icons/circle-check\";\nimport { CircleXIcon } from \"../icons/circle-x\";\nimport { InfoIcon } from \"../icons/info\";\nimport { TriangleAlertIcon } from \"../icons/triangle-alert\";\nimport type { Icon } from \"../icons/types\";\nimport { Typography } from \"../typography\";\nimport type { AlertProps, AlertSeverity } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; el icono por defecto depende de la severidad.\nconst defaultIcons: Record<AlertSeverity, Icon> = {\n info: InfoIcon,\n ok: CircleCheckIcon,\n warn: TriangleAlertIcon,\n danger: CircleXIcon,\n};\n\nexport function Alert({\n severity = \"info\",\n title,\n icon,\n className,\n children,\n ...rest\n}: AlertProps) {\n const styles = useStyles({ severity, className });\n const IconComponent = icon ?? defaultIcons[severity];\n return (\n <div role=\"alert\" className={styles.root} {...rest}>\n <span className={styles.iconSlot}>\n <IconComponent />\n </span>\n <div className={styles.content}>\n {title != null && <Typography variant=\"h4\">{title}</Typography>}\n {children != null && (\n <Typography variant=\"body\" color=\"fg2\">\n {children}\n </Typography>\n )}\n </div>\n </div>\n );\n}\n","import { cloneElement, useId, useState } from \"react\";\nimport type { TooltipProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Maneja el estado `open` local; muestra en hover/focus y oculta en leave/blur.\n// Accesibilidad: enlaza el bubble (role=\"tooltip\") al trigger via aria-describedby\n// mientras está abierto, clonando el children (el elemento interactivo).\nexport function Tooltip({ label, children, placement }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const tooltipId = useId();\n const { wrapper, bubble } = useStyles({ placement });\n\n const show = () => setOpen(true);\n const hide = () => setOpen(false);\n\n const previousDescribedBy = (children.props as { \"aria-describedby\"?: string })[\n \"aria-describedby\"\n ];\n const describedBy = open\n ? [previousDescribedBy, tooltipId].filter(Boolean).join(\" \")\n : previousDescribedBy;\n\n const trigger = cloneElement(children, { \"aria-describedby\": describedBy });\n\n return (\n <span className={wrapper} onMouseEnter={show} onMouseLeave={hide} onFocus={show} onBlur={hide}>\n {trigger}\n {open && (\n <span id={tooltipId} role=\"tooltip\" className={bubble}>\n {label}\n </span>\n )}\n </span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { TooltipProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n placement = \"top\",\n}: { placement?: TooltipProps[\"placement\"] | undefined }): {\n wrapper: string;\n bubble: string;\n} {\n const { themeClass } = useTheme();\n const wrapper = useMemo(\n () => [themeClass, styles.wrapper].filter(Boolean).join(\" \"),\n [themeClass],\n );\n const bubble = useMemo(\n () => [styles.bubble, styles.placement[placement]].filter(Boolean).join(\" \"),\n [placement],\n );\n return { wrapper, bubble };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/tooltip/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfd3JhcHBlcl9faDlrdmgwIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7Cn0KLnVzZS1zdHlsZXNfYnViYmxlX19oOWt2aDEgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9fX2UzZ3J1cjIpOwogIGZvbnQtc2l6ZTogMTFweDsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZV9fZTNncnVyMXQpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXhzX19lM2dydXIxOSkgdmFyKC0tc3BhY2Utc21fX2UzZ3J1cjFhKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtYmFzZV9fZTNncnVyMW0pOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgei1pbmRleDogMTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoudXNlLXN0eWxlc19wbGFjZW1lbnRfdG9wX19oOWt2aDIgewogIGJvdHRvbTogMTAwJTsKICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS14c19fZTNncnVyMTkpOwp9Ci51c2Utc3R5bGVzX3BsYWNlbWVudF9ib3R0b21fX2g5a3ZoMyB7CiAgdG9wOiAxMDAlOwogIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLXhzX19lM2dydXIxOSk7Cn0';\nexport var bubble = 'use-styles_bubble__h9kvh1 surfaces_inkySurface__6hs0fg2';\nexport var placement = {top:'use-styles_placement_top__h9kvh2',bottom:'use-styles_placement_bottom__h9kvh3'};\nexport var wrapper = 'use-styles_wrapper__h9kvh0';","import { type KeyboardEvent, useEffect, useId, useRef, useState } from \"react\";\nimport { ChevronDownIcon } from \"../icons/chevron-down\";\nimport type { SelectProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional + estado de apertura/navegación. La lógica de estilos vive en use-styles.ts.\nexport function Select({ options, value, onChange, placeholder, label, disabled }: SelectProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState(0);\n const rootRef = useRef<HTMLDivElement>(null);\n const baseId = useId();\n const labelId = `${baseId}-label`;\n const optionId = (index: number) => `${baseId}-option-${index}`;\n const {\n root,\n label: labelClass,\n trigger,\n placeholder: placeholderClass,\n chevron,\n menu,\n optionClass,\n } = useStyles({ open });\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n return () => document.removeEventListener(\"mousedown\", onPointerDown);\n }, [open]);\n\n const selected = options.find((option) => option.value === value);\n\n const selectAt = (index: number) => {\n const option = options[index];\n if (option) onChange?.(option.value);\n setOpen(false);\n };\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue);\n setOpen(false);\n };\n\n const openMenu = () => {\n const current = options.findIndex((option) => option.value === value);\n setActiveIndex(current >= 0 ? current : 0);\n setOpen(true);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n switch (event.key) {\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n event.preventDefault();\n if (!open) {\n openMenu();\n } else {\n setActiveIndex((index) => (index + 1) % options.length);\n }\n break;\n case \"ArrowUp\":\n event.preventDefault();\n if (!open) {\n openMenu();\n } else {\n setActiveIndex((index) => (index - 1 + options.length) % options.length);\n }\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n if (!open) {\n openMenu();\n } else {\n selectAt(activeIndex);\n }\n break;\n default:\n break;\n }\n };\n\n return (\n <div ref={rootRef} className={root}>\n {label && (\n <span id={labelId} className={labelClass}>\n {label}\n </span>\n )}\n <button\n type=\"button\"\n className={trigger}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-labelledby={label ? labelId : undefined}\n aria-activedescendant={open ? optionId(activeIndex) : undefined}\n onClick={() => {\n if (disabled) return;\n if (open) {\n setOpen(false);\n } else {\n openMenu();\n }\n }}\n onKeyDown={handleKeyDown}\n >\n {selected ? selected.label : <span className={placeholderClass}>{placeholder}</span>}\n <span className={chevron}>\n <ChevronDownIcon size={18} />\n </span>\n </button>\n {open && (\n <div className={menu} role=\"listbox\">\n {options.map((option, index) => {\n const isSelected = option.value === value;\n const isActive = index === activeIndex;\n return (\n // biome-ignore lint/a11y/useKeyWithClickEvents: keyboard nav lives on the trigger via aria-activedescendant; options are not focusable.\n <div\n key={option.value}\n id={optionId(index)}\n role=\"option\"\n tabIndex={-1}\n aria-selected={isSelected}\n className={optionClass(isSelected, isActive)}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function ChevronDownIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + el estado relevante y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n open = false,\n}: {\n open?: boolean;\n}): {\n root: string;\n label: string;\n trigger: string;\n placeholder: string;\n chevron: string;\n menu: string;\n optionClass: (selected: boolean, active: boolean) => string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const chevron = [styles.chevron, open && styles.chevronOpen].filter(Boolean).join(\" \");\n return {\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n label: styles.label,\n trigger: styles.trigger,\n placeholder: styles.placeholder,\n chevron,\n menu: styles.menu,\n optionClass: (selected: boolean, active: boolean) =>\n [styles.option, selected && styles.optionSelected, active && styles.optionActive]\n .filter(Boolean)\n .join(\" \"),\n };\n }, [themeClass, open]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/select/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VWQW7bMBC8-xW8FIiBMrCcpEnkU2-99ZAHGBS5kphQXIGkbDlF_16Qsigplu2gKFD4YJjcWc7ODpe-bSxQ6w4K7NYguu022Sf8vc5W5NeCkBqtdBJ1Sgwo5uQONgtChLS1YoeU5Apav-C_qZAGeBfMUTWV9jsFq1OyY-aGUlszDrS12y3cFaYxyfNys_i9uB0xUCwDFSkkgUKO2tGcVVId-kxhqUKNfar1ctNHWvkOfZyD1lHOak8qbMSj7wNASQ20BFmUbhbi93-E7Qh86IDgHJhQkdTFPDaEvHQREf4Y4CHQGaZtjqZKSVPXYDizQVyOCk2stLiLNcKJXM7IogATBVsHwU6689pYJ_MD5agdaJeSrhMZuD1A6BJTstBUOqhsSjhoB2a2ebaKlbBQyV4KV6YkWa2--J81E2IkSAeqRARly_M7Hp9h6_sUUmRoBBiaYbu54AIvZUxywQUZisPEAnY5I3YSxeYdH8bfCoONFn1MVqxjzPORc-B5VOIY1a2VTJpIDsfRoYEpsaikGC1P6HRrw3HlOIFhQja2D-1-0YzZweJVV2BjrE9Zo-y7GvQIHU-JgtyFNW_G400fcznmF42hObNR6XXSNxKYBSr1W9y5X37t2lgygfu_wV91eZojb2zwOjbOX9KUaNRwTkjGvaXjCa-D1QLHlKzCZ123E8AL5gNIfYKWkJZlCkRgdvEazztriGGT3mn0_VK4B_GRRK0YhxKVGBG5u37-NAkvYWdQxwT30zEidZiTk1lvSyP1W0pWVyfW1Ftx6P0LYxx5_6xh4P4QuI9mq0HHHNwkTysBxUmKCnQTsd8-PHkss6gaF3zlsB7GnL810xnn7Rdv3lMo24yflbNRSlrXT4PewxUzhdRXoV0YDcwuvLBnpvJMwvPT951KLaD1CnxUEMNzFzV87DScO3HyeFx-B_7PtD-ZlZcrTUvcgQn1Xr_Nc6leQAF3IGLKp9ObOzO75lJ95_6_WUz0_FlWfwC_NyyP_wkAAA';\nexport var chevron = 'use-styles_chevron__1w1czpb4';\nexport var chevronOpen = 'use-styles_chevronOpen__1w1czpb5';\nexport var label = 'use-styles_label__1w1czpb1';\nexport var menu = 'use-styles_menu__1w1czpb6 surfaces_panelSurface__6hs0fg1';\nexport var option = 'use-styles_option__1w1czpb7';\nexport var optionActive = 'use-styles_optionActive__1w1czpb9';\nexport var optionSelected = 'use-styles_optionSelected__1w1czpb8';\nexport var placeholder = 'use-styles_placeholder__1w1czpb3';\nexport var root = 'use-styles_root__1w1czpb0';\nexport var trigger = 'use-styles_trigger__1w1czpb2';","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles(): {\n wrapper: string;\n label: string;\n root: string;\n track: string;\n range: string;\n thumb: string;\n input: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const root = [themeClass, styles.root].filter(Boolean).join(\" \");\n return {\n wrapper: styles.wrapper,\n label: styles.label,\n root,\n track: styles.track,\n range: styles.range,\n thumb: styles.thumb,\n input: styles.input,\n };\n }, [themeClass]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/slider/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5VUy24jIRC8-yu4rLQ-EHn8iBLyMRYz9IyRGXoCjR-7yn77Cjxgx04cWT710FRVV7V5Ch64p6MBv3aItF7jdr96tTP2d8LYgF6TRiuYAyNJ7-BtwtgGdLchwebL4RDrvVa0EayazX7FUmk_GHkUrDWQzqXRneWaoPeCNWAJ3NvkY_J0QU1ONtvMXSXuzPI1SS2bbecwWCXYTrrfnNfdYr2GReeCm8tp6kGnwHEnlQ4-t50q3gZjcntlp9d6nLQdZD3zKy9k7dEE-uTFqPJWVttVRVbzuKzIq6NjHHZgyQtm0cK1XG2HUKJb3JGrrQfKnH6QDfCIVyhfpl94nWfMdS9dp-2PKDjIRtNRsFmsmuA8OpHHuT-BUNrL2oBKo-SrFolLY3AP6mZ_NqGv8_XlHQPyaM-nvMpoY30ajRtoSTD-Mob6WGAP7MCoZlzgkSaYs5PDZXeaVTCPRquLzw2a6M73VAfuN1LhviSWKu770rm6s2mMkZM2e3lGG8FUcLyVngpWNR1PQHrg2m7LyfLmb3aVeotN8Hynva4NsH_sh4QvJ5ul32I4ZB8iVGF-v2E2sgaT4VYJrrxbtcFme7ENNRJh_3nfDwW8ek3mtWiJt7LX5liyiJ96tFh0nDu9_gOCVfPThhmgaHyE1rbL99OjqG0X1wRc4QsJheBAPCXTousFC8MArpE-JXa1EvMiQN0YsXcy3sxWPH9jxacn4eM_lIAwIzYGAAA';\nexport var input = 'use-styles_input__okw59n3';\nexport var label = 'use-styles_label__okw59n5';\nexport var range = 'use-styles_range__okw59n2';\nexport var root = 'use-styles_root__okw59n0';\nexport var thumb = 'use-styles_thumb__okw59n4';\nexport var track = 'use-styles_track__okw59n1';\nexport var wrapper = 'use-styles_wrapper__okw59n6';","import type { ChangeEvent } from \"react\";\nimport type { SliderProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Un <input type=\"range\"> nativo (opacity 0) se superpone para interacción + teclado;\n// las dimensiones dinámicas (percent) se aplican vía inline style acá.\nexport function Slider({\n value = 0,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled,\n label,\n}: SliderProps) {\n const { wrapper, label: labelClass, root, track, range, thumb, input } = useStyles();\n\n const span = max - min;\n const percent = span > 0 ? ((value - min) / span) * 100 : 0;\n const clamped = Math.max(0, Math.min(100, percent));\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(Number(e.target.value));\n };\n\n return (\n <span className={wrapper}>\n {label ? <span className={labelClass}>{label}</span> : null}\n <span className={root}>\n <span className={track} />\n <span className={range} style={{ width: `${clamped}%` }} />\n <input\n className={input}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n onChange={handleChange}\n />\n <span className={thumb} style={{ left: `${clamped}%` }} />\n </span>\n </span>\n );\n}\n","import { useState } from \"react\";\nimport { ChevronDownIcon } from \"../icons/chevron-down\";\nimport type { AccordionProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Estado local `open` (string[]); el toggle respeta `multiple`.\nexport function Accordion({\n items,\n multiple = false,\n defaultOpen = [],\n className,\n}: AccordionProps) {\n const [open, setOpen] = useState<string[]>(defaultOpen);\n const { root, item, header, chevronFor, panel } = useStyles({ className });\n\n const toggle = (id: string) => {\n setOpen((current) => {\n const isOpen = current.includes(id);\n if (isOpen) return current.filter((x) => x !== id);\n return multiple ? [...current, id] : [id];\n });\n };\n\n return (\n <div className={root}>\n {items.map((it) => {\n const isOpen = open.includes(it.id);\n const panelId = `accordion-panel-${it.id}`;\n const headerId = `accordion-header-${it.id}`;\n return (\n <div key={it.id} className={item}>\n <button\n type=\"button\"\n id={headerId}\n className={header}\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={() => toggle(it.id)}\n >\n {it.title}\n <ChevronDownIcon className={chevronFor(isOpen)} />\n </button>\n {isOpen && (\n <div id={panelId} className={panel} role=\"region\" aria-labelledby={headerId}>\n {it.content}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AccordionProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: { className?: AccordionProps[\"className\"] | undefined }): {\n root: string;\n item: string;\n header: string;\n chevronFor: (open: boolean) => string;\n panel: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n item: styles.item,\n header: styles.header,\n chevronFor: (open: boolean) =>\n [styles.chevron, open && styles.chevronOpen].filter(Boolean).join(\" \"),\n panel: styles.panel,\n }),\n [themeClass, className],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/accordion/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61Ty27bMBC8-yt4KRAfGEh2CrT0R_QTBFpcSoxprrpc-dEi_16IshjZSZ0A7U0id2dmZ4ePfQQZ-ewhVoTIVVXWz2Ta74X4vRBii2SAlDhoepBy_JOtdlRVsG6opxKXIqJ35qqknK5XzXKTYSRp4_o4oY1_0jcZy6diPABZj0clWmcMhM3iZfE4k-kY9llmOZMpt8iM-39Ue49MeR1Z1q3z5j3egAFuAVrQBihDrFLf0RlulSiL4sswsXGx8_qshPVwGg6e-8jOnmWNgSGwErHTNcgt8BEGQ4TQ3jVBDuqiEjUEBhqOG91N448te5Nn3yZ3O22MC82dqqub2XbqcZW63jWEfTBKMOkQO00QeDMLy2iDEHVPEUmJDt2kz2JgafXe-fOkIB0xnDgTJZ4aPebg2eZ1R6OMoUEmE5TwYC_8JxndrzRd3kzyMwl17DCo2QAXcNOTtDpm_lU5WQA6gnRhl2-e3uTjdr2qHeI7hmPm1CVuzTpD6Y-hLNZ9lAcX3dZDgsSevQugxKo7XQU5lWbsn-M7GoslWhuBU88tZd3CgTBkznViGVIoY0su7JQo3lnGKjOZ5a296dsi7f-Huxd9Pzp41fiUNGYaJQhZMzyU3woDbx9wpwP43Pw1Nec3UPw96_dfwQeGfDbmL38AClAqMH8FAAA';\nexport var chevron = 'use-styles_chevron__1cjrdh93';\nexport var chevronOpen = 'use-styles_chevronOpen__1cjrdh94';\nexport var header = 'use-styles_header__1cjrdh92';\nexport var item = 'use-styles_item__1cjrdh91';\nexport var panel = 'use-styles_panel__1cjrdh95';\nexport var root = 'use-styles_root__1cjrdh90';","import { Fragment } from \"react\";\nimport { ChevronRightIcon } from \"../icons/chevron-right\";\nimport type { BreadcrumbsProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas. El último item es el actual (sin link).\nexport function Breadcrumbs({ items, className, ...rest }: BreadcrumbsProps) {\n const { root, crumb, current, separator } = useStyles({ className });\n return (\n <nav aria-label=\"Breadcrumb\" className={root} {...rest}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const key = index;\n return (\n <Fragment key={key}>\n {isLast ? (\n <span className={current} aria-current=\"page\">\n {item.label}\n </span>\n ) : item.href ? (\n <a className={crumb} href={item.href}>\n {item.label}\n </a>\n ) : (\n <span className={crumb}>{item.label}</span>\n )}\n {!isLast && (\n <span className={separator}>\n <ChevronRightIcon size={14} />\n </span>\n )}\n </Fragment>\n );\n })}\n </nav>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function ChevronRightIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { BreadcrumbsProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: Pick<BreadcrumbsProps, \"className\">): {\n root: string;\n crumb: string;\n current: string;\n separator: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n return { root, crumb: styles.crumb, current: styles.current, separator: styles.separator };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/breadcrumbs/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fN3UwZHU2MCB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogdmFyKC0tc3BhY2Utc21fX2UzZ3J1cjFhKTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IDEycHg7CiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyYWNraW5nLXdpZGVfX2UzZ3J1cjF0KTsKfQoudXNlLXN0eWxlc19jcnVtYl9fN3UwZHU2MSB7CiAgY29sb3I6IHZhcigtLWZnMl9fZTNncnVyMmQpOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoudXNlLXN0eWxlc19jcnVtYl9fN3UwZHU2MTpob3ZlciB7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1hY2NlbnRfX2UzZ3J1cjJqKTsKICBjb2xvcjogdmFyKC0tYWNjZW50X19lM2dydXIyaik7Cn0KLnVzZS1zdHlsZXNfY3J1bWJfXzd1MGR1NjE6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19jdXJyZW50X183dTBkdTYyIHsKICBjb2xvcjogdmFyKC0tZmcxX19lM2dydXIyYyk7Cn0KLnVzZS1zdHlsZXNfc2VwYXJhdG9yX183dTBkdTYzIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGNvbG9yOiB2YXIoLS1mZzNfX2UzZ3J1cjJlKTsKfQ';\nexport var crumb = 'use-styles_crumb__7u0du61';\nexport var current = 'use-styles_current__7u0du62';\nexport var root = 'use-styles_root__7u0du60';\nexport var separator = 'use-styles_separator__7u0du63';","import type { IconProps } from \"../types\";\n\nexport function ChevronLeftIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve.\nexport function useStyles(): {\n root: string;\n pageBtnFor: (active: boolean) => string;\n ellipsis: string;\n nav: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n pageBtnFor: (active: boolean) =>\n [styles.pageBtn, active && styles.pageActive].filter(Boolean).join(\" \"),\n ellipsis: styles.ellipsis,\n nav: [styles.pageBtn, styles.nav].join(\" \"),\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/pagination/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUsXbbMAzc_RUco4F5le0hZab2R_RgEaLQ0KRKkI7tvv57nymLlp2mTocOHQkc7sADyMfEKDkeLHITvI9NU8PRHH3_SfxYCKGJBwsHJTqL--eFEGDJOEkRt6xEiy5iOIUNDErsIDxIyQO0KPfcNLgyIYX6c_W8-Ll4nAkNYPBrdEWrzlpbcvKVdOyVWK2HrNYjmT5ezh9t51viSN1Btt5FdHGe6ryLsoMt2cPUcQ5tvfNTy8uqIJmOqES9HPVbb30oZaYuBW2u2PigMUyXGFHnWA8UiiN-js6eKMHekp6Fr6TG2EXOzAkCaEo8QceT3ABj0duOcGhfTPDJaSViAMcDBHQx3ysFPqkNniafMoIieacEWHtm1ynIDjiWTurqnEFglOReSmZ9f-yq9zsMyvn4oDQxbCzqKu_CvNezBWZVqOED1BNfpruZ24UJq_n1nY8SrPWvqO8LdL5NLHfEtLGYVXyKlhwqsRz24zzLgrWpvIfl96x5BkvfdYwx1_xO80sbaYdFdvmOO2938Xp_Zumn6r0tuyW5383fDPDP7GgtDUxcuFf_6Z9wu1uj0afdcnjnFSY-fQdosY0T_tokB7vizzr7M4DW5Mz133sqLW__6Y3VVyz_Zo1_Ab4EpDFWBgAA';\nexport var ellipsis = 'use-styles_ellipsis__1azgzoh3';\nexport var nav = 'use-styles_nav__1azgzoh4';\nexport var pageActive = 'use-styles_pageActive__1azgzoh2';\nexport var pageBtn = 'use-styles_pageBtn__1azgzoh1';\nexport var root = 'use-styles_root__1azgzoh0';","import { ChevronLeftIcon } from \"../icons/chevron-left\";\nimport { ChevronRightIcon } from \"../icons/chevron-right\";\nimport type { PaginationProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Calcula la lista de páginas a mostrar con elipsis alrededor de `page`.\n// Siempre incluye la primera y la última; `…` (unicode) marca los huecos.\ntype Item = number | \"ellipsis\";\n\nfunction buildItems(count: number, page: number, siblingCount: number): Item[] {\n const total = Math.max(1, count);\n const first = 1;\n const last = total;\n const start = Math.max(first + 1, page - siblingCount);\n const end = Math.min(last - 1, page + siblingCount);\n\n const items: Item[] = [first];\n if (start > first + 1) items.push(\"ellipsis\");\n for (let n = start; n <= end; n++) items.push(n);\n if (end < last - 1) items.push(\"ellipsis\");\n if (last > first) items.push(last);\n return items;\n}\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nexport function Pagination({ count, page = 1, onChange, siblingCount = 1 }: PaginationProps) {\n const { root, pageBtnFor, ellipsis, nav } = useStyles();\n const total = Math.max(1, count);\n const current = Math.min(Math.max(1, page), total);\n const items = buildItems(total, current, siblingCount);\n\n const go = (n: number) => onChange?.(Math.min(Math.max(1, n), total));\n\n return (\n <nav className={root} aria-label=\"Pagination\">\n <button\n type=\"button\"\n className={nav}\n aria-label=\"Previous page\"\n disabled={current <= 1}\n onClick={() => go(current - 1)}\n >\n <ChevronLeftIcon size={18} />\n </button>\n {items.map((item, index) =>\n item === \"ellipsis\" ? (\n // biome-ignore lint/suspicious/noArrayIndexKey: ellipsis position is stable per render\n <span key={`ellipsis-${index}`} className={ellipsis}>\n …\n </span>\n ) : (\n <button\n key={item}\n type=\"button\"\n className={pageBtnFor(item === current)}\n aria-current={item === current ? \"page\" : undefined}\n onClick={() => go(item)}\n >\n {item}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={nav}\n aria-label=\"Next page\"\n disabled={current >= total}\n onClick={() => go(current + 1)}\n >\n <ChevronRightIcon size={18} />\n </button>\n </nav>\n );\n}\n","import { Fragment } from \"react\";\nimport { CheckIcon } from \"../icons/check\";\nimport type { StepperProps } from \"./types\";\nimport { type StepState, useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nexport function Stepper({ steps, active = 0, className, ...rest }: StepperProps) {\n const { root, step, connector, markerFor, labelFor } = useStyles({ className });\n\n return (\n <div className={root} {...rest}>\n {steps.map((s, index) => {\n const state: StepState = index < active ? \"done\" : index === active ? \"active\" : \"upcoming\";\n const isActive = state === \"active\";\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: steps are a static, ordered list with no stable id.\n <Fragment key={index}>\n <div className={step} aria-current={isActive ? \"step\" : undefined}>\n <span className={markerFor(state)}>\n {state === \"done\" ? <CheckIcon size={14} /> : index + 1}\n </span>\n <span className={labelFor(isActive)}>{s.label}</span>\n </div>\n {index < steps.length - 1 && <span data-part=\"connector\" className={connector} />}\n </Fragment>\n );\n })}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { StepperProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. La decisión de \"qué clase aplica\" vive acá, no en el JSX.\nexport type StepState = \"done\" | \"active\" | \"upcoming\";\n\nexport function useStyles({ className }: Pick<StepperProps, \"className\">): {\n root: string;\n step: string;\n connector: string;\n markerFor: (state: StepState) => string;\n labelFor: (active: boolean) => string;\n} {\n const { themeClass } = useTheme();\n\n return useMemo(() => {\n const root = [themeClass, styles.root, className].filter(Boolean).join(\" \");\n const markerFor = (state: StepState) =>\n [\n styles.marker,\n state === \"active\" && styles.markerActive,\n state === \"done\" && styles.markerDone,\n ]\n .filter(Boolean)\n .join(\" \");\n const labelFor = (active: boolean) =>\n [styles.label, active && styles.labelActive].filter(Boolean).join(\" \");\n return { root, step: styles.step, connector: styles.connector, markerFor, labelFor };\n }, [themeClass, className]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/stepper/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5WTwXKCMBCG7zzFHsshjqCtNp460_dgYlggGhImCVba6bt3DAZRqdMek2z-799_Z2etRWJdJ9FmRmuXZavXxi1xDl8RQC5sI1lHoZB43EQATIpSEeGwthQ4KodmE31Hs5GKddgEleQfKgAlaygcmHkixDaMI7F1luGiNK1JWHzLqZnZowmk1JM-RO4qCum68ZwKRVm5y3mrTY6GGJaL1gZUfyJFK-VAU_Go_CzaVweJVuJQ3YyrvTsKVkuRj665ltpci6RBIK28wF9j2rXWiaIjXCuHyo2fCq0cKVgtZBdY_qrWSg-0eKi04hMpJGmfzpXForzYy_v-GN-XRrcqp-AMU7ZhBpXzYhKPxFZGqD2F-fSg3rgTBwzjWvhxTWXD-Kmdgb2L76xNVEwB37UacMseN-ogdJkMOvyetB09r-Pfpnkrcm1Gsi3K4OPZ-3gY9MTv6-hepjQeOeBaKeROD7uy8gqnoVFIxnuSnNfkLqe-7Quk9GHUzJRCUZg_XNofs3iL1mIEAAA';\nexport var connector = 'use-styles_connector__79pt4e7';\nexport var label = 'use-styles_label__79pt4e5';\nexport var labelActive = 'use-styles_labelActive__79pt4e6';\nexport var marker = 'use-styles_marker__79pt4e2';\nexport var markerActive = 'use-styles_markerActive__79pt4e3';\nexport var markerDone = 'use-styles_markerDone__79pt4e4';\nexport var root = 'use-styles_root__79pt4e0';\nexport var step = 'use-styles_step__79pt4e1';","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// La decisión de \"qué clase aplica\" (tab activo o no) vive acá, no en el JSX.\nexport function useStyles(): {\n root: string;\n tab: string;\n tabClass: (active: boolean) => string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const root = [themeClass, styles.root].filter(Boolean).join(\" \");\n const tabClass = (active: boolean) =>\n [styles.tab, active && styles.tabActive].filter(Boolean).join(\" \");\n return { root, tab: styles.tab, tabClass };\n }, [themeClass]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/tabs/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMWw0bTd0NDAgewogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiB2YXIoLS1zcGFjZS1sZ19fZTNncnVyMWMpOwogIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci1oYWlyX19lM2dydXIxbykgc29saWQgdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwp9Ci51c2Utc3R5bGVzX3RhYl9fMWw0bTd0NDEgewogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSkgMDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBib3JkZXI6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9fX2UzZ3J1cjIpOwogIGZvbnQtc2l6ZTogMTJweDsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXJfX2UzZ3J1cjF1KTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1mZzNfX2UzZ3J1cjJlKTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tZHVyLWZhc3RfX2UzZ3J1cjIxKSB2YXIoLS1lYXNlLWlua19fZTNncnVyMjQpOwogIG91dGxpbmU6IG5vbmU7Cn0KLnVzZS1zdHlsZXNfdGFiX18xbDRtN3Q0MTpmb2N1cy12aXNpYmxlIHsKICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXNfX2UzZ3J1cjJxKTsKICBvdXRsaW5lLW9mZnNldDogMnB4Owp9Ci51c2Utc3R5bGVzX3RhYkFjdGl2ZV9fMWw0bTd0NDIgewogIGNvbG9yOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc190YWJBY3RpdmVfXzFsNG03dDQyOjphZnRlciB7CiAgY29udGVudDogIiI7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGxlZnQ6IHZhcigtLXNwYWNlLW5vbmVfX2UzZ3J1cjE4KTsKICByaWdodDogdmFyKC0tc3BhY2Utbm9uZV9fZTNncnVyMTgpOwogIGJvdHRvbTogLTFweDsKICBoZWlnaHQ6IDJweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnRfX2UzZ3J1cjJqKTsKfQ';\nexport var root = 'use-styles_root__1l4m7t40';\nexport var tab = 'use-styles_tab__1l4m7t41';\nexport var tabActive = 'use-styles_tabActive__1l4m7t42';","import type { TabsProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Controlado: el tab activo lo determina `value`; al clickear se notifica vía `onChange`.\nexport function Tabs({ items, value, onChange }: TabsProps) {\n const { root, tabClass } = useStyles();\n return (\n <div role=\"tablist\" className={root}>\n {items.map((item) => {\n const active = item.value === value;\n return (\n <button\n key={item.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n className={tabClass(active)}\n onClick={() => onChange?.(item.value)}\n >\n {item.label}\n </button>\n );\n })}\n </div>\n );\n}\n","import {\n type KeyboardEvent,\n type MouseEvent,\n type Ref,\n cloneElement,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { MenuProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Aplica un valor de nodo a un ref (callback o objeto), tolerando null/undefined.\nfunction assignRef<T>(ref: Ref<T> | undefined, value: T | null) {\n if (typeof ref === \"function\") ref(value);\n else if (ref) (ref as { current: T | null }).current = value;\n}\n\n// Presentacional: la lógica de estilos vive en use-styles.ts. Maneja estado real de apertura,\n// clonando el trigger para alternar `open` y cerrando en click-fuera / ESC. Soporta navegación\n// por teclado (flechas, Home/End) y restaura el foco al trigger al cerrar con ESC.\nexport function Menu({ trigger, items }: MenuProps) {\n const { wrapper, list, item, dangerItem } = useStyles();\n const [open, setOpen] = useState(false);\n const rootRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n\n const getMenuItems = () =>\n Array.from(listRef.current?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? []);\n\n const focusItemAt = (index: number) => {\n const menuItems = getMenuItems();\n if (menuItems.length === 0) return;\n const wrapped = (index + menuItems.length) % menuItems.length;\n menuItems[wrapped]?.focus();\n };\n\n const closeAndRestoreFocus = () => {\n setOpen(false);\n triggerRef.current?.focus();\n };\n\n useEffect(() => {\n if (!open) return;\n // Al abrir, enfocar el primer menuitem.\n listRef.current?.querySelector<HTMLButtonElement>('[role=\"menuitem\"]')?.focus();\n\n const onDocMouseDown = (event: globalThis.MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n triggerRef.current?.focus();\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onDocMouseDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n const onMenuKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const menuItems = getMenuItems();\n const current = menuItems.indexOf(document.activeElement as HTMLButtonElement);\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n focusItemAt(current + 1);\n break;\n case \"ArrowUp\":\n event.preventDefault();\n focusItemAt(current - 1);\n break;\n case \"Home\":\n event.preventDefault();\n focusItemAt(0);\n break;\n case \"End\":\n event.preventDefault();\n focusItemAt(menuItems.length - 1);\n break;\n case \"Escape\":\n event.preventDefault();\n closeAndRestoreFocus();\n break;\n case \"Tab\":\n // Dejá que Tab mueva el foco fuera del menú (los items están fuera del tab order);\n // solo cerramos. Sin preventDefault para no bloquear el avance natural.\n setOpen(false);\n break;\n }\n };\n\n const triggerProps = trigger.props as { onClick?: (event: MouseEvent) => void };\n // El consumidor puede haber puesto su propio ref en el trigger: lo mergeamos con el nuestro.\n const consumerRef = (trigger as { ref?: Ref<HTMLElement> }).ref;\n const mergedTriggerRef = (node: HTMLElement | null) => {\n triggerRef.current = node;\n assignRef(consumerRef, node);\n };\n const clonedTrigger = cloneElement(trigger, {\n ref: mergedTriggerRef,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n onClick: (event: MouseEvent) => {\n triggerProps.onClick?.(event);\n setOpen((prev) => !prev);\n },\n } as Partial<typeof trigger.props> & {\n ref: Ref<HTMLElement>;\n \"aria-haspopup\": \"menu\";\n \"aria-expanded\": boolean;\n onClick: (event: MouseEvent) => void;\n });\n\n return (\n <div ref={rootRef} className={wrapper}>\n {clonedTrigger}\n {open && (\n <div ref={listRef} role=\"menu\" className={list} onKeyDown={onMenuKeyDown}>\n {items.map((entry, index) => (\n <button\n // biome-ignore lint/suspicious/noArrayIndexKey: items are a static positional list\n key={index}\n type=\"button\"\n role=\"menuitem\"\n tabIndex={-1}\n className={entry.danger ? dangerItem : item}\n onClick={() => {\n entry.onClick?.();\n setOpen(false);\n }}\n >\n {entry.label}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve.\nexport function useStyles(): {\n wrapper: string;\n list: string;\n item: string;\n dangerItem: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n wrapper: [themeClass, styles.wrapper].filter(Boolean).join(\" \"),\n list: styles.list,\n item: styles.item,\n dangerItem: [styles.item, styles.danger].join(\" \"),\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/menu/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfd3JhcHBlcl9fMXV5eGFqMCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGRpc3BsYXk6IGlubGluZS1mbGV4Owp9Ci51c2Utc3R5bGVzX2xpc3RfXzF1eXhhajEgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBtaW4td2lkdGg6IDE4MHB4OwogIHotaW5kZXg6IDIwOwogIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLXhzX19lM2dydXIxOSk7Cn0KLnVzZS1zdHlsZXNfaXRlbV9fMXV5eGFqMiB7CiAgd2lkdGg6IDEwMCU7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSkgdmFyKC0tc3BhY2UtbWRfX2UzZ3J1cjFiKTsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBib3JkZXI6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRleHRfX2UzZ3J1cjEpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbWFsbC1zaXplX19lM2dydXIxMCk7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2l0ZW1fXzF1eXhhajI6aG92ZXIgewogIGJhY2tncm91bmQ6IHZhcigtLWJnM19fZTNncnVyMmEpOwp9Ci51c2Utc3R5bGVzX2l0ZW1fXzF1eXhhajI6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19kYW5nZXJfXzF1eXhhajMgewogIGNvbG9yOiB2YXIoLS1kYW5nZXJfX2UzZ3J1cjJvKTsKfQ';\nexport var danger = 'use-styles_danger__1uyxaj3';\nexport var item = 'use-styles_item__1uyxaj2';\nexport var list = 'use-styles_list__1uyxaj1 surfaces_panelSurface__6hs0fg1';\nexport var wrapper = 'use-styles_wrapper__1uyxaj0';","import {\n type MouseEvent,\n type KeyboardEvent as ReactKeyboardEvent,\n useEffect,\n useId,\n useRef,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Typography } from \"../typography\";\nimport type { DialogProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Selector de elementos focuseables para el focus trap.\nconst FOCUSABLE =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n//TODO: usa el patrón composable para header/footer (Dialog.Header, Dialog.Footer) y así evitar props opcionales y mejorar la validación de lo que se pasa como children (p.ej. no permitir pasar un nodo cualquiera como header/footer).// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n//TODO: maneja la logica de apertura/cierre y muevelo a un useDialog para separar responsabilidades y facilitar su reutilización en otros componentes (p.ej. Drawer). Maneja cierre por backdrop, ESC, focus trap, restauración de foco y scroll-lock.\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Maneja cierre por backdrop, ESC, focus trap, restauración de foco y scroll-lock.\nexport function Dialog({ open, onClose, title, actions, children }: DialogProps) {\n const { overlay, surface, body, actions: actionsClass } = useStyles();\n const surfaceRef = useRef<HTMLDivElement>(null);\n const previouslyFocused = useRef<HTMLElement | null>(null);\n const generatedId = useId();\n const titleId = title != null ? generatedId : undefined;\n\n useEffect(() => {\n if (!open) return;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") onClose();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [open, onClose]);\n\n // Restauración de foco: guarda el elemento activo al abrir y lo devuelve al cerrar/desmontar.\n useEffect(() => {\n if (!open) return;\n previouslyFocused.current = document.activeElement as HTMLElement | null;\n surfaceRef.current?.focus();\n return () => previouslyFocused.current?.focus?.();\n }, [open]);\n\n // Scroll-lock del body mientras está abierto.\n useEffect(() => {\n if (!open) return;\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = previousOverflow;\n };\n }, [open]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n const stop = (event: MouseEvent<HTMLDivElement>) => event.stopPropagation();\n\n // Focus trap: cicla el foco entre los elementos focuseables del surface.\n const onSurfaceKeyDown = (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Tab\") return;\n const surfaceEl = surfaceRef.current;\n if (!surfaceEl) return;\n const focusable = Array.from(surfaceEl.querySelectorAll<HTMLElement>(FOCUSABLE)).filter(\n (el) => el.offsetParent !== null || el === surfaceEl,\n );\n if (focusable.length === 0) {\n event.preventDefault();\n surfaceEl.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (!first || !last) return;\n const active = document.activeElement;\n if (event.shiftKey) {\n if (active === first || active === surfaceEl) {\n event.preventDefault();\n last.focus();\n }\n } else if (active === last) {\n event.preventDefault();\n first.focus();\n }\n };\n\n return createPortal(\n // biome-ignore lint/a11y/useKeyWithClickEvents: ESC handled by a document keydown listener.\n <div className={overlay} data-testid=\"dialog-overlay\" onClick={onClose}>\n <div\n ref={surfaceRef}\n className={surface}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n tabIndex={-1}\n onClick={stop}\n onKeyDown={onSurfaceKeyDown}\n >\n {title != null && (\n <Typography variant=\"h3\" as=\"h2\" id={titleId}>\n {title}\n </Typography>\n )}\n {children != null && (\n <div className={body}>\n <Typography variant=\"body\" color=\"fg2\">\n {children}\n </Typography>\n </div>\n )}\n {actions != null && <div className={actionsClass}>{actions}</div>}\n </div>\n </div>,\n document.body,\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts`. El componente solo aplica lo que devuelve este hook.\nexport function useStyles(): {\n overlay: string;\n surface: string;\n body: string;\n actions: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n overlay: [themeClass, styles.overlay].filter(Boolean).join(\" \"),\n surface: styles.surface,\n body: styles.body,\n actions: styles.actions,\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/dialog/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfb3ZlcmxheV9fNXRzdHU4MCB7CiAgcG9zaXRpb246IGZpeGVkOwogIGluc2V0OiAwOwogIGJhY2tncm91bmQ6IHZhcigtLXNjcmltX19lM2dydXIycik7CiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHotaW5kZXg6IDUwOwp9Ci51c2Utc3R5bGVzX3N1cmZhY2VfXzV0c3R1ODEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlcjogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKSBzb2xpZCB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnX19lM2dydXIxbCk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgbWF4LXdpZHRoOiA0ODBweDsKICB3aWR0aDogOTAlOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXhsX19lM2dydXIxZCk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdXRsaW5lOiBub25lOwp9Ci51c2Utc3R5bGVzX3N1cmZhY2VfXzV0c3R1ODE6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19ib2R5X181dHN0dTgyIHsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS1tZF9fZTNncnVyMWIpOwp9Ci51c2Utc3R5bGVzX2FjdGlvbnNfXzV0c3R1ODMgewogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICBnYXA6IHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSk7CiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UtbGdfX2UzZ3J1cjFjKTsKfQ';\nexport var actions = 'use-styles_actions__5tstu83';\nexport var body = 'use-styles_body__5tstu82';\nexport var overlay = 'use-styles_overlay__5tstu80';\nexport var surface = 'use-styles_surface__5tstu81';","import { createPortal } from \"react-dom\";\nimport { XIcon } from \"../icons/x\";\nimport type { SnackbarProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Controlado: render `null` si !open; sin auto-timer en v1.\n// Se monta en un portal en document.body para escapar de overflow/stacking del contenedor;\n// el slot raíz lleva la clase de tema (themeClass) para no perder los colores al portalizar.\nexport function Snackbar({ open, message, action, onClose }: SnackbarProps) {\n const { root, message: messageClass, closeBtn } = useStyles();\n if (!open || typeof document === \"undefined\") return null;\n return createPortal(\n <div role=\"status\" className={root}>\n <span className={messageClass}>{message}</span>\n {action}\n {onClose && (\n <button type=\"button\" aria-label=\"Close\" className={closeBtn} onClick={onClose}>\n <XIcon size={18} />\n </button>\n )}\n </div>,\n document.body,\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve.\nexport function useStyles(): {\n root: string;\n message: string;\n closeBtn: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n message: styles.message,\n closeBtn: styles.closeBtn,\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/theme/surfaces.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fNmhzMGZnMCB7CiAgcG9zaXRpb246IGFic29sdXRlOwogIHdpZHRoOiAxcHg7CiAgaGVpZ2h0OiAxcHg7CiAgcGFkZGluZzogMDsKICBtYXJnaW46IC0xcHg7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKICBjbGlwOiByZWN0KDAsIDAsIDAsIDApOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgYm9yZGVyOiAwOwp9Ci5zdXJmYWNlc19wYW5lbFN1cmZhY2VfXzZoczBmZzEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyMl9fZTNncnVyMmgpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQouc3VyZmFjZXNfaW5reVN1cmZhY2VfXzZoczBmZzIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/snackbar/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9faWh6c2VwMCB7CiAgcG9zaXRpb246IGZpeGVkOwogIGJvdHRvbTogdmFyKC0tc3BhY2UteGxfX2UzZ3J1cjFkKTsKICBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IHZhcigtLXNwYWNlLW1kX19lM2dydXIxYik7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtbWRfX2UzZ3J1cjFiKSB2YXIoLS1zcGFjZS1sZ19fZTNncnVyMWMpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgei1pbmRleDogNjA7Cn0KLnVzZS1zdHlsZXNfbWVzc2FnZV9faWh6c2VwMSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGV4dF9fZTNncnVyMSk7CiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtYWxsLXNpemVfX2UzZ3J1cjEwKTsKfQoudXNlLXN0eWxlc19jbG9zZUJ0bl9faWh6c2VwMiB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGJvcmRlcjogbm9uZTsKICBjb2xvcjogdmFyKC0tYmcxX19lM2dydXIyOCk7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tZHVyLWZhc3RfX2UzZ3J1cjIxKSB2YXIoLS1lYXNlLWlua19fZTNncnVyMjQpOwogIG91dGxpbmU6IG5vbmU7Cn0KLnVzZS1zdHlsZXNfY2xvc2VCdG5fX2loenNlcDI6aG92ZXIgewogIG9wYWNpdHk6IDAuNzsKfQoudXNlLXN0eWxlc19jbG9zZUJ0bl9faWh6c2VwMjpmb2N1cy12aXNpYmxlIHsKICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXNfX2UzZ3J1cjJxKTsKICBvdXRsaW5lLW9mZnNldDogMnB4Owp9';\nexport var closeBtn = 'use-styles_closeBtn__ihzsep2';\nexport var message = 'use-styles_message__ihzsep1';\nexport var root = 'use-styles_root__ihzsep0 surfaces_inkySurface__6hs0fg2';","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { TableProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: Pick<TableProps<Record<string, unknown>>, \"className\">): {\n root: string;\n th: string;\n td: string;\n alignRight: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n return { root, th: styles.th, td: styles.td, alignRight: styles.alignRight };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/table/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMW4yY3o2aTAgewogIHdpZHRoOiAxMDAlOwogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGV4dF9fZTNncnVyMSk7Cn0KLnVzZS1zdHlsZXNfdGhfXzFuMmN6NmkxIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtZXllYnJvdy1zaXplX19lM2dydXI0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXN0X19lM2dydXIxdik7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tZmczX19lM2dydXIyZSk7CiAgdGV4dC1hbGlnbjogbGVmdDsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zbV9fZTNncnVyMWEpIHZhcigtLXNwYWNlLW1kX19lM2dydXIxYik7CiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXJ1bGVfX2UzZ3J1cjFwKSBzb2xpZCB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoudXNlLXN0eWxlc190ZF9fMW4yY3o2aTIgewogIHBhZGRpbmc6IHZhcigtLXNwYWNlLW1kX19lM2dydXIxYik7CiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKSBzb2xpZCB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbWFsbC1zaXplX19lM2dydXIxMCk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoudXNlLXN0eWxlc19hbGlnblJpZ2h0X18xbjJjejZpMyB7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0';\nexport var alignRight = 'use-styles_alignRight__1n2cz6i3';\nexport var root = 'use-styles_root__1n2cz6i0';\nexport var td = 'use-styles_td__1n2cz6i2';\nexport var th = 'use-styles_th__1n2cz6i1';","import type { TableColumn, TableProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Genérico sobre `Row`; reenvía las props nativas de <table>.\nexport function Table<Row extends Record<string, unknown>>({\n columns,\n rows,\n getRowKey,\n className,\n ...rest\n}: TableProps<Row>) {\n const { root, th, td, alignRight } = useStyles({ className });\n const headClass = (column: TableColumn<Row>) =>\n column.align === \"right\" ? `${th} ${alignRight}` : th;\n const cellClass = (column: TableColumn<Row>) =>\n column.align === \"right\" ? `${td} ${alignRight}` : td;\n return (\n <table className={root} {...rest}>\n <thead>\n <tr>\n {columns.map((column) => (\n <th key={column.key} className={headClass(column)}>\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, index) => (\n <tr key={getRowKey ? getRowKey(row, index) : index}>\n {columns.map((column) => (\n <td key={column.key} className={cellClass(column)}>\n {column.render ? column.render(row) : String(row[column.key])}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AppBarProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: Pick<AppBarProps, \"className\">): {\n root: string;\n brand: string;\n actions: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n return { root, brand: styles.brand, actions: styles.actions };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/app-bar/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMWgxMzNuaDAgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgZ2FwOiB2YXIoLS1zcGFjZS1sZ19fZTNncnVyMWMpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLW1kX19lM2dydXIxYikgdmFyKC0tc3BhY2UtbGdfX2UzZ3J1cjFjKTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pIHNvbGlkIHZhcigtLWJvcmRlcjFfX2UzZ3J1cjJnKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9Ci51c2Utc3R5bGVzX2JyYW5kX18xaDEzM25oMSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheV9fZTNncnVyMCk7Cn0KLnVzZS1zdHlsZXNfYWN0aW9uc19fMWgxMzNuaDIgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IHZhcigtLXNwYWNlLXNtX19lM2dydXIxYSk7Cn0';\nexport var actions = 'use-styles_actions__1h133nh2';\nexport var brand = 'use-styles_brand__1h133nh1';\nexport var root = 'use-styles_root__1h133nh0';","import type { AppBarProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; brand/actions/children son nodos que provee el consumidor.\nexport function AppBar({ brand, actions, className, children, ...rest }: AppBarProps) {\n const styles = useStyles({ className });\n return (\n <header className={styles.root} {...rest}>\n {brand !== undefined ? <div className={styles.brand}>{brand}</div> : null}\n {children}\n {actions !== undefined ? <div className={styles.actions}>{actions}</div> : null}\n </header>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ListItemProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n selected,\n className,\n}: { [K in \"selected\" | \"className\"]?: ListItemProps[K] | undefined }): {\n root: string;\n leading: string;\n content: string;\n trailing: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [themeClass, styles.root, selected && styles.selected, className].filter(Boolean).join(\" \"),\n [themeClass, selected, className],\n );\n return { root, leading: styles.leading, content: styles.content, trailing: styles.trailing };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-2ZS3PjNhaF9_0r7pQX7k6RKgB8CtkM9epk0ZlUnFm7IAqS2OZDDVK226n-71OgxAdAiFK8nIpluew6B8BH8uDy0qKiKCr46wOAbW-LvLI3SXlI2ffHR-7sxFEgCveLL_DARbKFxUm7t-D-zyTjJfzGX-CPImP5vQWltPzcTVTx16qZBVO4_42_lIKzDRf3FnzmhdglbDgqK_KiGUUo3P86-wK_p_wVvhR5IRd-WMnf7D_47pgyOZUcUR5YzHuzrFMWPzXTOBTu_5snW8GeqqP4wnbHvEqYnOuz4Pkbh89FlZTxXj0GiW_z73wtihe7TN54M51LAU38qSt4ZnCmSc5_4clu3x67RwFPiMH6oth8Ch5Cphl5VXHxcGBxku8adyAhsKsgnK-cAhtS8Ca-MPqGqFOJijyDV2VlFHyFtZ3SxLqmYKMJwgrEHiucMQUymQrdMkTcDBD3WKPjOp2cyAS2NYIRBWwnwbDQLUOwvX6Z90TjSgZcxMz1lYJicxSiJ7mQ5zsak2NgSgdMjsaU6amT85iYco3JVZiKeiFPQ3INSIcBkqshfRucJteMJFSkdbFRs19S0C5cbRkyVZIp0H0q1ZGCiwbLGbmeVa6Us43C9WI6WbVriPaqo9U-Fe27jnaay4T2pqKVGUtThQ0jWVimGtzJN6TDuM7iwKnyYaIDnuczEWJHRYzZoUqKXIWsS3DoaFugsRo4PZ2z8Wqkvk7azmlkraswaqtwfRey8yLvSMP2aE7ia9lKUzm4F4OTocxaA5MGXc82rb6WeqAb0g4v7m-A8_ppq9aVVB9NegZOgWiy05O3FBxNdnvyjoKryV5P3lPobkuCbZJjqZ65hAI6vCp679x8peBoau_MPFHwNLV3WlIKoaauWdmtnFFwNX17TDv0nMJ0Om0c60JsuLD3LBGtQ5ZDTRfHtFuhLoKePgNnz23bhb9RII2hEix-SvKdXSlhFfrtq7HlhchYx1t2O6pxvCSbjqZSU6yYumM61h2H0VR2TM9qX3LaXnaqcL9QcJpNdjaIUzfXWl57-_BsyfgmOXYB-N67cZ0dJc-SdZF2MXjr3UnOnr5OEIWg0TdHYW9ZdyREljaCsrKT-yEhhAJBilymxUsrOxQcv5U5K7md5G1HSlwK8XGdxPaavyVcfEQTYgGqv_Gn85bZs43sPNtDJh4FJHMFCMRuzT4SZOHAwq6FJshXR3V7gfhyFDm8AkaHV7Ddw-tgNCHq6G6vkKBeUw535A-7nkQf77iffv7w4wPtPUqsd7idI6RwtwpXwco9531HWm0qtfqr0ZxWYxTulovlbOk32q95ybsrtJa6u8SL6Nz599aMKdxhDzto1WjdmhsKd-7U9V3UaN2anMJdOAuDYNlo_8mjOOZ5t-xWP5x6-3ZL7-j5BGEL8NQC7FlyTzTn-GTvaPZGO_EV-0Mliu6-QxLjmNA7j2Eq8FcKd8EML_GyL_9SPHe7mzxRuPMd7GO_73kott006XlRTBwLHHR6owlG51WLLt4ZhTtn6c2d85V5YSJvxVye4siPGpwNy3c9kkKjTfJt90B4oHBHli7xguZhLz62d1TyTRtaxiLpto-gbXABBxZgV-J7Xp3dSbXnGX-sf5aPVZJX7FGpWqT8J9n_JPv_JNkbJrpDulSyMUJLNDMHG0fYx9gcbBQgv3lANwWbELxoLoYe7BVZLpbEHOxZEK2mK3Owg2mAvdV4sHtTXwy2SywgTmABIX4dAedatvURN8ZbHxaiywmfESdq8nYp4fO5G7nR9YQHoQXe-Y0m2DcnPFhFOAgvJHweRMi9nPA56UgGCfeXUzJzLyW8fxDmhAcW-BbUNcG_HO-SHxLWjj1eyPdyuljMLxVuspwuPHO-F_P5IppfzveCzNF0Zs43iQjCjjnfXuRGjmPOdxgFoRdey3eHfCHfMnUOOVXW3tW_FG7V7pBbkq2OCclI4Y7IEpPxWHsrgtH0hsJNLHB9C3Co3JG0WLuRF5HlOwt3j3YQa2fuLkcKd2-oOdbqSRsp3HGRV6L_lPJ8qStROo_bu5IVka-RriSSL3O4Uf1lDreqqeEmM_kaD3cfeRhuZXpDmg36ML6KyZDXoTzMa_9QRvKKmoc9NEGhOav91QZZ7YuGrIazTh5kVbkSg6z2VXNWe-xBndN_yydzBh8Pgm-5KO24SAthl7HMLQXZanyqQ9o9Ho53G-P9xnjHcb3nGO86xvuO8c7jpt7jPd3He_qPd3cgV3uQ27qQd_Uho53IlV7kajdypR-51pHc3pMA_DDuilPlppAVgt-yI7qaN17Ex8v49UI-XsrHi_l4Ob-poF8v6deL-o1l_Wphv620_-3iPlrerxT4qyX-SpG_VuZvLvTmWAu-OcZ8Y2eF_JiEwunvU7x_suAnStd8Wwhe_8q2FRfnvFeC5WVSf7ayOQp2Gi3_m52V8K8kOxSiYnl1ImR5krG_a00qfvLacXHM5Ud8mvnHhx__AxO8sb_9IAAA';\nimport 'src/components/list-item/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fa2JyZXExMCB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogdmFyKC0tc3BhY2UtbWRfX2UzZ3J1cjFiKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1tZF9fZTNncnVyMWIpIHZhcigtLXNwYWNlLWxnX19lM2dydXIxYyk7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZHVyLWZhc3RfX2UzZ3J1cjIxKSB2YXIoLS1lYXNlLWlua19fZTNncnVyMjQpOwp9Ci51c2Utc3R5bGVzX3Jvb3RfX2ticmVxMTA6aG92ZXIgewogIGJhY2tncm91bmQ6IHZhcigtLWJnM19fZTNncnVyMmEpOwp9Ci51c2Utc3R5bGVzX3NlbGVjdGVkX19rYnJlcTExIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzNfX2UzZ3J1cjJhKTsKICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9Ci51c2Utc3R5bGVzX2xlYWRpbmdfX2ticmVxMTIgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoudXNlLXN0eWxlc19jb250ZW50X19rYnJlcTEzIHsKICBmbGV4OiAxOwp9Ci51c2Utc3R5bGVzX3RyYWlsaW5nX19rYnJlcTE0IHsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0';\nexport var content = 'use-styles_content__kbreq13';\nexport var leading = 'use-styles_leading__kbreq12';\nexport var root = 'use-styles_root__kbreq10';\nexport var selected = 'use-styles_selected__kbreq11';\nexport var trailing = 'use-styles_trailing__kbreq14';","import type { ListItemProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; leading/trailing son nodos que provee el consumidor.\nexport function ListItem({\n leading,\n trailing,\n selected,\n className,\n children,\n ...rest\n}: ListItemProps) {\n const styles = useStyles({ selected, className });\n return (\n <div className={styles.root} {...rest}>\n {leading != null && <span className={styles.leading}>{leading}</span>}\n <span className={styles.content}>{children}</span>\n {trailing != null && <span className={styles.trailing}>{trailing}</span>}\n </div>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function ChevronUpIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function SearchIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function PlusIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function MinusIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function MoreHorizontalIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n"],"mappings":"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","names":["useMemo","useEffect","useState","useState","useEffect","variant","color","align","useMemo","jsx","variant","color","align","text","useMemo","variant","tone","useStyles","size","full","useMemo","jsx","variant","tone","size","full","useStyles","useMemo","root","useStyles","vertical","root","useMemo","jsx","jsxs","vertical","label","root","line","useStyles","useMemo","root","size","useStyles","size","root","useMemo","jsx","size","root","useStyles","useMemo","root","tone","useStyles","tone","root","useMemo","dot","jsx","jsxs","tone","root","dot","useStyles","useMemo","useStyles","variant","indeterminate","useMemo","root","jsx","variant","size","track","bar","spinner","useStyles","indeterminate","jsx","jsxs","size","useMemo","root","tone","useStyles","selected","tone","clickable","root","useMemo","jsx","jsxs","selected","tone","clickable","root","deleteBtn","useStyles","jsx","size","useMemo","root","useStyles","disabled","root","useMemo","box","jsx","jsxs","label","disabled","root","input","box","check","useStyles","useMemo","disabled","dot","input","label","root","useStyles","disabled","root","useMemo","input","dot","label","jsx","jsxs","label","disabled","root","input","circle","dot","useStyles","useMemo","input","label","root","track","useStyles","useMemo","root","input","track","label","jsx","jsxs","label","disabled","root","input","track","knob","useStyles","useMemo","input","root","useStyles","useMemo","root","labelText","input","helpText","jsx","jsxs","label","trailing","useStyles","jsx","label","useState","jsx","jsxs","size","jsx","jsxs","size","useMemo","useStyles","useMemo","jsx","label","useState","useStyles","useMemo","useState","jsx","label","useState","useMemo","useMemo","root","useStyles","active","tone","root","useMemo","jsx","active","tone","root","useStyles","useMemo","root","useStyles","root","useMemo","jsx","root","useStyles","header","body","footer","jsx","jsxs","size","jsx","jsxs","size","jsx","jsxs","size","jsx","jsxs","size","useMemo","root","useStyles","severity","root","useMemo","jsx","jsxs","severity","useStyles","useId","useState","useMemo","useStyles","placement","wrapper","useMemo","bubble","jsx","jsxs","label","placement","useState","useId","wrapper","bubble","useStyles","trigger","useEffect","useId","useRef","useState","jsx","size","useMemo","label","root","useStyles","useMemo","chevron","root","label","selected","active","jsx","jsxs","placeholder","label","disabled","useState","useRef","useId","root","trigger","chevron","menu","useStyles","useEffect","selected","option","current","useMemo","input","label","root","track","wrapper","useStyles","useMemo","root","wrapper","label","track","input","jsx","jsxs","step","disabled","label","wrapper","root","track","range","thumb","input","useStyles","useState","useMemo","chevron","chevronOpen","header","root","useStyles","useMemo","root","header","chevron","chevronOpen","jsx","jsxs","useState","root","item","header","panel","useStyles","current","jsx","size","useMemo","root","useStyles","root","useMemo","jsx","jsxs","root","crumb","current","separator","useStyles","item","jsx","size","useMemo","root","useStyles","useMemo","root","active","jsx","jsxs","root","ellipsis","nav","useStyles","current","item","Fragment","useMemo","label","root","useStyles","useMemo","root","active","label","jsx","jsxs","active","root","step","connector","useStyles","Fragment","useMemo","root","useStyles","useMemo","root","active","jsx","root","useStyles","item","active","cloneElement","useEffect","useRef","useState","useMemo","item","wrapper","useStyles","useMemo","wrapper","item","jsx","jsxs","trigger","wrapper","list","item","useStyles","useState","useRef","useEffect","current","cloneElement","useEffect","useId","useRef","useMemo","body","useStyles","useMemo","body","jsx","jsxs","actions","overlay","surface","body","useStyles","useRef","useId","useEffect","active","createPortal","useMemo","root","useStyles","useMemo","root","jsx","jsxs","message","root","closeBtn","useStyles","createPortal","useMemo","root","useStyles","root","useMemo","jsx","jsxs","root","th","td","alignRight","useStyles","useMemo","actions","root","useStyles","root","useMemo","actions","jsx","jsxs","brand","actions","useStyles","useMemo","content","root","selected","useStyles","selected","root","useMemo","content","jsx","jsxs","leading","trailing","selected","useStyles","jsx","size","jsx","jsxs","size","jsx","jsxs","size","jsx","size","jsx","jsxs","size"]}
|
|
1
|
+
{"version":3,"sources":["../src/theme/theme.css.ts","../src/hooks/use-previous/index.ts","../src/hooks/use-toggle/index.ts","../src/theme/styles/sprinkles/index.css.ts","../src/components/container/use-styles.ts","../src/components/container/index.tsx","../src/components/typography/use-styles.ts","../src/theme/context/theme-context.tsx","../src/theme/typography.css.ts","../src/components/typography/use-styles.css.ts","../src/components/typography/index.tsx","../src/components/button/use-styles.ts","../src/components/button/use-styles.css.ts","../src/components/button/index.tsx","../src/components/divider/use-styles.ts","../src/components/divider/use-styles.css.ts","../src/components/divider/index.tsx","../src/components/avatar/use-styles.ts","../src/components/avatar/use-styles.css.ts","../src/components/avatar/index.tsx","../src/components/badge/use-styles.ts","../src/components/badge/use-styles.css.ts","../src/components/badge/index.tsx","../src/components/progress/use-styles.ts","../src/components/progress/use-styles.css.ts","../src/components/progress/index.tsx","../src/components/icons/x/index.tsx","../src/components/chip/use-styles.ts","../src/components/chip/use-styles.css.ts","../src/components/chip/index.tsx","../src/components/icons/check/index.tsx","../src/components/checkbox/use-styles.ts","../src/components/checkbox/use-styles.css.ts","../src/components/checkbox/index.tsx","../src/components/radio/use-styles.ts","../src/components/radio/use-styles.css.ts","../src/components/radio/index.tsx","../src/components/switch/use-styles.ts","../src/components/switch/use-styles.css.ts","../src/components/switch/index.tsx","../src/components/base-field/index.tsx","../src/components/base-field/use-styles.ts","../src/components/base-field/use-styles.css.ts","../src/components/text-field/index.tsx","../src/components/password-field/index.tsx","../src/components/icons/eye/index.tsx","../src/components/icons/eye-off/index.tsx","../src/components/password-field/use-styles.ts","../src/components/password-field/use-styles.css.ts","../src/components/money-field/index.tsx","../src/components/icon-button/use-styles.ts","../src/components/icon-button/use-styles.css.ts","../src/components/icon-button/index.tsx","../src/components/card/use-styles.ts","../src/components/card/use-styles.css.ts","../src/components/card/index.tsx","../src/components/icons/circle-check/index.tsx","../src/components/icons/circle-x/index.tsx","../src/components/icons/info/index.tsx","../src/components/icons/triangle-alert/index.tsx","../src/components/alert/use-styles.ts","../src/components/alert/use-styles.css.ts","../src/components/alert/index.tsx","../src/components/tooltip/index.tsx","../src/components/tooltip/use-styles.ts","../src/components/tooltip/use-styles.css.ts","../src/components/select/index.tsx","../src/components/icons/chevron-down/index.tsx","../src/components/select/use-styles.ts","../src/components/select/use-styles.css.ts","../src/components/slider/use-styles.ts","../src/components/slider/use-styles.css.ts","../src/components/slider/index.tsx","../src/components/accordion/index.tsx","../src/components/accordion/use-styles.ts","../src/components/accordion/use-styles.css.ts","../src/components/breadcrumbs/index.tsx","../src/components/icons/chevron-right/index.tsx","../src/components/breadcrumbs/use-styles.ts","../src/components/breadcrumbs/use-styles.css.ts","../src/components/icons/chevron-left/index.tsx","../src/components/pagination/use-styles.ts","../src/components/pagination/use-styles.css.ts","../src/components/pagination/index.tsx","../src/components/stepper/index.tsx","../src/components/stepper/use-styles.ts","../src/components/stepper/use-styles.css.ts","../src/components/tabs/use-styles.ts","../src/components/tabs/use-styles.css.ts","../src/components/tabs/index.tsx","../src/components/menu/index.tsx","../src/components/menu/use-styles.ts","../src/components/menu/use-styles.css.ts","../src/components/dialog/index.tsx","../src/components/dialog/use-styles.ts","../src/components/dialog/use-styles.css.ts","../src/components/snackbar/index.tsx","../src/components/snackbar/use-styles.ts","../src/components/snackbar/use-styles.css.ts","../src/components/table/use-styles.ts","../src/components/table/use-styles.css.ts","../src/components/table/index.tsx","../src/components/app-bar/use-styles.ts","../src/components/app-bar/use-styles.css.ts","../src/components/app-bar/index.tsx","../src/components/list-item/use-styles.ts","../src/components/list-item/use-styles.css.ts","../src/components/list-item/index.tsx","../src/components/icons/chevron-up/index.tsx","../src/components/icons/search/index.tsx","../src/components/icons/plus/index.tsx","../src/components/icons/minus/index.tsx","../src/components/icons/more-horizontal/index.tsx"],"sourcesContent":["import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nexport var colorVars = {bg1:'var(--bg1__e3grur28)',bg2:'var(--bg2__e3grur29)',bg3:'var(--bg3__e3grur2a)',bgInset:'var(--bgInset__e3grur2b)',fg1:'var(--fg1__e3grur2c)',fg2:'var(--fg2__e3grur2d)',fg3:'var(--fg3__e3grur2e)',fgOnAccent:'var(--fgOnAccent__e3grur2f)',border1:'var(--border1__e3grur2g)',border2:'var(--border2__e3grur2h)',borderStrong:'var(--borderStrong__e3grur2i)',accent:'var(--accent__e3grur2j)',accentHover:'var(--accentHover__e3grur2k)',accentSoft:'var(--accentSoft__e3grur2l)',ok:'var(--ok__e3grur2m)',warn:'var(--warn__e3grur2n)',danger:'var(--danger__e3grur2o)',info:'var(--info__e3grur2p)',focus:'var(--focus__e3grur2q)',scrim:'var(--scrim__e3grur2r)'};\nexport var modeNames = ['light','dark','sepia','contrast'];\nexport var schemaNames = ['tinta'];\nexport var themes = {tinta:{light:'theme_themes_tinta_light__e3grur2s',dark:'theme_themes_tinta_dark__e3grur2t',sepia:'theme_themes_tinta_sepia__e3grur2u',contrast:'theme_themes_tinta_contrast__e3grur2v'}};\nexport var vars = {font:{display:'var(--font-display__e3grur0)',text:'var(--font-text__e3grur1)',mono:'var(--font-mono__e3grur2)',black:'var(--font-black__e3grur3)'},text:{eyebrow:{size:'var(--text-eyebrow-size__e3grur4)',lineHeight:'var(--text-eyebrow-lineHeight__e3grur5)',weight:'var(--text-eyebrow-weight__e3grur6)',letterSpacing:'var(--text-eyebrow-letterSpacing__e3grur7)'},display:{size:'var(--text-display-size__e3grur8)',lineHeight:'var(--text-display-lineHeight__e3grur9)',weight:'var(--text-display-weight__e3grura)',letterSpacing:'var(--text-display-letterSpacing__e3grurb)'},h1:{size:'var(--text-h1-size__e3grurc)',lineHeight:'var(--text-h1-lineHeight__e3grurd)',weight:'var(--text-h1-weight__e3grure)',letterSpacing:'var(--text-h1-letterSpacing__e3grurf)'},h2:{size:'var(--text-h2-size__e3grurg)',lineHeight:'var(--text-h2-lineHeight__e3grurh)',weight:'var(--text-h2-weight__e3gruri)',letterSpacing:'var(--text-h2-letterSpacing__e3grurj)'},h3:{size:'var(--text-h3-size__e3grurk)',lineHeight:'var(--text-h3-lineHeight__e3grurl)',weight:'var(--text-h3-weight__e3grurm)',letterSpacing:'var(--text-h3-letterSpacing__e3grurn)'},h4:{size:'var(--text-h4-size__e3gruro)',lineHeight:'var(--text-h4-lineHeight__e3grurp)',weight:'var(--text-h4-weight__e3grurq)',letterSpacing:'var(--text-h4-letterSpacing__e3grurr)'},body:{size:'var(--text-body-size__e3grurs)',lineHeight:'var(--text-body-lineHeight__e3grurt)',weight:'var(--text-body-weight__e3gruru)',letterSpacing:'var(--text-body-letterSpacing__e3grurv)'},lead:{size:'var(--text-lead-size__e3grurw)',lineHeight:'var(--text-lead-lineHeight__e3grurx)',weight:'var(--text-lead-weight__e3grury)',letterSpacing:'var(--text-lead-letterSpacing__e3grurz)'},small:{size:'var(--text-small-size__e3grur10)',lineHeight:'var(--text-small-lineHeight__e3grur11)',weight:'var(--text-small-weight__e3grur12)',letterSpacing:'var(--text-small-letterSpacing__e3grur13)'},caption:{size:'var(--text-caption-size__e3grur14)',lineHeight:'var(--text-caption-lineHeight__e3grur15)',weight:'var(--text-caption-weight__e3grur16)',letterSpacing:'var(--text-caption-letterSpacing__e3grur17)'}},space:{s0:'var(--space-s0__e3grur18)',s1:'var(--space-s1__e3grur19)',s2:'var(--space-s2__e3grur1a)',s3:'var(--space-s3__e3grur1b)',s4:'var(--space-s4__e3grur1c)',s5:'var(--space-s5__e3grur1d)',s6:'var(--space-s6__e3grur1e)',s7:'var(--space-s7__e3grur1f)',s8:'var(--space-s8__e3grur1g)',s9:'var(--space-s9__e3grur1h)'},radius:{none:'var(--radius-none__e3grur1i)',sm:'var(--radius-sm__e3grur1j)',md:'var(--radius-md__e3grur1k)',lg:'var(--radius-lg__e3grur1l)',base:'var(--radius-base__e3grur1m)',full:'var(--radius-full__e3grur1n)'},border:{hair:'var(--border-hair__e3grur1o)',rule:'var(--border-rule__e3grur1p)',heavy:'var(--border-heavy__e3grur1q)'},tracking:{tight:'var(--tracking-tight__e3grur1r)',normal:'var(--tracking-normal__e3grur1s)',wide:'var(--tracking-wide__e3grur1t)',wider:'var(--tracking-wider__e3grur1u)',widest:'var(--tracking-widest__e3grur1v)'},weight:{light:'var(--weight-light__e3grur1w)',regular:'var(--weight-regular__e3grur1x)',medium:'var(--weight-medium__e3grur1y)',semibold:'var(--weight-semibold__e3grur1z)',bold:'var(--weight-bold__e3grur20)'},dur:{fast:'var(--dur-fast__e3grur21)',base:'var(--dur-base__e3grur22)',slow:'var(--dur-slow__e3grur23)'},ease:{ink:'var(--ease-ink__e3grur24)'},shadow:{sm:'var(--shadow-sm__e3grur25)',md:'var(--shadow-md__e3grur26)',lg:'var(--shadow-lg__e3grur27)'},color:colorVars};","import { useEffect, useRef } from \"react\";\n\n// Devuelve el valor que tuvo `value` en el render anterior.\n// En el primer render devuelve `initial` (por defecto `undefined`).\nexport function usePrevious<T>(value: T, initial: T): T;\nexport function usePrevious<T>(value: T, initial?: T): T | undefined;\nexport function usePrevious<T>(value: T, initial?: T): T | undefined {\n const ref = useRef<T | undefined>(initial);\n\n useEffect(() => {\n ref.current = value;\n }, [value]);\n\n return ref.current;\n}\n","import { useCallback, useState } from \"react\";\n\n// Ejemplo de hook — reemplazá por los de tu librería.\nexport function useToggle(\n initial = false,\n): readonly [boolean, () => void, (value: boolean) => void] {\n const [on, setOn] = useState(initial);\n const toggle = useCallback(() => setOn((value) => !value), []);\n return [on, toggle, setOn] as const;\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/sprinkles/index.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5Xay27jNhQG4P08RZbtwoPo4tt01QvQDlCgwEyBLg1ZlmXFsuRIsh2n6LsXEslDUhTPH68GHR19ETjnJ3mCfm7PTVEdy6zdnJPdrqjyTfu82bwesrTZPT_9--npSf79l6dr0vwwm7XnJM1mfVEW5c2lCVY__vTpv0-fJ6BAQQEDBQStvVCooJCBQoISLxQpKGKgiKCtF4oVFDNQTFDqheYKmjPQnKCdF1ooaMFAC4IyL7RU0JKBlgTtvdBKQSsGWhGUe6G1gtYMtCbo4IH-rs9GcyemNevq88MNPnjU41vg4T4fPGr1FHi43QePOn4HPNz1g0eNnwEPN__gUf_vgYczMHgUgxx4OAqDR2k4AA8nYvAoFAXwcDAGj7LxAjycj29FfuiMhBwtsemfPpwRaVJKSmjinEiTknKCJs6KNCktFTRxXqRJiamhiTMjTUrNGZo4N9Kk5LxCE2dHmpSeBpo4P9KkBLXQxBmSJqWogybO0S9119UnI0gXC90Ojx9OklIpSles4iwplcJ0wypOk1IpTm9YxXlSKgXqjlWcKKVSpN6xijOlVApV8IxZHCvFUq6CALM4WYqlaAUhZnG4FEvpCiLM4nz9me3NYyqwruCzMts_fkwJUs8rc0TiZAmSchUsEIljJUgKVbBEJM6UIClRwQqROFCCpDgFa0TiNAlSZylBJE6SIHWOtojEKRKkzlCKSJwgQer87BDJpOeUNHlR2UNQIG7x4tFjQ5DB6dzseY5JjcHpzOQ8xyTG4HReDjzHpMXgdFYKnmOSYnA6Jy88x6TE4HRGjjzHJMTgdD5KnmPSYXA6GyeeY5JhcDoXFc_BVIxHn6A2wQdHH4vU2TgjEqZjPPgEr4iECRnPPUGDSJiS8dgTtIiESRlPPUGHSJiW8dATXBAJEzOeeYIrImFqxiNPcEMkTM544gneEAnT4ww8wd00Hx14bFQH6B2iMEHOuBM-QxRmyJl2wgCiMEXOsBOGEIU5cmadMIIoTJIz6oQxRGGWnEEnnEMUpskZc8IFRGGenCEnXEIUJmo04oQrk3xswjFBylK4BiBM0mi8CRMAwhSNhptwC0CYoNFoE6YAhOkZDTbhDoAwOaOxJswACFMzGmrCPQBhYkYjTZgDEKZlNNCEBwAySckTc5IJxW08Tx4YYQZBZ-LFIzBZGAQdgqNHYJp_EHTXlx6B6fZB0G1-8ghMew-C7uvKIzD9PAi6kWuPwDTwIOjOPXsEpmMHQbfqq0dgWnQQdG82HoHpyaa-_W63pbj8NvVt9lBrKkh3Z8dATIcqSDfphYGYRlWQ7tUrAzH9qiDdsjcGYtpWQbpz3xiI6V4F6Qa-MxDTxArSffzOQEwvK4jaOXpmIKalFURdHQUMxHR2WpeXU2U3dySupOLRY_1tcNTiUcRzTJcbHDV6FPMc0-sGp_-PkTnPMR1vcNT00YLnmL43OGr9aMlzTPcbHAUgWvEckwGDoxhEa55jkmBwOgwJzzF5MDgdiS3PManYJukxb-pLtdtsc93I4qqpHypwqBFW6ETCsnQX77wWNXDo5MGydAtnXou6N3TCYFlfqzbryNt7PVknTScRhrk31i33eHtj3Zw4WJZet4PX0uvmZMGy9LoVXkuvmxMEy_qr-jlNs0ov3YuX1KVSdjJh_ovUzS5r9Aoeff8iqk6aTjAcU69kyZp6Ndl0DLXfu6aucoJPLKyKpV4wemKvbeVxE3tdX6D4R33NGmJrlpW10j5C-3u91198ZmlRKuWSkesjia8esS-R0omRbklTkdV4LFEktYrRdkmVGwvZejxVJsWaEYtqX5PXeTxRJLUzl886vbTEXXzRFFXSe2W8Nm2KE3lXjyerpNdMHFV1Yx0rN3VO1c2HThQl6Ci_TQnMOaIEvRXepwTm9FCCfXC8TyngzBCScVzEz67CnhRKoPWIgymBOR-UQOsRh1MCcyooYXwgxNEUhM8Cub72MRDHE-uLTgBT0is090nMvm9K9pYfL3wc2u2FaW_08dLV0B5vOtb2Hq98GNjZTdHc1OO1D-T3c-HprTxOXIfbxcX75gYeb12B37uFYW_bceoqaMcWjrlZxztX4fdpmRhzi46zibDwu7NQrI053rsK2JNFr35LdsWl3VR1lZElr67D81kzFChT_NdMlMtJwr3NmHKrv_EA3Za-N3BvNKZ62pFaQLUvlqp7lzHVUof7BaolJTxw7zGmuk1avbZH6IpyKbv3GlPeX8qS5BLKolzKTk52RXsuk_tmW9apDqy418pnX56Gh54Xi6osqmxmv1_Z75s1HmZfZm_0em2_3j_jf7r19nnyhzNI3hS6sV7tt_tnntes9DT2a_2z0Wv9B_xWNFnaFXXV_1qL3hW3yf75bKcKvvS_4GIFMe0T0k0iogh9yazJrllj9OvF90Wq8gNf5qBX5gs9blIWefW1y07iR8zaLmn08SRuk0PNrOiLRKuIKr_UH2DGofDmKqICfEtW6aa5e74kq8bNYyht12RdeiDk3UVkid_ot42-vRUyf3YRVTNSXi5tV-zvv9ZV19833PWdi7ulrJulopBZ45For_M8nNYm13rq24z1nkfMl7lrPtLEL8W2WXfLMsrPPJ4mreKPuIkYoBQ751hR-xE1u2ZVeSd1wamidiKh_zTJeVPVt_4PJS11KPu_73eu_k_f29a7q_G78s3_ASmdBDGTOQAA';\nimport { createSprinkles as _ad221 } from '@vanilla-extract/sprinkles/createRuntimeSprinkles';\nexport var sprinkles = _ad221({conditions:undefined,styles:{p:{mappings:['padding']},px:{mappings:['paddingLeft','paddingRight']},py:{mappings:['paddingTop','paddingBottom']},pt:{mappings:['paddingTop']},pr:{mappings:['paddingRight']},pb:{mappings:['paddingBottom']},pl:{mappings:['paddingLeft']},m:{mappings:['marginTop','marginRight','marginBottom','marginLeft']},mx:{mappings:['marginLeft','marginRight']},my:{mappings:['marginTop','marginBottom']},mt:{mappings:['marginTop']},mr:{mappings:['marginRight']},mb:{mappings:['marginBottom']},ml:{mappings:['marginLeft']},bg:{mappings:['background']},radius:{mappings:['borderRadius']},padding:{values:{s0:{defaultClass:'sprinkles_padding_s0__qhecrd0'},s1:{defaultClass:'sprinkles_padding_s1__qhecrd1'},s2:{defaultClass:'sprinkles_padding_s2__qhecrd2'},s3:{defaultClass:'sprinkles_padding_s3__qhecrd3'},s4:{defaultClass:'sprinkles_padding_s4__qhecrd4'},s5:{defaultClass:'sprinkles_padding_s5__qhecrd5'},s6:{defaultClass:'sprinkles_padding_s6__qhecrd6'},s7:{defaultClass:'sprinkles_padding_s7__qhecrd7'},s8:{defaultClass:'sprinkles_padding_s8__qhecrd8'},s9:{defaultClass:'sprinkles_padding_s9__qhecrd9'}}},paddingTop:{values:{s0:{defaultClass:'sprinkles_paddingTop_s0__qhecrda'},s1:{defaultClass:'sprinkles_paddingTop_s1__qhecrdb'},s2:{defaultClass:'sprinkles_paddingTop_s2__qhecrdc'},s3:{defaultClass:'sprinkles_paddingTop_s3__qhecrdd'},s4:{defaultClass:'sprinkles_paddingTop_s4__qhecrde'},s5:{defaultClass:'sprinkles_paddingTop_s5__qhecrdf'},s6:{defaultClass:'sprinkles_paddingTop_s6__qhecrdg'},s7:{defaultClass:'sprinkles_paddingTop_s7__qhecrdh'},s8:{defaultClass:'sprinkles_paddingTop_s8__qhecrdi'},s9:{defaultClass:'sprinkles_paddingTop_s9__qhecrdj'}}},paddingRight:{values:{s0:{defaultClass:'sprinkles_paddingRight_s0__qhecrdk'},s1:{defaultClass:'sprinkles_paddingRight_s1__qhecrdl'},s2:{defaultClass:'sprinkles_paddingRight_s2__qhecrdm'},s3:{defaultClass:'sprinkles_paddingRight_s3__qhecrdn'},s4:{defaultClass:'sprinkles_paddingRight_s4__qhecrdo'},s5:{defaultClass:'sprinkles_paddingRight_s5__qhecrdp'},s6:{defaultClass:'sprinkles_paddingRight_s6__qhecrdq'},s7:{defaultClass:'sprinkles_paddingRight_s7__qhecrdr'},s8:{defaultClass:'sprinkles_paddingRight_s8__qhecrds'},s9:{defaultClass:'sprinkles_paddingRight_s9__qhecrdt'}}},paddingBottom:{values:{s0:{defaultClass:'sprinkles_paddingBottom_s0__qhecrdu'},s1:{defaultClass:'sprinkles_paddingBottom_s1__qhecrdv'},s2:{defaultClass:'sprinkles_paddingBottom_s2__qhecrdw'},s3:{defaultClass:'sprinkles_paddingBottom_s3__qhecrdx'},s4:{defaultClass:'sprinkles_paddingBottom_s4__qhecrdy'},s5:{defaultClass:'sprinkles_paddingBottom_s5__qhecrdz'},s6:{defaultClass:'sprinkles_paddingBottom_s6__qhecrd10'},s7:{defaultClass:'sprinkles_paddingBottom_s7__qhecrd11'},s8:{defaultClass:'sprinkles_paddingBottom_s8__qhecrd12'},s9:{defaultClass:'sprinkles_paddingBottom_s9__qhecrd13'}}},paddingLeft:{values:{s0:{defaultClass:'sprinkles_paddingLeft_s0__qhecrd14'},s1:{defaultClass:'sprinkles_paddingLeft_s1__qhecrd15'},s2:{defaultClass:'sprinkles_paddingLeft_s2__qhecrd16'},s3:{defaultClass:'sprinkles_paddingLeft_s3__qhecrd17'},s4:{defaultClass:'sprinkles_paddingLeft_s4__qhecrd18'},s5:{defaultClass:'sprinkles_paddingLeft_s5__qhecrd19'},s6:{defaultClass:'sprinkles_paddingLeft_s6__qhecrd1a'},s7:{defaultClass:'sprinkles_paddingLeft_s7__qhecrd1b'},s8:{defaultClass:'sprinkles_paddingLeft_s8__qhecrd1c'},s9:{defaultClass:'sprinkles_paddingLeft_s9__qhecrd1d'}}},marginTop:{values:{s0:{defaultClass:'sprinkles_marginTop_s0__qhecrd1e'},s1:{defaultClass:'sprinkles_marginTop_s1__qhecrd1f'},s2:{defaultClass:'sprinkles_marginTop_s2__qhecrd1g'},s3:{defaultClass:'sprinkles_marginTop_s3__qhecrd1h'},s4:{defaultClass:'sprinkles_marginTop_s4__qhecrd1i'},s5:{defaultClass:'sprinkles_marginTop_s5__qhecrd1j'},s6:{defaultClass:'sprinkles_marginTop_s6__qhecrd1k'},s7:{defaultClass:'sprinkles_marginTop_s7__qhecrd1l'},s8:{defaultClass:'sprinkles_marginTop_s8__qhecrd1m'},s9:{defaultClass:'sprinkles_marginTop_s9__qhecrd1n'}}},marginRight:{values:{s0:{defaultClass:'sprinkles_marginRight_s0__qhecrd1o'},s1:{defaultClass:'sprinkles_marginRight_s1__qhecrd1p'},s2:{defaultClass:'sprinkles_marginRight_s2__qhecrd1q'},s3:{defaultClass:'sprinkles_marginRight_s3__qhecrd1r'},s4:{defaultClass:'sprinkles_marginRight_s4__qhecrd1s'},s5:{defaultClass:'sprinkles_marginRight_s5__qhecrd1t'},s6:{defaultClass:'sprinkles_marginRight_s6__qhecrd1u'},s7:{defaultClass:'sprinkles_marginRight_s7__qhecrd1v'},s8:{defaultClass:'sprinkles_marginRight_s8__qhecrd1w'},s9:{defaultClass:'sprinkles_marginRight_s9__qhecrd1x'}}},marginBottom:{values:{s0:{defaultClass:'sprinkles_marginBottom_s0__qhecrd1y'},s1:{defaultClass:'sprinkles_marginBottom_s1__qhecrd1z'},s2:{defaultClass:'sprinkles_marginBottom_s2__qhecrd20'},s3:{defaultClass:'sprinkles_marginBottom_s3__qhecrd21'},s4:{defaultClass:'sprinkles_marginBottom_s4__qhecrd22'},s5:{defaultClass:'sprinkles_marginBottom_s5__qhecrd23'},s6:{defaultClass:'sprinkles_marginBottom_s6__qhecrd24'},s7:{defaultClass:'sprinkles_marginBottom_s7__qhecrd25'},s8:{defaultClass:'sprinkles_marginBottom_s8__qhecrd26'},s9:{defaultClass:'sprinkles_marginBottom_s9__qhecrd27'}}},marginLeft:{values:{s0:{defaultClass:'sprinkles_marginLeft_s0__qhecrd28'},s1:{defaultClass:'sprinkles_marginLeft_s1__qhecrd29'},s2:{defaultClass:'sprinkles_marginLeft_s2__qhecrd2a'},s3:{defaultClass:'sprinkles_marginLeft_s3__qhecrd2b'},s4:{defaultClass:'sprinkles_marginLeft_s4__qhecrd2c'},s5:{defaultClass:'sprinkles_marginLeft_s5__qhecrd2d'},s6:{defaultClass:'sprinkles_marginLeft_s6__qhecrd2e'},s7:{defaultClass:'sprinkles_marginLeft_s7__qhecrd2f'},s8:{defaultClass:'sprinkles_marginLeft_s8__qhecrd2g'},s9:{defaultClass:'sprinkles_marginLeft_s9__qhecrd2h'}}},gap:{values:{s0:{defaultClass:'sprinkles_gap_s0__qhecrd2i'},s1:{defaultClass:'sprinkles_gap_s1__qhecrd2j'},s2:{defaultClass:'sprinkles_gap_s2__qhecrd2k'},s3:{defaultClass:'sprinkles_gap_s3__qhecrd2l'},s4:{defaultClass:'sprinkles_gap_s4__qhecrd2m'},s5:{defaultClass:'sprinkles_gap_s5__qhecrd2n'},s6:{defaultClass:'sprinkles_gap_s6__qhecrd2o'},s7:{defaultClass:'sprinkles_gap_s7__qhecrd2p'},s8:{defaultClass:'sprinkles_gap_s8__qhecrd2q'},s9:{defaultClass:'sprinkles_gap_s9__qhecrd2r'}}},rowGap:{values:{s0:{defaultClass:'sprinkles_rowGap_s0__qhecrd2s'},s1:{defaultClass:'sprinkles_rowGap_s1__qhecrd2t'},s2:{defaultClass:'sprinkles_rowGap_s2__qhecrd2u'},s3:{defaultClass:'sprinkles_rowGap_s3__qhecrd2v'},s4:{defaultClass:'sprinkles_rowGap_s4__qhecrd2w'},s5:{defaultClass:'sprinkles_rowGap_s5__qhecrd2x'},s6:{defaultClass:'sprinkles_rowGap_s6__qhecrd2y'},s7:{defaultClass:'sprinkles_rowGap_s7__qhecrd2z'},s8:{defaultClass:'sprinkles_rowGap_s8__qhecrd30'},s9:{defaultClass:'sprinkles_rowGap_s9__qhecrd31'}}},columnGap:{values:{s0:{defaultClass:'sprinkles_columnGap_s0__qhecrd32'},s1:{defaultClass:'sprinkles_columnGap_s1__qhecrd33'},s2:{defaultClass:'sprinkles_columnGap_s2__qhecrd34'},s3:{defaultClass:'sprinkles_columnGap_s3__qhecrd35'},s4:{defaultClass:'sprinkles_columnGap_s4__qhecrd36'},s5:{defaultClass:'sprinkles_columnGap_s5__qhecrd37'},s6:{defaultClass:'sprinkles_columnGap_s6__qhecrd38'},s7:{defaultClass:'sprinkles_columnGap_s7__qhecrd39'},s8:{defaultClass:'sprinkles_columnGap_s8__qhecrd3a'},s9:{defaultClass:'sprinkles_columnGap_s9__qhecrd3b'}}},background:{values:{bg1:{defaultClass:'sprinkles_background_bg1__qhecrd3c'},bg2:{defaultClass:'sprinkles_background_bg2__qhecrd3d'},bg3:{defaultClass:'sprinkles_background_bg3__qhecrd3e'},bgInset:{defaultClass:'sprinkles_background_bgInset__qhecrd3f'},fg1:{defaultClass:'sprinkles_background_fg1__qhecrd3g'},fg2:{defaultClass:'sprinkles_background_fg2__qhecrd3h'},fg3:{defaultClass:'sprinkles_background_fg3__qhecrd3i'},fgOnAccent:{defaultClass:'sprinkles_background_fgOnAccent__qhecrd3j'},border1:{defaultClass:'sprinkles_background_border1__qhecrd3k'},border2:{defaultClass:'sprinkles_background_border2__qhecrd3l'},borderStrong:{defaultClass:'sprinkles_background_borderStrong__qhecrd3m'},accent:{defaultClass:'sprinkles_background_accent__qhecrd3n'},accentHover:{defaultClass:'sprinkles_background_accentHover__qhecrd3o'},accentSoft:{defaultClass:'sprinkles_background_accentSoft__qhecrd3p'},ok:{defaultClass:'sprinkles_background_ok__qhecrd3q'},warn:{defaultClass:'sprinkles_background_warn__qhecrd3r'},danger:{defaultClass:'sprinkles_background_danger__qhecrd3s'},info:{defaultClass:'sprinkles_background_info__qhecrd3t'},focus:{defaultClass:'sprinkles_background_focus__qhecrd3u'},scrim:{defaultClass:'sprinkles_background_scrim__qhecrd3v'}}},color:{values:{bg1:{defaultClass:'sprinkles_color_bg1__qhecrd3w'},bg2:{defaultClass:'sprinkles_color_bg2__qhecrd3x'},bg3:{defaultClass:'sprinkles_color_bg3__qhecrd3y'},bgInset:{defaultClass:'sprinkles_color_bgInset__qhecrd3z'},fg1:{defaultClass:'sprinkles_color_fg1__qhecrd40'},fg2:{defaultClass:'sprinkles_color_fg2__qhecrd41'},fg3:{defaultClass:'sprinkles_color_fg3__qhecrd42'},fgOnAccent:{defaultClass:'sprinkles_color_fgOnAccent__qhecrd43'},border1:{defaultClass:'sprinkles_color_border1__qhecrd44'},border2:{defaultClass:'sprinkles_color_border2__qhecrd45'},borderStrong:{defaultClass:'sprinkles_color_borderStrong__qhecrd46'},accent:{defaultClass:'sprinkles_color_accent__qhecrd47'},accentHover:{defaultClass:'sprinkles_color_accentHover__qhecrd48'},accentSoft:{defaultClass:'sprinkles_color_accentSoft__qhecrd49'},ok:{defaultClass:'sprinkles_color_ok__qhecrd4a'},warn:{defaultClass:'sprinkles_color_warn__qhecrd4b'},danger:{defaultClass:'sprinkles_color_danger__qhecrd4c'},info:{defaultClass:'sprinkles_color_info__qhecrd4d'},focus:{defaultClass:'sprinkles_color_focus__qhecrd4e'},scrim:{defaultClass:'sprinkles_color_scrim__qhecrd4f'}}},borderRadius:{values:{none:{defaultClass:'sprinkles_borderRadius_none__qhecrd4g'},sm:{defaultClass:'sprinkles_borderRadius_sm__qhecrd4h'},md:{defaultClass:'sprinkles_borderRadius_md__qhecrd4i'},lg:{defaultClass:'sprinkles_borderRadius_lg__qhecrd4j'},base:{defaultClass:'sprinkles_borderRadius_base__qhecrd4k'},full:{defaultClass:'sprinkles_borderRadius_full__qhecrd4l'}}},display:{values:{block:{defaultClass:'sprinkles_display_block__qhecrd4m'},'inline-block':{defaultClass:'sprinkles_display_inline-block__qhecrd4n'},flex:{defaultClass:'sprinkles_display_flex__qhecrd4o'},'inline-flex':{defaultClass:'sprinkles_display_inline-flex__qhecrd4p'},grid:{defaultClass:'sprinkles_display_grid__qhecrd4q'},none:{defaultClass:'sprinkles_display_none__qhecrd4r'}}},flexDirection:{values:{row:{defaultClass:'sprinkles_flexDirection_row__qhecrd4s'},column:{defaultClass:'sprinkles_flexDirection_column__qhecrd4t'},'row-reverse':{defaultClass:'sprinkles_flexDirection_row-reverse__qhecrd4u'},'column-reverse':{defaultClass:'sprinkles_flexDirection_column-reverse__qhecrd4v'}}},alignItems:{values:{'flex-start':{defaultClass:'sprinkles_alignItems_flex-start__qhecrd4w'},center:{defaultClass:'sprinkles_alignItems_center__qhecrd4x'},'flex-end':{defaultClass:'sprinkles_alignItems_flex-end__qhecrd4y'},stretch:{defaultClass:'sprinkles_alignItems_stretch__qhecrd4z'},baseline:{defaultClass:'sprinkles_alignItems_baseline__qhecrd50'}}},justifyContent:{values:{'flex-start':{defaultClass:'sprinkles_justifyContent_flex-start__qhecrd51'},center:{defaultClass:'sprinkles_justifyContent_center__qhecrd52'},'flex-end':{defaultClass:'sprinkles_justifyContent_flex-end__qhecrd53'},'space-between':{defaultClass:'sprinkles_justifyContent_space-between__qhecrd54'},'space-around':{defaultClass:'sprinkles_justifyContent_space-around__qhecrd55'},'space-evenly':{defaultClass:'sprinkles_justifyContent_space-evenly__qhecrd56'}}},flexWrap:{values:{nowrap:{defaultClass:'sprinkles_flexWrap_nowrap__qhecrd57'},wrap:{defaultClass:'sprinkles_flexWrap_wrap__qhecrd58'}}}}});","import { sprinkles } from \"../../theme/styles/sprinkles/index.css\";\n\n// La lógica de estilos de Container: separa las props de estilo (sprinkles) de las\n// nativas y devuelve el className + el resto. Sprinkles ES el motor de estilos de este\n// primitivo: reemplaza al patrón slot/use-styles.css de los demás componentes.\ntype Props = Record<string, unknown>;\n\nexport function useStyles(props: Props): { className: string; rest: Props } {\n const styleProps: Props = {};\n const rest: Props = {};\n for (const key of Object.keys(props)) {\n const value = props[key];\n if (sprinkles.properties.has(key as Parameters<typeof sprinkles.properties.has>[0])) {\n styleProps[key] = value;\n } else {\n rest[key] = value;\n }\n }\n return { className: sprinkles(styleProps as Parameters<typeof sprinkles>[0]), rest };\n}\n","import type { ElementType } from \"react\";\nimport type { ContainerProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Caja polimórfica con style-props (sprinkles). Presentacional: la separación de props\n// de estilo y el cálculo del className viven en useStyles. No acepta className/style: el\n// className va DESPUÉS de `...rest`, así un className forzado (as any) no puede pisar el nuestro.\nexport function Container<E extends ElementType = \"div\">({ as, ...props }: ContainerProps<E>) {\n const Component = (as ?? \"div\") as ElementType;\n const { className, rest } = useStyles(props as Record<string, unknown>);\n return <Component {...rest} className={className} />;\n}\n","// src/components/typography/use-styles.ts\nimport { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport { text } from \"../../theme/typography.css\";\nimport type { TypographyAlign, TypographyColor, TypographyVariant } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\nexport function useStyles({\n variant,\n color,\n align,\n}: {\n variant: TypographyVariant;\n color?: TypographyColor | undefined;\n align?: TypographyAlign | undefined;\n}): { text: string } {\n const { themeClass } = useTheme();\n const className = useMemo(\n () =>\n [\n themeClass,\n styles.base,\n text[variant],\n color && styles.color[color],\n align && styles.align[align],\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, variant, color, align],\n );\n return { text: className };\n}\n","import { createContext, useContext, useEffect, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { type Mode, type SchemaName, modeNames, themes } from \"../theme.css\";\n\n// El usuario puede fijar un modo concreto o \"system\" (seguir las preferencias del SO).\nexport type ModePreference = Mode | \"system\";\n\ninterface ThemeContextValue {\n schema: SchemaName;\n /** Modo efectivo ya resuelto (nunca \"system\"). */\n mode: Mode;\n /** La preferencia cruda elegida (puede ser \"system\"). */\n preference: ModePreference;\n themeClass: string;\n setSchema: (schema: SchemaName) => void;\n setMode: (mode: ModePreference) => void;\n /** Alterna binario claro↔oscuro a partir del modo efectivo. */\n toggleMode: () => void;\n /** Rota por los cuatro modos en orden. */\n cycleMode: () => void;\n}\n\nconst noop = () => {};\n\n// Sin provider, los componentes usan tinta/light (las vars de :root).\nconst DEFAULT_VALUE: ThemeContextValue = {\n schema: \"tinta\",\n mode: \"light\",\n preference: \"light\",\n themeClass: themes.tinta.light,\n setSchema: noop,\n setMode: noop,\n toggleMode: noop,\n cycleMode: noop,\n};\n\nconst ThemeContext = createContext<ThemeContextValue | null>(null);\n\n// Resuelve \"system\" leyendo las media queries del SO. prefers-contrast tiene prioridad\n// (accesibilidad) sobre prefers-color-scheme.\nfunction resolveSystemMode(): Mode {\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return \"light\";\n if (window.matchMedia(\"(prefers-contrast: more)\").matches) return \"contrast\";\n if (window.matchMedia(\"(prefers-color-scheme: dark)\").matches) return \"dark\";\n return \"light\";\n}\n\ninterface Persisted {\n schema: SchemaName;\n preference: ModePreference;\n}\n\nfunction readStored(key: string): Partial<Persisted> | null {\n if (typeof window === \"undefined\") return null;\n try {\n const raw = window.localStorage.getItem(key);\n return raw ? (JSON.parse(raw) as Partial<Persisted>) : null;\n } catch {\n return null;\n }\n}\n\nfunction writeStored(key: string, value: Persisted): void {\n if (typeof window === \"undefined\") return;\n try {\n window.localStorage.setItem(key, JSON.stringify(value));\n } catch {\n // localStorage puede no estar disponible (modo privado / SSR): degradamos en silencio.\n }\n}\n\nexport interface ThemeProviderProps {\n children: ReactNode;\n defaultSchema?: SchemaName;\n defaultMode?: ModePreference;\n /** Clave de localStorage donde se persiste la elección. */\n storageKey?: string;\n /** Si es false, no persiste ni rehidrata (útil para previews/tests). */\n persist?: boolean;\n}\n\nexport function ThemeProvider({\n children,\n defaultSchema = \"tinta\",\n defaultMode = \"light\",\n storageKey = \"ds-theme\",\n persist = true,\n}: ThemeProviderProps) {\n const [schema, setSchema] = useState<SchemaName>(\n () => (persist && readStored(storageKey)?.schema) || defaultSchema,\n );\n const [preference, setPreference] = useState<ModePreference>(\n () => (persist ? readStored(storageKey)?.preference : null) ?? defaultMode,\n );\n const [systemMode, setSystemMode] = useState<Mode>(resolveSystemMode);\n\n // Mientras la preferencia sea \"system\", seguimos los cambios del SO en vivo.\n useEffect(() => {\n if (preference !== \"system\") return;\n if (typeof window === \"undefined\" || typeof window.matchMedia !== \"function\") return;\n const mqls = [\"(prefers-contrast: more)\", \"(prefers-color-scheme: dark)\"].map((q) =>\n window.matchMedia(q),\n );\n const onChange = () => setSystemMode(resolveSystemMode());\n onChange();\n for (const mql of mqls) mql.addEventListener?.(\"change\", onChange);\n return () => {\n for (const mql of mqls) mql.removeEventListener?.(\"change\", onChange);\n };\n }, [preference]);\n\n const mode: Mode = preference === \"system\" ? systemMode : preference;\n\n // Persistimos cada cambio de schema/preferencia.\n useEffect(() => {\n if (persist) writeStored(storageKey, { schema, preference });\n }, [schema, preference, persist, storageKey]);\n\n const value = useMemo<ThemeContextValue>(\n () => ({\n schema,\n mode,\n preference,\n themeClass: themes[schema][mode],\n setSchema,\n setMode: setPreference,\n toggleMode: () => setPreference(mode === \"dark\" ? \"light\" : \"dark\"),\n cycleMode: () => {\n const next = modeNames[(modeNames.indexOf(mode) + 1) % modeNames.length];\n if (next) setPreference(next);\n },\n }),\n [schema, mode, preference],\n );\n return <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>;\n}\n\nexport function useTheme(): ThemeContextValue {\n return useContext(ThemeContext) ?? DEFAULT_VALUE;\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/typography.css.ts.vanilla.css?source=#H4sIAAAAAAAAA7XW0ZKaMBQG4Hufgst6AUMA19V9gd73AZhAImQMCQ2xyHb67h2CwY1mj50tXirnP-H_xhEiPbSyUrith1zTs87pQAsl-zxHfcPfhzj4vQqCgxQ6POCG8WEf_MLqWxiarxopZJ7TtFInlazf7GTH3qmdG5eGl6Xmgp3PzDxngoY1ZVWtvYnx-ndz2eY213P6z3O9k3mZzqJaUxV2LS6ZqPzHmZEf04RNb03azGmFRXeQqtkHp7alqsQdHS-Wkks101TpjELXb6s_q-hWmbCu5XiwyghUnoennTEAfRl1oF9BaJu4h96B0DbnQuNH0PNxPujiQ7NB6Jp2rNsHQgqfMZqNSxNrsKqY2AexF7xG1jpZyrpGDnMJMtfII0xA4Rrd4NJHuOMhPtfDE10T65ou5po4rhXsmnhca9g1uXFlT-RJLU-2GE_q8BxhntTDw2Ge9IaneSJPZnk2II8ZvixGkE3m2EjYJvPYtLBNdmPzc_3fBoUk83PgZRGFcaPj0IEOZvxeQoMSJuRanB5beOpziomtv12k_rjRqd-D9c34ff0zWN-E3PqDr34y1yf--l2DObf9Xxfpb1Y6ACgGBabAPQFCoMEUcxFQ8iWFEreaSWEddou8dF6WuhLwW6eNeCw2jx6-c9b3BEZbn8vD18RSEmpR8NdR4mhHm_G7ApfHSsmTIDZcfLiJ6eWtxYSYbnGEaBPEUXbJSkXofPPTp7DGTM0d5TroJGfEGbn-AVT-jgXH5XFCs1ULsKoJ2K3pZz_R6VOoaHXi-HqP53_4k_oLOo8m2BQNAAA';\nexport var text = {eyebrow:'typography_text_eyebrow__1wmlzy0',display:'typography_text_display__1wmlzy1',h1:'typography_text_h1__1wmlzy2',h2:'typography_text_h2__1wmlzy3',h3:'typography_text_h3__1wmlzy4',h4:'typography_text_h4__1wmlzy5',body:'typography_text_body__1wmlzy6',lead:'typography_text_lead__1wmlzy7',small:'typography_text_small__1wmlzy8',caption:'typography_text_caption__1wmlzy9',code:'typography_text_code__1wmlzya',blackletter:'typography_text_blackletter__1wmlzyb'};","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/typography/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfYmFzZV9fZDc0amY2MCB7CiAgbWFyZ2luOiAwOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2ZnMV9fZDc0amY2MSB7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2ZnMl9fZDc0amY2MiB7CiAgY29sb3I6IHZhcigtLWZnMl9fZTNncnVyMmQpOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2ZnM19fZDc0amY2MyB7CiAgY29sb3I6IHZhcigtLWZnM19fZTNncnVyMmUpOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2FjY2VudF9fZDc0amY2NCB7CiAgY29sb3I6IHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2Rhbmdlcl9fZDc0amY2NSB7CiAgY29sb3I6IHZhcigtLWRhbmdlcl9fZTNncnVyMm8pOwp9Ci51c2Utc3R5bGVzX2NvbG9yX29rX19kNzRqZjY2IHsKICBjb2xvcjogdmFyKC0tb2tfX2UzZ3J1cjJtKTsKfQoudXNlLXN0eWxlc19jb2xvcl93YXJuX19kNzRqZjY3IHsKICBjb2xvcjogdmFyKC0td2Fybl9fZTNncnVyMm4pOwp9Ci51c2Utc3R5bGVzX2NvbG9yX2luZm9fX2Q3NGpmNjggewogIGNvbG9yOiB2YXIoLS1pbmZvX19lM2dydXIycCk7Cn0KLnVzZS1zdHlsZXNfYWxpZ25fbGVmdF9fZDc0amY2OSB7CiAgdGV4dC1hbGlnbjogbGVmdDsKfQoudXNlLXN0eWxlc19hbGlnbl9jZW50ZXJfX2Q3NGpmNmEgewogIHRleHQtYWxpZ246IGNlbnRlcjsKfQoudXNlLXN0eWxlc19hbGlnbl9yaWdodF9fZDc0amY2YiB7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0';\nexport var align = {left:'use-styles_align_left__d74jf69',center:'use-styles_align_center__d74jf6a',right:'use-styles_align_right__d74jf6b'};\nexport var base = 'use-styles_base__d74jf60';\nexport var color = {fg1:'use-styles_color_fg1__d74jf61',fg2:'use-styles_color_fg2__d74jf62',fg3:'use-styles_color_fg3__d74jf63',accent:'use-styles_color_accent__d74jf64',danger:'use-styles_color_danger__d74jf65',ok:'use-styles_color_ok__d74jf66',warn:'use-styles_color_warn__d74jf67',info:'use-styles_color_info__d74jf68'};","import type { ElementType } from \"react\";\nimport type { TypographyProps, TypographyVariant } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Elemento HTML por defecto de cada rol. `as` lo sobreescribe sin cambiar el estilo.\nconst defaultElement: Record<TypographyVariant, ElementType> = {\n display: \"h1\",\n h1: \"h1\",\n h2: \"h2\",\n h3: \"h3\",\n h4: \"h4\",\n body: \"p\",\n lead: \"p\",\n small: \"span\",\n caption: \"span\",\n eyebrow: \"span\",\n code: \"code\",\n blackletter: \"span\",\n};\n\n// Presentacional y polimórfico: el rol define el estilo; `as` define el elemento.\n// No acepta `className`/`style`: el estilo es controlado (variant/color/align).\nexport function Typography<E extends ElementType = \"span\">({\n variant,\n as,\n color,\n align,\n ...rest\n}: TypographyProps<E>) {\n const Component = (as ?? defaultElement[variant]) as ElementType;\n const { text } = useStyles({ variant, color, align });\n // `className` va DESPUÉS de `...rest`: aunque alguien fuerce un className por fuera\n // (con `as any`, saltándose el tipo), el nuestro gana — la encapsulación se respeta en runtime.\n return <Component {...rest} className={text} />;\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ButtonProps, ButtonTone } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos). El componente\n// solo aplica lo que devuelve este hook.\ntype ToneKey = keyof typeof styles.tone;\n\nfunction toneKey(variant: NonNullable<ButtonProps[\"variant\"]>, tone: ButtonTone): ToneKey {\n return `${variant}${tone === \"ink\" ? \"Ink\" : \"Accent\"}` as ToneKey;\n}\n\nexport function useStyles({\n variant = \"filled\",\n tone = \"ink\",\n size = \"md\",\n full,\n className,\n}: { [K in \"variant\" | \"tone\" | \"size\" | \"full\" | \"className\"]?: ButtonProps[K] | undefined }): {\n container: string;\n} {\n const { themeClass } = useTheme();\n const container = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n styles.size[size],\n styles.tone[toneKey(variant, tone)],\n full && styles.full,\n className,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, variant, tone, size, full, className],\n );\n return { container };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/button/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61UuXLbMBTs9RVoMmMV8IiS7Thw5S6pUqRKpQGJBwoWCDA4dCSTf88QIiFeuhx3JN7i7WLfAvfeArZuL8EujdZuuUzK1AkpZ-jPBCEmbCnpniChpFCAuYTdywQhKkWusHBQWIIyUA5MtfzmrRN8jzOtHCjXLuW0JGhDzR3GtqQZYDtfLmGRG28SOq0QXCuHOS2E3DfIsFRopRvoPCAlOAcm9BEqb8DO0GwtVI63goGJzX3Y4mDnKoSyXJuCIF-WYDJqoSqm2jAw2FAmvG3aHf5wSi3EXsW0Bd8K5lYNumnh5RFdttHBY4KsloJVy5k3VhuCSi0ai7Yr4eDgDkFKbw0tg_RKtXBCK4KolDUh8wZzal10JpnWFaAWsFDrWHmYvkz-Tu5PTprQzIkNEKXdHWHC0lQCm4b5txwLn5I6-Hk3u38sd5eacp15izfCilRCaKa9q0JE0LzcHYyIY868jXJ_BdtqMNacW3BhzwXCRnngSmm2zo32itXKS2pAueC8lpXxNXW-iMTQnlcHdVhLIjKftkeotMNUSr0F1pdoxW9Y2iKqTIK4kjLWCu7IfehWHmIlO96UqjVBSTL0JZAWLJLOz5DG0ydpj_QxVtiAdGQYgVTmkXTxLtKnWIEB6WJIyr2UkfGh-2I1T1V9TZPZ7FN_u9MKllxICexbdV_qRo-DBDVZOSbgMIhuSFrl55NR6je5ThFZ6Q2YsRs6JjMmac7O6OiiTup4zapHPEp5OsFKa1jd8m3oD8-_q9cuip-UN9LuaoW3mHXg-VptiGTrC6qG6BFp9fvVnuLnG1-mftreGacxJbdYlLaeSHqWojeI55vOOxqg90fjhKTbs_FD8yOZHCfLV9q6tsFfbhz1-Rvb2XsV_QfPNxD0rKQfPd2rTtkX8V8H_Qd82EeB_QoAAA';\nexport var full = 'use-styles_full__1pbtill4';\nexport var root = 'use-styles_root__1pbtill0';\nexport var size = {sm:'use-styles_size_sm__1pbtill1',md:'use-styles_size_md__1pbtill2',lg:'use-styles_size_lg__1pbtill3'};\nexport var tone = {filledInk:'use-styles_tone_filledInk__1pbtill5',filledAccent:'use-styles_tone_filledAccent__1pbtill6',outlineInk:'use-styles_tone_outlineInk__1pbtill7',outlineAccent:'use-styles_tone_outlineAccent__1pbtill8',ghostInk:'use-styles_tone_ghostInk__1pbtill9',ghostAccent:'use-styles_tone_ghostAccent__1pbtilla'};","import type { ButtonProps, ButtonSize } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Cada talle de botón dimensiona su icono de forma consistente.\nconst ICON_SIZE: Record<ButtonSize, number> = { sm: 14, md: 16, lg: 18 };\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Los iconos son componentes (Icon); el botón los renderiza fijando el tamaño.\nexport function Button({\n variant,\n tone,\n size = \"md\",\n startIcon: StartIcon,\n endIcon: EndIcon,\n full,\n className,\n children,\n ...rest\n}: ButtonProps) {\n const { container } = useStyles({ variant, tone, size, full, className });\n const iconSize = ICON_SIZE[size];\n return (\n <button className={container} {...rest}>\n {StartIcon && <StartIcon size={iconSize} />}\n {children}\n {EndIcon && <EndIcon size={iconSize} />}\n </button>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { DividerProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. La decisión de \"qué clase aplica\" vive acá, no en el JSX.\ninterface UseStylesArgs {\n vertical?: DividerProps[\"vertical\"] | undefined;\n hasLabel?: boolean | undefined;\n}\n\nexport function useStyles({ vertical, hasLabel }: UseStylesArgs): {\n root: string;\n line: string;\n label: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n hasLabel ? styles.labelled : vertical ? styles.vertical : styles.horizontal,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, vertical, hasLabel],\n );\n return { root, line: styles.line, label: styles.label };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/divider/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMW43djd5ajAgewogIGJvcmRlcjogbm9uZTsKfQoudXNlLXN0eWxlc19ob3Jpem9udGFsX18xbjd2N3lqMSB7CiAgd2lkdGg6IDEwMCU7CiAgaGVpZ2h0OiAxcHg7CiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwp9Ci51c2Utc3R5bGVzX3ZlcnRpY2FsX18xbjd2N3lqMiB7CiAgd2lkdGg6IDFweDsKICBhbGlnbi1zZWxmOiBzdHJldGNoOwogIGhlaWdodDogMTAwJTsKICBtaW4taGVpZ2h0OiAxZW07CiAgYmFja2dyb3VuZDogdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwp9Ci51c2Utc3R5bGVzX2xhYmVsbGVkX18xbjd2N3lqMyB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogdmFyKC0tc3BhY2UtczNfX2UzZ3J1cjFiKTsKICB3aWR0aDogMTAwJTsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKfQoudXNlLXN0eWxlc19saW5lX18xbjd2N3lqNCB7CiAgZmxleDogMTsKICBoZWlnaHQ6IDFweDsKICBiYWNrZ3JvdW5kOiB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7Cn0KLnVzZS1zdHlsZXNfbGFiZWxfXzFuN3Y3eWo1IHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtZXllYnJvdy1zaXplX19lM2dydXI0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXN0X19lM2dydXIxdik7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tZmczX19lM2dydXIyZSk7CiAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKfQ';\nexport var horizontal = 'use-styles_horizontal__1n7v7yj1';\nexport var label = 'use-styles_label__1n7v7yj5';\nexport var labelled = 'use-styles_labelled__1n7v7yj3';\nexport var line = 'use-styles_line__1n7v7yj4';\nexport var root = 'use-styles_root__1n7v7yj0';\nexport var vertical = 'use-styles_vertical__1n7v7yj2';","import type { DividerProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Con `label` se renderiza un layout flex (dos líneas + etiqueta); si no, un hairline simple.\nexport function Divider({ vertical, label, ...rest }: DividerProps) {\n const hasLabel = label != null;\n const { root, line, label: labelClass } = useStyles({ vertical, hasLabel });\n\n if (hasLabel) {\n return (\n <div role=\"separator\" className={root} {...rest}>\n <span className={line} />\n <span className={labelClass}>{label}</span>\n <span className={line} />\n </div>\n );\n }\n\n return <div role=\"separator\" className={root} {...rest} />;\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AvatarProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos). El componente\n// solo aplica lo que devuelve este hook.\nexport function useStyles({\n size = \"md\",\n filled,\n className,\n}: { [K in \"size\" | \"filled\" | \"className\"]?: AvatarProps[K] | undefined }): {\n root: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n styles.size[size],\n filled ? styles.variant.filled : styles.variant.default,\n className,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, size, filled, className],\n );\n return { root };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/avatar/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMW1uMXJtdTAgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWZ1bGxfX2UzZ3J1cjFuKTsKICBib3JkZXItd2lkdGg6IHZhcigtLWJvcmRlci1ydWxlX19lM2dydXIxcCk7CiAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKICBib3JkZXItY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LWRpc3BsYXlfX2UzZ3J1cjApOwogIGZvbnQtd2VpZ2h0OiB2YXIoLS13ZWlnaHQtc2VtaWJvbGRfX2UzZ3J1cjF6KTsKICBsaW5lLWhlaWdodDogMTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci51c2Utc3R5bGVzX3NpemVfc21fXzFtbjFybXUxIHsKICB3aWR0aDogMzJweDsKICBoZWlnaHQ6IDMycHg7CiAgZm9udC1zaXplOiAxNHB4Owp9Ci51c2Utc3R5bGVzX3NpemVfbWRfXzFtbjFybXUyIHsKICB3aWR0aDogNDBweDsKICBoZWlnaHQ6IDQwcHg7CiAgZm9udC1zaXplOiAxNnB4Owp9Ci51c2Utc3R5bGVzX3NpemVfbGdfXzFtbjFybXUzIHsKICB3aWR0aDogNTZweDsKICBoZWlnaHQ6IDU2cHg7CiAgZm9udC1zaXplOiAyMnB4Owp9Ci51c2Utc3R5bGVzX3ZhcmlhbnRfZGVmYXVsdF9fMW1uMXJtdTQgewogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGNvbG9yOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc192YXJpYW50X2ZpbGxlZF9fMW1uMXJtdTUgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKfQ';\nexport var root = 'use-styles_root__1mn1rmu0';\nexport var size = {sm:'use-styles_size_sm__1mn1rmu1',md:'use-styles_size_md__1mn1rmu2',lg:'use-styles_size_lg__1mn1rmu3'};\nexport var variant = {'default':'use-styles_variant_default__1mn1rmu4',filled:'use-styles_variant_filled__1mn1rmu5'};","import type { AvatarProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nexport function Avatar({ size, filled, className, children, ...rest }: AvatarProps) {\n const { root } = useStyles({ size, filled, className });\n return (\n <span className={root} {...rest}>\n {children}\n </span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { BadgeProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n tone = \"ink\",\n className,\n}: { [K in \"tone\" | \"className\"]?: BadgeProps[K] | undefined }): {\n root: string;\n dot: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n const dot = useMemo(() => [styles.dot, styles.tone[tone]].join(\" \"), [tone]);\n return { root, dot };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/badge/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMXdwZWk2cDAgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKfQoudXNlLXN0eWxlc19kb3RfXzF3cGVpNnAxIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgdG9wOiBjYWxjKHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSkgKiAtMSk7CiAgcmlnaHQ6IGNhbGModmFyKC0tc3BhY2UtczJfX2UzZ3J1cjFhKSAqIC0xKTsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgbWluLXdpZHRoOiAxOHB4OwogIGhlaWdodDogMThweDsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zMF9fZTNncnVyMTgpIHZhcigtLXNwYWNlLXMxX19lM2dydXIxOSk7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtbW9ub19fZTNncnVyMik7CiAgZm9udC1zaXplOiAxMXB4OwogIGZvbnQtd2VpZ2h0OiB2YXIoLS13ZWlnaHQtc2VtaWJvbGRfX2UzZ3J1cjF6KTsKICBsaW5lLWhlaWdodDogMTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZV9fZTNncnVyMXQpOwogIGNvbG9yOiB2YXIoLS1mZ09uQWNjZW50X19lM2dydXIyZik7CiAgYm9yZGVyOiB2YXIoLS1ib3JkZXItaGVhdnlfX2UzZ3J1cjFxKSBzb2xpZCB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtZnVsbF9fZTNncnVyMW4pOwp9Ci51c2Utc3R5bGVzX3RvbmVfaW5rX18xd3BlaTZwMiB7CiAgYmFja2dyb3VuZDogdmFyKC0tZmcxX19lM2dydXIyYyk7Cn0KLnVzZS1zdHlsZXNfdG9uZV9hY2NlbnRfXzF3cGVpNnAzIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1hY2NlbnRfX2UzZ3J1cjJqKTsKfQ';\nexport var dot = 'use-styles_dot__1wpei6p1';\nexport var root = 'use-styles_root__1wpei6p0';\nexport var tone = {ink:'use-styles_tone_ink__1wpei6p2',accent:'use-styles_tone_accent__1wpei6p3'};","import type { BadgeProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Renderiza siempre los children; el contador solo cuando `count != null`.\nexport function Badge({ count, tone, className, children, ...rest }: BadgeProps) {\n const { root, dot } = useStyles({ tone, className });\n return (\n <span className={root} {...rest}>\n {children}\n {count != null && <span className={dot}>{count}</span>}\n </span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ProgressProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. El componente solo aplica lo que devuelve este hook.\nexport function useStyles({\n variant = \"linear\",\n value,\n className,\n}: { [K in \"variant\" | \"value\" | \"className\"]?: ProgressProps[K] | undefined }): {\n track: string;\n bar: string;\n spinner: string;\n} {\n const { themeClass } = useTheme();\n const indeterminate = value === undefined;\n\n return useMemo(() => {\n const root = (...classes: (string | false | undefined)[]) =>\n [themeClass, ...classes, className].filter(Boolean).join(\" \");\n\n if (variant === \"circular\") {\n return { track: \"\", bar: \"\", spinner: root(styles.spinner) };\n }\n return {\n track: root(styles.track),\n bar: [styles.bar, indeterminate && styles.indeterminate].filter(Boolean).join(\" \"),\n spinner: \"\",\n };\n }, [themeClass, variant, indeterminate, className]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/progress/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA62TwW6jMBCG7zyFL5WSgyNCku2KXPoYe0MDHmAWM2Ztkzaq8u4rTKChatqttCeM-Gf-b-Y3Tw2eSwstOtE7lM6fNbrMdcRZ1uSmezzF4jUSIn4IDyG8BXalsW0qrPHgcRWvj5EQl0iIbfyJbPcjVlhdtZfo6WNjTQon5-1d53DU4PHXSg6mXxDcyPdv6ku0uXH2Fopmck5Cjxqpqn0q9t3LUJFD0VTW9KxScQK7kjKvdlmGu8r2NoHQ1ZzQlto8p6ImpZBDnbEKrbSgqHdT6fgmy17rqcWWQ4tnUr5OwyTHd4w52IlwtyAcxR8hQlEg-5ny9_rbREsEYoUebUsMfg5qH2Cu4MkhoABTC54MS4YW0_shL8Wqt-GQiu0mcctvnlriSpY9F6NkBEdwKImbecj9ellHHsemsjA9-1QQl8Tk8f1ww7VnnHd8CGMpcp2G81CliVHm2hTN2xbnuzDutEY4nef9_VkLZzSphSaZQevbNLzpZGG0sf8vus9TuP3H74UQb35-FcKwFLD_vvG_YQNO0nIEAAA';\nexport var bar = 'use-styles_bar__kbop7v3';\nexport var indeterminate = 'use-styles_indeterminate__kbop7v4';\nexport var spinner = 'use-styles_spinner__kbop7v5';\nexport var track = 'use-styles_track__kbop7v2';","import type { ProgressProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Las dimensiones dinámicas (diámetro del spinner, ancho de la barra) se aplican inline.\nexport function Progress({\n variant = \"linear\",\n value,\n size = 20,\n className,\n ...rest\n}: ProgressProps) {\n const { track, bar, spinner } = useStyles({ variant, value, className });\n const indeterminate = value === undefined;\n\n if (variant === \"circular\") {\n return (\n <span\n className={spinner}\n role=\"progressbar\"\n aria-valuenow={indeterminate ? undefined : value}\n aria-valuemin={indeterminate ? undefined : 0}\n aria-valuemax={indeterminate ? undefined : 100}\n style={{ width: size, height: size }}\n {...rest}\n />\n );\n }\n\n return (\n <div\n className={track}\n role=\"progressbar\"\n aria-valuenow={indeterminate ? undefined : value}\n aria-valuemin={indeterminate ? undefined : 0}\n aria-valuemax={indeterminate ? undefined : 100}\n {...rest}\n >\n <div className={bar} style={indeterminate ? undefined : { width: `${value}%` }} />\n </div>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function XIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ChipProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. El componente solo aplica lo que devuelve este hook.\nexport function useStyles({\n selected,\n tone = \"ink\",\n clickable,\n}: { [K in \"selected\" | \"tone\"]?: ChipProps[K] | undefined } & {\n clickable?: boolean | undefined;\n}): {\n root: string;\n deleteBtn: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [\n themeClass,\n styles.root,\n selected ? styles.selected : styles.tone[tone],\n clickable && styles.clickable,\n ]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, selected, tone, clickable],\n );\n return { root, deleteBtn: styles.deleteBtn };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/chip/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA4VUzY6bMBC-5yl8bA5eLSSVWufWF0GDPcA0xmZtk5BW--4VBhzoJsqR8efvZ5jxW--R-3DT6AtnbSiKDAbS1fGd_d0xpsh3Gm6CkdFkkFcah9OOMdBUG04BWy-YRBPQjeUaOsEu4L5x7juQyH1eFHioXe8y2I-IyprAK2hJ3xZkLLXW2AWa35Ge_qBgWdZFVY0hoIvUZOrlfnAgz2RqfiWFLun1kSXgEEaE8ZV1rWB916GT4HE87ECpFdFsOUsUP_fbk0M6KSN5aZ1Cxx0o6v3CMn3xEjwmeLuGX0mFZkHPtQbo7tyu0fHfCOatJjWWrw0FnAwJZuzVQRdzjhEpkDWCgdYzu-odr8CH1NlsSYTgkZM5p5PjLDqMPY9NmQ2UdjjtPndvq0EJ1mARL8_DksVhkVZbl_5qnX59rtaBNqipdkc2-4daIMcZS3L5V7kFMfP8fqr4ALgV9KhRBlRJ7RDVSpDn2tneqHvCNCm5jHrbaKvjH0_t_E-y9SI1yTOUGpOZ4xS9d37k6CxNq_fymmjsBd2TJGWdJjuHLyYUagz4K5jE9n37Nrx4FFpwNRnuqG6CYPww7fLj3XtPS7Bu2TjoJm7s2vtSm_tJpkFH4fS6PQ8CicrK3vMLeSo1xni2D-OTJ1jeDdP6pfdK9j716yP6nMHcVpXHEO-cdp__AKseb25dBQAA';\nexport var clickable = 'use-styles_clickable__1axilf44';\nexport var deleteBtn = 'use-styles_deleteBtn__1axilf45';\nexport var root = 'use-styles_root__1axilf40';\nexport var selected = 'use-styles_selected__1axilf43';\nexport var tone = {ink:'use-styles_tone_ink__1axilf41',accent:'use-styles_tone_accent__1axilf42'};","import type { MouseEvent } from \"react\";\nimport { XIcon } from \"../icons/x\";\nimport type { ChipProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; el botón de borrado detiene la propagación al onClick del chip.\nexport function Chip({ selected, tone, onDelete, onClick, children, ...rest }: ChipProps) {\n const clickable = Boolean(onClick);\n const { root, deleteBtn } = useStyles({ selected, tone, clickable });\n\n const handleDelete = (event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n onDelete?.();\n };\n\n return (\n <span className={root} onClick={onClick} {...rest}>\n {children}\n {onDelete && (\n <button type=\"button\" className={deleteBtn} aria-label=\"Remove\" onClick={handleDelete}>\n <XIcon size={13} />\n </button>\n )}\n </span>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function CheckIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { CheckboxProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. La decisión de \"qué clase aplica\" vive acá, no en el JSX.\nexport function useStyles({ checked, disabled }: Pick<CheckboxProps, \"checked\" | \"disabled\">): {\n root: string;\n input: string;\n box: string;\n check: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, disabled && styles.disabled].filter(Boolean).join(\" \"),\n [themeClass, disabled],\n );\n const box = useMemo(\n () => [styles.box, checked && styles.boxChecked].filter(Boolean).join(\" \"),\n [checked],\n );\n return { root, input: styles.input, box, check: styles.check };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/checkbox/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fOXpvZ2E5MCB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSk7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRleHRfX2UzZ3J1cjEpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbWFsbC1zaXplX19lM2dydXIxMCk7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2JveF9fOXpvZ2E5MSB7CiAgd2lkdGg6IDE4cHg7CiAgaGVpZ2h0OiAxOHB4OwogIGJvcmRlci13aWR0aDogdmFyKC0tYm9yZGVyLXJ1bGVfX2UzZ3J1cjFwKTsKICBib3JkZXItc3R5bGU6IHNvbGlkOwogIGJvcmRlci1jb2xvcjogdmFyKC0tZmcxX19lM2dydXIyYyk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgZmxleC1zaHJpbms6IDA7CiAgdHJhbnNpdGlvbjogYWxsIHZhcigtLWR1ci1mYXN0X19lM2dydXIyMSkgdmFyKC0tZWFzZS1pbmtfX2UzZ3J1cjI0KTsKfQouc3VyZmFjZXNfc3JPbmx5X18xcWE3YXRuMDpmb2N1cy12aXNpYmxlICsgLnVzZS1zdHlsZXNfYm94X185em9nYTkxIHsKICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXNfX2UzZ3J1cjJxKTsKICBvdXRsaW5lLW9mZnNldDogMnB4Owp9Ci51c2Utc3R5bGVzX2JveENoZWNrZWRfXzl6b2dhOTIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2NoZWNrX185em9nYTkzIHsKICBjb2xvcjogdmFyKC0tYmcxX19lM2dydXIyOCk7Cn0KLnVzZS1zdHlsZXNfZGlzYWJsZWRfXzl6b2dhOTQgewogIG9wYWNpdHk6IDAuNTsKICBjdXJzb3I6IG5vdC1hbGxvd2VkOwp9';\nexport var box = 'use-styles_box__9zoga91';\nexport var boxChecked = 'use-styles_boxChecked__9zoga92';\nexport var check = 'use-styles_check__9zoga93';\nexport var disabled = 'use-styles_disabled__9zoga94';\nexport var input = 'surfaces_srOnly__1qa7atn0';\nexport var root = 'use-styles_root__9zoga90';","import type { ChangeEvent } from \"react\";\nimport { CheckIcon } from \"../icons/check\";\nimport type { CheckboxProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Input nativo visualmente oculto para accesibilidad; el box estilizado refleja el estado.\n// Controlado: el estado lo maneja el consumidor vía `checked` + `onChange`.\nexport function Checkbox({\n checked = false,\n onChange,\n label,\n disabled = false,\n id,\n}: CheckboxProps) {\n const { root, input, box, check } = useStyles({ checked, disabled });\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n onChange?.(e.target.checked);\n };\n\n return (\n <label className={root}>\n <input\n type=\"checkbox\"\n className={input}\n id={id}\n checked={checked}\n disabled={disabled}\n onChange={handleChange}\n />\n <span className={box}>{checked && <CheckIcon size={12} className={check} />}</span>\n {label}\n </label>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { RadioProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n disabled,\n className,\n}: { disabled?: RadioProps[\"disabled\"] | undefined; className?: string | undefined }): {\n root: string;\n input: string;\n circle: string;\n dot: string;\n label: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [themeClass, styles.root, disabled && styles.disabled, className].filter(Boolean).join(\" \"),\n [themeClass, disabled, className],\n );\n return {\n root,\n input: styles.input,\n circle: styles.circle,\n dot: styles.dot,\n label: styles.label,\n };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/radio/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA51Ty5LbIBC8-ys4xpViy5JdeZAfyG0_QYVgkGfNgpYBr7Wp_HsKJLS2c9hKjkw3PT3T8JAIOMXJAnXB-9h15-lL0x927NeGMY00WjkJhs6iA24sXH5sGJMWB8cxwjMJpsBFCLk8yFGwswyfOKdRKuDUdh3sh5BCI7eZYbyL3MhntFNlllKES1ypham89WHlDE1FWzXDKVDGR49z99-bh6tRNJLsLeg6TlPGudPcr5pwo-l85NJa_wr6XldhUBaqavs_S3pKFNFMXHkXwcVr6BV1PArWfBuLwBFwOMb3c--DhsAX1jzFUgspu1r2N26v2MW4YOQt6qvyB-utslJjokqbT9wka9debo7VwoXTMaA7CbbLlRikI4zonbhpuUjpFLiRtGbeNtsFAUnA0Z1W5LAtIVAKRiqgjsKjs1PXNS_yq4xuJ4xXifgZCXsL7DP7KC-fYs5JsHa8zHtZX6JKtPZ9KZMtZO6NIYjlzl9v7f3X7EuDJaDvtykux16q0xB8crquVar8Ata-T_8ewK0fK3uw1dGhOCp_jPANqlL-b7z3eirVKkaldZm3ur6nZ_BnweqlmA38ATQTsW1HBAAA';\nexport var circle = 'use-styles_circle__vy61b42';\nexport var disabled = 'use-styles_disabled__vy61b41';\nexport var dot = 'use-styles_dot__vy61b43';\nexport var input = 'surfaces_srOnly__1qa7atn0';\nexport var label = 'use-styles_label__vy61b44';\nexport var root = 'use-styles_root__vy61b40';","import type { RadioProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Input nativo oculto + círculo/punto estilizados + label.\nexport function Radio({ checked, onChange, label, name, value, disabled }: RadioProps) {\n const { root, input, circle, dot, label: labelClass } = useStyles({ disabled });\n return (\n <label className={root}>\n <input\n className={input}\n type=\"radio\"\n name={name}\n value={value}\n checked={checked}\n disabled={disabled}\n onChange={onChange}\n />\n <span className={circle}>{checked && <span className={dot} />}</span>\n {label != null && <span className={labelClass}>{label}</span>}\n </label>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { SwitchProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ checked }: Pick<SwitchProps, \"checked\">): {\n root: string;\n input: string;\n track: string;\n knob: string;\n label: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n input: styles.input,\n track: [styles.track, checked && styles.trackChecked].filter(Boolean).join(\" \"),\n knob: [styles.knob, checked && styles.knobChecked].filter(Boolean).join(\" \"),\n label: styles.label,\n }),\n [themeClass, checked],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/switch/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA6VUy27bMBC85yt4jFHQsGSnKdhjL731E4SVtJIIrUmFSzp2i_x7IUpiHduBgfTIfczszC64DoyS_YmQC2etL4rMfe1x_7wRfx6EqDUPBCcltCFtUDaEx-8PQgDp1kjtcc9KVGg8ujHcwqDEAdyjlDxAhZLzosBt64LLYDVWNNZ42cBe02mpjCGPR59KY2VlybpU02ZLNq-mdHA85gerJ_a3h_WHWlQH_KhqzVAS1qsobQEw1ksgsq9Y36DdJlpcXXJ4B1WfSLKIOljWXlujhEMCrw84gr7q2ndK7PIhutehbjuvRD6_S6j61tlgaiW8A8MDODQ-pqyr0ckZYJpqjrlAmCwbVmfVcT4l2JKuz8J3HF1godaBl7LpJZtAlLhMLI-Dzlr_CZjb6uBkCZzmy_PVnEFglNr0KbOb7oLwKLlz2vRKbKLTHFwDFXLB7pehU1FkL_AM3mxUY6vA8qBZl4Tii7i3FBv8eL1K5MNxciWdXhU4TfISJ5mLpW0aRh97bi7-R4dVj3WiyiPV-SpvG_0eqje2TBDbixOCki0FH0_I20GJfP00XQxh45XYTo_5OLLd--ta3vdH-q_dA9Hnln5txKWlu-jHpBWCtyO1m8RtP9JWnmn7dsVCUCIl_KeIH_8f1r9xgRj_Isl7IIrhpH0TtcfjWDy-ahizP2MytY3f2dtf8WFUwmgFAAA';\nexport var input = 'surfaces_srOnly__1qa7atn0';\nexport var knob = 'use-styles_knob__1r6kem73';\nexport var knobChecked = 'use-styles_knobChecked__1r6kem74';\nexport var label = 'use-styles_label__1r6kem75';\nexport var root = 'use-styles_root__1r6kem70';\nexport var track = 'use-styles_track__1r6kem71';\nexport var trackChecked = 'use-styles_trackChecked__1r6kem72';","import type { SwitchProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Input nativo visualmente oculto (role=\"switch\") + track/knob estilizados + label.\nexport function Switch({ checked = false, onChange, label, disabled }: SwitchProps) {\n const { root, input, track, knob, label: labelClass } = useStyles({ checked });\n return (\n <label className={root}>\n <input\n type=\"checkbox\"\n role=\"switch\"\n aria-checked={checked}\n className={input}\n checked={checked}\n disabled={disabled}\n onChange={(event) => {\n if (disabled) return;\n onChange?.(event.target.checked);\n }}\n />\n <span className={track}>\n <span className={knob} />\n </span>\n {label != null && <span className={labelClass}>{label}</span>}\n </label>\n );\n}\n","// src/components/base-field/index.tsx\nimport { useId } from \"react\";\nimport type { BaseFieldProps, FieldControlProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Shell presentacional del campo: label + wrapper + startIcon + trailing + help,\n// con el cableado de accesibilidad. Entrega las props del control por render-prop.\nexport function BaseField({\n label,\n help,\n error,\n startIcon: StartIcon,\n trailing,\n id,\n className,\n children,\n}: BaseFieldProps) {\n const autoId = useId();\n const controlId = id ?? autoId;\n const helpId = help != null ? `${controlId}-help` : undefined;\n const classes = useStyles({\n error,\n hasStartIcon: StartIcon != null,\n hasTrailing: trailing != null,\n className,\n });\n\n const control: FieldControlProps = {\n id: controlId,\n className: classes.input,\n \"aria-describedby\": helpId,\n \"aria-invalid\": error ? true : undefined,\n };\n\n return (\n <div className={classes.root}>\n {label != null && (\n <label htmlFor={controlId} className={classes.labelText}>\n {label}\n </label>\n )}\n <div className={classes.field}>\n {StartIcon != null && (\n <span className={classes.startIconSlot}>\n <StartIcon size={18} />\n </span>\n )}\n {children(control)}\n {trailing != null && <span className={classes.trailingSlot}>{trailing}</span>}\n </div>\n {help != null && (\n <span id={helpId} className={classes.helpText}>\n {help}\n </span>\n )}\n </div>\n );\n}\n","// src/components/base-field/use-styles.ts\nimport { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\ninterface UseStylesArgs {\n error?: boolean | undefined;\n hasStartIcon?: boolean | undefined;\n hasTrailing?: boolean | undefined;\n className?: string | undefined;\n}\n\nexport function useStyles({ error, hasStartIcon, hasTrailing, className }: UseStylesArgs): {\n root: string;\n labelText: string;\n field: string;\n input: string;\n helpText: string;\n startIconSlot: string;\n trailingSlot: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const root = [themeClass, styles.root].filter(Boolean).join(\" \");\n const labelText = [styles.labelText, error && styles.labelTextError].filter(Boolean).join(\" \");\n const input = [\n styles.input,\n error && styles.inputError,\n hasStartIcon && styles.inputStartPad,\n hasTrailing && styles.inputTrailingPad,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n const helpText = [styles.helpText, error && styles.helpTextError].filter(Boolean).join(\" \");\n return {\n root,\n labelText,\n field: styles.field,\n input,\n helpText,\n startIconSlot: styles.startIconSlot,\n trailingSlot: styles.trailingSlot,\n };\n }, [themeClass, error, hasStartIcon, hasTrailing, className]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/base-field/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61VTW_bMAy951foMmA5qIiTrGvc8w67DUjvAS3RjlpZNCQ5Hxv23wfJsWInbYoWQw6BQvLxkY9k7lqH3PmjRrexRH6zycRCVHLG_kwYk8o1Go45KzUeHicsfnOpLAqvyORMkG5rEywVNDnbgf3KuWtAIHfZZoOLyrY2W00fJ38nd4NUGgrUT3hI-bKYryTjeQm10sceLP5Uk6EebT597D2d-o29n8eD53jEwtI-Gnr_ZfTX6D3aSE2ZKgVZEC_KVHyvJDqfCO9iTIT0FowrydY5a5sGrQCHwShIk00kq0Wih28X-8Nasn3F81jxCEaCqdAmJLpCKhVq2QMsIkBDTnVaWNTg1S6yuxIOtKoMVx5rlzOBxqO9BFemaZMey5t6-KjcqVk39ChIHkdiuOkrvUuDMhfRXIB4qSy1RvY-RTVPPqvOh6zEhNG9-BZU6l5GU-ZIKzlyOcNsBzDcglSt69G6Fy_AJd5ZHd0bkHIwPqdBT9pnxfRtS4jfK-m3Octmsy_hSa3XymDODBns6BxCu2KKE7WCDreFyksSrYtynUJG7QUR1E5lP09Tni1I2udsFj_z5jAKWFN5DtJXgxgpjMb525sM3p3qCLb2YP0vSNN9301313CusfQXXb9Pvb3euIj4ZEFpZaoB6PcRqFXV9iOoW9TN8GY9_JcdEdCE_R2tSbYcBITkYURsDfqDl6dnPFJq9YnD44I6PwWZtT7_R8DFAYLCkW49dvf2SrDLZUg3SpmwBfzmqXqn7EBDBU-OOzTe9Ss1rsKfJmJYRHGjiNcGJF2QDD5TxXPrvCqPXJDxaPzgFv8D_jbL3IoHAAA';\nexport var field = 'use-styles_field__1c3cgd3';\nexport var helpText = 'use-styles_helpText__1c3cgd8';\nexport var helpTextError = 'use-styles_helpTextError__1c3cgd9';\nexport var input = 'use-styles_input__1c3cgd4';\nexport var inputError = 'use-styles_inputError__1c3cgd5';\nexport var inputStartPad = 'use-styles_inputStartPad__1c3cgd6';\nexport var inputTrailingPad = 'use-styles_inputTrailingPad__1c3cgd7';\nexport var labelText = 'use-styles_labelText__1c3cgd1';\nexport var labelTextError = 'use-styles_labelTextError__1c3cgd2';\nexport var root = 'use-styles_root__1c3cgd0';\nexport var startIconSlot = 'use-styles_startIconSlot__1c3cgda';\nexport var trailingSlot = 'use-styles_trailingSlot__1c3cgdb';","import type { ChangeEvent, TextareaHTMLAttributes } from \"react\";\nimport { BaseField } from \"../base-field\";\nimport type { TextFieldProps } from \"./types\";\n\n// Presentacional: delega el shell (label, help, startIcon, a11y) a BaseField.\n// Controlado vía onChange(value); soporta startIcon y multiline.\nexport function TextField({\n label,\n help,\n error,\n startIcon,\n multiline,\n rows,\n type = \"text\",\n onChange,\n className,\n id,\n ...rest\n}: TextFieldProps) {\n return (\n <BaseField\n label={label}\n help={help}\n error={error}\n startIcon={startIcon}\n id={id}\n className={className}\n >\n {(control) =>\n multiline ? (\n <textarea\n {...(rest as TextareaHTMLAttributes<HTMLTextAreaElement>)}\n {...control}\n rows={rows ?? 4}\n onChange={(e: ChangeEvent<HTMLTextAreaElement>) => onChange?.(e.target.value)}\n />\n ) : (\n <input\n {...rest}\n {...control}\n type={type}\n onChange={(e: ChangeEvent<HTMLInputElement>) => onChange?.(e.target.value)}\n />\n )\n }\n </BaseField>\n );\n}\n","// src/components/password-field/index.tsx\nimport { type ChangeEvent, type MouseEvent, useState } from \"react\";\nimport { BaseField } from \"../base-field\";\nimport { EyeIcon } from \"../icons/eye\";\nimport { EyeOffIcon } from \"../icons/eye-off\";\nimport type { PasswordFieldProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Envuelve BaseField, gestiona el reveal de contraseña y pasa el toggle como trailing slot.\nexport function PasswordField({\n label,\n help,\n error,\n startIcon,\n onChange,\n id,\n className,\n ...rest\n}: PasswordFieldProps) {\n const [reveal, setReveal] = useState(false);\n const classes = useStyles();\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(e.target.value);\n };\n\n const handleToggleMouseDown = (e: MouseEvent<HTMLButtonElement>) => {\n e.preventDefault();\n };\n\n const toggleButton = (\n <button\n type=\"button\"\n tabIndex={-1}\n className={classes.revealButton}\n aria-label={reveal ? \"Ocultar contraseña\" : \"Mostrar contraseña\"}\n onMouseDown={handleToggleMouseDown}\n onClick={() => setReveal((r) => !r)}\n >\n {reveal ? <EyeOffIcon size={18} /> : <EyeIcon size={18} />}\n </button>\n );\n\n return (\n <BaseField\n label={label}\n help={help}\n error={error}\n startIcon={startIcon}\n trailing={toggleButton}\n id={id}\n className={className}\n >\n {(control) => (\n <input {...rest} {...control} type={reveal ? \"text\" : \"password\"} onChange={handleChange} />\n )}\n </BaseField>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function EyeIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function EyeOffIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M9.88 9.88a3 3 0 1 0 4.24 4.24\" />\n <path d=\"M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68\" />\n <path d=\"M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n","// src/components/password-field/use-styles.ts\nimport { useMemo } from \"react\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: devuelve un objeto de clases por slot, memoizado.\n// PasswordField delega el layout al BaseField; solo gestiona el revealButton.\nexport function useStyles(): { revealButton: string } {\n return useMemo(() => ({ revealButton: styles.revealButton }), []);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/password-field/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcmV2ZWFsQnV0dG9uX19yc3U5ZDUwIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSk7CiAgYm9yZGVyOiBub25lOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGNvbG9yOiB2YXIoLS1mZzNfX2UzZ3J1cjJlKTsKICBjdXJzb3I6IHBvaW50ZXI7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKfQoudXNlLXN0eWxlc19yZXZlYWxCdXR0b25fX3JzdTlkNTA6aG92ZXIgewogIGNvbG9yOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc19yZXZlYWxCdXR0b25fX3JzdTlkNTA6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQ';\nexport var revealButton = 'use-styles_revealButton__rsu9d50';","// src/components/money-field/index.tsx\nimport { type ChangeEvent, type FocusEvent, useMemo, useState } from \"react\";\nimport { BaseField } from \"../base-field\";\nimport type { MoneyFieldProps } from \"./types\";\n\n// Quita todo salvo dígitos, signo y punto decimal; \"\", \"-\" y \".\" → null.\nfunction parseAmount(raw: string): number | null {\n const cleaned = raw.replace(/[^0-9.-]/g, \"\");\n if (cleaned === \"\" || cleaned === \"-\" || cleaned === \".\") return null;\n const n = Number.parseFloat(cleaned);\n return Number.isNaN(n) ? null : n;\n}\n\n// MoneyField: input de dinero controlado.\n// - Sin foco: muestra Intl.NumberFormat (currency style).\n// - Con foco: muestra el draft crudo para edición.\n// - onBlur: parsea el draft y llama onChange(number | null).\nexport function MoneyField({\n value,\n onChange,\n currency = \"USD\",\n locale = \"en-US\",\n label,\n help,\n error,\n startIcon,\n id,\n className,\n onFocus,\n onBlur,\n ...rest\n}: MoneyFieldProps) {\n const [focused, setFocused] = useState(false);\n const [draft, setDraft] = useState(\"\");\n const formatter = useMemo(\n () => new Intl.NumberFormat(locale, { style: \"currency\", currency }),\n [locale, currency],\n );\n\n const displayValue = focused ? draft : value != null ? formatter.format(value) : \"\";\n\n const handleFocus = (e: FocusEvent<HTMLInputElement>) => {\n setDraft(value != null ? String(value) : \"\");\n setFocused(true);\n onFocus?.(e);\n };\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => setDraft(e.target.value);\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n setFocused(false);\n onChange?.(parseAmount(draft));\n onBlur?.(e);\n };\n\n return (\n <BaseField\n label={label}\n help={help}\n error={error}\n startIcon={startIcon}\n id={id}\n className={className}\n >\n {(control) => (\n <input\n {...rest}\n {...control}\n inputMode=\"decimal\"\n value={displayValue}\n onFocus={handleFocus}\n onChange={handleChange}\n onBlur={handleBlur}\n />\n )}\n </BaseField>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { IconButtonProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n active = false,\n tone = \"ink\",\n}: { [K in \"active\" | \"tone\"]?: IconButtonProps[K] | undefined }): {\n root: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [themeClass, styles.root, tone === \"accent\" && styles.accent, active && styles.active]\n .filter(Boolean)\n .join(\" \"),\n [themeClass, active, tone],\n );\n return { root };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/icon-button/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMThucDBxMDAgewogIGRpc3BsYXk6IGlubGluZS1mbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7CiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtczJfX2UzZ3J1cjFhKTsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBjb2xvcjogdmFyKC0tZmcyX19lM2dydXIyZCk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtYmFzZV9fZTNncnVyMW0pOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGFsbCB2YXIoLS1kdXItZmFzdF9fZTNncnVyMjEpIHZhcigtLWVhc2UtaW5rX19lM2dydXIyNCk7Cn0KLnVzZS1zdHlsZXNfcm9vdF9fMThucDBxMDA6aG92ZXI6bm90KDpkaXNhYmxlZCkgewogIGJhY2tncm91bmQ6IHZhcigtLWJnM19fZTNncnVyMmEpOwp9Ci51c2Utc3R5bGVzX3Jvb3RfXzE4bnAwcTAwOmRpc2FibGVkIHsKICBjb2xvcjogdmFyKC0tZmczX19lM2dydXIyZSk7CiAgb3BhY2l0eTogMC41OwogIGN1cnNvcjogbm90LWFsbG93ZWQ7Cn0KLnVzZS1zdHlsZXNfcm9vdF9fMThucDBxMDA6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19hY3RpdmVfXzE4bnAwcTAxIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzNfX2UzZ3J1cjJhKTsKICBjb2xvcjogdmFyKC0tYWNjZW50X19lM2dydXIyaik7Cn0KLnVzZS1zdHlsZXNfYWNjZW50X18xOG5wMHEwMiB7CiAgY29sb3I6IHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9';\nexport var accent = 'use-styles_accent__18np0q02';\nexport var active = 'use-styles_active__18np0q01';\nexport var root = 'use-styles_root__18np0q00';","import type { IconButtonProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// El icono es un componente (Icon); el botón lo renderiza fijando el tamaño.\nexport function IconButton({ icon: Icon, active, tone, title, ...rest }: IconButtonProps) {\n const { root } = useStyles({ active, tone });\n return (\n <button className={root} aria-label={title} title={title} {...rest}>\n <Icon size={18} />\n </button>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve este\n// hook. El themeClass va en el slot raíz; los demás slots heredan las vars desde ahí.\nexport function useStyles(): {\n root: string;\n header: string;\n body: string;\n footer: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(() => `${themeClass} ${styles.root}`, [themeClass]);\n return { root, header: styles.header, body: styles.body, footer: styles.footer };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/card/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMWZ1dmQwMjAgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlcjogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKSBzb2xpZCB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnX19lM2dydXIxbCk7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoudXNlLXN0eWxlc19oZWFkZXJfXzFmdXZkMDIxIHsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zNF9fZTNncnVyMWMpOwogIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci1oYWlyX19lM2dydXIxbykgc29saWQgdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwogIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cn0KLnVzZS1zdHlsZXNfYm9keV9fMWZ1dmQwMjIgewogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXM0X19lM2dydXIxYyk7Cn0KLnVzZS1zdHlsZXNfZm9vdGVyX18xZnV2ZDAyMyB7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtczRfX2UzZ3J1cjFjKTsKICBib3JkZXItdG9wOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pIHNvbGlkIHZhcigtLWJvcmRlcjFfX2UzZ3J1cjJnKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9';\nexport var body = 'use-styles_body__1fuvd022';\nexport var footer = 'use-styles_footer__1fuvd023';\nexport var header = 'use-styles_header__1fuvd021';\nexport var root = 'use-styles_root__1fuvd020';","import type { CardProps, CardSectionProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Compound component: el consumidor compone las secciones explícitamente\n// (Card.Header / Card.Body / Card.Footer) en vez de pasar nodos por props.\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nfunction CardRoot({ children, ...rest }: CardProps) {\n const { root } = useStyles();\n return (\n <div className={root} {...rest}>\n {children}\n </div>\n );\n}\n\nfunction CardHeader({ children, ...rest }: CardSectionProps) {\n const { header } = useStyles();\n return (\n <div className={header} {...rest}>\n {children}\n </div>\n );\n}\n\nfunction CardBody({ children, ...rest }: CardSectionProps) {\n const { body } = useStyles();\n return (\n <div className={body} {...rest}>\n {children}\n </div>\n );\n}\n\nfunction CardFooter({ children, ...rest }: CardSectionProps) {\n const { footer } = useStyles();\n return (\n <div className={footer} {...rest}>\n {children}\n </div>\n );\n}\n\nCardRoot.displayName = \"Card\";\nCardHeader.displayName = \"Card.Header\";\nCardBody.displayName = \"Card.Body\";\nCardFooter.displayName = \"Card.Footer\";\n\nexport const Card = Object.assign(CardRoot, {\n Header: CardHeader,\n Body: CardBody,\n Footer: CardFooter,\n});\n","import type { IconProps } from \"../types\";\n\nexport function CircleCheckIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m9 12 2 2 4-4\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function CircleXIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"m15 9-6 6\" />\n <path d=\"m9 9 6 6\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function InfoIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M12 16v-4\" />\n <path d=\"M12 8h.01\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function TriangleAlertIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3Z\" />\n <path d=\"M12 9v4\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AlertProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. El componente solo aplica lo que devuelve este hook.\nexport function useStyles({\n severity = \"info\",\n className,\n}: Pick<AlertProps, \"severity\" | \"className\">): {\n root: string;\n iconSlot: string;\n content: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, styles.severity[severity], className].filter(Boolean).join(\" \"),\n [themeClass, severity, className],\n );\n return {\n root,\n iconSlot: styles.iconSlot,\n content: styles.content,\n };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/alert/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA32TzY6CMBRG9zxFl-OiRsQxER9jHoCUtpQbsZe0RXEmvvuEn1YUZUWa7-s5bcNdN1ZS626VtJlBdFkGF1vumw35iwgRYOuK3VJSVLI9RoQoVqfkwswXpbZmXFKbZJlMlGlMnK-6Rs2EAK0WWs_JLiS8358zflIGGy08Ildb39kehg4aIU3I-xUtGZjAwhWxWIF4qsQBoyYYWsnC0SsIV6YkqdtJYpiAxnrPsKI5szJ4ziOopRZ--2uPW3Nsj9E9Wk-e18qLNOBuGegC_TvH_TtPT8KxwnC3oTqeuu5ly_kHJZ68cLss7Ioj7jzXvaQfZFdmtNcly7qhOiL1XDjLPygF00oaL90tS315xOJc-6bxLAaO-qd6jMv3-3HpvtSWBvQpJZuJBnTZHfwVy1E7qQN1v0AVYCR3gDrtmM1Zvx_P8M_Hh_k1C_UYiW767v-Pd6Q4DgQAAA';\nexport var content = 'use-styles_content__ivsh6u6';\nexport var iconSlot = 'use-styles_iconSlot__ivsh6u5';\nexport var root = 'use-styles_root__ivsh6u0';\nexport var severity = {info:'use-styles_severity_info__ivsh6u1',ok:'use-styles_severity_ok__ivsh6u2',warn:'use-styles_severity_warn__ivsh6u3',danger:'use-styles_severity_danger__ivsh6u4'};","import { CircleCheckIcon } from \"../icons/circle-check\";\nimport { CircleXIcon } from \"../icons/circle-x\";\nimport { InfoIcon } from \"../icons/info\";\nimport { TriangleAlertIcon } from \"../icons/triangle-alert\";\nimport type { Icon } from \"../icons/types\";\nimport { Typography } from \"../typography\";\nimport type { AlertProps, AlertSeverity } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; el icono por defecto depende de la severidad.\nconst defaultIcons: Record<AlertSeverity, Icon> = {\n info: InfoIcon,\n ok: CircleCheckIcon,\n warn: TriangleAlertIcon,\n danger: CircleXIcon,\n};\n\nexport function Alert({\n severity = \"info\",\n title,\n icon,\n className,\n children,\n ...rest\n}: AlertProps) {\n const styles = useStyles({ severity, className });\n const IconComponent = icon ?? defaultIcons[severity];\n return (\n <div role=\"alert\" className={styles.root} {...rest}>\n <span className={styles.iconSlot}>\n <IconComponent />\n </span>\n <div className={styles.content}>\n {title != null && <Typography variant=\"h4\">{title}</Typography>}\n {children != null && (\n <Typography variant=\"body\" color=\"fg2\">\n {children}\n </Typography>\n )}\n </div>\n </div>\n );\n}\n","import { cloneElement, useId, useState } from \"react\";\nimport type { TooltipProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Maneja el estado `open` local; muestra en hover/focus y oculta en leave/blur.\n// Accesibilidad: enlaza el bubble (role=\"tooltip\") al trigger via aria-describedby\n// mientras está abierto, clonando el children (el elemento interactivo).\nexport function Tooltip({ label, children, placement }: TooltipProps) {\n const [open, setOpen] = useState(false);\n const tooltipId = useId();\n const { wrapper, bubble } = useStyles({ placement });\n\n const show = () => setOpen(true);\n const hide = () => setOpen(false);\n\n const previousDescribedBy = (children.props as { \"aria-describedby\"?: string })[\n \"aria-describedby\"\n ];\n const describedBy = open\n ? [previousDescribedBy, tooltipId].filter(Boolean).join(\" \")\n : previousDescribedBy;\n\n const trigger = cloneElement(children, { \"aria-describedby\": describedBy });\n\n return (\n <span className={wrapper} onMouseEnter={show} onMouseLeave={hide} onFocus={show} onBlur={hide}>\n {trigger}\n {open && (\n <span id={tooltipId} role=\"tooltip\" className={bubble}>\n {label}\n </span>\n )}\n </span>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { TooltipProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n placement = \"top\",\n}: { placement?: TooltipProps[\"placement\"] | undefined }): {\n wrapper: string;\n bubble: string;\n} {\n const { themeClass } = useTheme();\n const wrapper = useMemo(\n () => [themeClass, styles.wrapper].filter(Boolean).join(\" \"),\n [themeClass],\n );\n const bubble = useMemo(\n () => [styles.bubble, styles.placement[placement]].filter(Boolean).join(\" \"),\n [placement],\n );\n return { wrapper, bubble };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/tooltip/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfd3JhcHBlcl9faDlrdmgwIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7Cn0KLnVzZS1zdHlsZXNfYnViYmxlX19oOWt2aDEgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9fX2UzZ3J1cjIpOwogIGZvbnQtc2l6ZTogMTFweDsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZV9fZTNncnVyMXQpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMxX19lM2dydXIxOSkgdmFyKC0tc3BhY2UtczJfX2UzZ3J1cjFhKTsKICBib3JkZXItcmFkaXVzOiB2YXIoLS1yYWRpdXMtYmFzZV9fZTNncnVyMW0pOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgei1pbmRleDogMTsKICBwb2ludGVyLWV2ZW50czogbm9uZTsKfQoudXNlLXN0eWxlc19wbGFjZW1lbnRfdG9wX19oOWt2aDIgewogIGJvdHRvbTogMTAwJTsKICBtYXJnaW4tYm90dG9tOiB2YXIoLS1zcGFjZS1zMV9fZTNncnVyMTkpOwp9Ci51c2Utc3R5bGVzX3BsYWNlbWVudF9ib3R0b21fX2g5a3ZoMyB7CiAgdG9wOiAxMDAlOwogIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLXMxX19lM2dydXIxOSk7Cn0';\nexport var bubble = 'use-styles_bubble__h9kvh1 surfaces_inkySurface__1qa7atn2';\nexport var placement = {top:'use-styles_placement_top__h9kvh2',bottom:'use-styles_placement_bottom__h9kvh3'};\nexport var wrapper = 'use-styles_wrapper__h9kvh0';","import { type KeyboardEvent, useEffect, useId, useRef, useState } from \"react\";\nimport { ChevronDownIcon } from \"../icons/chevron-down\";\nimport type { SelectProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional + estado de apertura/navegación. La lógica de estilos vive en use-styles.ts.\nexport function Select({ options, value, onChange, placeholder, label, disabled }: SelectProps) {\n const [open, setOpen] = useState(false);\n const [activeIndex, setActiveIndex] = useState(0);\n const rootRef = useRef<HTMLDivElement>(null);\n const baseId = useId();\n const labelId = `${baseId}-label`;\n const optionId = (index: number) => `${baseId}-option-${index}`;\n const {\n root,\n label: labelClass,\n trigger,\n placeholder: placeholderClass,\n chevron,\n menu,\n optionClass,\n } = useStyles({ open });\n\n useEffect(() => {\n if (!open) return;\n const onPointerDown = (event: MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onPointerDown);\n return () => document.removeEventListener(\"mousedown\", onPointerDown);\n }, [open]);\n\n const selected = options.find((option) => option.value === value);\n\n const selectAt = (index: number) => {\n const option = options[index];\n if (option) onChange?.(option.value);\n setOpen(false);\n };\n\n const handleSelect = (optionValue: string) => {\n onChange?.(optionValue);\n setOpen(false);\n };\n\n const openMenu = () => {\n const current = options.findIndex((option) => option.value === value);\n setActiveIndex(current >= 0 ? current : 0);\n setOpen(true);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLButtonElement>) => {\n if (disabled) return;\n switch (event.key) {\n case \"Escape\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n event.preventDefault();\n if (!open) {\n openMenu();\n } else {\n setActiveIndex((index) => (index + 1) % options.length);\n }\n break;\n case \"ArrowUp\":\n event.preventDefault();\n if (!open) {\n openMenu();\n } else {\n setActiveIndex((index) => (index - 1 + options.length) % options.length);\n }\n break;\n case \"Enter\":\n case \" \":\n event.preventDefault();\n if (!open) {\n openMenu();\n } else {\n selectAt(activeIndex);\n }\n break;\n default:\n break;\n }\n };\n\n return (\n <div ref={rootRef} className={root}>\n {label && (\n <span id={labelId} className={labelClass}>\n {label}\n </span>\n )}\n <button\n type=\"button\"\n className={trigger}\n disabled={disabled}\n aria-haspopup=\"listbox\"\n aria-expanded={open}\n aria-labelledby={label ? labelId : undefined}\n aria-activedescendant={open ? optionId(activeIndex) : undefined}\n onClick={() => {\n if (disabled) return;\n if (open) {\n setOpen(false);\n } else {\n openMenu();\n }\n }}\n onKeyDown={handleKeyDown}\n >\n {selected ? selected.label : <span className={placeholderClass}>{placeholder}</span>}\n <span className={chevron}>\n <ChevronDownIcon size={18} />\n </span>\n </button>\n {open && (\n <div className={menu} role=\"listbox\">\n {options.map((option, index) => {\n const isSelected = option.value === value;\n const isActive = index === activeIndex;\n return (\n // biome-ignore lint/a11y/useKeyWithClickEvents: keyboard nav lives on the trigger via aria-activedescendant; options are not focusable.\n <div\n key={option.value}\n id={optionId(index)}\n role=\"option\"\n tabIndex={-1}\n aria-selected={isSelected}\n className={optionClass(isSelected, isActive)}\n onClick={() => handleSelect(option.value)}\n >\n {option.label}\n </div>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function ChevronDownIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + el estado relevante y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n open = false,\n}: {\n open?: boolean;\n}): {\n root: string;\n label: string;\n trigger: string;\n placeholder: string;\n chevron: string;\n menu: string;\n optionClass: (selected: boolean, active: boolean) => string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const chevron = [styles.chevron, open && styles.chevronOpen].filter(Boolean).join(\" \");\n return {\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n label: styles.label,\n trigger: styles.trigger,\n placeholder: styles.placeholder,\n chevron,\n menu: styles.menu,\n optionClass: (selected: boolean, active: boolean) =>\n [styles.option, selected && styles.optionSelected, active && styles.optionActive]\n .filter(Boolean)\n .join(\" \"),\n };\n }, [themeClass, open]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/select/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8VWy27bMBC8-yt4KRADZWApSZPIp9566yEfYFDkSmJMcQWS8iNF_70gZdGSLdtBUaDwwTC5u5ydHQ5931qg1u0V2JVBdKtVsk34R5MvyK8ZIQ1a6STqjBhQzMkNLGeECGkbxfYZKRTs_IL_pkIa4F0wR9XW2u-UrMnIhpk7Sm3DOFCbrFbwUJrWJK_z5ez37H6AQLEcVISQBAgFakcLVku17yuFpRo19qXS-bKPtPID-jgHO0c5azyosBGPfgwJSmqgFciycpMpfv9H2I6JT10iOAcmdCR1OZ0bQt66iJj-HNJDoDNM2wJNnZG2acBwZgO5HBWa2Gn5EHuEM7qckWUJJhKWBsLOpvPeWieLPeWoHWiXkW4SObgtQJgSU7LUVDqobUY4aAdmenhp7ISFTrZSuCojyWLxxf9smBADQg5JsYUkn1_e8fk57vycQokcjQBDc9wtr6jAUxmLXFFBjmI_koCdT5AdtZnyDg_j69Jgq0Ufk5eRgvT1gDngPDBxiOrWKiZNBIfD6DDAjFhUUgyWR3C6teNx1bCAYUK2tg_tftGc2aPE667B1lhfskHZTzXwESaeEQWFC2tejIebPsRyqC9aQwtmI9Np0g8SmAUq9TruPM6_dmOsmMDt3-TfVHlWIG9t0Dq2zl_SjGjUcIlIxr2k4wnvR6kFjBlZhE_a7EYJb1gck9QnYAlpWa5ABGRXr_G0so4xbDQ7jX5eCrcgTkE0inGoUIkBkIfb54-L8Ao2BnUs8Di2EamDT4683lZG6nVGFjcda6ytaHr_QhgH3D8bOGJ_CtgH3mrQMQd3yctCQHlWogbdxtxvJ08eyy2q1gVdOWyONudvzYnHLeK9ewlNm-GjciFGSet6J-j1WzNTSn0jsQuiAdOVt_WSH5-Wu-y6H1RqATvf-SlzGJ65yN1zx93kecNH47r__x-XP_PI651mFW7AhH5v3-KpUm-ggDsQseTL-Y2d8KypUt-5_08WC71-FtUf34FLmfcJAAA';\nexport var chevron = 'use-styles_chevron__1w1czpb4';\nexport var chevronOpen = 'use-styles_chevronOpen__1w1czpb5';\nexport var label = 'use-styles_label__1w1czpb1';\nexport var menu = 'use-styles_menu__1w1czpb6 surfaces_panelSurface__1qa7atn1';\nexport var option = 'use-styles_option__1w1czpb7';\nexport var optionActive = 'use-styles_optionActive__1w1czpb9';\nexport var optionSelected = 'use-styles_optionSelected__1w1czpb8';\nexport var placeholder = 'use-styles_placeholder__1w1czpb3';\nexport var root = 'use-styles_root__1w1czpb0';\nexport var trigger = 'use-styles_trigger__1w1czpb2';","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles(): {\n wrapper: string;\n label: string;\n root: string;\n track: string;\n range: string;\n thumb: string;\n input: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const root = [themeClass, styles.root].filter(Boolean).join(\" \");\n return {\n wrapper: styles.wrapper,\n label: styles.label,\n root,\n track: styles.track,\n range: styles.range,\n thumb: styles.thumb,\n input: styles.input,\n };\n }, [themeClass]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/slider/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5VUXW_jIBB8z6_g5aTLA1WcpFVLf0yEzdpBwawLSz7u1PvtJ4ihqdOmivK0ZpmZndnwEDxwTycDfuMQabPB3eHxxS7Y3xljA3pNGq1gDowkvYfXGWNb0N2WBFuuh2OsD1rRVrBqsfgVS6X9YORJsNZAOpdGd5Zrgt4L1oAlcK-z99nDBTU52ewyd5W4M8vXJLVsdp3DYJVge-l-c153q80GVp0LbinnqQedAsedVDr43HaueBuMye2VnU_1OGk7yHqWEy9k7dEE-uTFqPJaVttVRVZzv6zIq6NjHPZgyQtm0cJUrrZDKNGtbsjV1gNlTj_IBrhfFMLn-RdO5wlz3UvXafsDBg6y0XQSbBGrJjiPTuRRbqsXSntZG1BpjHzVInFpDB5AXe3ONvR1vr6-MXwe7OmcVRlsrM-DcQMtCcafx0DvC-uO_Ec14_KONMFAQRwuu9Osgnk0Wl18btBEd76nOnK_lQoPJa9Ucd-XzscbW8YYOWmzlx9oI5gKjrfSU8Gq5uMJSA9c2105WV_9xSapt9gEz_fa69oA-8d-SPhyskX6rYZj9iFCFea3K2YjazAZ7jHBlTerNtjsLrahRiLsJ9tebK5eknktWuKt7LU5lSzipx4tFh0fnV7_AcGq5XnDDFA0PkJr2-X76UHUtotrAq7whYRCcCSekmnR9YKFYQDXSJ8Sm6zEsghQV0YcnIw3sxVP31jx6UF4_w9DQaC6MgYAAA';\nexport var input = 'use-styles_input__okw59n3';\nexport var label = 'use-styles_label__okw59n5';\nexport var range = 'use-styles_range__okw59n2';\nexport var root = 'use-styles_root__okw59n0';\nexport var thumb = 'use-styles_thumb__okw59n4';\nexport var track = 'use-styles_track__okw59n1';\nexport var wrapper = 'use-styles_wrapper__okw59n6';","import type { ChangeEvent } from \"react\";\nimport type { SliderProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Un <input type=\"range\"> nativo (opacity 0) se superpone para interacción + teclado;\n// las dimensiones dinámicas (percent) se aplican vía inline style acá.\nexport function Slider({\n value = 0,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled,\n label,\n}: SliderProps) {\n const { wrapper, label: labelClass, root, track, range, thumb, input } = useStyles();\n\n const span = max - min;\n const percent = span > 0 ? ((value - min) / span) * 100 : 0;\n const clamped = Math.max(0, Math.min(100, percent));\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n onChange?.(Number(e.target.value));\n };\n\n return (\n <span className={wrapper}>\n {label ? <span className={labelClass}>{label}</span> : null}\n <span className={root}>\n <span className={track} />\n <span className={range} style={{ width: `${clamped}%` }} />\n <input\n className={input}\n type=\"range\"\n min={min}\n max={max}\n step={step}\n value={value}\n disabled={disabled}\n onChange={handleChange}\n />\n <span className={thumb} style={{ left: `${clamped}%` }} />\n </span>\n </span>\n );\n}\n","import { useState } from \"react\";\nimport { ChevronDownIcon } from \"../icons/chevron-down\";\nimport type { AccordionProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Estado local `open` (string[]); el toggle respeta `multiple`.\nexport function Accordion({\n items,\n multiple = false,\n defaultOpen = [],\n className,\n}: AccordionProps) {\n const [open, setOpen] = useState<string[]>(defaultOpen);\n const { root, item, header, chevronFor, panel } = useStyles({ className });\n\n const toggle = (id: string) => {\n setOpen((current) => {\n const isOpen = current.includes(id);\n if (isOpen) return current.filter((x) => x !== id);\n return multiple ? [...current, id] : [id];\n });\n };\n\n return (\n <div className={root}>\n {items.map((it) => {\n const isOpen = open.includes(it.id);\n const panelId = `accordion-panel-${it.id}`;\n const headerId = `accordion-header-${it.id}`;\n return (\n <div key={it.id} className={item}>\n <button\n type=\"button\"\n id={headerId}\n className={header}\n aria-expanded={isOpen}\n aria-controls={panelId}\n onClick={() => toggle(it.id)}\n >\n {it.title}\n <ChevronDownIcon className={chevronFor(isOpen)} />\n </button>\n {isOpen && (\n <div id={panelId} className={panel} role=\"region\" aria-labelledby={headerId}>\n {it.content}\n </div>\n )}\n </div>\n );\n })}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AccordionProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: { className?: AccordionProps[\"className\"] | undefined }): {\n root: string;\n item: string;\n header: string;\n chevronFor: (open: boolean) => string;\n panel: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n item: styles.item,\n header: styles.header,\n chevronFor: (open: boolean) =>\n [styles.chevron, open && styles.chevronOpen].filter(Boolean).join(\" \"),\n panel: styles.panel,\n }),\n [themeClass, className],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/accordion/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA61Ty27bMBC8-yt4KRAfGEiyC7T0R_QTDFpcSoxprrpc-ZEg_16IshjbSZ0A7U0id2dmZ4ePfQQZ-eQhrgmR1-uyfiLT_izEy0yIDZIBUmKv6UHK8U-22tF6DYuGeipxLiJ6Z65Kyum6auarDCNJG9fHCW38k77JWD4V4x7Iejwo0TpjIKxmr7PHC5mOYZdllhcy5QaZcfePau-RKa8jy7p13nzEGzDALUAL2gBliCr1HZzhVomyKL4NExsXO69PSlgPx-HgqY_s7EnWGBgCKxE7XYPcAB9gMEQI7V0T5KAuKlFDYKDhuNHdNP7YEhd59k1yt9PGuNDcqbq-WeabelylrrcNYR-MEkw6xE4TBF5dhGW0QYi6p4ikRIdu0mcxsLR65_xpUpCOGI6ciRJPjR5z8GzztqNRxtAgkwlKeLBn_qOM7jlNlzeT_ExCHTsM6mKAM7jpSVodM39VThaAjiBd2Oab5bt83K5XtUN8x3BcOHWOW5N9rvTnUBbrPsq9i27jIUFiz94FUKLqjldBTqUZ-_f4jsZiidZG4NRzS1m3sCcMmXORWIYUytiSC1slig-WUWUmM7-1N31bpN3_cPes71cHbxqXSWOmUYKQNcND-aMw8P4BdzqAz83fU3N-A8Xfs37_FXxiyFdj_voHO9rfnH8FAAA';\nexport var chevron = 'use-styles_chevron__1cjrdh93';\nexport var chevronOpen = 'use-styles_chevronOpen__1cjrdh94';\nexport var header = 'use-styles_header__1cjrdh92';\nexport var item = 'use-styles_item__1cjrdh91';\nexport var panel = 'use-styles_panel__1cjrdh95';\nexport var root = 'use-styles_root__1cjrdh90';","import { Fragment } from \"react\";\nimport { ChevronRightIcon } from \"../icons/chevron-right\";\nimport type { BreadcrumbsProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas. El último item es el actual (sin link).\nexport function Breadcrumbs({ items, className, ...rest }: BreadcrumbsProps) {\n const { root, crumb, current, separator } = useStyles({ className });\n return (\n <nav aria-label=\"Breadcrumb\" className={root} {...rest}>\n {items.map((item, index) => {\n const isLast = index === items.length - 1;\n const key = index;\n return (\n <Fragment key={key}>\n {isLast ? (\n <span className={current} aria-current=\"page\">\n {item.label}\n </span>\n ) : item.href ? (\n <a className={crumb} href={item.href}>\n {item.label}\n </a>\n ) : (\n <span className={crumb}>{item.label}</span>\n )}\n {!isLast && (\n <span className={separator}>\n <ChevronRightIcon size={14} />\n </span>\n )}\n </Fragment>\n );\n })}\n </nav>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function ChevronRightIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { BreadcrumbsProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: Pick<BreadcrumbsProps, \"className\">): {\n root: string;\n crumb: string;\n current: string;\n separator: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n return { root, crumb: styles.crumb, current: styles.current, separator: styles.separator };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/breadcrumbs/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fN3UwZHU2MCB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogdmFyKC0tc3BhY2UtczJfX2UzZ3J1cjFhKTsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IDEycHg7CiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXRyYWNraW5nLXdpZGVfX2UzZ3J1cjF0KTsKfQoudXNlLXN0eWxlc19jcnVtYl9fN3UwZHU2MSB7CiAgY29sb3I6IHZhcigtLWZnMl9fZTNncnVyMmQpOwogIHRleHQtZGVjb3JhdGlvbjogbm9uZTsKfQoudXNlLXN0eWxlc19jcnVtYl9fN3UwZHU2MTpob3ZlciB7CiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7CiAgdGV4dC1kZWNvcmF0aW9uLWNvbG9yOiB2YXIoLS1hY2NlbnRfX2UzZ3J1cjJqKTsKICBjb2xvcjogdmFyKC0tYWNjZW50X19lM2dydXIyaik7Cn0KLnVzZS1zdHlsZXNfY3J1bWJfXzd1MGR1NjE6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19jdXJyZW50X183dTBkdTYyIHsKICBjb2xvcjogdmFyKC0tZmcxX19lM2dydXIyYyk7Cn0KLnVzZS1zdHlsZXNfc2VwYXJhdG9yX183dTBkdTYzIHsKICBkaXNwbGF5OiBpbmxpbmUtZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGNvbG9yOiB2YXIoLS1mZzNfX2UzZ3J1cjJlKTsKfQ';\nexport var crumb = 'use-styles_crumb__7u0du61';\nexport var current = 'use-styles_current__7u0du62';\nexport var root = 'use-styles_root__7u0du60';\nexport var separator = 'use-styles_separator__7u0du63';","import type { IconProps } from \"../types\";\n\nexport function ChevronLeftIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve.\nexport function useStyles(): {\n root: string;\n pageBtnFor: (active: boolean) => string;\n ellipsis: string;\n nav: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n pageBtnFor: (active: boolean) =>\n [styles.pageBtn, active && styles.pageActive].filter(Boolean).join(\" \"),\n ellipsis: styles.ellipsis,\n nav: [styles.pageBtn, styles.nav].join(\" \"),\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/pagination/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA9VUsXbbMAzc_RUco4F5ke0hZab2R_xoEaLQUIRKkE7svv57nymLlp2mTocMHQmAd8DhyPvEIDnuHfAmEMXNptYHe6DuQfxcCGGQB6f3SrQOXp8WQmiH1kuM0LMSDfgI4Ri2elBip8OdlDzoBiTXmw2sbEih_lI9LX4t7mdEg7bwLfrCVWeuHr18QRM7JVbrIbN1gLaL5_NH2_meOGK7lw35CD7OUy35KFvdo9tPHedQT56mlpdVqWQ8gBL1cuRvyFEo12yZcdnkG1sKBsI0xFh1inUaQ1GE5tVZEyWYHJpZ-IJqjJ3p7BwgaIOJp9LxJLeaofD1Y7lunm2g5I0SMWjPgw7gY54rBT6yDYSTTrkCI5JXQjt3QjcpyFZzLJ3U1SkDmkGify6Z9e21q452EJSneKcMst46MFX2wrzXkwR2VaD1B6AnvAx3tbczElTz8T1FqZ2jFzC3CVpqEssdMm4dZBZK0aEHJZbD67jPYrAmceH8kTlPxZLaliHmO3_i_NpE3EGhXb6jzlsvXvpnln6s3nPZNcjtbv5lgX9HB-dwYOSCvfpP_4Rrb41CH73l4cYrTHz8DsBBE6f6S5G83hV91lmfQRuD3l79vQ_l5T--EfoC43NM_BsD8EfJVAYAAA';\nexport var ellipsis = 'use-styles_ellipsis__1azgzoh3';\nexport var nav = 'use-styles_nav__1azgzoh4';\nexport var pageActive = 'use-styles_pageActive__1azgzoh2';\nexport var pageBtn = 'use-styles_pageBtn__1azgzoh1';\nexport var root = 'use-styles_root__1azgzoh0';","import { ChevronLeftIcon } from \"../icons/chevron-left\";\nimport { ChevronRightIcon } from \"../icons/chevron-right\";\nimport type { PaginationProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Calcula la lista de páginas a mostrar con elipsis alrededor de `page`.\n// Siempre incluye la primera y la última; `…` (unicode) marca los huecos.\ntype Item = number | \"ellipsis\";\n\nfunction buildItems(count: number, page: number, siblingCount: number): Item[] {\n const total = Math.max(1, count);\n const first = 1;\n const last = total;\n const start = Math.max(first + 1, page - siblingCount);\n const end = Math.min(last - 1, page + siblingCount);\n\n const items: Item[] = [first];\n if (start > first + 1) items.push(\"ellipsis\");\n for (let n = start; n <= end; n++) items.push(n);\n if (end < last - 1) items.push(\"ellipsis\");\n if (last > first) items.push(last);\n return items;\n}\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nexport function Pagination({ count, page = 1, onChange, siblingCount = 1 }: PaginationProps) {\n const { root, pageBtnFor, ellipsis, nav } = useStyles();\n const total = Math.max(1, count);\n const current = Math.min(Math.max(1, page), total);\n const items = buildItems(total, current, siblingCount);\n\n const go = (n: number) => onChange?.(Math.min(Math.max(1, n), total));\n\n return (\n <nav className={root} aria-label=\"Pagination\">\n <button\n type=\"button\"\n className={nav}\n aria-label=\"Previous page\"\n disabled={current <= 1}\n onClick={() => go(current - 1)}\n >\n <ChevronLeftIcon size={18} />\n </button>\n {items.map((item, index) =>\n item === \"ellipsis\" ? (\n // biome-ignore lint/suspicious/noArrayIndexKey: ellipsis position is stable per render\n <span key={`ellipsis-${index}`} className={ellipsis}>\n …\n </span>\n ) : (\n <button\n key={item}\n type=\"button\"\n className={pageBtnFor(item === current)}\n aria-current={item === current ? \"page\" : undefined}\n onClick={() => go(item)}\n >\n {item}\n </button>\n ),\n )}\n <button\n type=\"button\"\n className={nav}\n aria-label=\"Next page\"\n disabled={current >= total}\n onClick={() => go(current + 1)}\n >\n <ChevronRightIcon size={18} />\n </button>\n </nav>\n );\n}\n","import { Fragment } from \"react\";\nimport { CheckIcon } from \"../icons/check\";\nimport type { StepperProps } from \"./types\";\nimport { type StepState, useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\nexport function Stepper({ steps, active = 0, className, ...rest }: StepperProps) {\n const { root, step, connector, markerFor, labelFor } = useStyles({ className });\n\n return (\n <div className={root} {...rest}>\n {steps.map((s, index) => {\n const state: StepState = index < active ? \"done\" : index === active ? \"active\" : \"upcoming\";\n const isActive = state === \"active\";\n return (\n // biome-ignore lint/suspicious/noArrayIndexKey: steps are a static, ordered list with no stable id.\n <Fragment key={index}>\n <div className={step} aria-current={isActive ? \"step\" : undefined}>\n <span className={markerFor(state)}>\n {state === \"done\" ? <CheckIcon size={14} /> : index + 1}\n </span>\n <span className={labelFor(isActive)}>{s.label}</span>\n </div>\n {index < steps.length - 1 && <span data-part=\"connector\" className={connector} />}\n </Fragment>\n );\n })}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { StepperProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. La decisión de \"qué clase aplica\" vive acá, no en el JSX.\nexport type StepState = \"done\" | \"active\" | \"upcoming\";\n\nexport function useStyles({ className }: Pick<StepperProps, \"className\">): {\n root: string;\n step: string;\n connector: string;\n markerFor: (state: StepState) => string;\n labelFor: (active: boolean) => string;\n} {\n const { themeClass } = useTheme();\n\n return useMemo(() => {\n const root = [themeClass, styles.root, className].filter(Boolean).join(\" \");\n const markerFor = (state: StepState) =>\n [\n styles.marker,\n state === \"active\" && styles.markerActive,\n state === \"done\" && styles.markerDone,\n ]\n .filter(Boolean)\n .join(\" \");\n const labelFor = (active: boolean) =>\n [styles.label, active && styles.labelActive].filter(Boolean).join(\" \");\n return { root, step: styles.step, connector: styles.connector, markerFor, labelFor };\n }, [themeClass, className]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/stepper/use-styles.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5WTwXKCMBCG7zzFHsshjqCtNp460_dgYlggGhImCVba6bt3DBJRqdMek2z-799_Z2etRWJdJ9FmRmuXZavXxi1xDl8RQC5sI1lHoZB43EQATIpSEeGwthQ4KodmE31Hs5GKddgMKsk_VABK1lA4MPNEiG0YR2LTLMNFaVqTsPiWUzOzRzOQUk_6ELmrKKTrxnMqFGXlLuetNjkaYlguWjug-hMpWikDTcWj8rNoXz1ItBJDdTOu9u4oWC1FPrrmWmpzLRKaSysv8NeYdq11ougI18qhcuOnQitHClYL2Q0sf1VrpQMtDpVWfCKFJO3TubJYlBd7ed8f4_vS6FblFJxhyjbMoHJeTOKR2MoItacwnx7UG3figMO4Fn5cU9kwfmonsHfxnbWJiingu1YBt-xxow6GLpOgw-9J29HzOv5tmrci12Yk26IcfDx7Hw-Dnvh9Hd3LlMYjB1wrhdzpsCsrr3AaGoVkvCfJeU3ucurbvkBKH0bNTCkUhfnDpf0Bss65d2IEAAA';\nexport var connector = 'use-styles_connector__79pt4e7';\nexport var label = 'use-styles_label__79pt4e5';\nexport var labelActive = 'use-styles_labelActive__79pt4e6';\nexport var marker = 'use-styles_marker__79pt4e2';\nexport var markerActive = 'use-styles_markerActive__79pt4e3';\nexport var markerDone = 'use-styles_markerDone__79pt4e4';\nexport var root = 'use-styles_root__79pt4e0';\nexport var step = 'use-styles_step__79pt4e1';","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// La decisión de \"qué clase aplica\" (tab activo o no) vive acá, no en el JSX.\nexport function useStyles(): {\n root: string;\n tab: string;\n tabClass: (active: boolean) => string;\n} {\n const { themeClass } = useTheme();\n return useMemo(() => {\n const root = [themeClass, styles.root].filter(Boolean).join(\" \");\n const tabClass = (active: boolean) =>\n [styles.tab, active && styles.tabActive].filter(Boolean).join(\" \");\n return { root, tab: styles.tab, tabClass };\n }, [themeClass]);\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/tabs/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMWw0bTd0NDAgewogIGRpc3BsYXk6IGZsZXg7CiAgZ2FwOiB2YXIoLS1zcGFjZS1zNF9fZTNncnVyMWMpOwogIGJvcmRlci1ib3R0b206IHZhcigtLWJvcmRlci1oYWlyX19lM2dydXIxbykgc29saWQgdmFyKC0tYm9yZGVyMV9fZTNncnVyMmcpOwp9Ci51c2Utc3R5bGVzX3RhYl9fMWw0bTd0NDEgewogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSkgMDsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBib3JkZXI6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LW1vbm9fX2UzZ3J1cjIpOwogIGZvbnQtc2l6ZTogMTJweDsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXJfX2UzZ3J1cjF1KTsKICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOwogIGNvbG9yOiB2YXIoLS1mZzNfX2UzZ3J1cjJlKTsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdHJhbnNpdGlvbjogY29sb3IgdmFyKC0tZHVyLWZhc3RfX2UzZ3J1cjIxKSB2YXIoLS1lYXNlLWlua19fZTNncnVyMjQpOwogIG91dGxpbmU6IG5vbmU7Cn0KLnVzZS1zdHlsZXNfdGFiX18xbDRtN3Q0MTpmb2N1cy12aXNpYmxlIHsKICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXNfX2UzZ3J1cjJxKTsKICBvdXRsaW5lLW9mZnNldDogMnB4Owp9Ci51c2Utc3R5bGVzX3RhYkFjdGl2ZV9fMWw0bTd0NDIgewogIGNvbG9yOiB2YXIoLS1mZzFfX2UzZ3J1cjJjKTsKfQoudXNlLXN0eWxlc190YWJBY3RpdmVfXzFsNG03dDQyOjphZnRlciB7CiAgY29udGVudDogIiI7CiAgcG9zaXRpb246IGFic29sdXRlOwogIGxlZnQ6IHZhcigtLXNwYWNlLXMwX19lM2dydXIxOCk7CiAgcmlnaHQ6IHZhcigtLXNwYWNlLXMwX19lM2dydXIxOCk7CiAgYm90dG9tOiAtMXB4OwogIGhlaWdodDogMnB4OwogIGJhY2tncm91bmQ6IHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9';\nexport var root = 'use-styles_root__1l4m7t40';\nexport var tab = 'use-styles_tab__1l4m7t41';\nexport var tabActive = 'use-styles_tabActive__1l4m7t42';","import type { TabsProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Controlado: el tab activo lo determina `value`; al clickear se notifica vía `onChange`.\nexport function Tabs({ items, value, onChange }: TabsProps) {\n const { root, tabClass } = useStyles();\n return (\n <div role=\"tablist\" className={root}>\n {items.map((item) => {\n const active = item.value === value;\n return (\n <button\n key={item.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={active}\n className={tabClass(active)}\n onClick={() => onChange?.(item.value)}\n >\n {item.label}\n </button>\n );\n })}\n </div>\n );\n}\n","import {\n type KeyboardEvent,\n type MouseEvent,\n type Ref,\n cloneElement,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport type { MenuProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Aplica un valor de nodo a un ref (callback o objeto), tolerando null/undefined.\nfunction assignRef<T>(ref: Ref<T> | undefined, value: T | null) {\n if (typeof ref === \"function\") ref(value);\n else if (ref) (ref as { current: T | null }).current = value;\n}\n\n// Presentacional: la lógica de estilos vive en use-styles.ts. Maneja estado real de apertura,\n// clonando el trigger para alternar `open` y cerrando en click-fuera / ESC. Soporta navegación\n// por teclado (flechas, Home/End) y restaura el foco al trigger al cerrar con ESC.\nexport function Menu({ trigger, items }: MenuProps) {\n const { wrapper, list, item, dangerItem } = useStyles();\n const [open, setOpen] = useState(false);\n const rootRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n\n const getMenuItems = () =>\n Array.from(listRef.current?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? []);\n\n const focusItemAt = (index: number) => {\n const menuItems = getMenuItems();\n if (menuItems.length === 0) return;\n const wrapped = (index + menuItems.length) % menuItems.length;\n menuItems[wrapped]?.focus();\n };\n\n const closeAndRestoreFocus = () => {\n setOpen(false);\n triggerRef.current?.focus();\n };\n\n useEffect(() => {\n if (!open) return;\n // Al abrir, enfocar el primer menuitem.\n listRef.current?.querySelector<HTMLButtonElement>('[role=\"menuitem\"]')?.focus();\n\n const onDocMouseDown = (event: globalThis.MouseEvent) => {\n if (rootRef.current && !rootRef.current.contains(event.target as Node)) {\n setOpen(false);\n }\n };\n const onKeyDown = (event: globalThis.KeyboardEvent) => {\n if (event.key === \"Escape\") {\n setOpen(false);\n triggerRef.current?.focus();\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onDocMouseDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, [open]);\n\n const onMenuKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const menuItems = getMenuItems();\n const current = menuItems.indexOf(document.activeElement as HTMLButtonElement);\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n focusItemAt(current + 1);\n break;\n case \"ArrowUp\":\n event.preventDefault();\n focusItemAt(current - 1);\n break;\n case \"Home\":\n event.preventDefault();\n focusItemAt(0);\n break;\n case \"End\":\n event.preventDefault();\n focusItemAt(menuItems.length - 1);\n break;\n case \"Escape\":\n event.preventDefault();\n closeAndRestoreFocus();\n break;\n case \"Tab\":\n // Dejá que Tab mueva el foco fuera del menú (los items están fuera del tab order);\n // solo cerramos. Sin preventDefault para no bloquear el avance natural.\n setOpen(false);\n break;\n }\n };\n\n const triggerProps = trigger.props as { onClick?: (event: MouseEvent) => void };\n // El consumidor puede haber puesto su propio ref en el trigger: lo mergeamos con el nuestro.\n const consumerRef = (trigger as { ref?: Ref<HTMLElement> }).ref;\n const mergedTriggerRef = (node: HTMLElement | null) => {\n triggerRef.current = node;\n assignRef(consumerRef, node);\n };\n const clonedTrigger = cloneElement(trigger, {\n ref: mergedTriggerRef,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": open,\n onClick: (event: MouseEvent) => {\n triggerProps.onClick?.(event);\n setOpen((prev) => !prev);\n },\n } as Partial<typeof trigger.props> & {\n ref: Ref<HTMLElement>;\n \"aria-haspopup\": \"menu\";\n \"aria-expanded\": boolean;\n onClick: (event: MouseEvent) => void;\n });\n\n return (\n <div ref={rootRef} className={wrapper}>\n {clonedTrigger}\n {open && (\n <div ref={listRef} role=\"menu\" className={list} onKeyDown={onMenuKeyDown}>\n {items.map((entry, index) => (\n <button\n // biome-ignore lint/suspicious/noArrayIndexKey: items are a static positional list\n key={index}\n type=\"button\"\n role=\"menuitem\"\n tabIndex={-1}\n className={entry.danger ? dangerItem : item}\n onClick={() => {\n entry.onClick?.();\n setOpen(false);\n }}\n >\n {entry.label}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve.\nexport function useStyles(): {\n wrapper: string;\n list: string;\n item: string;\n dangerItem: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n wrapper: [themeClass, styles.wrapper].filter(Boolean).join(\" \"),\n list: styles.list,\n item: styles.item,\n dangerItem: [styles.item, styles.danger].join(\" \"),\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/menu/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfd3JhcHBlcl9fMXV5eGFqMCB7CiAgcG9zaXRpb246IHJlbGF0aXZlOwogIGRpc3BsYXk6IGlubGluZS1mbGV4Owp9Ci51c2Utc3R5bGVzX2xpc3RfXzF1eXhhajEgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICBtaW4td2lkdGg6IDE4MHB4OwogIHotaW5kZXg6IDIwOwogIG1hcmdpbi10b3A6IHZhcigtLXNwYWNlLXMxX19lM2dydXIxOSk7Cn0KLnVzZS1zdHlsZXNfaXRlbV9fMXV5eGFqMiB7CiAgd2lkdGg6IDEwMCU7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICB0ZXh0LWFsaWduOiBsZWZ0OwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSkgdmFyKC0tc3BhY2UtczNfX2UzZ3J1cjFiKTsKICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKICBib3JkZXI6IG5vbmU7CiAgY3Vyc29yOiBwb2ludGVyOwogIGZvbnQtZmFtaWx5OiB2YXIoLS1mb250LXRleHRfX2UzZ3J1cjEpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbWFsbC1zaXplX19lM2dydXIxMCk7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwp9Ci51c2Utc3R5bGVzX2l0ZW1fXzF1eXhhajI6aG92ZXIgewogIGJhY2tncm91bmQ6IHZhcigtLWJnM19fZTNncnVyMmEpOwp9Ci51c2Utc3R5bGVzX2l0ZW1fXzF1eXhhajI6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19kYW5nZXJfXzF1eXhhajMgewogIGNvbG9yOiB2YXIoLS1kYW5nZXJfX2UzZ3J1cjJvKTsKfQ';\nexport var danger = 'use-styles_danger__1uyxaj3';\nexport var item = 'use-styles_item__1uyxaj2';\nexport var list = 'use-styles_list__1uyxaj1 surfaces_panelSurface__1qa7atn1';\nexport var wrapper = 'use-styles_wrapper__1uyxaj0';","import {\n type MouseEvent,\n type KeyboardEvent as ReactKeyboardEvent,\n useEffect,\n useId,\n useRef,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Typography } from \"../typography\";\nimport type { DialogProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Selector de elementos focuseables para el focus trap.\nconst FOCUSABLE =\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\n//TODO: usa el patrón composable para header/footer (Dialog.Header, Dialog.Footer) y así evitar props opcionales y mejorar la validación de lo que se pasa como children (p.ej. no permitir pasar un nodo cualquiera como header/footer).// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n//TODO: maneja la logica de apertura/cierre y muevelo a un useDialog para separar responsabilidades y facilitar su reutilización en otros componentes (p.ej. Drawer). Maneja cierre por backdrop, ESC, focus trap, restauración de foco y scroll-lock.\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Maneja cierre por backdrop, ESC, focus trap, restauración de foco y scroll-lock.\nexport function Dialog({ open, onClose, title, actions, children }: DialogProps) {\n const { overlay, surface, body, actions: actionsClass } = useStyles();\n const surfaceRef = useRef<HTMLDivElement>(null);\n const previouslyFocused = useRef<HTMLElement | null>(null);\n const generatedId = useId();\n const titleId = title != null ? generatedId : undefined;\n\n useEffect(() => {\n if (!open) return;\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key === \"Escape\") onClose();\n };\n document.addEventListener(\"keydown\", onKeyDown);\n return () => document.removeEventListener(\"keydown\", onKeyDown);\n }, [open, onClose]);\n\n // Restauración de foco: guarda el elemento activo al abrir y lo devuelve al cerrar/desmontar.\n useEffect(() => {\n if (!open) return;\n previouslyFocused.current = document.activeElement as HTMLElement | null;\n surfaceRef.current?.focus();\n return () => previouslyFocused.current?.focus?.();\n }, [open]);\n\n // Scroll-lock del body mientras está abierto.\n useEffect(() => {\n if (!open) return;\n const previousOverflow = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => {\n document.body.style.overflow = previousOverflow;\n };\n }, [open]);\n\n if (!open || typeof document === \"undefined\") return null;\n\n const stop = (event: MouseEvent<HTMLDivElement>) => event.stopPropagation();\n\n // Focus trap: cicla el foco entre los elementos focuseables del surface.\n const onSurfaceKeyDown = (event: ReactKeyboardEvent<HTMLDivElement>) => {\n if (event.key !== \"Tab\") return;\n const surfaceEl = surfaceRef.current;\n if (!surfaceEl) return;\n const focusable = Array.from(surfaceEl.querySelectorAll<HTMLElement>(FOCUSABLE)).filter(\n (el) => el.offsetParent !== null || el === surfaceEl,\n );\n if (focusable.length === 0) {\n event.preventDefault();\n surfaceEl.focus();\n return;\n }\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n if (!first || !last) return;\n const active = document.activeElement;\n if (event.shiftKey) {\n if (active === first || active === surfaceEl) {\n event.preventDefault();\n last.focus();\n }\n } else if (active === last) {\n event.preventDefault();\n first.focus();\n }\n };\n\n return createPortal(\n // biome-ignore lint/a11y/useKeyWithClickEvents: ESC handled by a document keydown listener.\n <div className={overlay} data-testid=\"dialog-overlay\" onClick={onClose}>\n <div\n ref={surfaceRef}\n className={surface}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n tabIndex={-1}\n onClick={stop}\n onKeyDown={onSurfaceKeyDown}\n >\n {title != null && (\n <Typography variant=\"h3\" as=\"h2\" id={titleId}>\n {title}\n </Typography>\n )}\n {children != null && (\n <div className={body}>\n <Typography variant=\"body\" color=\"fg2\">\n {children}\n </Typography>\n </div>\n )}\n {actions != null && <div className={actionsClass}>{actions}</div>}\n </div>\n </div>,\n document.body,\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts`. El componente solo aplica lo que devuelve este hook.\nexport function useStyles(): {\n overlay: string;\n surface: string;\n body: string;\n actions: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n overlay: [themeClass, styles.overlay].filter(Boolean).join(\" \"),\n surface: styles.surface,\n body: styles.body,\n actions: styles.actions,\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/dialog/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfb3ZlcmxheV9fNXRzdHU4MCB7CiAgcG9zaXRpb246IGZpeGVkOwogIGluc2V0OiAwOwogIGJhY2tncm91bmQ6IHZhcigtLXNjcmltX19lM2dydXIycik7CiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDRweCk7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGp1c3RpZnktY29udGVudDogY2VudGVyOwogIHotaW5kZXg6IDUwOwp9Ci51c2Utc3R5bGVzX3N1cmZhY2VfXzV0c3R1ODEgewogIGJhY2tncm91bmQ6IHZhcigtLWJnMl9fZTNncnVyMjkpOwogIGJvcmRlcjogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKSBzb2xpZCB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWxnX19lM2dydXIxbCk7CiAgYm94LXNoYWRvdzogdmFyKC0tc2hhZG93LWxnX19lM2dydXIyNyk7CiAgbWF4LXdpZHRoOiA0ODBweDsKICB3aWR0aDogOTAlOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXM1X19lM2dydXIxZCk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdXRsaW5lOiBub25lOwp9Ci51c2Utc3R5bGVzX3N1cmZhY2VfXzV0c3R1ODE6Zm9jdXMtdmlzaWJsZSB7CiAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWZvY3VzX19lM2dydXIycSk7CiAgb3V0bGluZS1vZmZzZXQ6IDJweDsKfQoudXNlLXN0eWxlc19ib2R5X181dHN0dTgyIHsKICBtYXJnaW4tdG9wOiB2YXIoLS1zcGFjZS1zM19fZTNncnVyMWIpOwp9Ci51c2Utc3R5bGVzX2FjdGlvbnNfXzV0c3R1ODMgewogIGRpc3BsYXk6IGZsZXg7CiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsKICBnYXA6IHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSk7CiAgbWFyZ2luLXRvcDogdmFyKC0tc3BhY2UtczRfX2UzZ3J1cjFjKTsKfQ';\nexport var actions = 'use-styles_actions__5tstu83';\nexport var body = 'use-styles_body__5tstu82';\nexport var overlay = 'use-styles_overlay__5tstu80';\nexport var surface = 'use-styles_surface__5tstu81';","import { createPortal } from \"react-dom\";\nimport { XIcon } from \"../icons/x\";\nimport type { SnackbarProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Controlado: render `null` si !open; sin auto-timer en v1.\n// Se monta en un portal en document.body para escapar de overflow/stacking del contenedor;\n// el slot raíz lleva la clase de tema (themeClass) para no perder los colores al portalizar.\nexport function Snackbar({ open, message, action, onClose }: SnackbarProps) {\n const { root, message: messageClass, closeBtn } = useStyles();\n if (!open || typeof document === \"undefined\") return null;\n return createPortal(\n <div role=\"status\" className={root}>\n <span className={messageClass}>{message}</span>\n {action}\n {onClose && (\n <button type=\"button\" aria-label=\"Close\" className={closeBtn} onClick={onClose}>\n <XIcon size={18} />\n </button>\n )}\n </div>,\n document.body,\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) y devuelve un objeto de clases por slot.\n// Apareado con `use-styles.css.ts` (los estilos). El componente solo aplica lo que devuelve.\nexport function useStyles(): {\n root: string;\n message: string;\n closeBtn: string;\n} {\n const { themeClass } = useTheme();\n return useMemo(\n () => ({\n root: [themeClass, styles.root].filter(Boolean).join(\" \"),\n message: styles.message,\n closeBtn: styles.closeBtn,\n }),\n [themeClass],\n );\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/theme/styles/surfaces/index.css.ts.vanilla.css?source=LnN1cmZhY2VzX3NyT25seV9fMXFhN2F0bjAgewogIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICB3aWR0aDogMXB4OwogIGhlaWdodDogMXB4OwogIHBhZGRpbmc6IDA7CiAgbWFyZ2luOiAtMXB4OwogIG92ZXJmbG93OiBoaWRkZW47CiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTsKICB3aGl0ZS1zcGFjZTogbm93cmFwOwogIGJvcmRlcjogMDsKfQouc3VyZmFjZXNfcGFuZWxTdXJmYWNlX18xcWE3YXRuMSB7CiAgYmFja2dyb3VuZDogdmFyKC0tYmcyX19lM2dydXIyOSk7CiAgYm9yZGVyLXdpZHRoOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pOwogIGJvcmRlci1zdHlsZTogc29saWQ7CiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm9yZGVyLXJhZGl1czogdmFyKC0tcmFkaXVzLWJhc2VfX2UzZ3J1cjFtKTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKICBvdmVyZmxvdzogaGlkZGVuOwp9Ci5zdXJmYWNlc19pbmt5U3VyZmFjZV9fMXFhN2F0bjIgewogIGJhY2tncm91bmQ6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGNvbG9yOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3gtc2hhZG93OiB2YXIoLS1zaGFkb3ctbGdfX2UzZ3J1cjI3KTsKfQ';\nimport 'src/components/snackbar/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9faWh6c2VwMCB7CiAgcG9zaXRpb246IGZpeGVkOwogIGJvdHRvbTogdmFyKC0tc3BhY2UtczVfX2UzZ3J1cjFkKTsKICBsZWZ0OiA1MCU7CiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOwogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IHZhcigtLXNwYWNlLXMzX19lM2dydXIxYik7CiAgcGFkZGluZzogdmFyKC0tc3BhY2UtczNfX2UzZ3J1cjFiKSB2YXIoLS1zcGFjZS1zNF9fZTNncnVyMWMpOwogIGJvcmRlci1yYWRpdXM6IHZhcigtLXJhZGl1cy1iYXNlX19lM2dydXIxbSk7CiAgei1pbmRleDogNjA7Cn0KLnVzZS1zdHlsZXNfbWVzc2FnZV9faWh6c2VwMSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGV4dF9fZTNncnVyMSk7CiAgZm9udC1zaXplOiB2YXIoLS10ZXh0LXNtYWxsLXNpemVfX2UzZ3J1cjEwKTsKfQoudXNlLXN0eWxlc19jbG9zZUJ0bl9faWh6c2VwMiB7CiAgZGlzcGxheTogaW5saW5lLWZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsKICBwYWRkaW5nOiAwOwogIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OwogIGJvcmRlcjogbm9uZTsKICBjb2xvcjogdmFyKC0tYmcxX19lM2dydXIyOCk7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IG9wYWNpdHkgdmFyKC0tZHVyLWZhc3RfX2UzZ3J1cjIxKSB2YXIoLS1lYXNlLWlua19fZTNncnVyMjQpOwogIG91dGxpbmU6IG5vbmU7Cn0KLnVzZS1zdHlsZXNfY2xvc2VCdG5fX2loenNlcDI6aG92ZXIgewogIG9wYWNpdHk6IDAuNzsKfQoudXNlLXN0eWxlc19jbG9zZUJ0bl9faWh6c2VwMjpmb2N1cy12aXNpYmxlIHsKICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZm9jdXNfX2UzZ3J1cjJxKTsKICBvdXRsaW5lLW9mZnNldDogMnB4Owp9';\nexport var closeBtn = 'use-styles_closeBtn__ihzsep2';\nexport var message = 'use-styles_message__ihzsep1';\nexport var root = 'use-styles_root__ihzsep0 surfaces_inkySurface__1qa7atn2';","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { TableProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: Pick<TableProps<Record<string, unknown>>, \"className\">): {\n root: string;\n th: string;\n td: string;\n alignRight: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n return { root, th: styles.th, td: styles.td, alignRight: styles.alignRight };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/table/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMW4yY3o2aTAgewogIHdpZHRoOiAxMDAlOwogIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtdGV4dF9fZTNncnVyMSk7Cn0KLnVzZS1zdHlsZXNfdGhfXzFuMmN6NmkxIHsKICBmb250LWZhbWlseTogdmFyKC0tZm9udC1tb25vX19lM2dydXIyKTsKICBmb250LXNpemU6IHZhcigtLXRleHQtZXllYnJvdy1zaXplX19lM2dydXI0KTsKICBsZXR0ZXItc3BhY2luZzogdmFyKC0tdHJhY2tpbmctd2lkZXN0X19lM2dydXIxdik7CiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsKICBjb2xvcjogdmFyKC0tZmczX19lM2dydXIyZSk7CiAgdGV4dC1hbGlnbjogbGVmdDsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zMl9fZTNncnVyMWEpIHZhcigtLXNwYWNlLXMzX19lM2dydXIxYik7CiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLXJ1bGVfX2UzZ3J1cjFwKSBzb2xpZCB2YXIoLS1ib3JkZXIyX19lM2dydXIyaCk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoudXNlLXN0eWxlc190ZF9fMW4yY3o2aTIgewogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMzX19lM2dydXIxYik7CiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tYm9yZGVyLWhhaXJfX2UzZ3J1cjFvKSBzb2xpZCB2YXIoLS1ib3JkZXIxX19lM2dydXIyZyk7CiAgY29sb3I6IHZhcigtLWZnMV9fZTNncnVyMmMpOwogIGZvbnQtc2l6ZTogdmFyKC0tdGV4dC1zbWFsbC1zaXplX19lM2dydXIxMCk7CiAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoudXNlLXN0eWxlc19hbGlnblJpZ2h0X18xbjJjejZpMyB7CiAgdGV4dC1hbGlnbjogcmlnaHQ7Cn0';\nexport var alignRight = 'use-styles_alignRight__1n2cz6i3';\nexport var root = 'use-styles_root__1n2cz6i0';\nexport var td = 'use-styles_td__1n2cz6i2';\nexport var th = 'use-styles_th__1n2cz6i1';","import type { TableColumn, TableProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Genérico sobre `Row`; reenvía las props nativas de <table>.\nexport function Table<Row extends Record<string, unknown>>({\n columns,\n rows,\n getRowKey,\n className,\n ...rest\n}: TableProps<Row>) {\n const { root, th, td, alignRight } = useStyles({ className });\n const headClass = (column: TableColumn<Row>) =>\n column.align === \"right\" ? `${th} ${alignRight}` : th;\n const cellClass = (column: TableColumn<Row>) =>\n column.align === \"right\" ? `${td} ${alignRight}` : td;\n return (\n <table className={root} {...rest}>\n <thead>\n <tr>\n {columns.map((column) => (\n <th key={column.key} className={headClass(column)}>\n {column.header}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {rows.map((row, index) => (\n <tr key={getRowKey ? getRowKey(row, index) : index}>\n {columns.map((column) => (\n <td key={column.key} className={cellClass(column)}>\n {column.render ? column.render(row) : String(row[column.key])}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { AppBarProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({ className }: Pick<AppBarProps, \"className\">): {\n root: string;\n brand: string;\n actions: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () => [themeClass, styles.root, className].filter(Boolean).join(\" \"),\n [themeClass, className],\n );\n return { root, brand: styles.brand, actions: styles.actions };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/app-bar/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fMWgxMzNuaDAgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CiAgZ2FwOiB2YXIoLS1zcGFjZS1zNF9fZTNncnVyMWMpOwogIHBhZGRpbmc6IHZhcigtLXNwYWNlLXMzX19lM2dydXIxYikgdmFyKC0tc3BhY2UtczRfX2UzZ3J1cjFjKTsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzFfX2UzZ3J1cjI4KTsKICBib3JkZXItYm90dG9tOiB2YXIoLS1ib3JkZXItaGFpcl9fZTNncnVyMW8pIHNvbGlkIHZhcigtLWJvcmRlcjFfX2UzZ3J1cjJnKTsKICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9Ci51c2Utc3R5bGVzX2JyYW5kX18xaDEzM25oMSB7CiAgZm9udC1mYW1pbHk6IHZhcigtLWZvbnQtZGlzcGxheV9fZTNncnVyMCk7Cn0KLnVzZS1zdHlsZXNfYWN0aW9uc19fMWgxMzNuaDIgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKICBnYXA6IHZhcigtLXNwYWNlLXMyX19lM2dydXIxYSk7Cn0';\nexport var actions = 'use-styles_actions__1h133nh2';\nexport var brand = 'use-styles_brand__1h133nh1';\nexport var root = 'use-styles_root__1h133nh0';","import type { AppBarProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; brand/actions/children son nodos que provee el consumidor.\nexport function AppBar({ brand, actions, className, children, ...rest }: AppBarProps) {\n const styles = useStyles({ className });\n return (\n <header className={styles.root} {...rest}>\n {brand !== undefined ? <div className={styles.brand}>{brand}</div> : null}\n {children}\n {actions !== undefined ? <div className={styles.actions}>{actions}</div> : null}\n </header>\n );\n}\n","import { useMemo } from \"react\";\nimport { useTheme } from \"../../theme/context/theme-context\";\nimport type { ListItemProps } from \"./types\";\nimport * as styles from \"./use-styles.css\";\n\n// La lógica de estilos: toma el tema activo (useTheme) + las props relevantes y devuelve\n// un objeto de clases por slot. Apareado con `use-styles.css.ts` (los estilos).\nexport function useStyles({\n selected,\n className,\n}: { [K in \"selected\" | \"className\"]?: ListItemProps[K] | undefined }): {\n root: string;\n leading: string;\n content: string;\n trailing: string;\n} {\n const { themeClass } = useTheme();\n const root = useMemo(\n () =>\n [themeClass, styles.root, selected && styles.selected, className].filter(Boolean).join(\" \"),\n [themeClass, selected, className],\n );\n return { root, leading: styles.leading, content: styles.content, trailing: styles.trailing };\n}\n","import 'src/theme/theme.css.ts.vanilla.css?source=#H4sIAAAAAAAAA-1Zy3LjNhbd91fcKS_cnSJVAPgSkc1Qr04WnUnFmbULoiCJbZFUg5Ttdqr_fQoUXwAhSvFyKpblsuucCxwQB4eXFhV5XsJfHwBse5tnpb1JiuOBfX985M5OnASicL_4Ag9cJFtYnLF7C-7_TFJewG_8Bf7IU5bdW1BIys_dQCV_LZtRMIX73_hLITjbcHFvwWeei13ChlVpnuVNFaFw_-vsC_x-4K_wJc9yOfHDSv5m_8F3pwOTQ8mK4shi3htlfWDxUzOMQ-H-v1myFeypPIkvbHfKyoTJsT4Lnr1x-JyXSRHv1TVI-Tb_ztcif7GL5I03w7kU0MQPXcFTA_OQZPwXnuz27do9CnhCDNQXheZT8BAyjcjLkouHI4uTbNewAykCu4qEeucUsVMK3sQXRt5QaiilIs_AVbUyCr6itR3SpHVNwUYThBURe6zojCmQSSh0ylDiZiBxjzV1XFcnBzIJ2xqFEUXYTgrDQqcMhe31bd4TTVcy0EXMur5SUGiOouhJTuT5jqbJMWg6DDQ5mqZUd50cx6Qp0zS5iqa8msjTJLkGSceBJFeT9G1wmVyzJKFKWucb1fsFBW3jKspQUyk1BTpPVXWi4KLBdEZdz6quA2cbRdeL6WJVrKG0V11axVOlfdelnccySXtTpRUpOxwUbRjJYAk1cWfeUB3GlRcHTFUfJrrAejyTQuyoEmN2LJM8U0VWETx1tCPQUA06PV1nw9WU-rrSdkyj1iqFUZvC1V3ILlCLT9u11BBuoVCW9kxQE0hLYJIwwJ0WX0s8GBDclhD37V-jXotWOTqo9lucUyA6GrToloKjo9MW3VFwdTRs0T2F7oYk2CY5FXaWZ93uJhTQ8VXBi7RFv1JwNDTdtOgTBU9DD91-HShMNXTNim7mlIKr4dvT4dDiGYUwDBvGOhcbLuw9S0TLkEGo4eJ06Gao4s_TR-DsuW248DcKpCGUgsVPSbazS8WmQr9xNbQsFynr9BbdWWoYL8mmU1Oq_lVI3ZpOVa9hJBWdpme1IzkfLPug6H6h4DTHqyaIcx_XUl57J7CmpHyTnDoDfO_dsmpGwdNknR86G7z17iE1p48TRCFo8M1J2FvWrYTIUCMoLTq4bxJCKBCkwMUhf2lhh4LjtzBnBbeTrO1FiUshPq2T2F7zt4SLj2hCLEDVN_5Un5g928ies10y8Sgg6StAIHZr9pEgCwcWdi00Qb5a1Z0F4ssqcnwFjI6vYLvH10E1IWp1d1ZIUM0pyx35w64G0esd99PPH358oL2HiPWuDTkypXC3mq6ClVv7fdfmGwklVn01WJtthFG4Wy6Ws6XfYL9mBe92aC1xd4kXUd3z9-aMKdxhDzto1WDdnBsKd27o-i5qsG5OTuEucALkhw32nyyKY55102715VTHt5t6R-sLhC3AoQXYs-SZaK7xmd6p2RvpxFfoD6XIuzsOSYw1U6-uYargr3JNM7zEyz78S_7cnW7yROHOd7CP_T7nId92wxzqSTFxLHDQ-Y0mGNWz5p29Uwp3ztKbO_XOvDCRtWBG4W4a-VEjZ8OyXU9JrqlNsm33KHikcEeWLvGC5jEvPhUt-k0rLWKRdMdH0Na4gAMLsCvle17l3Um55yl_rH4Wj2WSlexRSS1S_OPsf5z9f-LsDRPdki5FNkZoiWZmY-MI-xibjY0C5DeP5iZjE4IXzWboxl6R5WJJzMaeBdEqXJmNPQ2mKEDjxu4NfdHYLrGAOIEFhPiVBZxr3tYrbrS3XjZFlx0-I07U-O2Sw-dzN3Kj6w4PphZ49RtNsG92eLCKcDC94PB5ECH3ssPnpFMycLi_DMnMveTw_iLMDg8s8C2oMsG_bO-CHxPW1p4u-HsZLhbzS8FNluHCM_t7MZ8vovllfy_IHIUzs79JRBB2zP72IjdyHLO__aWPXP-avzvJF_wtXeeQc7L2dv-SuVW6Q25xtlozJSPBHZElJuO29lYEo_CG4CYWuL4FeKrckTRbu5EXkeU7g7undmBrZ-4uR4K7V2q2tXrRRoI7zrNS9J9Sni91JUrncXtXsiLyNdKVRPJlNjeqvszmVjHV3GQmX-Pm7ksemlsZ3uBmAz60r0Iy-HUID_3aX8qIX1HzsIcmaGr2an-2gVf7oMGr01kHD7yq7MTAq33U7NWe9qDy6b_lkzmDj0fBt1wUdpwfcmEXsfQtBdlqfKpM2j0ejncb4_3GeMdxvecY7zrG-47xzuOm3uM93cd7-o93dyBXe5DbupB39SGjnciVXuRqN3KlH7nWkdzekwD8MJ6Kc3JTSHPBbzkRXeaNh_h4jF8P8vEoHw_z8Ti_KdCvR_r1UL8x1q8G-23R_rfDfTTerwT81Yi_EvLXYv7moDfbWvDNKeYbO83lByQUzn-f7f2TBT9RuubbXPDqV7Ytuaj9XgqWFUn1qcrmJNi5Wv43Oy3gX0l6zEXJsvKskGVJyv4uNSn5mWvH-SmTH-5p5B8ffvwPFbXOiPcgAAA';\nimport 'src/components/list-item/use-styles.css.ts.vanilla.css?source=LnVzZS1zdHlsZXNfcm9vdF9fa2JyZXExMCB7CiAgZGlzcGxheTogZmxleDsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIGdhcDogdmFyKC0tc3BhY2UtczNfX2UzZ3J1cjFiKTsKICBwYWRkaW5nOiB2YXIoLS1zcGFjZS1zM19fZTNncnVyMWIpIHZhcigtLXNwYWNlLXM0X19lM2dydXIxYyk7CiAgY3Vyc29yOiBwb2ludGVyOwogIHRyYW5zaXRpb246IGJhY2tncm91bmQgdmFyKC0tZHVyLWZhc3RfX2UzZ3J1cjIxKSB2YXIoLS1lYXNlLWlua19fZTNncnVyMjQpOwp9Ci51c2Utc3R5bGVzX3Jvb3RfX2ticmVxMTA6aG92ZXIgewogIGJhY2tncm91bmQ6IHZhcigtLWJnM19fZTNncnVyMmEpOwp9Ci51c2Utc3R5bGVzX3NlbGVjdGVkX19rYnJlcTExIHsKICBiYWNrZ3JvdW5kOiB2YXIoLS1iZzNfX2UzZ3J1cjJhKTsKICBib3gtc2hhZG93OiBpbnNldCAycHggMCAwIHZhcigtLWFjY2VudF9fZTNncnVyMmopOwp9Ci51c2Utc3R5bGVzX2xlYWRpbmdfX2ticmVxMTIgewogIGRpc3BsYXk6IGZsZXg7CiAgYWxpZ24taXRlbXM6IGNlbnRlcjsKfQoudXNlLXN0eWxlc19jb250ZW50X19rYnJlcTEzIHsKICBmbGV4OiAxOwp9Ci51c2Utc3R5bGVzX3RyYWlsaW5nX19rYnJlcTE0IHsKICBkaXNwbGF5OiBmbGV4OwogIGFsaWduLWl0ZW1zOiBjZW50ZXI7Cn0';\nexport var content = 'use-styles_content__kbreq13';\nexport var leading = 'use-styles_leading__kbreq12';\nexport var root = 'use-styles_root__kbreq10';\nexport var selected = 'use-styles_selected__kbreq11';\nexport var trailing = 'use-styles_trailing__kbreq14';","import type { ListItemProps } from \"./types\";\nimport { useStyles } from \"./use-styles\";\n\n// Presentacional: la lógica de estilos vive en use-styles.ts (useStyles).\n// Reenvía las props nativas; leading/trailing son nodos que provee el consumidor.\nexport function ListItem({\n leading,\n trailing,\n selected,\n className,\n children,\n ...rest\n}: ListItemProps) {\n const styles = useStyles({ selected, className });\n return (\n <div className={styles.root} {...rest}>\n {leading != null && <span className={styles.leading}>{leading}</span>}\n <span className={styles.content}>{children}</span>\n {trailing != null && <span className={styles.trailing}>{trailing}</span>}\n </div>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function ChevronUpIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"m18 15-6-6-6 6\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function SearchIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <path d=\"m21 21-4.3-4.3\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function PlusIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M5 12h14\" />\n <path d=\"M12 5v14\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function MinusIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n","import type { IconProps } from \"../types\";\n\nexport function MoreHorizontalIcon({ size = 20, strokeWidth = 1.75, ...rest }: IconProps) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={strokeWidth}\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n {...rest}\n >\n <circle cx=\"12\" cy=\"12\" r=\"1\" />\n <circle cx=\"19\" cy=\"12\" r=\"1\" />\n <circle cx=\"5\" cy=\"12\" r=\"1\" />\n </svg>\n );\n}\n"],"mappings":"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","names":["useMemo","useEffect","useState","jsx","useState","useEffect","useStyles","variant","color","align","useMemo","jsx","variant","color","align","text","useStyles","useMemo","variant","tone","useStyles","size","full","useMemo","jsx","variant","tone","size","full","useStyles","useMemo","root","useStyles","vertical","root","useMemo","jsx","jsxs","vertical","label","root","line","useStyles","useMemo","root","size","useStyles","size","root","useMemo","jsx","size","root","useStyles","useMemo","root","tone","useStyles","tone","root","useMemo","dot","jsx","jsxs","tone","root","dot","useStyles","useMemo","useStyles","variant","indeterminate","useMemo","root","jsx","variant","size","track","bar","spinner","useStyles","indeterminate","jsx","jsxs","size","useMemo","root","tone","useStyles","selected","tone","clickable","root","useMemo","jsx","jsxs","selected","tone","clickable","root","deleteBtn","useStyles","jsx","size","useMemo","root","useStyles","disabled","root","useMemo","box","jsx","jsxs","label","disabled","root","input","box","check","useStyles","useMemo","disabled","dot","input","label","root","useStyles","disabled","root","useMemo","input","dot","label","jsx","jsxs","label","disabled","root","input","circle","dot","useStyles","useMemo","input","label","root","track","useStyles","useMemo","root","input","track","label","jsx","jsxs","label","disabled","root","input","track","knob","useStyles","useMemo","input","root","useStyles","useMemo","root","labelText","input","helpText","jsx","jsxs","label","trailing","useStyles","jsx","label","useState","jsx","jsxs","size","jsx","jsxs","size","useMemo","useStyles","useMemo","jsx","label","useState","useStyles","useMemo","useState","jsx","label","useState","useMemo","useMemo","root","useStyles","active","tone","root","useMemo","jsx","active","tone","root","useStyles","useMemo","root","useStyles","root","useMemo","jsx","root","useStyles","header","body","footer","jsx","jsxs","size","jsx","jsxs","size","jsx","jsxs","size","jsx","jsxs","size","useMemo","root","useStyles","severity","root","useMemo","jsx","jsxs","severity","useStyles","useId","useState","useMemo","useStyles","placement","wrapper","useMemo","bubble","jsx","jsxs","label","placement","useState","useId","wrapper","bubble","useStyles","trigger","useEffect","useId","useRef","useState","jsx","size","useMemo","label","root","useStyles","useMemo","chevron","root","label","selected","active","jsx","jsxs","placeholder","label","disabled","useState","useRef","useId","root","trigger","chevron","menu","useStyles","useEffect","selected","option","current","useMemo","input","label","root","track","wrapper","useStyles","useMemo","root","wrapper","label","track","input","jsx","jsxs","step","disabled","label","wrapper","root","track","range","thumb","input","useStyles","useState","useMemo","chevron","chevronOpen","header","root","useStyles","useMemo","root","header","chevron","chevronOpen","jsx","jsxs","useState","root","item","header","panel","useStyles","current","jsx","size","useMemo","root","useStyles","root","useMemo","jsx","jsxs","root","crumb","current","separator","useStyles","item","jsx","size","useMemo","root","useStyles","useMemo","root","active","jsx","jsxs","root","ellipsis","nav","useStyles","current","item","Fragment","useMemo","label","root","useStyles","useMemo","root","active","label","jsx","jsxs","active","root","step","connector","useStyles","Fragment","useMemo","root","useStyles","useMemo","root","active","jsx","root","useStyles","item","active","cloneElement","useEffect","useRef","useState","useMemo","item","wrapper","useStyles","useMemo","wrapper","item","jsx","jsxs","trigger","wrapper","list","item","useStyles","useState","useRef","useEffect","current","cloneElement","useEffect","useId","useRef","useMemo","body","useStyles","useMemo","body","jsx","jsxs","actions","overlay","surface","body","useStyles","useRef","useId","useEffect","active","createPortal","useMemo","root","useStyles","useMemo","root","jsx","jsxs","message","root","closeBtn","useStyles","createPortal","useMemo","root","useStyles","root","useMemo","jsx","jsxs","root","th","td","alignRight","useStyles","useMemo","actions","root","useStyles","root","useMemo","actions","jsx","jsxs","brand","actions","useStyles","useMemo","content","root","selected","useStyles","selected","root","useMemo","content","jsx","jsxs","leading","trailing","selected","useStyles","jsx","size","jsx","jsxs","size","jsx","jsxs","size","jsx","size","jsx","jsxs","size"]}
|