commerce-toolkit 0.0.41 → 0.1.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/banner-dismiss-DTT0uoeG.js.map +1 -1
- package/dist/banner-dismiss-DfFezmDg.cjs.map +1 -1
- package/dist/{blog-post-card-author-Cwm4afzF.js → blog-post-card-author-CD_eplIv.js} +24 -23
- package/dist/blog-post-card-author-CD_eplIv.js.map +1 -0
- package/dist/blog-post-card-author-D4zo7N_N.cjs +2 -0
- package/dist/blog-post-card-author-D4zo7N_N.cjs.map +1 -0
- package/dist/blog-post-card.cjs +1 -1
- package/dist/blog-post-card.js +1 -1
- package/dist/category-card.cjs +2 -0
- package/dist/category-card.cjs.map +1 -0
- package/dist/category-card.js +233 -0
- package/dist/category-card.js.map +1 -0
- package/dist/components/banner/primitives/banner-provider.d.ts.map +1 -1
- package/dist/components/blog-post-card/primitives/blog-post-card-fallback.d.ts.map +1 -1
- package/dist/components/category-card/category-card.d.ts +42 -0
- package/dist/components/category-card/category-card.d.ts.map +1 -0
- package/dist/components/category-card/index.d.ts +3 -0
- package/dist/components/category-card/index.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-fallback.d.ts +4 -0
- package/dist/components/category-card/primitives/category-card-fallback.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-icon.d.ts +5 -0
- package/dist/components/category-card/primitives/category-card-icon.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-image.d.ts +6 -0
- package/dist/components/category-card/primitives/category-card-image.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-link.d.ts +6 -0
- package/dist/components/category-card/primitives/category-card-link.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-overlay.d.ts +4 -0
- package/dist/components/category-card/primitives/category-card-overlay.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-root.d.ts +21 -0
- package/dist/components/category-card/primitives/category-card-root.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-skeleton.d.ts +4 -0
- package/dist/components/category-card/primitives/category-card-skeleton.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-thumbnail.d.ts +4 -0
- package/dist/components/category-card/primitives/category-card-thumbnail.d.ts.map +1 -0
- package/dist/components/category-card/primitives/category-card-title.d.ts +4 -0
- package/dist/components/category-card/primitives/category-card-title.d.ts.map +1 -0
- package/dist/components/category-card/primitives.d.ts +10 -0
- package/dist/components/category-card/primitives.d.ts.map +1 -0
- package/dist/components/product-card/primitives/product-card-compare.d.ts.map +1 -1
- package/dist/components/product-card/primitives/product-card-fallback.d.ts.map +1 -1
- package/dist/components/product-card/primitives/product-card-link.d.ts.map +1 -1
- package/dist/components/rating/primitives/rating-root.d.ts.map +1 -1
- package/dist/components/reveal/primitives/reveal-root.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/offset-pagination.cjs +2 -0
- package/dist/offset-pagination.cjs.map +1 -0
- package/dist/offset-pagination.js +79 -0
- package/dist/offset-pagination.js.map +1 -0
- package/dist/product-card.cjs +1 -1
- package/dist/product-card.cjs.map +1 -1
- package/dist/product-card.js +84 -82
- package/dist/product-card.js.map +1 -1
- package/dist/rating-value-CkSY9Pyr.cjs.map +1 -1
- package/dist/rating-value-DBtmrorI.js.map +1 -1
- package/dist/reveal-trigger-C-dcymoc.js.map +1 -1
- package/dist/reveal-trigger-XpH07-oH.cjs.map +1 -1
- package/package.json +21 -1
- package/dist/blog-post-card-author-BGqy41Da.cjs +0 -2
- package/dist/blog-post-card-author-BGqy41Da.cjs.map +0 -1
- package/dist/blog-post-card-author-Cwm4afzF.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal-trigger-C-dcymoc.js","sources":["../src/components/animated-underline/animated-underline.tsx","../src/components/reveal/primitives/reveal-root.tsx","../src/components/reveal/primitives/reveal-viewport.tsx","../src/components/reveal/primitives/reveal-controls.tsx","../src/components/reveal/primitives/reveal-trigger.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type AnimatedUnderlineProps = ComponentProps<'span'> & {\n children: string;\n};\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --animated-underline-hover: hsl(var(--primary));\n * --animated-underline-text: hsl(var(--foreground));\n * --animated-underline-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function AnimatedUnderline({ className, children, ...props }: AnimatedUnderlineProps) {\n return (\n <span\n className={cn(\n 'origin-left font-semibold leading-normal text-[var(--animated-underline-text,hsl(var(--foreground)))] transition-[background-size] duration-300 [background:linear-gradient(0deg,var(--animated-underline-hover,hsl(var(--primary))),var(--animated-underline-hover,hsl(var(--primary))))_no-repeat_left_bottom_/_0_2px] [font-family:var(--animated-underline-font-family,var(--font-family-body))] hover:bg-[size:100%_2px] group-focus/underline:bg-[size:100%_2px]',\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n","'use client';\n\nimport { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, ReactNode, RefObject } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface RevealContext {\n isOpen: boolean;\n hasOverflow: boolean;\n variant: 'underline' | 'button';\n showLabel: string;\n hideLabel: string;\n maxHeight: number;\n contentRef: RefObject<HTMLDivElement | null>;\n toggleOpen: () => void;\n}\n\nconst RevealContext = createContext<RevealContext | undefined>(undefined);\n\nexport interface RevealRootProps extends ComponentProps<'div'> {\n variant?: 'underline' | 'button';\n showLabel?: string;\n hideLabel?: string;\n defaultOpen?: boolean;\n maxHeight?: number;\n children: ReactNode;\n}\n\nexport function RevealRoot({\n children,\n className,\n variant = 'underline',\n showLabel = 'Show more',\n hideLabel = 'Show less',\n defaultOpen = false,\n maxHeight = 160,\n ...props\n}: RevealRootProps) {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const [hasOverflow, setHasOverflow] = useState(true);\n\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function checkHeight() {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n setHasOverflow(contentHeight > maxHeight);\n }\n }\n\n checkHeight();\n\n const resizeObserver = new ResizeObserver(checkHeight);\n\n if (contentRef.current) {\n resizeObserver.observe(contentRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [maxHeight]);\n\n const toggleOpen = useCallback(() => {\n setIsOpen((prev) => !prev);\n }, []);\n\n const contextValues = useMemo(\n () => ({\n isOpen,\n hasOverflow,\n variant,\n showLabel,\n hideLabel,\n maxHeight,\n contentRef,\n toggleOpen,\n }),\n [isOpen, hasOverflow, variant, showLabel, hideLabel, maxHeight, toggleOpen],\n );\n\n return (\n <RevealContext.Provider value={contextValues}>\n <div className={cn('relative', className)} {...props}>\n {children}\n </div>\n </RevealContext.Provider>\n );\n}\n\nexport function useReveal() {\n const context = use(RevealContext);\n\n if (context === undefined) {\n throw new Error('useReveal must be used within a RevealRoot');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nexport type RevealViewportProps = ComponentProps<'div'>;\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport function RevealViewport({ children, className, ...props }: RevealViewportProps) {\n const { hasOverflow, isOpen, maxHeight, contentRef } = useReveal();\n\n return (\n <div\n className={cn(\n hasOverflow &&\n !isOpen &&\n '[mask-image:linear-gradient(to_top,transparent,black_50px,black_calc(100%-50px))]',\n 'overflow-hidden',\n className,\n )}\n ref={contentRef}\n style={{ maxHeight: isOpen ? 'none' : maxHeight }}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealControlsProps = ComponentProps<'div'>;\n\nexport function RevealControls({ children, className, ...props }: RevealControlsProps) {\n const { hasOverflow } = useReveal();\n\n if (!hasOverflow) return null;\n\n return (\n <div className={cn('flex w-full items-end pt-4', className)} {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { AnimatedUnderline } from '@/components/animated-underline';\nimport { Button } from '@/components/button';\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealTriggerProps = ComponentProps<'button'>;\n\nexport function RevealTrigger({ children, className, ...props }: RevealTriggerProps) {\n const { variant, showLabel, hideLabel, isOpen, toggleOpen } = useReveal();\n\n return (\n <>\n {variant === 'underline' && (\n <button\n className={cn('group/underline text-sm focus:outline-none', className)}\n onClick={() => toggleOpen()}\n type=\"button\"\n {...props}\n >\n <AnimatedUnderline>{isOpen ? hideLabel : showLabel}</AnimatedUnderline>\n </button>\n )}\n {variant === 'button' && (\n <Button\n className={className}\n onClick={() => toggleOpen()}\n size=\"x-small\"\n type=\"button\"\n variant=\"tertiary\"\n {...props}\n >\n {isOpen ? hideLabel : showLabel}\n </Button>\n )}\n </>\n );\n}\n"],"names":["AnimatedUnderline","className","children","props","jsx","cn","RevealContext","createContext","RevealRoot","variant","showLabel","hideLabel","defaultOpen","maxHeight","isOpen","setIsOpen","useState","hasOverflow","setHasOverflow","contentRef","useRef","useEffect","checkHeight","contentHeight","resizeObserver","toggleOpen","useCallback","prev","contextValues","useMemo","useReveal","context","use","RevealViewport","RevealControls","RevealTrigger","jsxs","Fragment","Button"],"mappings":";;;;AAoBO,SAASA,EAAkB,EAAE,WAAAC,GAAW,UAAAC,GAAU,GAAGC,KAAiC;AAC3F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACdA,MAAMI,IAAgBC,EAAyC,MAAS;AAWjE,SAASC,EAAW;AAAA,EACzB,UAAAN;AAAA,EACA,WAAAD;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,WAAAC,IAAY;AAAA,EACZ,WAAAC,IAAY;AAAA,EACZ,aAAAC,IAAc;AAAA,EACd,WAAAC,IAAY;AAAA,EACZ,GAAGV;AACL,GAAoB;AAClB,QAAM,CAACW,GAAQC,CAAS,IAAIC,EAASJ,CAAW,GAC1C,CAACK,GAAaC,CAAc,IAAIF,EAAS,EAAI,GAE7CG,IAAaC,EAAuB,IAAI;AAE9C,EAAAC,EAAU,MAAM;AACd,aAASC,IAAc;AACrB,UAAIH,EAAW,SAAS;AACtB,cAAMI,IAAgBJ,EAAW,QAAQ;
|
|
1
|
+
{"version":3,"file":"reveal-trigger-C-dcymoc.js","sources":["../src/components/animated-underline/animated-underline.tsx","../src/components/reveal/primitives/reveal-root.tsx","../src/components/reveal/primitives/reveal-viewport.tsx","../src/components/reveal/primitives/reveal-controls.tsx","../src/components/reveal/primitives/reveal-trigger.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type AnimatedUnderlineProps = ComponentProps<'span'> & {\n children: string;\n};\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --animated-underline-hover: hsl(var(--primary));\n * --animated-underline-text: hsl(var(--foreground));\n * --animated-underline-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function AnimatedUnderline({ className, children, ...props }: AnimatedUnderlineProps) {\n return (\n <span\n className={cn(\n 'origin-left font-semibold leading-normal text-[var(--animated-underline-text,hsl(var(--foreground)))] transition-[background-size] duration-300 [background:linear-gradient(0deg,var(--animated-underline-hover,hsl(var(--primary))),var(--animated-underline-hover,hsl(var(--primary))))_no-repeat_left_bottom_/_0_2px] [font-family:var(--animated-underline-font-family,var(--font-family-body))] hover:bg-[size:100%_2px] group-focus/underline:bg-[size:100%_2px]',\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n","'use client';\n\nimport { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, ReactNode, RefObject } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface RevealContext {\n isOpen: boolean;\n hasOverflow: boolean;\n variant: 'underline' | 'button';\n showLabel: string;\n hideLabel: string;\n maxHeight: number;\n contentRef: RefObject<HTMLDivElement | null>;\n toggleOpen: () => void;\n}\n\nconst RevealContext = createContext<RevealContext | undefined>(undefined);\n\nexport interface RevealRootProps extends ComponentProps<'div'> {\n variant?: 'underline' | 'button';\n showLabel?: string;\n hideLabel?: string;\n defaultOpen?: boolean;\n maxHeight?: number;\n children: ReactNode;\n}\n\nexport function RevealRoot({\n children,\n className,\n variant = 'underline',\n showLabel = 'Show more',\n hideLabel = 'Show less',\n defaultOpen = false,\n maxHeight = 160,\n ...props\n}: RevealRootProps) {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const [hasOverflow, setHasOverflow] = useState(true);\n\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function checkHeight() {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n\n setHasOverflow(contentHeight > maxHeight);\n }\n }\n\n checkHeight();\n\n const resizeObserver = new ResizeObserver(checkHeight);\n\n if (contentRef.current) {\n resizeObserver.observe(contentRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [maxHeight]);\n\n const toggleOpen = useCallback(() => {\n setIsOpen((prev) => !prev);\n }, []);\n\n const contextValues = useMemo(\n () => ({\n isOpen,\n hasOverflow,\n variant,\n showLabel,\n hideLabel,\n maxHeight,\n contentRef,\n toggleOpen,\n }),\n [isOpen, hasOverflow, variant, showLabel, hideLabel, maxHeight, toggleOpen],\n );\n\n return (\n <RevealContext.Provider value={contextValues}>\n <div className={cn('relative', className)} {...props}>\n {children}\n </div>\n </RevealContext.Provider>\n );\n}\n\nexport function useReveal() {\n const context = use(RevealContext);\n\n if (context === undefined) {\n throw new Error('useReveal must be used within a RevealRoot');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nexport type RevealViewportProps = ComponentProps<'div'>;\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport function RevealViewport({ children, className, ...props }: RevealViewportProps) {\n const { hasOverflow, isOpen, maxHeight, contentRef } = useReveal();\n\n return (\n <div\n className={cn(\n hasOverflow &&\n !isOpen &&\n '[mask-image:linear-gradient(to_top,transparent,black_50px,black_calc(100%-50px))]',\n 'overflow-hidden',\n className,\n )}\n ref={contentRef}\n style={{ maxHeight: isOpen ? 'none' : maxHeight }}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealControlsProps = ComponentProps<'div'>;\n\nexport function RevealControls({ children, className, ...props }: RevealControlsProps) {\n const { hasOverflow } = useReveal();\n\n if (!hasOverflow) return null;\n\n return (\n <div className={cn('flex w-full items-end pt-4', className)} {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { AnimatedUnderline } from '@/components/animated-underline';\nimport { Button } from '@/components/button';\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealTriggerProps = ComponentProps<'button'>;\n\nexport function RevealTrigger({ children, className, ...props }: RevealTriggerProps) {\n const { variant, showLabel, hideLabel, isOpen, toggleOpen } = useReveal();\n\n return (\n <>\n {variant === 'underline' && (\n <button\n className={cn('group/underline text-sm focus:outline-none', className)}\n onClick={() => toggleOpen()}\n type=\"button\"\n {...props}\n >\n <AnimatedUnderline>{isOpen ? hideLabel : showLabel}</AnimatedUnderline>\n </button>\n )}\n {variant === 'button' && (\n <Button\n className={className}\n onClick={() => toggleOpen()}\n size=\"x-small\"\n type=\"button\"\n variant=\"tertiary\"\n {...props}\n >\n {isOpen ? hideLabel : showLabel}\n </Button>\n )}\n </>\n );\n}\n"],"names":["AnimatedUnderline","className","children","props","jsx","cn","RevealContext","createContext","RevealRoot","variant","showLabel","hideLabel","defaultOpen","maxHeight","isOpen","setIsOpen","useState","hasOverflow","setHasOverflow","contentRef","useRef","useEffect","checkHeight","contentHeight","resizeObserver","toggleOpen","useCallback","prev","contextValues","useMemo","useReveal","context","use","RevealViewport","RevealControls","RevealTrigger","jsxs","Fragment","Button"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reveal-trigger-XpH07-oH.cjs","sources":["../src/components/animated-underline/animated-underline.tsx","../src/components/reveal/primitives/reveal-root.tsx","../src/components/reveal/primitives/reveal-viewport.tsx","../src/components/reveal/primitives/reveal-controls.tsx","../src/components/reveal/primitives/reveal-trigger.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type AnimatedUnderlineProps = ComponentProps<'span'> & {\n children: string;\n};\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --animated-underline-hover: hsl(var(--primary));\n * --animated-underline-text: hsl(var(--foreground));\n * --animated-underline-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function AnimatedUnderline({ className, children, ...props }: AnimatedUnderlineProps) {\n return (\n <span\n className={cn(\n 'origin-left font-semibold leading-normal text-[var(--animated-underline-text,hsl(var(--foreground)))] transition-[background-size] duration-300 [background:linear-gradient(0deg,var(--animated-underline-hover,hsl(var(--primary))),var(--animated-underline-hover,hsl(var(--primary))))_no-repeat_left_bottom_/_0_2px] [font-family:var(--animated-underline-font-family,var(--font-family-body))] hover:bg-[size:100%_2px] group-focus/underline:bg-[size:100%_2px]',\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n","'use client';\n\nimport { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, ReactNode, RefObject } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface RevealContext {\n isOpen: boolean;\n hasOverflow: boolean;\n variant: 'underline' | 'button';\n showLabel: string;\n hideLabel: string;\n maxHeight: number;\n contentRef: RefObject<HTMLDivElement | null>;\n toggleOpen: () => void;\n}\n\nconst RevealContext = createContext<RevealContext | undefined>(undefined);\n\nexport interface RevealRootProps extends ComponentProps<'div'> {\n variant?: 'underline' | 'button';\n showLabel?: string;\n hideLabel?: string;\n defaultOpen?: boolean;\n maxHeight?: number;\n children: ReactNode;\n}\n\nexport function RevealRoot({\n children,\n className,\n variant = 'underline',\n showLabel = 'Show more',\n hideLabel = 'Show less',\n defaultOpen = false,\n maxHeight = 160,\n ...props\n}: RevealRootProps) {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const [hasOverflow, setHasOverflow] = useState(true);\n\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function checkHeight() {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n setHasOverflow(contentHeight > maxHeight);\n }\n }\n\n checkHeight();\n\n const resizeObserver = new ResizeObserver(checkHeight);\n\n if (contentRef.current) {\n resizeObserver.observe(contentRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [maxHeight]);\n\n const toggleOpen = useCallback(() => {\n setIsOpen((prev) => !prev);\n }, []);\n\n const contextValues = useMemo(\n () => ({\n isOpen,\n hasOverflow,\n variant,\n showLabel,\n hideLabel,\n maxHeight,\n contentRef,\n toggleOpen,\n }),\n [isOpen, hasOverflow, variant, showLabel, hideLabel, maxHeight, toggleOpen],\n );\n\n return (\n <RevealContext.Provider value={contextValues}>\n <div className={cn('relative', className)} {...props}>\n {children}\n </div>\n </RevealContext.Provider>\n );\n}\n\nexport function useReveal() {\n const context = use(RevealContext);\n\n if (context === undefined) {\n throw new Error('useReveal must be used within a RevealRoot');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nexport type RevealViewportProps = ComponentProps<'div'>;\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport function RevealViewport({ children, className, ...props }: RevealViewportProps) {\n const { hasOverflow, isOpen, maxHeight, contentRef } = useReveal();\n\n return (\n <div\n className={cn(\n hasOverflow &&\n !isOpen &&\n '[mask-image:linear-gradient(to_top,transparent,black_50px,black_calc(100%-50px))]',\n 'overflow-hidden',\n className,\n )}\n ref={contentRef}\n style={{ maxHeight: isOpen ? 'none' : maxHeight }}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealControlsProps = ComponentProps<'div'>;\n\nexport function RevealControls({ children, className, ...props }: RevealControlsProps) {\n const { hasOverflow } = useReveal();\n\n if (!hasOverflow) return null;\n\n return (\n <div className={cn('flex w-full items-end pt-4', className)} {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { AnimatedUnderline } from '@/components/animated-underline';\nimport { Button } from '@/components/button';\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealTriggerProps = ComponentProps<'button'>;\n\nexport function RevealTrigger({ children, className, ...props }: RevealTriggerProps) {\n const { variant, showLabel, hideLabel, isOpen, toggleOpen } = useReveal();\n\n return (\n <>\n {variant === 'underline' && (\n <button\n className={cn('group/underline text-sm focus:outline-none', className)}\n onClick={() => toggleOpen()}\n type=\"button\"\n {...props}\n >\n <AnimatedUnderline>{isOpen ? hideLabel : showLabel}</AnimatedUnderline>\n </button>\n )}\n {variant === 'button' && (\n <Button\n className={className}\n onClick={() => toggleOpen()}\n size=\"x-small\"\n type=\"button\"\n variant=\"tertiary\"\n {...props}\n >\n {isOpen ? hideLabel : showLabel}\n </Button>\n )}\n </>\n );\n}\n"],"names":["AnimatedUnderline","className","children","props","jsx","cn","RevealContext","createContext","RevealRoot","variant","showLabel","hideLabel","defaultOpen","maxHeight","isOpen","setIsOpen","useState","hasOverflow","setHasOverflow","contentRef","useRef","useEffect","checkHeight","contentHeight","resizeObserver","toggleOpen","useCallback","prev","contextValues","useMemo","useReveal","context","use","RevealViewport","RevealControls","RevealTrigger","jsxs","Fragment","Button"],"mappings":"0IAoBO,SAASA,EAAkB,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,GAAiC,CAC3F,OACEC,EAAAA,IAAC,OAAA,CACC,UAAWC,EAAAA,GACT,ycACAJ,CAAA,EAED,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCdA,MAAMI,EAAgBC,EAAAA,cAAyC,MAAS,EAWjE,SAASC,EAAW,CACzB,SAAAN,EACA,UAAAD,EACA,QAAAQ,EAAU,YACV,UAAAC,EAAY,YACZ,UAAAC,EAAY,YACZ,YAAAC,EAAc,GACd,UAAAC,EAAY,IACZ,GAAGV,CACL,EAAoB,CAClB,KAAM,CAACW,EAAQC,CAAS,EAAIC,EAAAA,SAASJ,CAAW,EAC1C,CAACK,EAAaC,CAAc,EAAIF,EAAAA,SAAS,EAAI,EAE7CG,EAAaC,EAAAA,OAAuB,IAAI,EAE9CC,EAAAA,UAAU,IAAM,CACd,SAASC,GAAc,CACrB,GAAIH,EAAW,QAAS,CACtB,MAAMI,EAAgBJ,EAAW,QAAQ,
|
|
1
|
+
{"version":3,"file":"reveal-trigger-XpH07-oH.cjs","sources":["../src/components/animated-underline/animated-underline.tsx","../src/components/reveal/primitives/reveal-root.tsx","../src/components/reveal/primitives/reveal-viewport.tsx","../src/components/reveal/primitives/reveal-controls.tsx","../src/components/reveal/primitives/reveal-trigger.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type AnimatedUnderlineProps = ComponentProps<'span'> & {\n children: string;\n};\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --animated-underline-hover: hsl(var(--primary));\n * --animated-underline-text: hsl(var(--foreground));\n * --animated-underline-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function AnimatedUnderline({ className, children, ...props }: AnimatedUnderlineProps) {\n return (\n <span\n className={cn(\n 'origin-left font-semibold leading-normal text-[var(--animated-underline-text,hsl(var(--foreground)))] transition-[background-size] duration-300 [background:linear-gradient(0deg,var(--animated-underline-hover,hsl(var(--primary))),var(--animated-underline-hover,hsl(var(--primary))))_no-repeat_left_bottom_/_0_2px] [font-family:var(--animated-underline-font-family,var(--font-family-body))] hover:bg-[size:100%_2px] group-focus/underline:bg-[size:100%_2px]',\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n","'use client';\n\nimport { createContext, use, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport type { ComponentProps, ReactNode, RefObject } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface RevealContext {\n isOpen: boolean;\n hasOverflow: boolean;\n variant: 'underline' | 'button';\n showLabel: string;\n hideLabel: string;\n maxHeight: number;\n contentRef: RefObject<HTMLDivElement | null>;\n toggleOpen: () => void;\n}\n\nconst RevealContext = createContext<RevealContext | undefined>(undefined);\n\nexport interface RevealRootProps extends ComponentProps<'div'> {\n variant?: 'underline' | 'button';\n showLabel?: string;\n hideLabel?: string;\n defaultOpen?: boolean;\n maxHeight?: number;\n children: ReactNode;\n}\n\nexport function RevealRoot({\n children,\n className,\n variant = 'underline',\n showLabel = 'Show more',\n hideLabel = 'Show less',\n defaultOpen = false,\n maxHeight = 160,\n ...props\n}: RevealRootProps) {\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const [hasOverflow, setHasOverflow] = useState(true);\n\n const contentRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function checkHeight() {\n if (contentRef.current) {\n const contentHeight = contentRef.current.scrollHeight;\n\n setHasOverflow(contentHeight > maxHeight);\n }\n }\n\n checkHeight();\n\n const resizeObserver = new ResizeObserver(checkHeight);\n\n if (contentRef.current) {\n resizeObserver.observe(contentRef.current);\n }\n\n return () => {\n resizeObserver.disconnect();\n };\n }, [maxHeight]);\n\n const toggleOpen = useCallback(() => {\n setIsOpen((prev) => !prev);\n }, []);\n\n const contextValues = useMemo(\n () => ({\n isOpen,\n hasOverflow,\n variant,\n showLabel,\n hideLabel,\n maxHeight,\n contentRef,\n toggleOpen,\n }),\n [isOpen, hasOverflow, variant, showLabel, hideLabel, maxHeight, toggleOpen],\n );\n\n return (\n <RevealContext.Provider value={contextValues}>\n <div className={cn('relative', className)} {...props}>\n {children}\n </div>\n </RevealContext.Provider>\n );\n}\n\nexport function useReveal() {\n const context = use(RevealContext);\n\n if (context === undefined) {\n throw new Error('useReveal must be used within a RevealRoot');\n }\n\n return context;\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nexport type RevealViewportProps = ComponentProps<'div'>;\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport function RevealViewport({ children, className, ...props }: RevealViewportProps) {\n const { hasOverflow, isOpen, maxHeight, contentRef } = useReveal();\n\n return (\n <div\n className={cn(\n hasOverflow &&\n !isOpen &&\n '[mask-image:linear-gradient(to_top,transparent,black_50px,black_calc(100%-50px))]',\n 'overflow-hidden',\n className,\n )}\n ref={contentRef}\n style={{ maxHeight: isOpen ? 'none' : maxHeight }}\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealControlsProps = ComponentProps<'div'>;\n\nexport function RevealControls({ children, className, ...props }: RevealControlsProps) {\n const { hasOverflow } = useReveal();\n\n if (!hasOverflow) return null;\n\n return (\n <div className={cn('flex w-full items-end pt-4', className)} {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { AnimatedUnderline } from '@/components/animated-underline';\nimport { Button } from '@/components/button';\nimport { useReveal } from '@/components/reveal';\nimport { cn } from '@/lib';\n\nexport type RevealTriggerProps = ComponentProps<'button'>;\n\nexport function RevealTrigger({ children, className, ...props }: RevealTriggerProps) {\n const { variant, showLabel, hideLabel, isOpen, toggleOpen } = useReveal();\n\n return (\n <>\n {variant === 'underline' && (\n <button\n className={cn('group/underline text-sm focus:outline-none', className)}\n onClick={() => toggleOpen()}\n type=\"button\"\n {...props}\n >\n <AnimatedUnderline>{isOpen ? hideLabel : showLabel}</AnimatedUnderline>\n </button>\n )}\n {variant === 'button' && (\n <Button\n className={className}\n onClick={() => toggleOpen()}\n size=\"x-small\"\n type=\"button\"\n variant=\"tertiary\"\n {...props}\n >\n {isOpen ? hideLabel : showLabel}\n </Button>\n )}\n </>\n );\n}\n"],"names":["AnimatedUnderline","className","children","props","jsx","cn","RevealContext","createContext","RevealRoot","variant","showLabel","hideLabel","defaultOpen","maxHeight","isOpen","setIsOpen","useState","hasOverflow","setHasOverflow","contentRef","useRef","useEffect","checkHeight","contentHeight","resizeObserver","toggleOpen","useCallback","prev","contextValues","useMemo","useReveal","context","use","RevealViewport","RevealControls","RevealTrigger","jsxs","Fragment","Button"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "commerce-toolkit",
|
|
3
|
-
"version": "0.0
|
|
3
|
+
"version": "0.1.0",
|
|
4
4
|
"description": "A collection of modern, accessible commerce UI components",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -77,6 +77,16 @@
|
|
|
77
77
|
"default": "./dist/carousel.cjs"
|
|
78
78
|
}
|
|
79
79
|
},
|
|
80
|
+
"./category-card": {
|
|
81
|
+
"import": {
|
|
82
|
+
"types": "./dist/components/category-card/primitives.d.ts",
|
|
83
|
+
"default": "./dist/category-card.js"
|
|
84
|
+
},
|
|
85
|
+
"require": {
|
|
86
|
+
"types": "./dist/components/category-card/primitives.d.ts",
|
|
87
|
+
"default": "./dist/category-card.cjs"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
80
90
|
"./checkbox": {
|
|
81
91
|
"import": {
|
|
82
92
|
"types": "./dist/components/checkbox/primitives.d.ts",
|
|
@@ -167,6 +177,16 @@
|
|
|
167
177
|
"default": "./dist/modal.cjs"
|
|
168
178
|
}
|
|
169
179
|
},
|
|
180
|
+
"./offset-pagination": {
|
|
181
|
+
"import": {
|
|
182
|
+
"types": "./dist/components/offset-pagination/primitives.d.ts",
|
|
183
|
+
"default": "./dist/offset-pagination.js"
|
|
184
|
+
},
|
|
185
|
+
"require": {
|
|
186
|
+
"types": "./dist/components/offset-pagination/primitives.d.ts",
|
|
187
|
+
"default": "./dist/offset-pagination.cjs"
|
|
188
|
+
}
|
|
189
|
+
},
|
|
170
190
|
"./price": {
|
|
171
191
|
"import": {
|
|
172
192
|
"types": "./dist/components/price/primitives.d.ts",
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const r=require("react/jsx-runtime"),s=require("./utils-LBH114_M.cjs"),n=require("./index-DGaxX11V.cjs");function c({as:o,className:t,children:a,...l}){const e=o??"article";return r.jsx(e,{className:s.cn("group relative w-full max-w-md @container [font-family:var(--blog-post-card-font-family,var(--font-family-body))]",t),"data-slot":"blog-post-card-root",...l,children:a})}function d({children:o,className:t,...a}){return r.jsx("div",{className:s.cn("p-4 text-5xl font-bold leading-none tracking-tighter [color:var(--blog-post-card-empty-text,color-mix(in_oklab,hsl(var(--foreground))_15%,transparent))]",t),...a,children:o})}function i({className:o,children:t,...a}){return r.jsx("div",{className:s.cn("relative aspect-[4/3] w-full overflow-hidden rounded-2xl bg-[var(--blog-post-card-image-background,hsl(var(--contrast-100)))]",o),"data-slot":"blog-post-card-thumbnail",...a,children:t})}function g({className:o,asChild:t=!1,...a}){const l=t?n.Slot:"img";return r.jsx(l,{className:s.cn("h-full w-full object-cover transition-transform duration-500 ease-out group-hover:scale-110",o),"data-slot":"blog-post-card-image",...a})}function u({asChild:o=!1,className:t,...a}){const l=o?n.Slot:"a";return r.jsx(l,{className:s.cn("absolute inset-0 rounded-b-lg rounded-t-2xl focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--blog-post-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4",t),"data-slot":"blog-post-card-link",...a})}function m({className:o,children:t,...a}){return r.jsx("h5",{className:s.cn("mt-4 text-lg font-medium leading-snug text-[var(--blog-post-card-title-text,hsl(var(--foreground)))]",o),"data-slot":"blog-post-card-title",...a,children:t})}function f({className:o,children:t,...a}){return r.jsx("p",{className:s.cn("mt-1.5 line-clamp-3 text-sm font-normal text-[var(--blog-post-card-content-text,hsl(var(--contrast-400)))]",o),"data-slot":"blog-post-card-content",...a,children:t})}function b({children:o,className:t,...a}){return r.jsx("div",{className:s.cn("mt-3 text-sm text-[var(--blog-post-card-author-date-text,hsl(var(--foreground)))]",t),"data-slot":"blog-post-card-details",...a,children:o})}function x({className:o,children:t,...a}){return r.jsx("time",{className:o,dateTime:t,...a,"data-slot":"blog-post-card-date",children:new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"})})}function p({className:o,children:t,...a}){return r.jsxs(r.Fragment,{children:[r.jsx("span",{className:s.cn("after:mx-2 after:content-['•']",o),"data-slot":"blog-post-card-author",...a}),r.jsx("span",{children:t})]})}exports.BlogPostCardAuthor=p;exports.BlogPostCardContent=f;exports.BlogPostCardDate=x;exports.BlogPostCardDetails=b;exports.BlogPostCardFallback=d;exports.BlogPostCardImage=g;exports.BlogPostCardLink=u;exports.BlogPostCardRoot=c;exports.BlogPostCardThumbnail=i;exports.BlogPostCardTitle=m;
|
|
2
|
-
//# sourceMappingURL=blog-post-card-author-BGqy41Da.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blog-post-card-author-BGqy41Da.cjs","sources":["../src/components/blog-post-card/primitives/blog-post-card-root.tsx","../src/components/blog-post-card/primitives/blog-post-card-fallback.tsx","../src/components/blog-post-card/primitives/blog-post-card-thumbnail.tsx","../src/components/blog-post-card/primitives/blog-post-card-image.tsx","../src/components/blog-post-card/primitives/blog-post-card-link.tsx","../src/components/blog-post-card/primitives/blog-post-card-title.tsx","../src/components/blog-post-card/primitives/blog-post-card-content.tsx","../src/components/blog-post-card/primitives/blog-post-card-details.tsx","../src/components/blog-post-card/primitives/blog-post-card-date.tsx","../src/components/blog-post-card/primitives/blog-post-card-author.tsx"],"sourcesContent":["import type { ComponentProps, ElementType } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardRootProps<E extends ElementType = 'article'> = Omit<\n ComponentProps<E>,\n 'as'\n> & {\n as?: E;\n};\n\nexport function BlogPostCardRoot<T extends ElementType = 'article'>({\n as,\n className,\n children,\n ...props\n}: BlogPostCardRootProps<T>) {\n const BlogPostCardRootElement = as ?? 'article';\n\n return (\n <BlogPostCardRootElement\n className={cn(\n 'group relative w-full max-w-md @container [font-family:var(--blog-post-card-font-family,var(--font-family-body))]',\n className,\n )}\n data-slot=\"blog-post-card-root\"\n {...props}\n >\n {children}\n </BlogPostCardRootElement>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardFallbackProps = ComponentProps<'div'>;\n\nexport function BlogPostCardFallback({ children, className, ...props }: BlogPostCardFallbackProps) {\n return (\n <div\n className={cn(\n 'p-4 text-5xl font-bold leading-none tracking-tighter [color:var(--blog-post-card-empty-text,color-mix(in_oklab,hsl(var(--foreground))_15%,transparent))]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardThumbnailProps = ComponentProps<'div'>;\n\nexport function BlogPostCardThumbnail({\n className,\n children,\n ...props\n}: BlogPostCardThumbnailProps) {\n return (\n <div\n className={cn(\n 'relative aspect-[4/3] w-full overflow-hidden rounded-2xl bg-[var(--blog-post-card-image-background,hsl(var(--contrast-100)))]',\n className,\n )}\n data-slot=\"blog-post-card-thumbnail\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface BlogPostCardImageProps extends ComponentProps<'img'> {\n asChild?: boolean;\n}\n\nexport function BlogPostCardImage({\n className,\n asChild = false,\n ...props\n}: BlogPostCardImageProps) {\n const Component = asChild ? Slot : 'img';\n\n return (\n <Component\n className={cn(\n 'h-full w-full object-cover transition-transform duration-500 ease-out group-hover:scale-110',\n className,\n )}\n data-slot=\"blog-post-card-image\"\n {...props}\n />\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface BlogPostCardLinkProps extends ComponentProps<'a'> {\n asChild?: boolean;\n}\n\nexport function BlogPostCardLink({ asChild = false, className, ...props }: BlogPostCardLinkProps) {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'absolute inset-0 rounded-b-lg rounded-t-2xl focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--blog-post-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4',\n className,\n )}\n data-slot=\"blog-post-card-link\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardTitleProps = ComponentProps<'h5'>;\n\nexport function BlogPostCardTitle({ className, children, ...props }: BlogPostCardTitleProps) {\n return (\n <h5\n className={cn(\n 'mt-4 text-lg font-medium leading-snug text-[var(--blog-post-card-title-text,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"blog-post-card-title\"\n {...props}\n >\n {children}\n </h5>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardContentProps = ComponentProps<'p'>;\n\nexport function BlogPostCardContent({ className, children, ...props }: BlogPostCardContentProps) {\n return (\n <p\n className={cn(\n 'mt-1.5 line-clamp-3 text-sm font-normal text-[var(--blog-post-card-content-text,hsl(var(--contrast-400)))]',\n className,\n )}\n data-slot=\"blog-post-card-content\"\n {...props}\n >\n {children}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardDetailsProps = ComponentProps<'div'>;\n\nexport function BlogPostCardDetails({ children, className, ...props }: BlogPostCardDetailsProps) {\n return (\n <div\n className={cn(\n 'mt-3 text-sm text-[var(--blog-post-card-author-date-text,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"blog-post-card-details\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nexport type BlogPostCardDateProps = ComponentProps<'time'> & {\n children: string;\n};\n\nexport function BlogPostCardDate({ className, children, ...props }: BlogPostCardDateProps) {\n return (\n <time className={className} dateTime={children} {...props} data-slot=\"blog-post-card-date\">\n {new Date(children).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n })}\n </time>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardAuthorProps = ComponentProps<'span'>;\n\nexport function BlogPostCardAuthor({ className, children, ...props }: BlogPostCardAuthorProps) {\n return (\n <>\n <span\n className={cn(\"after:mx-2 after:content-['•']\", className)}\n data-slot=\"blog-post-card-author\"\n {...props}\n />\n <span>{children}</span>\n </>\n );\n}\n"],"names":["BlogPostCardRoot","as","className","children","props","BlogPostCardRootElement","jsx","cn","BlogPostCardFallback","BlogPostCardThumbnail","BlogPostCardImage","asChild","Component","Slot","BlogPostCardLink","BlogPostCardTitle","BlogPostCardContent","BlogPostCardDetails","BlogPostCardDate","BlogPostCardAuthor","jsxs","Fragment"],"mappings":"sHAWO,SAASA,EAAoD,CAClE,GAAAC,EACA,UAAAC,EACA,SAAAC,EACA,GAAGC,CACL,EAA6B,CAC3B,MAAMC,EAA0BJ,GAAM,UAEtC,OACEK,EAAAA,IAACD,EAAA,CACC,UAAWE,EAAAA,GACT,oHACAL,CAAA,EAEF,YAAU,sBACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCzBO,SAASK,EAAqB,CAAE,SAAAL,EAAU,UAAAD,EAAW,GAAGE,GAAoC,CACjG,OACEE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,2JACAL,CAAA,EAED,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCZO,SAASM,EAAsB,CACpC,UAAAP,EACA,SAAAC,EACA,GAAGC,CACL,EAA+B,CAC7B,OACEE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,gIACAL,CAAA,EAEF,YAAU,2BACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCdO,SAASO,EAAkB,CAChC,UAAAR,EACA,QAAAS,EAAU,GACV,GAAGP,CACL,EAA2B,CACzB,MAAMQ,EAAYD,EAAUE,EAAAA,KAAO,MAEnC,OACEP,EAAAA,IAACM,EAAA,CACC,UAAWL,EAAAA,GACT,8FACAL,CAAA,EAEF,YAAU,uBACT,GAAGE,CAAA,CAAA,CAGV,CCjBO,SAASU,EAAiB,CAAE,QAAAH,EAAU,GAAO,UAAAT,EAAW,GAAGE,GAAgC,CAChG,MAAMQ,EAAYD,EAAUE,EAAAA,KAAO,IAEnC,OACEP,EAAAA,IAACM,EAAA,CACC,UAAWL,EAAAA,GACT,uLACAL,CAAA,EAEF,YAAU,sBACT,GAAGE,CAAA,CAAA,CAGV,CChBO,SAASW,EAAkB,CAAE,UAAAb,EAAW,SAAAC,EAAU,GAAGC,GAAiC,CAC3F,OACEE,EAAAA,IAAC,KAAA,CACC,UAAWC,EAAAA,GACT,uGACAL,CAAA,EAEF,YAAU,uBACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCbO,SAASa,EAAoB,CAAE,UAAAd,EAAW,SAAAC,EAAU,GAAGC,GAAmC,CAC/F,OACEE,EAAAA,IAAC,IAAA,CACC,UAAWC,EAAAA,GACT,6GACAL,CAAA,EAEF,YAAU,yBACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCbO,SAASc,EAAoB,CAAE,SAAAd,EAAU,UAAAD,EAAW,GAAGE,GAAmC,CAC/F,OACEE,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,oFACAL,CAAA,EAEF,YAAU,yBACT,GAAGE,EAEH,SAAAD,CAAA,CAAA,CAGP,CCbO,SAASe,EAAiB,CAAE,UAAAhB,EAAW,SAAAC,EAAU,GAAGC,GAAgC,CACzF,OACEE,EAAAA,IAAC,OAAA,CAAK,UAAAJ,EAAsB,SAAUC,EAAW,GAAGC,EAAO,YAAU,sBAClE,SAAA,IAAI,KAAKD,CAAQ,EAAE,mBAAmB,QAAS,CAC9C,KAAM,UACN,MAAO,OACP,IAAK,SAAA,CACN,EACH,CAEJ,CCVO,SAASgB,EAAmB,CAAE,UAAAjB,EAAW,SAAAC,EAAU,GAAGC,GAAkC,CAC7F,OACEgB,EAAAA,KAAAC,WAAA,CACE,SAAA,CAAAf,EAAAA,IAAC,OAAA,CACC,UAAWC,EAAAA,GAAG,iCAAkCL,CAAS,EACzD,YAAU,wBACT,GAAGE,CAAA,CAAA,EAENE,MAAC,QAAM,SAAAH,CAAA,CAAS,CAAA,EAClB,CAEJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"blog-post-card-author-Cwm4afzF.js","sources":["../src/components/blog-post-card/primitives/blog-post-card-root.tsx","../src/components/blog-post-card/primitives/blog-post-card-fallback.tsx","../src/components/blog-post-card/primitives/blog-post-card-thumbnail.tsx","../src/components/blog-post-card/primitives/blog-post-card-image.tsx","../src/components/blog-post-card/primitives/blog-post-card-link.tsx","../src/components/blog-post-card/primitives/blog-post-card-title.tsx","../src/components/blog-post-card/primitives/blog-post-card-content.tsx","../src/components/blog-post-card/primitives/blog-post-card-details.tsx","../src/components/blog-post-card/primitives/blog-post-card-date.tsx","../src/components/blog-post-card/primitives/blog-post-card-author.tsx"],"sourcesContent":["import type { ComponentProps, ElementType } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardRootProps<E extends ElementType = 'article'> = Omit<\n ComponentProps<E>,\n 'as'\n> & {\n as?: E;\n};\n\nexport function BlogPostCardRoot<T extends ElementType = 'article'>({\n as,\n className,\n children,\n ...props\n}: BlogPostCardRootProps<T>) {\n const BlogPostCardRootElement = as ?? 'article';\n\n return (\n <BlogPostCardRootElement\n className={cn(\n 'group relative w-full max-w-md @container [font-family:var(--blog-post-card-font-family,var(--font-family-body))]',\n className,\n )}\n data-slot=\"blog-post-card-root\"\n {...props}\n >\n {children}\n </BlogPostCardRootElement>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardFallbackProps = ComponentProps<'div'>;\n\nexport function BlogPostCardFallback({ children, className, ...props }: BlogPostCardFallbackProps) {\n return (\n <div\n className={cn(\n 'p-4 text-5xl font-bold leading-none tracking-tighter [color:var(--blog-post-card-empty-text,color-mix(in_oklab,hsl(var(--foreground))_15%,transparent))]',\n className,\n )}\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardThumbnailProps = ComponentProps<'div'>;\n\nexport function BlogPostCardThumbnail({\n className,\n children,\n ...props\n}: BlogPostCardThumbnailProps) {\n return (\n <div\n className={cn(\n 'relative aspect-[4/3] w-full overflow-hidden rounded-2xl bg-[var(--blog-post-card-image-background,hsl(var(--contrast-100)))]',\n className,\n )}\n data-slot=\"blog-post-card-thumbnail\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface BlogPostCardImageProps extends ComponentProps<'img'> {\n asChild?: boolean;\n}\n\nexport function BlogPostCardImage({\n className,\n asChild = false,\n ...props\n}: BlogPostCardImageProps) {\n const Component = asChild ? Slot : 'img';\n\n return (\n <Component\n className={cn(\n 'h-full w-full object-cover transition-transform duration-500 ease-out group-hover:scale-110',\n className,\n )}\n data-slot=\"blog-post-card-image\"\n {...props}\n />\n );\n}\n","import { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport interface BlogPostCardLinkProps extends ComponentProps<'a'> {\n asChild?: boolean;\n}\n\nexport function BlogPostCardLink({ asChild = false, className, ...props }: BlogPostCardLinkProps) {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'absolute inset-0 rounded-b-lg rounded-t-2xl focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--blog-post-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4',\n className,\n )}\n data-slot=\"blog-post-card-link\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardTitleProps = ComponentProps<'h5'>;\n\nexport function BlogPostCardTitle({ className, children, ...props }: BlogPostCardTitleProps) {\n return (\n <h5\n className={cn(\n 'mt-4 text-lg font-medium leading-snug text-[var(--blog-post-card-title-text,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"blog-post-card-title\"\n {...props}\n >\n {children}\n </h5>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardContentProps = ComponentProps<'p'>;\n\nexport function BlogPostCardContent({ className, children, ...props }: BlogPostCardContentProps) {\n return (\n <p\n className={cn(\n 'mt-1.5 line-clamp-3 text-sm font-normal text-[var(--blog-post-card-content-text,hsl(var(--contrast-400)))]',\n className,\n )}\n data-slot=\"blog-post-card-content\"\n {...props}\n >\n {children}\n </p>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardDetailsProps = ComponentProps<'div'>;\n\nexport function BlogPostCardDetails({ children, className, ...props }: BlogPostCardDetailsProps) {\n return (\n <div\n className={cn(\n 'mt-3 text-sm text-[var(--blog-post-card-author-date-text,hsl(var(--foreground)))]',\n className,\n )}\n data-slot=\"blog-post-card-details\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nexport type BlogPostCardDateProps = ComponentProps<'time'> & {\n children: string;\n};\n\nexport function BlogPostCardDate({ className, children, ...props }: BlogPostCardDateProps) {\n return (\n <time className={className} dateTime={children} {...props} data-slot=\"blog-post-card-date\">\n {new Date(children).toLocaleDateString('en-US', {\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n })}\n </time>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BlogPostCardAuthorProps = ComponentProps<'span'>;\n\nexport function BlogPostCardAuthor({ className, children, ...props }: BlogPostCardAuthorProps) {\n return (\n <>\n <span\n className={cn(\"after:mx-2 after:content-['•']\", className)}\n data-slot=\"blog-post-card-author\"\n {...props}\n />\n <span>{children}</span>\n </>\n );\n}\n"],"names":["BlogPostCardRoot","as","className","children","props","jsx","cn","BlogPostCardFallback","BlogPostCardThumbnail","BlogPostCardImage","asChild","Slot","BlogPostCardLink","BlogPostCardTitle","BlogPostCardContent","BlogPostCardDetails","BlogPostCardDate","BlogPostCardAuthor","jsxs","Fragment"],"mappings":";;;AAWO,SAASA,EAAoD;AAAA,EAClE,IAAAC;AAAA,EACA,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAA6B;AAG3B,SACE,gBAAAC;AAAA,IAH8BJ,KAAM;AAAA,IAGnC;AAAA,MACC,WAAWK;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACzBO,SAASI,EAAqB,EAAE,UAAAJ,GAAU,WAAAD,GAAW,GAAGE,KAAoC;AACjG,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACZO,SAASK,EAAsB;AAAA,EACpC,WAAAN;AAAA,EACA,UAAAC;AAAA,EACA,GAAGC;AACL,GAA+B;AAC7B,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACdO,SAASM,EAAkB;AAAA,EAChC,WAAAP;AAAA,EACA,SAAAQ,IAAU;AAAA,EACV,GAAGN;AACL,GAA2B;AAGzB,SACE,gBAAAC;AAAA,IAHgBK,IAAUC,IAAO;AAAA,IAGhC;AAAA,MACC,WAAWL;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;ACjBO,SAASQ,EAAiB,EAAE,SAAAF,IAAU,IAAO,WAAAR,GAAW,GAAGE,KAAgC;AAGhG,SACE,gBAAAC;AAAA,IAHgBK,IAAUC,IAAO;AAAA,IAGhC;AAAA,MACC,WAAWL;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AChBO,SAASS,EAAkB,EAAE,WAAAX,GAAW,UAAAC,GAAU,GAAGC,KAAiC;AAC3F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACbO,SAASW,EAAoB,EAAE,WAAAZ,GAAW,UAAAC,GAAU,GAAGC,KAAmC;AAC/F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACbO,SAASY,EAAoB,EAAE,UAAAZ,GAAU,WAAAD,GAAW,GAAGE,KAAmC;AAC/F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACbO,SAASa,EAAiB,EAAE,WAAAd,GAAW,UAAAC,GAAU,GAAGC,KAAgC;AACzF,SACE,gBAAAC,EAAC,QAAA,EAAK,WAAAH,GAAsB,UAAUC,GAAW,GAAGC,GAAO,aAAU,uBAClE,UAAA,IAAI,KAAKD,CAAQ,EAAE,mBAAmB,SAAS;AAAA,IAC9C,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,EAAA,CACN,GACH;AAEJ;ACVO,SAASc,EAAmB,EAAE,WAAAf,GAAW,UAAAC,GAAU,GAAGC,KAAkC;AAC7F,SACE,gBAAAc,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAd;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWC,EAAG,kCAAkCJ,CAAS;AAAA,QACzD,aAAU;AAAA,QACT,GAAGE;AAAA,MAAA;AAAA,IAAA;AAAA,IAEN,gBAAAC,EAAC,UAAM,UAAAF,EAAA,CAAS;AAAA,EAAA,GAClB;AAEJ;"}
|