commerce-toolkit 0.8.0 → 0.8.1
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/category-card-link-B7MMGsnN.cjs +7 -0
- package/dist/category-card-link-B7MMGsnN.cjs.map +1 -0
- package/dist/{category-card-link-CdNA4PeK.js → category-card-link-DZ2CRf4d.js} +81 -69
- package/dist/category-card-link-DZ2CRf4d.js.map +1 -0
- package/dist/category-card.cjs +1 -1
- package/dist/category-card.js +1 -1
- package/dist/components/category-card/category-card.d.ts +3 -1
- package/dist/components/category-card/category-card.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-icon.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-root.d.ts +3 -1
- package/dist/components/category-card/primitives/category-card-root.d.ts.map +1 -1
- package/dist/components/category-card/primitives/category-card-title.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +95 -91
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/category-card-link-CdNA4PeK.js.map +0 -1
- package/dist/category-card-link-CjIZ-qsb.cjs +0 -7
- package/dist/category-card-link-CjIZ-qsb.cjs.map +0 -1
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"category-card-link-CdNA4PeK.js","sources":["../node_modules/.pnpm/lucide-react@0.545.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-up-right.js","../src/components/category-card/primitives/category-card-root.tsx","../src/components/category-card/primitives/category-card-icon.tsx","../src/components/category-card/primitives/category-card-thumbnail.tsx","../src/components/category-card/primitives/category-card-image.tsx","../src/components/category-card/primitives/category-card-fallback.tsx","../src/components/category-card/primitives/category-card-overlay.tsx","../src/components/category-card/primitives/category-card-title.tsx","../src/components/category-card/primitives/category-card-link.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.545.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M7 7h10v10\", key: \"1tivn9\" }],\n [\"path\", { d: \"M7 17 17 7\", key: \"1vkiza\" }]\n];\nconst ArrowUpRight = createLucideIcon(\"arrow-up-right\", __iconNode);\n\nexport { __iconNode, ArrowUpRight as default };\n//# sourceMappingURL=arrow-up-right.js.map\n","'use client';\n\nimport type { ComponentProps, ElementType } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardRootProps<E extends ElementType = 'article'> = Omit<\n ComponentProps<E>,\n 'as'\n> & {\n as?: E;\n aspectRatio?: '5/6' | '3/4' | '1/1';\n textSize?: 'small' | 'medium' | 'large' | 'x-large';\n showOverlay?: boolean;\n};\n\nexport function CategoryCardRoot<T extends ElementType = 'article'>({\n className,\n children,\n as,\n aspectRatio = '5/6',\n textSize = 'small',\n showOverlay = true,\n ...props\n}: CategoryCardRootProps<T>) {\n const CategoryCardRootElement = as ?? 'article';\n\n return (\n <CategoryCardRootElement\n className={cn(\n 'group/category-card relative flex w-full max-w-md cursor-pointer flex-col rounded-[var(--category-card-border-radius,1rem)] font-[var(--category-card-font-family,var(--font-family-body))] @container',\n // Text size gap variants\n 'data-[text-size=small]:gap-2',\n 'data-[text-size=medium]:gap-3',\n 'data-[text-size=large]:gap-4',\n 'data-[text-size=x-large]:gap-5',\n className,\n )}\n data-aspect-ratio={aspectRatio}\n data-show-overlay={showOverlay}\n data-slot=\"category-card-root\"\n data-text-size={textSize}\n {...props}\n >\n {children}\n </CategoryCardRootElement>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { ArrowUpRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface CategoryCardIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function CategoryCardIcon({ asChild = false, className, children }: CategoryCardIconProps) {\n const baseClassName = cn(\n 'absolute right-5 top-5 z-10 size-6 text-[var(--category-card-light-icon,var(--foreground))] transition-transform duration-700 ease-out',\n // Group hover state\n 'group-hover/category-card:-translate-y-1.5 group-hover/category-card:translate-x-1.5',\n className,\n );\n\n if (asChild) {\n return (\n <Slot className={baseClassName} data-slot=\"category-card-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <ArrowUpRight\n absoluteStrokeWidth\n className={baseClassName}\n data-slot=\"category-card-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardThumbnailProps = ComponentProps<'div'>;\n\nexport function CategoryCardThumbnail({\n className,\n children,\n ...props\n}: CategoryCardThumbnailProps) {\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-[inherit] bg-[var(--category-card-light-background,var(--contrast-100))]',\n // Group focus-visible state\n 'group-focus-visible/category-card:outline-2 group-focus-visible/category-card:outline-offset-4 group-focus-visible/category-card:outline-[var(--category-card-focus,var(--brand))]',\n // Aspect ratio variants\n 'group-data-[aspect-ratio=1/1]/category-card:aspect-square',\n 'group-data-[aspect-ratio=3/4]/category-card:aspect-[3/4]',\n 'group-data-[aspect-ratio=5/6]/category-card:aspect-[5/6]',\n className,\n )}\n data-slot=\"category-card-thumbnail\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardImageProps = ComponentProps<'img'> & {\n asChild?: boolean;\n};\n\nexport function CategoryCardImage({\n className,\n children,\n asChild = false,\n ...props\n}: CategoryCardImageProps) {\n const Component = asChild ? Slot : 'img';\n\n return (\n <Component\n className={cn(\n 'h-full w-full scale-100 select-none bg-[var(--category-card-light-background,var(--contrast-100))] object-cover transition-transform duration-500 ease-out',\n // Group hover state\n 'group-hover/category-card:scale-110',\n className,\n )}\n data-slot=\"category-card-image\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardFallbackProps = ComponentProps<'div'>;\n\nexport function CategoryCardFallback({ className, children, ...props }: CategoryCardFallbackProps) {\n return (\n <div\n className={cn(\n 'break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out [color:color-mix(in_oklab,var(--foreground)_30%,transparent)]',\n // Group hover state\n 'group-hover/category-card:scale-105',\n className,\n )}\n data-slot=\"category-card-fallback\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardOverlayProps = ComponentProps<'div'>;\n\nexport function CategoryCardOverlay({ children, className, ...props }: CategoryCardOverlayProps) {\n return (\n <div\n className={cn(\n 'absolute inset-0 flex items-end p-6',\n // Show overlay gradient\n 'group-data-[show-overlay=true]/category-card:bg-gradient-to-b',\n 'group-data-[show-overlay=true]/category-card:from-foreground/0 group-data-[show-overlay=true]/category-card:from-50%',\n 'group-data-[show-overlay=true]/category-card:via-foreground/0 group-data-[show-overlay=true]/category-card:via-50%',\n 'group-data-[show-overlay=true]/category-card:to-foreground/50 group-data-[show-overlay=true]/category-card:to-100%',\n // Container query\n '@xs:p-8',\n className,\n )}\n data-slot=\"category-card-overlay\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardTitleProps = ComponentProps<'h3'>;\n\nexport function CategoryCardTitle({ children, className, ...props }: CategoryCardTitleProps) {\n return (\n <h3\n className={cn(\n 'font-semibold leading-tight text-[var(--category-card-light-text,var(--foreground))]',\n // Text size: small\n 'group-data-[text-size=small]/category-card:text-lg group-data-[text-size=small]/category-card:tracking-normal',\n 'group-data-[text-size=small]/category-card:@xs:text-xl',\n // Text size: medium\n 'group-data-[text-size=medium]/category-card:text-xl group-data-[text-size=medium]/category-card:tracking-normal',\n 'group-data-[text-size=medium]/category-card:@xs:text-2xl',\n // Text size: large\n 'group-data-[text-size=large]/category-card:text-2xl group-data-[text-size=large]/category-card:tracking-tight',\n 'group-data-[text-size=large]/category-card:@xs:text-3xl',\n // Text size: x-large\n 'group-data-[text-size=x-large]/category-card:text-3xl group-data-[text-size=x-large]/category-card:tracking-tight',\n 'group-data-[text-size=x-large]/category-card:@xs:text-4xl',\n className,\n )}\n data-slot=\"category-card-title\"\n {...props}\n >\n {children}\n </h3>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface CategoryCardLinkProps extends ComponentProps<'a'> {\n asChild?: boolean;\n}\n\nexport function CategoryCardLink({ asChild = false, className, ...props }: CategoryCardLinkProps) {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'absolute inset-0 rounded-[var(--category-card-border-radius,1rem)]',\n // Focus-visible state\n 'focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[var(--category-card-focus,var(--brand))]',\n className,\n )}\n data-slot=\"category-card-link\"\n {...props}\n />\n );\n}\n"],"names":["__iconNode","ArrowUpRight","createLucideIcon","CategoryCardRoot","className","children","as","aspectRatio","textSize","showOverlay","props","jsx","cn","CategoryCardIcon","asChild","baseClassName","Slot","CategoryCardThumbnail","CategoryCardImage","CategoryCardFallback","CategoryCardOverlay","CategoryCardTitle","CategoryCardLink"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),c=require("./utils-DoxiiusW.cjs"),s=require("./index-DGaxX11V.cjs"),y=require("./createLucideIcon-CpmcoNn-.cjs");/**
|
|
2
|
-
* @license lucide-react v0.545.0 - ISC
|
|
3
|
-
*
|
|
4
|
-
* This source code is licensed under the ISC license.
|
|
5
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
6
|
-
*/const g=[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]],i=y.createLucideIcon("arrow-up-right",g),x=Object.freeze(Object.defineProperty({__proto__:null,__iconNode:g,default:i},Symbol.toStringTag,{value:"Module"}));function p({className:a,children:r,as:t,aspectRatio:o="5/6",textSize:d="small",showOverlay:n=!0,...l}){const u=t??"article";return e.jsx(u,{className:c.cn("group/category-card relative flex w-full max-w-md cursor-pointer flex-col rounded-[var(--category-card-border-radius,1rem)] font-[var(--category-card-font-family,var(--font-family-body))] @container","data-[text-size=small]:gap-2","data-[text-size=medium]:gap-3","data-[text-size=large]:gap-4","data-[text-size=x-large]:gap-5",a),"data-aspect-ratio":o,"data-show-overlay":n,"data-slot":"category-card-root","data-text-size":d,...l,children:r})}function f({asChild:a=!1,className:r,children:t}){const o=c.cn("absolute right-5 top-5 z-10 size-6 text-[var(--category-card-light-icon,var(--foreground))] transition-transform duration-700 ease-out","group-hover/category-card:-translate-y-1.5 group-hover/category-card:translate-x-1.5",r);return a?e.jsx(s.Slot,{className:o,"data-slot":"category-card-icon",children:t}):e.jsx(i,{absoluteStrokeWidth:!0,className:o,"data-slot":"category-card-icon",strokeWidth:1.5})}function m({className:a,children:r,...t}){return e.jsx("div",{className:c.cn("relative overflow-hidden rounded-[inherit] bg-[var(--category-card-light-background,var(--contrast-100))]","group-focus-visible/category-card:outline-2 group-focus-visible/category-card:outline-offset-4 group-focus-visible/category-card:outline-[var(--category-card-focus,var(--brand))]","group-data-[aspect-ratio=1/1]/category-card:aspect-square","group-data-[aspect-ratio=3/4]/category-card:aspect-[3/4]","group-data-[aspect-ratio=5/6]/category-card:aspect-[5/6]",a),"data-slot":"category-card-thumbnail",...t,children:r})}function v({className:a,children:r,asChild:t=!1,...o}){const d=t?s.Slot:"img";return e.jsx(d,{className:c.cn("h-full w-full scale-100 select-none bg-[var(--category-card-light-background,var(--contrast-100))] object-cover transition-transform duration-500 ease-out","group-hover/category-card:scale-110",a),"data-slot":"category-card-image",...o})}function h({className:a,children:r,...t}){return e.jsx("div",{className:c.cn("break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out [color:color-mix(in_oklab,var(--foreground)_30%,transparent)]","group-hover/category-card:scale-105",a),"data-slot":"category-card-fallback",...t,children:r})}function C({children:a,className:r,...t}){return e.jsx("div",{className:c.cn("absolute inset-0 flex items-end p-6","group-data-[show-overlay=true]/category-card:bg-gradient-to-b","group-data-[show-overlay=true]/category-card:from-foreground/0 group-data-[show-overlay=true]/category-card:from-50%","group-data-[show-overlay=true]/category-card:via-foreground/0 group-data-[show-overlay=true]/category-card:via-50%","group-data-[show-overlay=true]/category-card:to-foreground/50 group-data-[show-overlay=true]/category-card:to-100%","@xs:p-8",r),"data-slot":"category-card-overlay",...t,children:a})}function b({children:a,className:r,...t}){return e.jsx("h3",{className:c.cn("font-semibold leading-tight text-[var(--category-card-light-text,var(--foreground))]","group-data-[text-size=small]/category-card:text-lg group-data-[text-size=small]/category-card:tracking-normal","group-data-[text-size=small]/category-card:@xs:text-xl","group-data-[text-size=medium]/category-card:text-xl group-data-[text-size=medium]/category-card:tracking-normal","group-data-[text-size=medium]/category-card:@xs:text-2xl","group-data-[text-size=large]/category-card:text-2xl group-data-[text-size=large]/category-card:tracking-tight","group-data-[text-size=large]/category-card:@xs:text-3xl","group-data-[text-size=x-large]/category-card:text-3xl group-data-[text-size=x-large]/category-card:tracking-tight","group-data-[text-size=x-large]/category-card:@xs:text-4xl",r),"data-slot":"category-card-title",...t,children:a})}function z({asChild:a=!1,className:r,...t}){const o=a?s.Slot:"a";return e.jsx(o,{className:c.cn("absolute inset-0 rounded-[var(--category-card-border-radius,1rem)]","focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[var(--category-card-focus,var(--brand))]",r),"data-slot":"category-card-link",...t})}exports.CategoryCardFallback=h;exports.CategoryCardIcon=f;exports.CategoryCardImage=v;exports.CategoryCardLink=z;exports.CategoryCardOverlay=C;exports.CategoryCardRoot=p;exports.CategoryCardThumbnail=m;exports.CategoryCardTitle=b;exports.arrowUpRight=x;
|
|
7
|
-
//# sourceMappingURL=category-card-link-CjIZ-qsb.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"category-card-link-CjIZ-qsb.cjs","sources":["../node_modules/.pnpm/lucide-react@0.545.0_react@19.2.0/node_modules/lucide-react/dist/esm/icons/arrow-up-right.js","../src/components/category-card/primitives/category-card-root.tsx","../src/components/category-card/primitives/category-card-icon.tsx","../src/components/category-card/primitives/category-card-thumbnail.tsx","../src/components/category-card/primitives/category-card-image.tsx","../src/components/category-card/primitives/category-card-fallback.tsx","../src/components/category-card/primitives/category-card-overlay.tsx","../src/components/category-card/primitives/category-card-title.tsx","../src/components/category-card/primitives/category-card-link.tsx"],"sourcesContent":["/**\n * @license lucide-react v0.545.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M7 7h10v10\", key: \"1tivn9\" }],\n [\"path\", { d: \"M7 17 17 7\", key: \"1vkiza\" }]\n];\nconst ArrowUpRight = createLucideIcon(\"arrow-up-right\", __iconNode);\n\nexport { __iconNode, ArrowUpRight as default };\n//# sourceMappingURL=arrow-up-right.js.map\n","'use client';\n\nimport type { ComponentProps, ElementType } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardRootProps<E extends ElementType = 'article'> = Omit<\n ComponentProps<E>,\n 'as'\n> & {\n as?: E;\n aspectRatio?: '5/6' | '3/4' | '1/1';\n textSize?: 'small' | 'medium' | 'large' | 'x-large';\n showOverlay?: boolean;\n};\n\nexport function CategoryCardRoot<T extends ElementType = 'article'>({\n className,\n children,\n as,\n aspectRatio = '5/6',\n textSize = 'small',\n showOverlay = true,\n ...props\n}: CategoryCardRootProps<T>) {\n const CategoryCardRootElement = as ?? 'article';\n\n return (\n <CategoryCardRootElement\n className={cn(\n 'group/category-card relative flex w-full max-w-md cursor-pointer flex-col rounded-[var(--category-card-border-radius,1rem)] font-[var(--category-card-font-family,var(--font-family-body))] @container',\n // Text size gap variants\n 'data-[text-size=small]:gap-2',\n 'data-[text-size=medium]:gap-3',\n 'data-[text-size=large]:gap-4',\n 'data-[text-size=x-large]:gap-5',\n className,\n )}\n data-aspect-ratio={aspectRatio}\n data-show-overlay={showOverlay}\n data-slot=\"category-card-root\"\n data-text-size={textSize}\n {...props}\n >\n {children}\n </CategoryCardRootElement>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { ArrowUpRight } from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface CategoryCardIconProps {\n asChild?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport function CategoryCardIcon({ asChild = false, className, children }: CategoryCardIconProps) {\n const baseClassName = cn(\n 'absolute right-5 top-5 z-10 size-6 text-[var(--category-card-light-icon,var(--foreground))] transition-transform duration-700 ease-out',\n // Group hover state\n 'group-hover/category-card:-translate-y-1.5 group-hover/category-card:translate-x-1.5',\n className,\n );\n\n if (asChild) {\n return (\n <Slot className={baseClassName} data-slot=\"category-card-icon\">\n {children}\n </Slot>\n );\n }\n\n return (\n <ArrowUpRight\n absoluteStrokeWidth\n className={baseClassName}\n data-slot=\"category-card-icon\"\n strokeWidth={1.5}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardThumbnailProps = ComponentProps<'div'>;\n\nexport function CategoryCardThumbnail({\n className,\n children,\n ...props\n}: CategoryCardThumbnailProps) {\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-[inherit] bg-[var(--category-card-light-background,var(--contrast-100))]',\n // Group focus-visible state\n 'group-focus-visible/category-card:outline-2 group-focus-visible/category-card:outline-offset-4 group-focus-visible/category-card:outline-[var(--category-card-focus,var(--brand))]',\n // Aspect ratio variants\n 'group-data-[aspect-ratio=1/1]/category-card:aspect-square',\n 'group-data-[aspect-ratio=3/4]/category-card:aspect-[3/4]',\n 'group-data-[aspect-ratio=5/6]/category-card:aspect-[5/6]',\n className,\n )}\n data-slot=\"category-card-thumbnail\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardImageProps = ComponentProps<'img'> & {\n asChild?: boolean;\n};\n\nexport function CategoryCardImage({\n className,\n children,\n asChild = false,\n ...props\n}: CategoryCardImageProps) {\n const Component = asChild ? Slot : 'img';\n\n return (\n <Component\n className={cn(\n 'h-full w-full scale-100 select-none bg-[var(--category-card-light-background,var(--contrast-100))] object-cover transition-transform duration-500 ease-out',\n // Group hover state\n 'group-hover/category-card:scale-110',\n className,\n )}\n data-slot=\"category-card-image\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardFallbackProps = ComponentProps<'div'>;\n\nexport function CategoryCardFallback({ className, children, ...props }: CategoryCardFallbackProps) {\n return (\n <div\n className={cn(\n 'break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out [color:color-mix(in_oklab,var(--foreground)_30%,transparent)]',\n // Group hover state\n 'group-hover/category-card:scale-105',\n className,\n )}\n data-slot=\"category-card-fallback\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardOverlayProps = ComponentProps<'div'>;\n\nexport function CategoryCardOverlay({ children, className, ...props }: CategoryCardOverlayProps) {\n return (\n <div\n className={cn(\n 'absolute inset-0 flex items-end p-6',\n // Show overlay gradient\n 'group-data-[show-overlay=true]/category-card:bg-gradient-to-b',\n 'group-data-[show-overlay=true]/category-card:from-foreground/0 group-data-[show-overlay=true]/category-card:from-50%',\n 'group-data-[show-overlay=true]/category-card:via-foreground/0 group-data-[show-overlay=true]/category-card:via-50%',\n 'group-data-[show-overlay=true]/category-card:to-foreground/50 group-data-[show-overlay=true]/category-card:to-100%',\n // Container query\n '@xs:p-8',\n className,\n )}\n data-slot=\"category-card-overlay\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type CategoryCardTitleProps = ComponentProps<'h3'>;\n\nexport function CategoryCardTitle({ children, className, ...props }: CategoryCardTitleProps) {\n return (\n <h3\n className={cn(\n 'font-semibold leading-tight text-[var(--category-card-light-text,var(--foreground))]',\n // Text size: small\n 'group-data-[text-size=small]/category-card:text-lg group-data-[text-size=small]/category-card:tracking-normal',\n 'group-data-[text-size=small]/category-card:@xs:text-xl',\n // Text size: medium\n 'group-data-[text-size=medium]/category-card:text-xl group-data-[text-size=medium]/category-card:tracking-normal',\n 'group-data-[text-size=medium]/category-card:@xs:text-2xl',\n // Text size: large\n 'group-data-[text-size=large]/category-card:text-2xl group-data-[text-size=large]/category-card:tracking-tight',\n 'group-data-[text-size=large]/category-card:@xs:text-3xl',\n // Text size: x-large\n 'group-data-[text-size=x-large]/category-card:text-3xl group-data-[text-size=x-large]/category-card:tracking-tight',\n 'group-data-[text-size=x-large]/category-card:@xs:text-4xl',\n className,\n )}\n data-slot=\"category-card-title\"\n {...props}\n >\n {children}\n </h3>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface CategoryCardLinkProps extends ComponentProps<'a'> {\n asChild?: boolean;\n}\n\nexport function CategoryCardLink({ asChild = false, className, ...props }: CategoryCardLinkProps) {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'absolute inset-0 rounded-[var(--category-card-border-radius,1rem)]',\n // Focus-visible state\n 'focus:outline-none focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[var(--category-card-focus,var(--brand))]',\n className,\n )}\n data-slot=\"category-card-link\"\n {...props}\n />\n );\n}\n"],"names":["__iconNode","ArrowUpRight","createLucideIcon","CategoryCardRoot","className","children","as","aspectRatio","textSize","showOverlay","props","CategoryCardRootElement","jsx","cn","CategoryCardIcon","asChild","baseClassName","Slot","CategoryCardThumbnail","CategoryCardImage","Component","CategoryCardFallback","CategoryCardOverlay","CategoryCardTitle","CategoryCardLink"],"mappings":"mKAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GASA,MAAMA,EAAa,CACjB,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,EAC3C,CAAC,OAAQ,CAAE,EAAG,aAAc,IAAK,QAAQ,CAAE,CAC7C,EACMC,EAAeC,EAAAA,iBAAiB,iBAAkBF,CAAU,sHCG3D,SAASG,EAAoD,CAClE,UAAAC,EACA,SAAAC,EACA,GAAAC,EACA,YAAAC,EAAc,MACd,SAAAC,EAAW,QACX,YAAAC,EAAc,GACd,GAAGC,CACL,EAA6B,CAC3B,MAAMC,EAA0BL,GAAM,UAEtC,OACEM,EAAAA,IAACD,EAAA,CACC,UAAWE,EAAAA,GACT,yMAEA,+BACA,gCACA,+BACA,iCACAT,CAAA,EAEF,oBAAmBG,EACnB,oBAAmBE,EACnB,YAAU,qBACV,iBAAgBD,EACf,GAAGE,EAEH,SAAAL,CAAA,CAAA,CAGP,CCjCO,SAASS,EAAiB,CAAE,QAAAC,EAAU,GAAO,UAAAX,EAAW,SAAAC,GAAmC,CAChG,MAAMW,EAAgBH,EAAAA,GACpB,yIAEA,uFACAT,CAAA,EAGF,OAAIW,QAECE,EAAAA,KAAA,CAAK,UAAWD,EAAe,YAAU,qBACvC,SAAAX,EACH,EAKFO,EAAAA,IAACX,EAAA,CACC,oBAAmB,GACnB,UAAWe,EACX,YAAU,qBACV,YAAa,GAAA,CAAA,CAGnB,CChCO,SAASE,EAAsB,CACpC,UAAAd,EACA,SAAAC,EACA,GAAGK,CACL,EAA+B,CAC7B,OACEE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,4GAEA,qLAEA,4DACA,2DACA,2DACAT,CAAA,EAEF,YAAU,0BACT,GAAGM,EAEH,SAAAL,CAAA,CAAA,CAGP,CClBO,SAASc,EAAkB,CAChC,UAAAf,EACA,SAAAC,EACA,QAAAU,EAAU,GACV,GAAGL,CACL,EAA2B,CACzB,MAAMU,EAAYL,EAAUE,EAAAA,KAAO,MAEnC,OACEL,EAAAA,IAACQ,EAAA,CACC,UAAWP,EAAAA,GACT,6JAEA,sCACAT,CAAA,EAEF,YAAU,sBACT,GAAGM,CAAA,CAAA,CAGV,CCzBO,SAASW,EAAqB,CAAE,UAAAjB,EAAW,SAAAC,EAAU,GAAGK,GAAoC,CACjG,OACEE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,0KAEA,sCACAT,CAAA,EAEF,YAAU,yBACT,GAAGM,EAEH,SAAAL,CAAA,CAAA,CAGP,CCfO,SAASiB,EAAoB,CAAE,SAAAjB,EAAU,UAAAD,EAAW,GAAGM,GAAmC,CAC/F,OACEE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,sCAEA,gEACA,uHACA,qHACA,qHAEA,UACAT,CAAA,EAEF,YAAU,wBACT,GAAGM,EAEH,SAAAL,CAAA,CAAA,CAGP,CCpBO,SAASkB,EAAkB,CAAE,SAAAlB,EAAU,UAAAD,EAAW,GAAGM,GAAiC,CAC3F,OACEE,EAAAA,IAAC,KAAA,CACC,UAAWC,EAAAA,GACT,uFAEA,gHACA,yDAEA,kHACA,2DAEA,gHACA,0DAEA,oHACA,4DACAT,CAAA,EAEF,YAAU,sBACT,GAAGM,EAEH,SAAAL,CAAA,CAAA,CAGP,CCpBO,SAASmB,EAAiB,CAAE,QAAAT,EAAU,GAAO,UAAAX,EAAW,GAAGM,GAAgC,CAChG,MAAMU,EAAYL,EAAUE,EAAAA,KAAO,IAEnC,OACEL,EAAAA,IAACQ,EAAA,CACC,UAAWP,EAAAA,GACT,qEAEA,4IACAT,CAAA,EAEF,YAAU,qBACT,GAAGM,CAAA,CAAA,CAGV","x_google_ignoreList":[0]}
|