@zentauri-ui/zentauri-components 1.8.1 → 1.8.2
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/README.md +21 -10
- package/cli/registry.json +10 -0
- package/dist/charts/area.js +9 -10
- package/dist/charts/area.js.map +1 -1
- package/dist/charts/area.mjs +2 -3
- package/dist/charts/area.mjs.map +1 -1
- package/dist/charts/bar.js +10 -95
- package/dist/charts/bar.js.map +1 -1
- package/dist/charts/bar.mjs +2 -95
- package/dist/charts/bar.mjs.map +1 -1
- package/dist/charts/bubble.js +8 -9
- package/dist/charts/bubble.js.map +1 -1
- package/dist/charts/bubble.mjs +2 -3
- package/dist/charts/bubble.mjs.map +1 -1
- package/dist/charts/funnel/Funnel.d.ts +6 -0
- package/dist/charts/funnel/Funnel.d.ts.map +1 -0
- package/dist/charts/funnel/index.d.ts +4 -0
- package/dist/charts/funnel/index.d.ts.map +1 -0
- package/dist/charts/funnel.js +102 -0
- package/dist/charts/funnel.js.map +1 -0
- package/dist/charts/funnel.mjs +89 -0
- package/dist/charts/funnel.mjs.map +1 -0
- package/dist/charts/line.js +8 -9
- package/dist/charts/line.js.map +1 -1
- package/dist/charts/line.mjs +2 -3
- package/dist/charts/line.mjs.map +1 -1
- package/dist/charts/pie/Pie.d.ts +1 -1
- package/dist/charts/pie/Pie.d.ts.map +1 -1
- package/dist/charts/pie.js +19 -6
- package/dist/charts/pie.js.map +1 -1
- package/dist/charts/pie.mjs +17 -4
- package/dist/charts/pie.mjs.map +1 -1
- package/dist/charts/radar/Radar.d.ts +6 -0
- package/dist/charts/radar/Radar.d.ts.map +1 -0
- package/dist/charts/radar/index.d.ts +4 -0
- package/dist/charts/radar/index.d.ts.map +1 -0
- package/dist/charts/radar.js +94 -0
- package/dist/charts/radar.js.map +1 -0
- package/dist/charts/radar.mjs +81 -0
- package/dist/charts/radar.mjs.map +1 -0
- package/dist/charts/scatter/Scatter.d.ts +6 -0
- package/dist/charts/scatter/Scatter.d.ts.map +1 -0
- package/dist/charts/scatter/index.d.ts +4 -0
- package/dist/charts/scatter/index.d.ts.map +1 -0
- package/dist/charts/scatter.js +116 -0
- package/dist/charts/scatter.js.map +1 -0
- package/dist/charts/scatter.mjs +103 -0
- package/dist/charts/scatter.mjs.map +1 -0
- package/dist/charts/shared/chart-frame.d.ts +2 -1
- package/dist/charts/shared/chart-frame.d.ts.map +1 -1
- package/dist/charts/shared/types.d.ts +22 -2
- package/dist/charts/shared/types.d.ts.map +1 -1
- package/dist/charts/stacked-bar/StackedBar.d.ts +6 -0
- package/dist/charts/stacked-bar/StackedBar.d.ts.map +1 -0
- package/dist/charts/stacked-bar/index.d.ts +4 -0
- package/dist/charts/stacked-bar/index.d.ts.map +1 -0
- package/dist/charts/stacked-bar.js +29 -0
- package/dist/charts/stacked-bar.js.map +1 -0
- package/dist/charts/stacked-bar.mjs +15 -0
- package/dist/charts/stacked-bar.mjs.map +1 -0
- package/dist/chunk-F3V4POW3.mjs +8 -0
- package/dist/chunk-F3V4POW3.mjs.map +1 -0
- package/dist/{chunk-G2WARVAM.mjs → chunk-HZIRD3SR.mjs} +35 -15
- package/dist/chunk-HZIRD3SR.mjs.map +1 -0
- package/dist/{chunk-G66SXATZ.js → chunk-IL4LH2XX.js} +50 -4
- package/dist/chunk-IL4LH2XX.js.map +1 -0
- package/dist/chunk-LREMK2XR.js +97 -0
- package/dist/chunk-LREMK2XR.js.map +1 -0
- package/dist/chunk-O2KM3ETC.mjs +95 -0
- package/dist/chunk-O2KM3ETC.mjs.map +1 -0
- package/dist/{chunk-ZIFMIS7D.mjs → chunk-OL3BJSRC.mjs} +51 -5
- package/dist/chunk-OL3BJSRC.mjs.map +1 -0
- package/dist/{chunk-QNUDODDX.js → chunk-PWPMKXEG.js} +36 -14
- package/dist/chunk-PWPMKXEG.js.map +1 -0
- package/dist/chunk-XRM7GOIE.js +10 -0
- package/dist/chunk-XRM7GOIE.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useIsomorphicLayoutEffect.js +6 -4
- package/dist/hooks/useIsomorphicLayoutEffect.js.map +1 -1
- package/dist/hooks/useIsomorphicLayoutEffect.mjs +1 -6
- package/dist/hooks/useIsomorphicLayoutEffect.mjs.map +1 -1
- package/dist/hooks/useTableFilter/index.d.ts +3 -0
- package/dist/hooks/useTableFilter/index.d.ts.map +1 -0
- package/dist/hooks/useTableFilter/types.d.ts +20 -0
- package/dist/hooks/useTableFilter/types.d.ts.map +1 -0
- package/dist/hooks/useTableFilter/useTableFilter.d.ts +3 -0
- package/dist/hooks/useTableFilter/useTableFilter.d.ts.map +1 -0
- package/dist/hooks/useTableFilter.js +124 -0
- package/dist/hooks/useTableFilter.js.map +1 -0
- package/dist/hooks/useTableFilter.mjs +122 -0
- package/dist/hooks/useTableFilter.mjs.map +1 -0
- package/dist/hooks/useTableSort/index.d.ts +3 -0
- package/dist/hooks/useTableSort/index.d.ts.map +1 -0
- package/dist/hooks/useTableSort/types.d.ts +15 -0
- package/dist/hooks/useTableSort/types.d.ts.map +1 -0
- package/dist/hooks/useTableSort/useTableSort.d.ts +3 -0
- package/dist/hooks/useTableSort/useTableSort.d.ts.map +1 -0
- package/dist/hooks/useTableSort.js +99 -0
- package/dist/hooks/useTableSort.js.map +1 -0
- package/dist/hooks/useTableSort.mjs +97 -0
- package/dist/hooks/useTableSort.mjs.map +1 -0
- package/dist/ui/marquee/marquee.d.ts.map +1 -1
- package/dist/ui/marquee.js +82 -21
- package/dist/ui/marquee.js.map +1 -1
- package/dist/ui/marquee.mjs +83 -22
- package/dist/ui/marquee.mjs.map +1 -1
- package/dist/ui/table/animated.js +8 -8
- package/dist/ui/table/animated.mjs +2 -2
- package/dist/ui/table/index.d.ts +1 -1
- package/dist/ui/table/index.d.ts.map +1 -1
- package/dist/ui/table/table-base.d.ts +2 -2
- package/dist/ui/table/table-base.d.ts.map +1 -1
- package/dist/ui/table/types.d.ts +9 -1
- package/dist/ui/table/types.d.ts.map +1 -1
- package/dist/ui/table.js +14 -14
- package/dist/ui/table.mjs +1 -1
- package/package.json +1 -1
- package/src/charts/charts.test.tsx +80 -0
- package/src/charts/funnel/Funnel.tsx +105 -0
- package/src/charts/funnel/index.ts +14 -0
- package/src/charts/pie/Pie.tsx +28 -1
- package/src/charts/radar/Radar.tsx +84 -0
- package/src/charts/radar/index.ts +16 -0
- package/src/charts/scatter/Scatter.tsx +104 -0
- package/src/charts/scatter/index.ts +16 -0
- package/src/charts/shared/chart-frame.tsx +4 -2
- package/src/charts/shared/types.ts +42 -2
- package/src/charts/stacked-bar/StackedBar.tsx +12 -0
- package/src/charts/stacked-bar/index.ts +16 -0
- package/src/hooks/index.ts +12 -0
- package/src/hooks/useTableFilter/index.ts +7 -0
- package/src/hooks/useTableFilter/types.ts +28 -0
- package/src/hooks/useTableFilter/useTableFilter.test.ts +141 -0
- package/src/hooks/useTableFilter/useTableFilter.ts +153 -0
- package/src/hooks/useTableSort/index.ts +5 -0
- package/src/hooks/useTableSort/types.ts +23 -0
- package/src/hooks/useTableSort/useTableSort.test.ts +150 -0
- package/src/hooks/useTableSort/useTableSort.ts +121 -0
- package/src/ui/divider/divider.test.tsx +55 -0
- package/src/ui/empty-state/empty-state.test.tsx +88 -0
- package/src/ui/marquee/marquee.test.tsx +45 -4
- package/src/ui/marquee/marquee.tsx +100 -18
- package/src/ui/skeleton/skeleton.test.tsx +85 -0
- package/src/ui/table/index.ts +3 -0
- package/src/ui/table/table-base.tsx +69 -4
- package/src/ui/table/table.test.tsx +207 -0
- package/src/ui/table/types.ts +13 -1
- package/dist/chunk-G2WARVAM.mjs.map +0 -1
- package/dist/chunk-G66SXATZ.js.map +0 -1
- package/dist/chunk-OULU7OC4.mjs +0 -21
- package/dist/chunk-OULU7OC4.mjs.map +0 -1
- package/dist/chunk-QNUDODDX.js.map +0 -1
- package/dist/chunk-Z6S36PDD.js +0 -24
- package/dist/chunk-Z6S36PDD.js.map +0 -1
- package/dist/chunk-ZIFMIS7D.mjs.map +0 -1
package/dist/ui/marquee.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/design-system/marquee.ts","../../src/ui/marquee/variants.ts","../../src/ui/marquee/marquee.tsx"],"names":[],"mappings":"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","file":"marquee.mjs","sourcesContent":["export const zuiMarqueeBase =\n \"group/marquee relative isolate flex min-w-0 overflow-hidden rounded-xl border border-transparent bg-[var(--zui-marquee-bg,transparent)] text-[color:var(--zui-marquee-fg,inherit)] [--zui-marquee-gap:1rem]\";\n\nexport const zuiMarqueeAppearances = {\n default:\n \"[--zui-marquee-bg:transparent] [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:[--zui-marquee-fg:#ffffff]\",\n outline:\n \"border-[color:var(--zui-marquee-outline-border,oklch(86.9%_0.022_252.894))] [--zui-marquee-bg:#ffffff] [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:border-[color:var(--zui-marquee-outline-border-dark,oklch(37.2%_0.044_257.287))] dark:[--zui-marquee-bg:oklch(20.8%_0.042_265.755)] dark:[--zui-marquee-fg:#ffffff]\",\n ghost:\n \"[--zui-marquee-bg:transparent] [--zui-marquee-fg:oklch(27.9%_0.041_260.031)] dark:[--zui-marquee-fg:oklch(96.8%_0.007_247.896)]\",\n card: \"border-[color:var(--zui-marquee-card-border,oklch(92.9%_0.013_255.508))] bg-[var(--zui-marquee-card-bg,#ffffff)] shadow-sm shadow-slate-950/5 [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:border-[color:var(--zui-marquee-card-border-dark,oklch(37.2%_0.044_257.287))] dark:bg-[var(--zui-marquee-card-bg-dark,oklch(20.8%_0.042_265.755_/_0.9))] dark:shadow-black/20 dark:[--zui-marquee-fg:#ffffff]\",\n separated:\n \"border-y border-x-0 rounded-none border-[color:var(--zui-marquee-separated-border,oklch(86.9%_0.022_252.894))] [--zui-marquee-bg:transparent] [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:border-[color:var(--zui-marquee-separated-border-dark,oklch(37.2%_0.044_257.287))] dark:[--zui-marquee-fg:#ffffff]\",\n sky: \"border-[color:var(--zui-marquee-sky-border,oklch(62.3%_0.214_259.815_/_0.28))] [--zui-marquee-bg:oklch(97.7%_0.013_236.62)] [--zui-marquee-fg:oklch(39.1%_0.09_240.876)] dark:border-[color:var(--zui-marquee-sky-border-dark,oklch(70.7%_0.165_254.624_/_0.3))] dark:[--zui-marquee-bg:oklch(39.1%_0.09_240.876_/_0.28)] dark:[--zui-marquee-fg:oklch(95.1%_0.026_236.824)]\",\n rose: \"border-[color:var(--zui-marquee-rose-border,oklch(58.6%_0.253_17.585_/_0.24))] [--zui-marquee-bg:oklch(96.9%_0.015_12.422)] [--zui-marquee-fg:oklch(41%_0.159_10.272)] dark:border-[color:var(--zui-marquee-rose-border-dark,oklch(71.2%_0.194_13.428_/_0.3))] dark:[--zui-marquee-bg:oklch(41%_0.159_10.272_/_0.28)] dark:[--zui-marquee-fg:oklch(94.1%_0.03_12.58)]\",\n purple:\n \"border-[color:var(--zui-marquee-purple-border,oklch(62.7%_0.265_303.9_/_0.24))] [--zui-marquee-bg:oklch(97.7%_0.014_308.299)] [--zui-marquee-fg:oklch(38.1%_0.176_304.987)] dark:border-[color:var(--zui-marquee-purple-border-dark,oklch(71.4%_0.203_305.504_/_0.3))] dark:[--zui-marquee-bg:oklch(38.1%_0.176_304.987_/_0.28)] dark:[--zui-marquee-fg:oklch(94.6%_0.033_307.174)]\",\n pink: \"border-[color:var(--zui-marquee-pink-border,oklch(65.6%_0.241_354.308_/_0.24))] [--zui-marquee-bg:oklch(97.1%_0.014_343.198)] [--zui-marquee-fg:oklch(40.8%_0.153_2.432)] dark:border-[color:var(--zui-marquee-pink-border-dark,oklch(71.8%_0.202_349.761_/_0.3))] dark:[--zui-marquee-bg:oklch(40.8%_0.153_2.432_/_0.28)] dark:[--zui-marquee-fg:oklch(94.8%_0.028_342.258)]\",\n orange:\n \"border-[color:var(--zui-marquee-orange-border,oklch(70.5%_0.213_47.604_/_0.26))] [--zui-marquee-bg:oklch(98%_0.016_73.684)] [--zui-marquee-fg:oklch(40.8%_0.123_38.172)] dark:border-[color:var(--zui-marquee-orange-border-dark,oklch(75%_0.183_55.934_/_0.32))] dark:[--zui-marquee-bg:oklch(40.8%_0.123_38.172_/_0.28)] dark:[--zui-marquee-fg:oklch(95.4%_0.038_75.164)]\",\n yellow:\n \"border-[color:var(--zui-marquee-yellow-border,oklch(79.5%_0.184_86.047_/_0.3))] [--zui-marquee-bg:oklch(98.7%_0.026_102.212)] [--zui-marquee-fg:oklch(42.1%_0.095_57.708)] dark:border-[color:var(--zui-marquee-yellow-border-dark,oklch(85.2%_0.199_91.936_/_0.32))] dark:[--zui-marquee-bg:oklch(42.1%_0.095_57.708_/_0.28)] dark:[--zui-marquee-fg:oklch(97.3%_0.071_103.193)]\",\n teal: \"border-[color:var(--zui-marquee-teal-border,oklch(70.4%_0.14_182.503_/_0.28))] [--zui-marquee-bg:oklch(98.4%_0.014_180.72)] [--zui-marquee-fg:oklch(38.6%_0.063_188.416)] dark:border-[color:var(--zui-marquee-teal-border-dark,oklch(77.7%_0.152_181.912_/_0.32))] dark:[--zui-marquee-bg:oklch(38.6%_0.063_188.416_/_0.28)] dark:[--zui-marquee-fg:oklch(95.3%_0.051_180.801)]\",\n indigo:\n \"border-[color:var(--zui-marquee-indigo-border,oklch(58.5%_0.233_277.117_/_0.24))] [--zui-marquee-bg:oklch(96.2%_0.018_272.314)] [--zui-marquee-fg:oklch(35.9%_0.144_278.697)] dark:border-[color:var(--zui-marquee-indigo-border-dark,oklch(67.3%_0.182_276.935_/_0.32))] dark:[--zui-marquee-bg:oklch(35.9%_0.144_278.697_/_0.28)] dark:[--zui-marquee-fg:oklch(93%_0.034_272.788)]\",\n emerald:\n \"border-[color:var(--zui-marquee-emerald-border,oklch(69.6%_0.17_162.48_/_0.28))] [--zui-marquee-bg:oklch(97.9%_0.021_166.113)] [--zui-marquee-fg:oklch(37.8%_0.077_168.94)] dark:border-[color:var(--zui-marquee-emerald-border-dark,oklch(76.5%_0.177_163.223_/_0.32))] dark:[--zui-marquee-bg:oklch(37.8%_0.077_168.94_/_0.28)] dark:[--zui-marquee-fg:oklch(95%_0.052_163.051)]\",\n \"gradient-blue\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-blue-from,oklch(62.3%_0.214_259.815))] to-[var(--zui-marquee-gradient-blue-to,oklch(54.6%_0.245_262.881))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-green\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-green-from,oklch(72.3%_0.219_149.579))] to-[var(--zui-marquee-gradient-green-to,oklch(62.7%_0.194_149.214))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-red\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-red-from,oklch(63.7%_0.237_25.331))] to-[var(--zui-marquee-gradient-red-to,oklch(57.7%_0.245_27.325))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-yellow\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-yellow-from,oklch(85.2%_0.199_91.936))] to-[var(--zui-marquee-gradient-yellow-to,oklch(79.5%_0.184_86.047))] [--zui-marquee-fg:oklch(27.9%_0.077_45.635)]\",\n \"gradient-purple\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-purple-from,oklch(71.4%_0.203_305.504))] to-[var(--zui-marquee-gradient-purple-to,oklch(62.7%_0.265_303.9))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-teal\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-teal-from,oklch(77.7%_0.152_181.912))] to-[var(--zui-marquee-gradient-teal-to,oklch(70.4%_0.14_182.503))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-indigo\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-indigo-from,oklch(67.3%_0.182_276.935))] to-[var(--zui-marquee-gradient-indigo-to,oklch(58.5%_0.233_277.117))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-pink\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-pink-from,oklch(71.8%_0.202_349.761))] to-[var(--zui-marquee-gradient-pink-to,oklch(65.6%_0.241_354.308))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-orange\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-orange-from,oklch(75%_0.183_55.934))] to-[var(--zui-marquee-gradient-orange-to,oklch(70.5%_0.213_47.604))] [--zui-marquee-fg:#ffffff]\",\n} as const;\n\nexport const zuiMarqueeOrientations = {\n horizontal: \"w-full flex-row\",\n vertical: \"h-64 flex-col\",\n} as const;\n\nexport const zuiMarqueeSizes = {\n sm: \"p-2 text-xs\",\n md: \"p-3 text-sm\",\n lg: \"p-4 text-base\",\n} as const;\n\nexport const zuiMarqueeFade = {\n false: \"\",\n true: \"[mask-image:linear-gradient(to_right,transparent,black_12%,black_88%,transparent)] data-[orientation=vertical]:[mask-image:linear-gradient(to_bottom,transparent,black_12%,black_88%,transparent)]\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiMarqueeAppearances,\n zuiMarqueeBase,\n zuiMarqueeFade,\n zuiMarqueeOrientations,\n zuiMarqueeSizes,\n} from \"../../design-system/marquee\";\n\nexport const marqueeVariants = cva(zuiMarqueeBase, {\n variants: {\n appearance: zuiMarqueeAppearances,\n fade: zuiMarqueeFade,\n orientation: zuiMarqueeOrientations,\n size: zuiMarqueeSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n fade: true,\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n","\"use client\";\n\nimport type { CSSProperties } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nimport type { MarqueeProps } from \"./types\";\nimport { marqueeVariants } from \"./variants\";\n\nconst marqueeKeyframes = `@keyframes zui-marquee-x{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-50% - var(--zui-marquee-gap)/2),0,0)}}@keyframes zui-marquee-y{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,calc(-50% - var(--zui-marquee-gap)/2),0)}}`;\n\nfunction toCssLength(value: number | string | undefined) {\n if (value === undefined) {\n return undefined;\n }\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nexport function Marquee(props: MarqueeProps) {\n const {\n appearance,\n children,\n className,\n direction,\n fade,\n gap,\n itemClassName,\n orientation,\n pauseOnHover = false,\n ref,\n size,\n speed = 30,\n style,\n trackClassName,\n ...rest\n } = props;\n\n const resolvedOrientation =\n orientation ??\n (direction === \"up\" || direction === \"down\" ? \"vertical\" : \"horizontal\");\n const resolvedDirection =\n direction ?? (resolvedOrientation === \"vertical\" ? \"up\" : \"left\");\n const isReverse =\n resolvedDirection === \"right\" || resolvedDirection === \"down\";\n const animationName =\n resolvedOrientation === \"vertical\" ? \"zui-marquee-y\" : \"zui-marquee-x\";\n const marqueeStyle = {\n ...(gap !== undefined ? { \"--zui-marquee-gap\": toCssLength(gap) } : null),\n ...style,\n } as CSSProperties;\n\n return (\n <div\n ref={ref}\n data-direction={resolvedDirection}\n data-orientation={resolvedOrientation}\n data-slot=\"marquee\"\n className={cn(\n marqueeVariants({\n appearance,\n fade,\n orientation: resolvedOrientation,\n size,\n }),\n className,\n )}\n style={marqueeStyle}\n {...rest}\n >\n <style>{marqueeKeyframes}</style>\n <div\n data-slot=\"marquee-track\"\n className={cn(\n \"flex shrink-0 gap-[var(--zui-marquee-gap)] will-change-transform [animation-iteration-count:infinite] [animation-timing-function:linear] motion-reduce:[animation-play-state:paused]\",\n resolvedOrientation === \"vertical\" ? \"flex-col\" : \"w-max flex-row\",\n pauseOnHover && \"group-hover/marquee:[animation-play-state:paused]\",\n isReverse && \"[animation-direction:reverse]\",\n trackClassName,\n )}\n style={\n {\n animationDuration: `${speed}s`,\n animationName,\n } as CSSProperties\n }\n >\n <div\n data-slot=\"marquee-item-group\"\n className={cn(\n \"flex shrink-0 items-center justify-around gap-[var(--zui-marquee-gap)]\",\n resolvedOrientation === \"vertical\" ? \"flex-col\" : \"flex-row\",\n itemClassName,\n )}\n >\n {children}\n </div>\n <div\n aria-hidden=\"true\"\n inert\n data-slot=\"marquee-item-group\"\n className={cn(\n \"flex shrink-0 items-center justify-around gap-[var(--zui-marquee-gap)]\",\n resolvedOrientation === \"vertical\" ? \"flex-col\" : \"flex-row\",\n itemClassName,\n )}\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\nMarquee.displayName = \"Marquee\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/design-system/marquee.ts","../../src/ui/marquee/variants.ts","../../src/ui/marquee/marquee.tsx"],"names":[],"mappings":"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","file":"marquee.mjs","sourcesContent":["export const zuiMarqueeBase =\n \"group/marquee relative isolate flex min-w-0 overflow-hidden rounded-xl border border-transparent bg-[var(--zui-marquee-bg,transparent)] text-[color:var(--zui-marquee-fg,inherit)] [--zui-marquee-gap:1rem]\";\n\nexport const zuiMarqueeAppearances = {\n default:\n \"[--zui-marquee-bg:transparent] [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:[--zui-marquee-fg:#ffffff]\",\n outline:\n \"border-[color:var(--zui-marquee-outline-border,oklch(86.9%_0.022_252.894))] [--zui-marquee-bg:#ffffff] [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:border-[color:var(--zui-marquee-outline-border-dark,oklch(37.2%_0.044_257.287))] dark:[--zui-marquee-bg:oklch(20.8%_0.042_265.755)] dark:[--zui-marquee-fg:#ffffff]\",\n ghost:\n \"[--zui-marquee-bg:transparent] [--zui-marquee-fg:oklch(27.9%_0.041_260.031)] dark:[--zui-marquee-fg:oklch(96.8%_0.007_247.896)]\",\n card: \"border-[color:var(--zui-marquee-card-border,oklch(92.9%_0.013_255.508))] bg-[var(--zui-marquee-card-bg,#ffffff)] shadow-sm shadow-slate-950/5 [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:border-[color:var(--zui-marquee-card-border-dark,oklch(37.2%_0.044_257.287))] dark:bg-[var(--zui-marquee-card-bg-dark,oklch(20.8%_0.042_265.755_/_0.9))] dark:shadow-black/20 dark:[--zui-marquee-fg:#ffffff]\",\n separated:\n \"border-y border-x-0 rounded-none border-[color:var(--zui-marquee-separated-border,oklch(86.9%_0.022_252.894))] [--zui-marquee-bg:transparent] [--zui-marquee-fg:oklch(20.8%_0.042_265.755)] dark:border-[color:var(--zui-marquee-separated-border-dark,oklch(37.2%_0.044_257.287))] dark:[--zui-marquee-fg:#ffffff]\",\n sky: \"border-[color:var(--zui-marquee-sky-border,oklch(62.3%_0.214_259.815_/_0.28))] [--zui-marquee-bg:oklch(97.7%_0.013_236.62)] [--zui-marquee-fg:oklch(39.1%_0.09_240.876)] dark:border-[color:var(--zui-marquee-sky-border-dark,oklch(70.7%_0.165_254.624_/_0.3))] dark:[--zui-marquee-bg:oklch(39.1%_0.09_240.876_/_0.28)] dark:[--zui-marquee-fg:oklch(95.1%_0.026_236.824)]\",\n rose: \"border-[color:var(--zui-marquee-rose-border,oklch(58.6%_0.253_17.585_/_0.24))] [--zui-marquee-bg:oklch(96.9%_0.015_12.422)] [--zui-marquee-fg:oklch(41%_0.159_10.272)] dark:border-[color:var(--zui-marquee-rose-border-dark,oklch(71.2%_0.194_13.428_/_0.3))] dark:[--zui-marquee-bg:oklch(41%_0.159_10.272_/_0.28)] dark:[--zui-marquee-fg:oklch(94.1%_0.03_12.58)]\",\n purple:\n \"border-[color:var(--zui-marquee-purple-border,oklch(62.7%_0.265_303.9_/_0.24))] [--zui-marquee-bg:oklch(97.7%_0.014_308.299)] [--zui-marquee-fg:oklch(38.1%_0.176_304.987)] dark:border-[color:var(--zui-marquee-purple-border-dark,oklch(71.4%_0.203_305.504_/_0.3))] dark:[--zui-marquee-bg:oklch(38.1%_0.176_304.987_/_0.28)] dark:[--zui-marquee-fg:oklch(94.6%_0.033_307.174)]\",\n pink: \"border-[color:var(--zui-marquee-pink-border,oklch(65.6%_0.241_354.308_/_0.24))] [--zui-marquee-bg:oklch(97.1%_0.014_343.198)] [--zui-marquee-fg:oklch(40.8%_0.153_2.432)] dark:border-[color:var(--zui-marquee-pink-border-dark,oklch(71.8%_0.202_349.761_/_0.3))] dark:[--zui-marquee-bg:oklch(40.8%_0.153_2.432_/_0.28)] dark:[--zui-marquee-fg:oklch(94.8%_0.028_342.258)]\",\n orange:\n \"border-[color:var(--zui-marquee-orange-border,oklch(70.5%_0.213_47.604_/_0.26))] [--zui-marquee-bg:oklch(98%_0.016_73.684)] [--zui-marquee-fg:oklch(40.8%_0.123_38.172)] dark:border-[color:var(--zui-marquee-orange-border-dark,oklch(75%_0.183_55.934_/_0.32))] dark:[--zui-marquee-bg:oklch(40.8%_0.123_38.172_/_0.28)] dark:[--zui-marquee-fg:oklch(95.4%_0.038_75.164)]\",\n yellow:\n \"border-[color:var(--zui-marquee-yellow-border,oklch(79.5%_0.184_86.047_/_0.3))] [--zui-marquee-bg:oklch(98.7%_0.026_102.212)] [--zui-marquee-fg:oklch(42.1%_0.095_57.708)] dark:border-[color:var(--zui-marquee-yellow-border-dark,oklch(85.2%_0.199_91.936_/_0.32))] dark:[--zui-marquee-bg:oklch(42.1%_0.095_57.708_/_0.28)] dark:[--zui-marquee-fg:oklch(97.3%_0.071_103.193)]\",\n teal: \"border-[color:var(--zui-marquee-teal-border,oklch(70.4%_0.14_182.503_/_0.28))] [--zui-marquee-bg:oklch(98.4%_0.014_180.72)] [--zui-marquee-fg:oklch(38.6%_0.063_188.416)] dark:border-[color:var(--zui-marquee-teal-border-dark,oklch(77.7%_0.152_181.912_/_0.32))] dark:[--zui-marquee-bg:oklch(38.6%_0.063_188.416_/_0.28)] dark:[--zui-marquee-fg:oklch(95.3%_0.051_180.801)]\",\n indigo:\n \"border-[color:var(--zui-marquee-indigo-border,oklch(58.5%_0.233_277.117_/_0.24))] [--zui-marquee-bg:oklch(96.2%_0.018_272.314)] [--zui-marquee-fg:oklch(35.9%_0.144_278.697)] dark:border-[color:var(--zui-marquee-indigo-border-dark,oklch(67.3%_0.182_276.935_/_0.32))] dark:[--zui-marquee-bg:oklch(35.9%_0.144_278.697_/_0.28)] dark:[--zui-marquee-fg:oklch(93%_0.034_272.788)]\",\n emerald:\n \"border-[color:var(--zui-marquee-emerald-border,oklch(69.6%_0.17_162.48_/_0.28))] [--zui-marquee-bg:oklch(97.9%_0.021_166.113)] [--zui-marquee-fg:oklch(37.8%_0.077_168.94)] dark:border-[color:var(--zui-marquee-emerald-border-dark,oklch(76.5%_0.177_163.223_/_0.32))] dark:[--zui-marquee-bg:oklch(37.8%_0.077_168.94_/_0.28)] dark:[--zui-marquee-fg:oklch(95%_0.052_163.051)]\",\n \"gradient-blue\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-blue-from,oklch(62.3%_0.214_259.815))] to-[var(--zui-marquee-gradient-blue-to,oklch(54.6%_0.245_262.881))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-green\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-green-from,oklch(72.3%_0.219_149.579))] to-[var(--zui-marquee-gradient-green-to,oklch(62.7%_0.194_149.214))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-red\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-red-from,oklch(63.7%_0.237_25.331))] to-[var(--zui-marquee-gradient-red-to,oklch(57.7%_0.245_27.325))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-yellow\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-yellow-from,oklch(85.2%_0.199_91.936))] to-[var(--zui-marquee-gradient-yellow-to,oklch(79.5%_0.184_86.047))] [--zui-marquee-fg:oklch(27.9%_0.077_45.635)]\",\n \"gradient-purple\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-purple-from,oklch(71.4%_0.203_305.504))] to-[var(--zui-marquee-gradient-purple-to,oklch(62.7%_0.265_303.9))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-teal\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-teal-from,oklch(77.7%_0.152_181.912))] to-[var(--zui-marquee-gradient-teal-to,oklch(70.4%_0.14_182.503))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-indigo\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-indigo-from,oklch(67.3%_0.182_276.935))] to-[var(--zui-marquee-gradient-indigo-to,oklch(58.5%_0.233_277.117))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-pink\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-pink-from,oklch(71.8%_0.202_349.761))] to-[var(--zui-marquee-gradient-pink-to,oklch(65.6%_0.241_354.308))] [--zui-marquee-fg:#ffffff]\",\n \"gradient-orange\":\n \"border-transparent bg-linear-to-r from-[var(--zui-marquee-gradient-orange-from,oklch(75%_0.183_55.934))] to-[var(--zui-marquee-gradient-orange-to,oklch(70.5%_0.213_47.604))] [--zui-marquee-fg:#ffffff]\",\n} as const;\n\nexport const zuiMarqueeOrientations = {\n horizontal: \"w-full flex-row\",\n vertical: \"h-64 flex-col\",\n} as const;\n\nexport const zuiMarqueeSizes = {\n sm: \"p-2 text-xs\",\n md: \"p-3 text-sm\",\n lg: \"p-4 text-base\",\n} as const;\n\nexport const zuiMarqueeFade = {\n false: \"\",\n true: \"[mask-image:linear-gradient(to_right,transparent,black_12%,black_88%,transparent)] data-[orientation=vertical]:[mask-image:linear-gradient(to_bottom,transparent,black_12%,black_88%,transparent)]\",\n} as const;\n","import { cva } from \"class-variance-authority\";\n\nimport {\n zuiMarqueeAppearances,\n zuiMarqueeBase,\n zuiMarqueeFade,\n zuiMarqueeOrientations,\n zuiMarqueeSizes,\n} from \"../../design-system/marquee\";\n\nexport const marqueeVariants = cva(zuiMarqueeBase, {\n variants: {\n appearance: zuiMarqueeAppearances,\n fade: zuiMarqueeFade,\n orientation: zuiMarqueeOrientations,\n size: zuiMarqueeSizes,\n },\n defaultVariants: {\n appearance: \"default\",\n fade: true,\n orientation: \"horizontal\",\n size: \"md\",\n },\n});\n","\"use client\";\n\nimport { Children, useCallback, useMemo, useRef, useState } from \"react\";\nimport type { CSSProperties, Ref } from \"react\";\n\nimport { useIsomorphicLayoutEffect } from \"../../hooks/useIsomorphicLayoutEffect\";\nimport { cn } from \"../../lib/utils\";\n\nimport type { MarqueeProps } from \"./types\";\nimport { marqueeVariants } from \"./variants\";\n\nconst marqueeKeyframes = `@keyframes zui-marquee-x{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-50% - var(--zui-marquee-gap)/2),0,0)}}@keyframes zui-marquee-y{from{transform:translate3d(0,0,0)}to{transform:translate3d(0,calc(-50% - var(--zui-marquee-gap)/2),0)}}`;\n\nfunction toCssLength(value: number | string | undefined) {\n if (value === undefined) {\n return undefined;\n }\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\nfunction assignRef<TElement>(\n ref: Ref<TElement> | undefined,\n value: TElement | null,\n) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref) {\n (ref as { current: TElement | null }).current = value;\n }\n}\n\nexport function Marquee(props: MarqueeProps) {\n const {\n appearance,\n children,\n className,\n direction,\n fade,\n gap,\n itemClassName,\n orientation,\n pauseOnHover = false,\n ref,\n size,\n speed = 30,\n style,\n trackClassName,\n ...rest\n } = props;\n\n const resolvedOrientation =\n orientation ??\n (direction === \"up\" || direction === \"down\" ? \"vertical\" : \"horizontal\");\n const resolvedDirection =\n direction ?? (resolvedOrientation === \"vertical\" ? \"up\" : \"left\");\n const isReverse =\n resolvedDirection === \"right\" || resolvedDirection === \"down\";\n const animationName =\n resolvedOrientation === \"vertical\" ? \"zui-marquee-y\" : \"zui-marquee-x\";\n const rootRef = useRef<HTMLDivElement | null>(null);\n const measureRef = useRef<HTMLDivElement | null>(null);\n const [copyCount, setCopyCount] = useState(1);\n const childArray = useMemo(() => Children.toArray(children), [children]);\n const setRootRef = useCallback(\n (node: HTMLDivElement | null) => {\n rootRef.current = node;\n assignRef(ref, node);\n },\n [ref],\n );\n const marqueeStyle = {\n ...(gap !== undefined ? { \"--zui-marquee-gap\": toCssLength(gap) } : null),\n ...style,\n } as CSSProperties;\n const groupClassName = cn(\n \"flex shrink-0 items-center justify-around gap-(--zui-marquee-gap)\",\n resolvedOrientation === \"vertical\" ? \"flex-col\" : \"flex-row\",\n itemClassName,\n );\n const fillerChildren = Array.from(\n { length: Math.max(0, copyCount - 1) },\n (_, index) => (\n <div key={index} aria-hidden=\"true\" inert className=\"contents\">\n {childArray}\n </div>\n ),\n );\n\n useIsomorphicLayoutEffect(() => {\n const updateCopyCount = () => {\n const root = rootRef.current;\n const measure = measureRef.current;\n\n if (!root || !measure) {\n return;\n }\n\n const rootSize =\n resolvedOrientation === \"vertical\"\n ? root.offsetHeight\n : root.offsetWidth;\n const contentSize =\n resolvedOrientation === \"vertical\"\n ? measure.scrollHeight\n : measure.scrollWidth;\n\n if (!rootSize || !contentSize) {\n setCopyCount(1);\n return;\n }\n\n setCopyCount(Math.max(1, Math.ceil(rootSize / contentSize)));\n };\n\n updateCopyCount();\n\n if (typeof ResizeObserver === \"undefined\") {\n return;\n }\n\n const observer = new ResizeObserver(updateCopyCount);\n if (rootRef.current) {\n observer.observe(rootRef.current);\n }\n if (measureRef.current) {\n observer.observe(measureRef.current);\n }\n\n return () => observer.disconnect();\n }, [childArray, gap, resolvedOrientation]);\n\n return (\n <div\n ref={setRootRef}\n data-direction={resolvedDirection}\n data-orientation={resolvedOrientation}\n data-slot=\"marquee\"\n className={cn(\n marqueeVariants({\n appearance,\n fade,\n orientation: resolvedOrientation,\n size,\n }),\n className,\n )}\n style={marqueeStyle}\n {...rest}\n >\n <style>{marqueeKeyframes}</style>\n <div\n aria-hidden=\"true\"\n data-slot=\"marquee-measure\"\n ref={measureRef}\n className={cn(\n \"pointer-events-none invisible absolute -z-10\",\n groupClassName,\n )}\n >\n {childArray}\n </div>\n <div\n data-slot=\"marquee-track\"\n className={cn(\n \"flex shrink-0 gap-(--zui-marquee-gap) will-change-transform [animation-iteration-count:infinite] [animation-timing-function:linear] motion-reduce:[animation-play-state:paused]\",\n resolvedOrientation === \"vertical\" ? \"flex-col\" : \"w-max flex-row\",\n pauseOnHover && \"group-hover/marquee:[animation-play-state:paused]\",\n isReverse && \"[animation-direction:reverse]\",\n trackClassName,\n )}\n style={\n {\n animationDuration: `${speed}s`,\n animationName,\n } as CSSProperties\n }\n >\n <div data-slot=\"marquee-item-group\" className={groupClassName}>\n {childArray}\n {fillerChildren}\n </div>\n <div\n aria-hidden=\"true\"\n inert\n data-slot=\"marquee-item-group\"\n className={groupClassName}\n >\n {childArray}\n {fillerChildren}\n </div>\n </div>\n </div>\n );\n}\n\nMarquee.displayName = \"Marquee\";\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkIL4LH2XX_js = require('../../chunk-IL4LH2XX.js');
|
|
5
5
|
require('../../chunk-ZS5756ZC.js');
|
|
6
6
|
var framerMotion = require('framer-motion');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -17,32 +17,32 @@ var tableAnimationPresets = {
|
|
|
17
17
|
var TableRowAnimated = (props) => {
|
|
18
18
|
const { rowAnimation = "hover" } = props;
|
|
19
19
|
const motionProps = tableAnimationPresets[rowAnimation];
|
|
20
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
20
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkIL4LH2XX_js.TableRow, { ...props, as: framerMotion.motion.tr, initial: false, ...motionProps });
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
Object.defineProperty(exports, "TableBody", {
|
|
24
24
|
enumerable: true,
|
|
25
|
-
get: function () { return
|
|
25
|
+
get: function () { return chunkIL4LH2XX_js.TableBody; }
|
|
26
26
|
});
|
|
27
27
|
Object.defineProperty(exports, "TableCaption", {
|
|
28
28
|
enumerable: true,
|
|
29
|
-
get: function () { return
|
|
29
|
+
get: function () { return chunkIL4LH2XX_js.TableCaption; }
|
|
30
30
|
});
|
|
31
31
|
Object.defineProperty(exports, "TableCell", {
|
|
32
32
|
enumerable: true,
|
|
33
|
-
get: function () { return
|
|
33
|
+
get: function () { return chunkIL4LH2XX_js.TableCell; }
|
|
34
34
|
});
|
|
35
35
|
Object.defineProperty(exports, "TableFooter", {
|
|
36
36
|
enumerable: true,
|
|
37
|
-
get: function () { return
|
|
37
|
+
get: function () { return chunkIL4LH2XX_js.TableFooter; }
|
|
38
38
|
});
|
|
39
39
|
Object.defineProperty(exports, "TableHead", {
|
|
40
40
|
enumerable: true,
|
|
41
|
-
get: function () { return
|
|
41
|
+
get: function () { return chunkIL4LH2XX_js.TableHead; }
|
|
42
42
|
});
|
|
43
43
|
Object.defineProperty(exports, "TableHeader", {
|
|
44
44
|
enumerable: true,
|
|
45
|
-
get: function () { return
|
|
45
|
+
get: function () { return chunkIL4LH2XX_js.TableHeader; }
|
|
46
46
|
});
|
|
47
47
|
exports.TableRowAnimated = TableRowAnimated;
|
|
48
48
|
exports.tableAnimationPresets = tableAnimationPresets;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { TableRow } from '../../chunk-
|
|
3
|
-
export { TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader } from '../../chunk-
|
|
2
|
+
import { TableRow } from '../../chunk-OL3BJSRC.mjs';
|
|
3
|
+
export { TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader } from '../../chunk-OL3BJSRC.mjs';
|
|
4
4
|
import '../../chunk-4D54YOL6.mjs';
|
|
5
5
|
import { motion } from 'framer-motion';
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
package/dist/ui/table/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, TableContext, useTableContext, } from "./table";
|
|
2
|
-
export type { TableAnimation, TableCellProps, TableHeadCellProps, TableProps, TableSectionProps, } from "./types";
|
|
2
|
+
export type { TableAnimation, TableCellProps, TableHeadCellProps, TableProps, TableSectionProps, TableSortChangeHandler, TableSortDirection, TableSortState, } from "./types";
|
|
3
3
|
export { tableVariants, tableRowVariants, tableCellVariants } from "./variants";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/table/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/table/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,SAAS,EACT,YAAY,EACZ,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,cAAc,EACd,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -17,13 +17,13 @@ export declare function TableFooter({ className, children }: TableSectionProps):
|
|
|
17
17
|
export declare namespace TableFooter {
|
|
18
18
|
var displayName: string;
|
|
19
19
|
}
|
|
20
|
-
export declare function TableRow({ className, children, ref, as: Wrapper, ...rest }: TableSectionProps & {
|
|
20
|
+
export declare function TableRow({ className, children, ref, as: Wrapper, rowAnimation: _rowAnimation, ...rest }: TableSectionProps & {
|
|
21
21
|
ref?: React.Ref<HTMLTableRowElement>;
|
|
22
22
|
}): import("react/jsx-runtime").JSX.Element;
|
|
23
23
|
export declare namespace TableRow {
|
|
24
24
|
var displayName: string;
|
|
25
25
|
}
|
|
26
|
-
export declare function TableHead({ className, children, scope, sortDirection, ref, ...rest }: TableHeadCellProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare function TableHead({ className, children, scope, sortKey, sortDirection, onSortChange, onClick, onKeyDown, tabIndex, ref, ...rest }: TableHeadCellProps): import("react/jsx-runtime").JSX.Element;
|
|
27
27
|
export declare namespace TableHead {
|
|
28
28
|
var displayName: string;
|
|
29
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-base.d.ts","sourceRoot":"","sources":["../../../src/ui/table/table-base.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-base.d.ts","sourceRoot":"","sources":["../../../src/ui/table/table-base.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAGjB,eAAO,MAAM,YAAY,0CAAuC,CAAC;AAEjE,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAM3D;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,2CAkD1C;yBAlDe,SAAS;;;AAsDzB,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAUrE;yBAVe,WAAW;;;AAc3B,wBAAgB,SAAS,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAMnE;yBANe,SAAS;;;AAUzB,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAYrE;yBAZe,WAAW;;;AAgB3B,wBAAgB,QAAQ,CAAC,EACvB,SAAS,EACT,QAAQ,EACR,GAAG,EACH,EAAE,EAAE,OAAc,EAClB,YAAY,EAAE,aAAa,EAC3B,GAAG,IAAI,EACR,EAAE,iBAAiB,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;CAAE,2CAa9D;yBApBe,QAAQ;;;AAwBxB,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,KAAa,EACb,OAAO,EACP,aAAa,EACb,YAAY,EACZ,OAAO,EACP,SAAS,EACT,QAAQ,EACR,GAAG,EACH,GAAG,IAAI,EACR,EAAE,kBAAkB,2CAqEpB;yBAjFe,SAAS;;;AAqFzB,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,QAAQ,EACR,GAAG,EACH,KAAK,EACL,GAAG,IAAI,EACR,EAAE,cAAc,2CA0BhB;yBAhCe,SAAS;;;AAoCzB,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CAStE;yBATe,YAAY"}
|
package/dist/ui/table/types.d.ts
CHANGED
|
@@ -2,6 +2,12 @@ import type { VariantProps } from "class-variance-authority";
|
|
|
2
2
|
import type { ElementType, HTMLAttributes, ReactNode, Ref, TdHTMLAttributes, ThHTMLAttributes } from "react";
|
|
3
3
|
import type { tableVariants } from "./variants";
|
|
4
4
|
export type TableAnimation = "none" | "hover";
|
|
5
|
+
export type TableSortDirection = "ascending" | "descending" | "none";
|
|
6
|
+
export type TableSortState<TKey extends string = string> = {
|
|
7
|
+
sortKey?: TKey;
|
|
8
|
+
sortDirection: TableSortDirection;
|
|
9
|
+
};
|
|
10
|
+
export type TableSortChangeHandler<TKey extends string = string> = (nextSort: TableSortState<TKey>) => void;
|
|
5
11
|
type TableVariantProps = VariantProps<typeof tableVariants>;
|
|
6
12
|
export type TableProps = TableVariantProps & Omit<HTMLAttributes<HTMLTableElement>, "children"> & {
|
|
7
13
|
children?: ReactNode;
|
|
@@ -17,7 +23,9 @@ export type TableSectionProps = {
|
|
|
17
23
|
rowAnimation?: TableAnimation;
|
|
18
24
|
};
|
|
19
25
|
export type TableHeadCellProps = ThHTMLAttributes<HTMLTableCellElement> & {
|
|
20
|
-
|
|
26
|
+
sortKey?: string;
|
|
27
|
+
sortDirection?: TableSortDirection;
|
|
28
|
+
onSortChange?: TableSortChangeHandler;
|
|
21
29
|
ref?: Ref<HTMLTableCellElement>;
|
|
22
30
|
};
|
|
23
31
|
export type TableCellProps = Omit<TdHTMLAttributes<HTMLTableCellElement>, "scope"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/table/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,GAAG,EACH,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ui/table/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,SAAS,EACT,GAAG,EACH,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,kBAAkB,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAErE,MAAM,MAAM,cAAc,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI;IACzD,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,aAAa,EAAE,kBAAkB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,IAAI,SAAS,MAAM,GAAG,MAAM,IAAI,CACjE,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,KAC3B,IAAI,CAAC;AAEV,KAAK,iBAAiB,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG,iBAAiB,GACxC,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE,UAAU,CAAC,GAAG;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,yEAAyE;IACzE,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC,GAAG;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,gBAAgB,CAAC,oBAAoB,CAAC,EACtC,OAAO,CACR,GAAG;IACF,GAAG,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,wGAAwG;IACxG,KAAK,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAClD,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACtC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,cAAc,CAAC;IAC7B,SAAS,EAAE,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC;CACrD,CAAC"}
|
package/dist/ui/table.js
CHANGED
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkIL4LH2XX_js = require('../chunk-IL4LH2XX.js');
|
|
5
5
|
require('../chunk-ZS5756ZC.js');
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
|
|
9
9
|
Object.defineProperty(exports, "Table", {
|
|
10
10
|
enumerable: true,
|
|
11
|
-
get: function () { return
|
|
11
|
+
get: function () { return chunkIL4LH2XX_js.TableBase; }
|
|
12
12
|
});
|
|
13
13
|
Object.defineProperty(exports, "TableBody", {
|
|
14
14
|
enumerable: true,
|
|
15
|
-
get: function () { return
|
|
15
|
+
get: function () { return chunkIL4LH2XX_js.TableBody; }
|
|
16
16
|
});
|
|
17
17
|
Object.defineProperty(exports, "TableCaption", {
|
|
18
18
|
enumerable: true,
|
|
19
|
-
get: function () { return
|
|
19
|
+
get: function () { return chunkIL4LH2XX_js.TableCaption; }
|
|
20
20
|
});
|
|
21
21
|
Object.defineProperty(exports, "TableCell", {
|
|
22
22
|
enumerable: true,
|
|
23
|
-
get: function () { return
|
|
23
|
+
get: function () { return chunkIL4LH2XX_js.TableCell; }
|
|
24
24
|
});
|
|
25
25
|
Object.defineProperty(exports, "TableContext", {
|
|
26
26
|
enumerable: true,
|
|
27
|
-
get: function () { return
|
|
27
|
+
get: function () { return chunkIL4LH2XX_js.TableContext; }
|
|
28
28
|
});
|
|
29
29
|
Object.defineProperty(exports, "TableFooter", {
|
|
30
30
|
enumerable: true,
|
|
31
|
-
get: function () { return
|
|
31
|
+
get: function () { return chunkIL4LH2XX_js.TableFooter; }
|
|
32
32
|
});
|
|
33
33
|
Object.defineProperty(exports, "TableHead", {
|
|
34
34
|
enumerable: true,
|
|
35
|
-
get: function () { return
|
|
35
|
+
get: function () { return chunkIL4LH2XX_js.TableHead; }
|
|
36
36
|
});
|
|
37
37
|
Object.defineProperty(exports, "TableHeader", {
|
|
38
38
|
enumerable: true,
|
|
39
|
-
get: function () { return
|
|
39
|
+
get: function () { return chunkIL4LH2XX_js.TableHeader; }
|
|
40
40
|
});
|
|
41
41
|
Object.defineProperty(exports, "TableRow", {
|
|
42
42
|
enumerable: true,
|
|
43
|
-
get: function () { return
|
|
43
|
+
get: function () { return chunkIL4LH2XX_js.TableRow; }
|
|
44
44
|
});
|
|
45
45
|
Object.defineProperty(exports, "tableCellVariants", {
|
|
46
46
|
enumerable: true,
|
|
47
|
-
get: function () { return
|
|
47
|
+
get: function () { return chunkIL4LH2XX_js.tableCellVariants; }
|
|
48
48
|
});
|
|
49
49
|
Object.defineProperty(exports, "tableRowVariants", {
|
|
50
50
|
enumerable: true,
|
|
51
|
-
get: function () { return
|
|
51
|
+
get: function () { return chunkIL4LH2XX_js.tableRowVariants; }
|
|
52
52
|
});
|
|
53
53
|
Object.defineProperty(exports, "tableVariants", {
|
|
54
54
|
enumerable: true,
|
|
55
|
-
get: function () { return
|
|
55
|
+
get: function () { return chunkIL4LH2XX_js.tableVariants; }
|
|
56
56
|
});
|
|
57
57
|
Object.defineProperty(exports, "useTableContext", {
|
|
58
58
|
enumerable: true,
|
|
59
|
-
get: function () { return
|
|
59
|
+
get: function () { return chunkIL4LH2XX_js.useTableContext; }
|
|
60
60
|
});
|
|
61
61
|
//# sourceMappingURL=table.js.map
|
|
62
62
|
//# sourceMappingURL=table.js.map
|
package/dist/ui/table.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { TableBase as Table, TableBody, TableCaption, TableCell, TableContext, TableFooter, TableHead, TableHeader, TableRow, tableCellVariants, tableRowVariants, tableVariants, useTableContext } from '../chunk-
|
|
2
|
+
export { TableBase as Table, TableBody, TableCaption, TableCell, TableContext, TableFooter, TableHead, TableHeader, TableRow, tableCellVariants, tableRowVariants, tableVariants, useTableContext } from '../chunk-OL3BJSRC.mjs';
|
|
3
3
|
import '../chunk-4D54YOL6.mjs';
|
|
4
4
|
//# sourceMappingURL=table.mjs.map
|
|
5
5
|
//# sourceMappingURL=table.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zentauri-ui/zentauri-components",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.2",
|
|
4
4
|
"description": "React + Tailwind UI kit with charts, ESM/CJS builds, per-entry exports, and a zentauri-components / zentauri-ui CLI to vendor UI or hook source into your app",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"files": [
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { render, screen } from "@testing-library/react";
|
|
2
|
+
import { describe, expect, it } from "vitest";
|
|
3
|
+
|
|
4
|
+
import { FunnelChart } from "./funnel";
|
|
5
|
+
import { PieChart } from "./pie";
|
|
6
|
+
import { RadarChart } from "./radar";
|
|
7
|
+
import { ScatterChart } from "./scatter";
|
|
8
|
+
import { StackedBarChart } from "./stacked-bar";
|
|
9
|
+
|
|
10
|
+
const emptySeries = [{ dataKey: "value", name: "Value" }];
|
|
11
|
+
|
|
12
|
+
describe("chart entries", () => {
|
|
13
|
+
it("should expose display names for new chart components", () => {
|
|
14
|
+
expect(FunnelChart.displayName).toBe("FunnelChart");
|
|
15
|
+
expect(RadarChart.displayName).toBe("RadarChart");
|
|
16
|
+
expect(ScatterChart.displayName).toBe("ScatterChart");
|
|
17
|
+
expect(StackedBarChart.displayName).toBe("StackedBarChart");
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
it("should render RadarChart empty state", () => {
|
|
21
|
+
render(
|
|
22
|
+
<RadarChart
|
|
23
|
+
data={[]}
|
|
24
|
+
xKey="axis"
|
|
25
|
+
series={emptySeries}
|
|
26
|
+
emptyState="No radar data"
|
|
27
|
+
/>,
|
|
28
|
+
);
|
|
29
|
+
expect(screen.getByText("No radar data")).toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it("should render ScatterChart empty state", () => {
|
|
33
|
+
render(
|
|
34
|
+
<ScatterChart
|
|
35
|
+
data={[]}
|
|
36
|
+
xKey="x"
|
|
37
|
+
series={emptySeries}
|
|
38
|
+
emptyState="No scatter data"
|
|
39
|
+
/>,
|
|
40
|
+
);
|
|
41
|
+
expect(screen.getByText("No scatter data")).toBeInTheDocument();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it("should render StackedBarChart empty state", () => {
|
|
45
|
+
render(
|
|
46
|
+
<StackedBarChart
|
|
47
|
+
data={[]}
|
|
48
|
+
xKey="month"
|
|
49
|
+
series={emptySeries}
|
|
50
|
+
emptyState="No stacked bars"
|
|
51
|
+
/>,
|
|
52
|
+
);
|
|
53
|
+
expect(screen.getByText("No stacked bars")).toBeInTheDocument();
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
it("should render FunnelChart empty state", () => {
|
|
57
|
+
render(
|
|
58
|
+
<FunnelChart
|
|
59
|
+
data={[]}
|
|
60
|
+
dataKey="value"
|
|
61
|
+
nameKey="stage"
|
|
62
|
+
emptyState="No funnel data"
|
|
63
|
+
/>,
|
|
64
|
+
);
|
|
65
|
+
expect(screen.getByText("No funnel data")).toBeInTheDocument();
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("should render PieChart center content for donut charts", () => {
|
|
69
|
+
render(
|
|
70
|
+
<PieChart
|
|
71
|
+
data={[{ segment: "Desktop", value: 44, color: "#0891b2" }]}
|
|
72
|
+
dataKey="value"
|
|
73
|
+
nameKey="segment"
|
|
74
|
+
innerRadius="50%"
|
|
75
|
+
center={<span>Total share</span>}
|
|
76
|
+
/>,
|
|
77
|
+
);
|
|
78
|
+
expect(screen.getByText("Total share")).toBeInTheDocument();
|
|
79
|
+
});
|
|
80
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Funnel,
|
|
5
|
+
FunnelChart as RechartsFunnelChart,
|
|
6
|
+
FunnelTrapezoidItem,
|
|
7
|
+
LabelList,
|
|
8
|
+
Legend,
|
|
9
|
+
Tooltip,
|
|
10
|
+
Trapezoid,
|
|
11
|
+
} from "recharts";
|
|
12
|
+
|
|
13
|
+
import { ChartFrame } from "../shared/chart-frame";
|
|
14
|
+
import { resolveColor } from "../shared/colors";
|
|
15
|
+
import type { FunnelChartProps } from "../shared/types";
|
|
16
|
+
|
|
17
|
+
export function FunnelChart<
|
|
18
|
+
TDatum extends Record<string, number | string | null | undefined>,
|
|
19
|
+
>({
|
|
20
|
+
appearance,
|
|
21
|
+
className,
|
|
22
|
+
colorKey = "color" as keyof TDatum & string,
|
|
23
|
+
containerStyle,
|
|
24
|
+
data,
|
|
25
|
+
dataKey,
|
|
26
|
+
density,
|
|
27
|
+
emptyState = null,
|
|
28
|
+
fill,
|
|
29
|
+
height = 320,
|
|
30
|
+
label = true,
|
|
31
|
+
nameKey,
|
|
32
|
+
showLegend = false,
|
|
33
|
+
showTooltip = true,
|
|
34
|
+
stroke = "#ffffff",
|
|
35
|
+
style,
|
|
36
|
+
tooltipColor = "#0f172a",
|
|
37
|
+
...props
|
|
38
|
+
}: FunnelChartProps<TDatum>) {
|
|
39
|
+
const hasData = data.length > 0;
|
|
40
|
+
const renderDefaultShape = (
|
|
41
|
+
shapeProps: FunnelTrapezoidItem & { index?: number },
|
|
42
|
+
) => {
|
|
43
|
+
const payload = shapeProps.payload as TDatum | undefined;
|
|
44
|
+
const dataIndex =
|
|
45
|
+
typeof shapeProps.index === "number" && shapeProps.index >= 0
|
|
46
|
+
? shapeProps.index
|
|
47
|
+
: payload
|
|
48
|
+
? data.indexOf(payload)
|
|
49
|
+
: -1;
|
|
50
|
+
const datumColor = payload?.[colorKey];
|
|
51
|
+
const color = resolveColor(
|
|
52
|
+
typeof datumColor === "string"
|
|
53
|
+
? datumColor
|
|
54
|
+
: typeof fill === "string"
|
|
55
|
+
? fill
|
|
56
|
+
: undefined,
|
|
57
|
+
dataIndex >= 0 ? dataIndex : 0,
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
return <Trapezoid {...shapeProps} fill={color.fill} stroke={stroke} />;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
return (
|
|
64
|
+
<ChartFrame
|
|
65
|
+
appearance={appearance}
|
|
66
|
+
className={className}
|
|
67
|
+
containerStyle={containerStyle}
|
|
68
|
+
density={density}
|
|
69
|
+
emptyState={emptyState}
|
|
70
|
+
hasData={hasData}
|
|
71
|
+
height={height}
|
|
72
|
+
style={style}
|
|
73
|
+
{...props}
|
|
74
|
+
>
|
|
75
|
+
<RechartsFunnelChart>
|
|
76
|
+
{showTooltip ? (
|
|
77
|
+
<Tooltip
|
|
78
|
+
contentStyle={{ color: tooltipColor }}
|
|
79
|
+
labelStyle={{ color: tooltipColor }}
|
|
80
|
+
itemStyle={{ color: tooltipColor }}
|
|
81
|
+
/>
|
|
82
|
+
) : null}
|
|
83
|
+
{showLegend ? <Legend /> : null}
|
|
84
|
+
<Funnel
|
|
85
|
+
data={data}
|
|
86
|
+
dataKey={String(dataKey)}
|
|
87
|
+
nameKey={String(nameKey)}
|
|
88
|
+
shape={renderDefaultShape}
|
|
89
|
+
>
|
|
90
|
+
{label ? (
|
|
91
|
+
<LabelList
|
|
92
|
+
dataKey={String(nameKey)}
|
|
93
|
+
position="right"
|
|
94
|
+
fill="currentColor"
|
|
95
|
+
stroke="none"
|
|
96
|
+
fontSize={12}
|
|
97
|
+
/>
|
|
98
|
+
) : null}
|
|
99
|
+
</Funnel>
|
|
100
|
+
</RechartsFunnelChart>
|
|
101
|
+
</ChartFrame>
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
FunnelChart.displayName = "FunnelChart";
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
export { FunnelChart } from "./Funnel";
|
|
4
|
+
export type {
|
|
5
|
+
ChartColor,
|
|
6
|
+
ChartDatum,
|
|
7
|
+
ChartSharedStatic,
|
|
8
|
+
FunnelChartProps,
|
|
9
|
+
} from "../shared/types";
|
|
10
|
+
export {
|
|
11
|
+
chartColorValues,
|
|
12
|
+
chartPalette,
|
|
13
|
+
chartVariants,
|
|
14
|
+
} from "../shared/variants";
|
package/src/charts/pie/Pie.tsx
CHANGED
|
@@ -4,11 +4,14 @@ import {
|
|
|
4
4
|
Legend,
|
|
5
5
|
Pie,
|
|
6
6
|
PieLabelRenderProps,
|
|
7
|
+
PieSectorShapeProps,
|
|
7
8
|
PieChart as RechartsPieChart,
|
|
9
|
+
Sector,
|
|
8
10
|
Tooltip,
|
|
9
11
|
} from "recharts";
|
|
10
12
|
|
|
11
13
|
import { ChartFrame } from "../shared/chart-frame";
|
|
14
|
+
import { resolveColor } from "../shared/colors";
|
|
12
15
|
import type { PieChartProps } from "../shared/types";
|
|
13
16
|
|
|
14
17
|
const RADIAN = Math.PI / 180;
|
|
@@ -51,8 +54,10 @@ export function PieChart<
|
|
|
51
54
|
className,
|
|
52
55
|
containerStyle,
|
|
53
56
|
cornerRadius = 10,
|
|
57
|
+
center,
|
|
54
58
|
data,
|
|
55
59
|
dataKey,
|
|
60
|
+
colorKey = "color" as keyof TDatum & string,
|
|
56
61
|
density,
|
|
57
62
|
emptyState = null,
|
|
58
63
|
height = 320,
|
|
@@ -73,6 +78,21 @@ export function PieChart<
|
|
|
73
78
|
...props
|
|
74
79
|
}: PieChartProps<TDatum>) {
|
|
75
80
|
const hasData = data.length > 0;
|
|
81
|
+
const renderDefaultShape = (props: PieSectorShapeProps, index: number) => {
|
|
82
|
+
const payload = props.payload as TDatum | undefined;
|
|
83
|
+
const shapeDatum = props as unknown as TDatum;
|
|
84
|
+
const datumColor = payload?.[colorKey] ?? shapeDatum[colorKey];
|
|
85
|
+
const color = resolveColor(
|
|
86
|
+
typeof datumColor === "string"
|
|
87
|
+
? datumColor
|
|
88
|
+
: typeof fill === "string"
|
|
89
|
+
? fill
|
|
90
|
+
: undefined,
|
|
91
|
+
typeof index === "number" ? index : props.index,
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
return <Sector {...props} fill={color.fill} stroke={stroke} />;
|
|
95
|
+
};
|
|
76
96
|
|
|
77
97
|
return (
|
|
78
98
|
<ChartFrame
|
|
@@ -83,6 +103,13 @@ export function PieChart<
|
|
|
83
103
|
emptyState={emptyState}
|
|
84
104
|
hasData={hasData}
|
|
85
105
|
height={height}
|
|
106
|
+
overlay={
|
|
107
|
+
center ? (
|
|
108
|
+
<div className="pointer-events-none absolute inset-0 flex items-center justify-center text-center">
|
|
109
|
+
{center}
|
|
110
|
+
</div>
|
|
111
|
+
) : null
|
|
112
|
+
}
|
|
86
113
|
style={style}
|
|
87
114
|
{...props}
|
|
88
115
|
>
|
|
@@ -112,7 +139,7 @@ export function PieChart<
|
|
|
112
139
|
}
|
|
113
140
|
stroke={stroke}
|
|
114
141
|
fill={fill}
|
|
115
|
-
shape={shape}
|
|
142
|
+
shape={shape ?? renderDefaultShape}
|
|
116
143
|
/>
|
|
117
144
|
</RechartsPieChart>
|
|
118
145
|
</ChartFrame>
|