@mikenotthepope/substrateui 0.1.2 → 0.2.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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/card.tsx","../src/components/ui/center.tsx","../src/components/ui/stack.tsx","../src/components/ui/tabs.tsx","../src/lib/resolve-labels.ts","../src/components/providers/labels-provider.tsx"],"names":["jsx","Slot"],"mappings":";;;;;;AAYA,SAAS,KAAK,EAAA,EAKqD;AALrD,EAAA,IAAA,EAAA,GAAA,EAAA,EACZ;AAAA,IAAA,SAAA;AAAA,IACA,WAAA,GAAc,KAAA;AAAA,IACd;AAAA,GAfF,GAYc,EAAA,EAIT,KAAA,GAAA,SAAA,CAJS,EAAA,EAIT;AAAA,IAHH,WAAA;AAAA,IACA,aAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,MAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,4DAAA;AAAA,QACA,WAAA,IACE,4FAAA;AAAA,QACF;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,WAAW,EAAA,EAImB;AAJnB,EAAA,IAAA,EAAA,GAAA,EAAA,EAClB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GApCF,GAkCoB,EAAA,EAGf,KAAA,GAAA,SAAA,CAHe,EAAA,EAGf;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS;AAAA,KAAA,EACpD,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,UAAU,EAAA,EAIoB;AAJpB,EAAA,IAAA,EAAA,GAAA,EAAA,EACjB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GApDF,GAkDmB,EAAA,EAGd,KAAA,GAAA,SAAA,CAHc,EAAA,EAGd;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,YAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,oDAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,gBAAgB,EAAA,EAIc;AAJd,EAAA,IAAA,EAAA,GAAA,EAAA,EACvB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GAvEF,GAqEyB,EAAA,EAGpB,KAAA,GAAA,SAAA,CAHoB,EAAA,EAGpB;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS;AAAA,KAAA,EACpD,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,YAAY,EAAA,EAIkB;AAJlB,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GAvFF,GAqFqB,EAAA,EAGhB,KAAA,GAAA,SAAA,CAHgB,EAAA,EAGhB;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,UAAA,EAAY,SAAS;AAAA,KAAA,EAC/B,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,WAAW,EAAA,EAImB;AAJnB,EAAA,IAAA,EAAA,GAAA,EAAA,EAClB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GAvGF,GAqGoB,EAAA,EAGf,KAAA,GAAA,SAAA,CAHe,EAAA,EAGf;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,aAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA8B,SAAS;AAAA,KAAA,EACjD,KAAA;AAAA,GACN;AAEJ;AC7GA,IAAM,MAAA,GAAS;AAAA,EACb,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,EAAA,EAAI,iBAAA;AAAA,EACJ,KAAA,EAAO,kBAAA;AAAA,EACP,IAAA,EAAM;AACR,CAAA;AAqBA,SAAS,OAAO,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EACd;AAAA,IAAA,GAAA,GAAM,KAAA;AAAA,IACN,OAAA,GAAU,IAAA;AAAA,IACV,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA;AAAA,GAtCF,GAiCgB,EAAA,EAMX,KAAA,GAAA,SAAA,CANW,EAAA,EAMX;AAAA,IALH,KAAA;AAAA,IACA,SAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,KAAA;AAC9B,EAAA,uBACEA,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,QAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,gBAAA;AAAA,QACA,OAAO,GAAG,CAAA;AAAA,QACV,OAAA,IAAW,sBAAA;AAAA,QACX;AAAA,OACF;AAAA,MACA;AAAA,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AClDA,IAAM,MAAA,GAAS;AAAA,EACb,IAAA,EAAM,OAAA;AAAA,EACN,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,EAAA,EAAI,OAAA;AAAA,EACJ,KAAA,EAAO;AACT,CAAA;AAEA,IAAM,QAAA,GAAW;AAAA,EACf,KAAA,EAAO,aAAA;AAAA,EACP,MAAA,EAAQ,cAAA;AAAA,EACR,GAAA,EAAK,WAAA;AAAA,EACL,OAAA,EAAS;AACX,CAAA;AAwBA,SAAS,MAAM,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EACb;AAAA,IAAA,GAAA,GAAM,IAAA;AAAA,IACN,KAAA,GAAQ,SAAA;AAAA,IACR,OAAA,GAAU,KAAA;AAAA,IACV,SAAA;AAAA,IACA;AAAA,GAjDF,GA4Ce,EAAA,EAMV,KAAA,GAAA,SAAA,CANU,EAAA,EAMV;AAAA,IALH,KAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,IAAA,GAAO,UAAUC,IAAAA,GAAO,KAAA;AAC9B,EAAA,uBACED,GAAAA;AAAA,IAAC,IAAA;AAAA,IAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,OAAA;AAAA,MACV,SAAA,EAAW,GAAG,eAAA,EAAiB,MAAA,CAAO,GAAG,CAAA,EAAG,QAAA,CAAS,KAAK,CAAA,EAAG,SAAS,CAAA;AAAA,MACtE;AAAA,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;ACjDA,IAAM,IAAA,GAAqB,aAAA,CAAA;AAG3B,SAAS,SAAS,EAAA,EAIyC;AAJzC,EAAA,IAAA,EAAA,GAAA,EAAA,EAChB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GAjBF,GAekB,EAAA,EAGb,KAAA,GAAA,SAAA,CAHa,EAAA,EAGb;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAe,aAAA,CAAA,IAAA;AAAA,IAAd,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,WAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,8GAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,YAAY,EAAA,EAIyC;AAJzC,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GApCF,GAkCqB,EAAA,EAGhB,KAAA,GAAA,SAAA,CAHgB,EAAA,EAGhB;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,qbAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAGA,SAAS,YAAY,EAAA,EAIyC;AAJzC,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,SAAA;AAAA,IACA;AAAA,GAvDF,GAqDqB,EAAA,EAGhB,KAAA,GAAA,SAAA,CAHgB,EAAA,EAGhB;AAAA,IAFH,WAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACEA,GAAAA;AAAA,IAAe,aAAA,CAAA,OAAA;AAAA,IAAd,cAAA,CAAA;AAAA,MACC,GAAA;AAAA,MACA,WAAA,EAAU,cAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,iIAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;;;AC9DO,SAAS,aAAA,CACd,QAAA,EACA,OAAA,EACA,IAAA,EACG;AACH,EAAA,IAAI,CAAC,OAAA,IAAW,CAAC,IAAA,EAAM,OAAO,QAAA;AAC9B,EAAA,OAAO,cAAA,CAAA,cAAA,CAAA,cAAA,CAAA,EAAA,EAAK,WAAa,OAAA,CAAA,EAAY,IAAA,CAAA;AACvC;AC+BA,IAAM,aAAA,GAAsB,KAAA,CAAA,aAAA,CAAiC,EAAE,CAAA;AA2B/D,SAAS,SAAA,GAAY;AACnB,EAAA,OAAa,iBAAW,aAAa,CAAA;AACvC","file":"chunk-GK4MVBBR.js","sourcesContent":["import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Bordered container for grouping related content.\n *\n * @example\n * <Card><CardHeader><CardTitle>Title</CardTitle></CardHeader><CardContent>Body</CardContent></Card>\n *\n * @prop interactive - Adds hover and click styles when true\n */\nfunction Card({\n className,\n interactive = false,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\"> & { interactive?: boolean }) {\n return (\n <div\n ref={ref}\n data-slot=\"card\"\n className={cn(\n \"rounded-lg border-2 bg-card text-card-foreground shadow-sm\",\n interactive &&\n \"cursor-pointer hover:border-ring hover:shadow-md transition-all active:translate-y-[1.5px]\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Top section of a Card containing the title and description. */\nfunction CardHeader({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"card-header\"\n className={cn(\"flex flex-col space-y-1.5 p-6\", className)}\n {...props}\n />\n )\n}\n\n/** Primary heading inside a CardHeader. */\nfunction CardTitle({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"card-title\"\n className={cn(\n \"text-2xl font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Secondary description text inside a CardHeader. */\nfunction CardDescription({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"card-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\n/** Main body area of a Card. */\nfunction CardContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"card-content\"\n className={cn(\"p-6 pt-0\", className)}\n {...props}\n />\n )\n}\n\n/** Bottom section of a Card, typically for actions. */\nfunction CardFooter({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<\"div\">) {\n return (\n <div\n ref={ref}\n data-slot=\"card-footer\"\n className={cn(\"flex items-center p-6 pt-0\", className)}\n {...props}\n />\n )\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst maxMap = {\n sm: \"max-w-screen-sm\",\n md: \"max-w-screen-md\",\n lg: \"max-w-screen-lg\",\n xl: \"max-w-screen-xl\",\n \"2xl\": \"max-w-screen-2xl\",\n full: \"max-w-full\",\n} as const\n\ntype Max = keyof typeof maxMap\n\n/** Props accepted by the Center component. */\ninterface CenterProps extends React.ComponentPropsWithRef<\"div\"> {\n max?: Max\n padding?: boolean\n asChild?: boolean\n}\n\n/**\n * Horizontally centers its content with a configurable max-width and optional padding.\n *\n * @example\n * <Center max=\"lg\" padding>Content</Center>\n *\n * @prop max - Max-width breakpoint: \"sm\" | \"md\" | \"lg\" | \"xl\" | \"2xl\" | \"full\"\n * @prop padding - Adds responsive horizontal padding when true\n * @prop asChild - Merge props onto child element instead of rendering a div\n */\nfunction Center({\n max = \"2xl\",\n padding = true,\n asChild = false,\n className,\n ref,\n ...props\n}: CenterProps) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"center\"\n className={cn(\n \"mx-auto w-full\",\n maxMap[max],\n padding && \"px-4 sm:px-6 lg:px-8\",\n className,\n )}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Center, type CenterProps }\n","import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst gapMap = {\n none: \"gap-0\",\n xs: \"gap-1\",\n sm: \"gap-2\",\n md: \"gap-4\",\n lg: \"gap-6\",\n xl: \"gap-8\",\n \"2xl\": \"gap-12\",\n} as const\n\nconst alignMap = {\n start: \"items-start\",\n center: \"items-center\",\n end: \"items-end\",\n stretch: \"items-stretch\",\n} as const\n\ntype Gap = keyof typeof gapMap\ntype Align = keyof typeof alignMap\n\ninterface StackProps extends React.ComponentPropsWithRef<\"div\"> {\n gap?: Gap\n align?: Align\n asChild?: boolean\n}\n\n/**\n * A vertical flex container with configurable gap and alignment.\n *\n * @example\n * <Stack gap=\"lg\" align=\"center\">\n * <div>Item 1</div>\n * <div>Item 2</div>\n * </Stack>\n *\n * @prop gap - The spacing between children (none, xs, sm, md, lg, xl, 2xl).\n * @prop align - Cross-axis alignment of children.\n * @prop asChild - Merge props onto the child element instead of rendering a div.\n */\nfunction Stack({\n gap = \"md\",\n align = \"stretch\",\n asChild = false,\n className,\n ref,\n ...props\n}: StackProps) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"stack\"\n className={cn(\"flex flex-col\", gapMap[gap], alignMap[align], className)}\n ref={ref}\n {...props}\n />\n )\n}\n\nexport { Stack, type StackProps }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\n\nimport { cn } from \"@/lib/utils\"\n\n/** Root container for a tabbed interface built on Radix Tabs.\n *\n * @example\n * <Tabs defaultValue=\"tab1\"><TabsList><TabsTrigger value=\"tab1\">Tab</TabsTrigger></TabsList><TabsContent value=\"tab1\">Content</TabsContent></Tabs>\n */\nconst Tabs = TabsPrimitive.Root\n\n/** Horizontal container for tab triggers with a sunken background. */\nfunction TabsList({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TabsPrimitive.List>) {\n return (\n <TabsPrimitive.List\n ref={ref}\n data-slot=\"tabs-list\"\n className={cn(\n \"inline-flex h-10 items-center justify-center rounded-lg bg-surface-sunken border-2 p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Individual tab button that activates its associated content panel. */\nfunction TabsTrigger({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n ref={ref}\n data-slot=\"tabs-trigger\"\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium ring-offset-background transition-all active:translate-y-[1.5px] transition-transform focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\n/** Content panel displayed when its matching tab trigger is active. */\nfunction TabsContent({\n className,\n ref,\n ...props\n}: React.ComponentPropsWithRef<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n ref={ref}\n data-slot=\"tabs-content\"\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent }\n","/**\n * Merges label overrides into a defaults object.\n *\n * Resolution order (last wins): defaults → context → prop.\n * All three layers share the same shape, but only `defaults` is required\n * to be complete — context and prop are partial overrides.\n */\nexport function resolveLabels<T extends object>(\n defaults: T,\n context?: Partial<NoInfer<T>>,\n prop?: Partial<NoInfer<T>>,\n): T {\n if (!context && !prop) return defaults\n return { ...defaults, ...context, ...prop } as T\n}\n","\"use client\"\n\nimport * as React from \"react\"\n\nimport type { BreadcrumbLabels } from \"@/components/ui/breadcrumb\"\nimport type { CarouselLabels } from \"@/components/ui/carousel\"\nimport type { ComboboxLabels } from \"@/components/ui/combobox\"\nimport type { DataTableLabels } from \"@/components/ui/data-table\"\nimport type { DatePickerLabels } from \"@/components/ui/date-picker\"\nimport type { DialogLabels } from \"@/components/ui/dialog\"\nimport type { PaginationLabels } from \"@/components/ui/pagination\"\nimport type { SearchFieldLabels } from \"@/components/ui/search-field\"\nimport type { SheetLabels } from \"@/components/ui/sheet\"\nimport type { SidebarLabels } from \"@/components/ui/sidebar\"\nimport type { SpinnerLabels } from \"@/components/ui/spinner\"\nimport type { DirectionToggleLabels } from \"@/components/direction-toggle\"\nimport type { SiteHeaderLabels } from \"@/components/site-header\"\nimport type { SiteHeaderNavLabels } from \"@/components/site-header-nav\"\nimport type { SitePreferencesLabels } from \"@/components/site-preferences\"\nimport type { StatCardLabels } from \"@/components/stat-card\"\nimport type { ThemePickerLabels } from \"@/components/theme-picker\"\nimport type { ThemeToggleLabels } from \"@/components/theme-toggle\"\n\n/** All translatable strings for SubstrateUI components, keyed by component. */\ninterface SubstrateUILabels {\n breadcrumb?: Partial<BreadcrumbLabels>\n carousel?: Partial<CarouselLabels>\n combobox?: Partial<ComboboxLabels>\n dataTable?: Partial<DataTableLabels>\n datePicker?: Partial<DatePickerLabels>\n dialog?: Partial<DialogLabels>\n pagination?: Partial<PaginationLabels>\n searchField?: Partial<SearchFieldLabels>\n sheet?: Partial<SheetLabels>\n sidebar?: Partial<SidebarLabels>\n spinner?: Partial<SpinnerLabels>\n directionToggle?: Partial<DirectionToggleLabels>\n siteHeader?: Partial<SiteHeaderLabels>\n siteHeaderNav?: Partial<SiteHeaderNavLabels>\n sitePreferences?: Partial<SitePreferencesLabels>\n statCard?: Partial<StatCardLabels>\n themePicker?: Partial<ThemePickerLabels>\n themeToggle?: Partial<ThemeToggleLabels>\n}\n\nconst LabelsContext = React.createContext<SubstrateUILabels>({})\n\n/**\n * Provides translated labels to all SubstrateUI components.\n *\n * Wrap your app (or a subtree) in this provider to set translations once\n * rather than passing `labels` to every component instance. Per-instance\n * `labels` props still override the provider value.\n *\n * @example\n * <LabelsProvider labels={{ dialog: { close: \"Fermer\" }, spinner: { loading: \"Chargement…\" } }}>\n * <App />\n * </LabelsProvider>\n */\nfunction LabelsProvider({\n labels,\n children,\n}: {\n labels: SubstrateUILabels\n children: React.ReactNode\n}) {\n return (\n <LabelsContext.Provider value={labels}>{children}</LabelsContext.Provider>\n )\n}\n\n/** Read the current labels context. Used internally by SubstrateUI components. */\nfunction useLabels() {\n return React.useContext(LabelsContext)\n}\n\nexport { LabelsProvider, useLabels, type SubstrateUILabels }\n"]}
@@ -0,0 +1,42 @@
1
+ "use client";
2
+ import { clsx } from 'clsx';
3
+ import { twMerge } from 'tailwind-merge';
4
+
5
+ var __defProp = Object.defineProperty;
6
+ var __defProps = Object.defineProperties;
7
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
8
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ function cn(...inputs) {
37
+ return twMerge(clsx(inputs));
38
+ }
39
+
40
+ export { __objRest, __spreadProps, __spreadValues, cn };
41
+ //# sourceMappingURL=chunk-IQWAGBDM.js.map
42
+ //# sourceMappingURL=chunk-IQWAGBDM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/lib/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,SAAS,MAAM,MAAA,EAAsB;AAC1C,EAAA,OAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,CAAC,CAAA;AAC7B","file":"chunk-IQWAGBDM.js","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"]}