@jacshuo/onyx 2.0.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +358 -361
- package/dist/Chart/BarChart.cjs +1 -1
- package/dist/Chart/BarChart.js +1 -1
- package/dist/Chart/LineChart.cjs +1 -1
- package/dist/Chart/LineChart.js +1 -1
- package/dist/Chart/PieChart.cjs +1 -1
- package/dist/Chart/PieChart.js +1 -1
- package/dist/Chart/ScatterChart.cjs +1 -1
- package/dist/Chart/ScatterChart.js +1 -1
- package/dist/Chart/index.cjs +1 -1
- package/dist/Chart/index.js +1 -1
- package/dist/DataDisplay/CodeBlock.cjs +2 -2
- package/dist/DataDisplay/CodeBlock.js +2 -2
- package/dist/DataDisplay/List.cjs +1 -1
- package/dist/DataDisplay/List.js +1 -1
- package/dist/DataDisplay/MetricCard.cjs +1 -0
- package/dist/DataDisplay/MetricCard.d.cts +3 -0
- package/dist/DataDisplay/MetricCard.d.ts +3 -0
- package/dist/DataDisplay/MetricCard.js +1 -0
- package/dist/DataDisplay/Stat.cjs +1 -0
- package/dist/DataDisplay/Stat.d.cts +3 -0
- package/dist/DataDisplay/Stat.d.ts +3 -0
- package/dist/DataDisplay/Stat.js +1 -0
- package/dist/DataDisplay/Table.cjs +1 -1
- package/dist/DataDisplay/Table.js +1 -1
- package/dist/DataDisplay/Tree.cjs +1 -1
- package/dist/DataDisplay/Tree.js +1 -1
- package/dist/DataDisplay/index.cjs +2 -2
- package/dist/DataDisplay/index.d.cts +6 -0
- package/dist/DataDisplay/index.d.ts +6 -0
- package/dist/DataDisplay/index.js +2 -2
- package/dist/Extras/CommandPalette.cjs +1 -0
- package/dist/Extras/CommandPalette.css +1 -0
- package/dist/Extras/CommandPalette.d.cts +4 -0
- package/dist/Extras/CommandPalette.d.ts +4 -0
- package/dist/Extras/CommandPalette.js +1 -0
- package/dist/Extras/DateTimePicker.cjs +1 -0
- package/dist/Extras/DateTimePicker.css +1 -0
- package/dist/Extras/DateTimePicker.d.cts +5 -0
- package/dist/Extras/DateTimePicker.d.ts +5 -0
- package/dist/Extras/DateTimePicker.js +1 -0
- package/dist/Extras/FileExplorer.cjs +2 -2
- package/dist/Extras/FileExplorer.js +2 -2
- package/dist/Extras/Timeline.cjs +1 -0
- package/dist/Extras/Timeline.css +1 -0
- package/dist/Extras/Timeline.d.cts +6 -0
- package/dist/Extras/Timeline.d.ts +6 -0
- package/dist/Extras/Timeline.js +1 -0
- package/dist/Extras/index.cjs +4 -4
- package/dist/Extras/index.css +1 -1
- package/dist/Extras/index.d.cts +14 -0
- package/dist/Extras/index.d.ts +14 -0
- package/dist/Extras/index.js +4 -4
- package/dist/Feedback/Alert.cjs +1 -1
- package/dist/Feedback/Alert.js +1 -1
- package/dist/Feedback/ProgressBar.cjs +1 -1
- package/dist/Feedback/ProgressBar.js +1 -1
- package/dist/Feedback/Skeleton.cjs +1 -0
- package/dist/Feedback/Skeleton.d.cts +2 -0
- package/dist/Feedback/Skeleton.d.ts +2 -0
- package/dist/Feedback/Skeleton.js +1 -0
- package/dist/Feedback/Spin.cjs +2 -2
- package/dist/Feedback/Spin.js +2 -2
- package/dist/Feedback/Toast.cjs +1 -0
- package/dist/Feedback/Toast.d.cts +11 -0
- package/dist/Feedback/Toast.d.ts +11 -0
- package/dist/Feedback/Toast.js +1 -0
- package/dist/Feedback/index.cjs +2 -2
- package/dist/Feedback/index.d.cts +11 -0
- package/dist/Feedback/index.d.ts +11 -0
- package/dist/Feedback/index.js +2 -2
- package/dist/Forms/Select.cjs +1 -0
- package/dist/Forms/Select.css +1 -0
- package/dist/Forms/Select.d.cts +3 -0
- package/dist/Forms/Select.d.ts +3 -0
- package/dist/Forms/Select.js +1 -0
- package/dist/Navigation/Breadcrumb.cjs +1 -0
- package/dist/Navigation/Breadcrumb.d.cts +3 -0
- package/dist/Navigation/Breadcrumb.d.ts +3 -0
- package/dist/Navigation/Breadcrumb.js +1 -0
- package/dist/Navigation/Header.cjs +1 -1
- package/dist/Navigation/Header.js +1 -1
- package/dist/Navigation/Pagination.cjs +1 -0
- package/dist/Navigation/Pagination.d.cts +2 -0
- package/dist/Navigation/Pagination.d.ts +2 -0
- package/dist/Navigation/Pagination.js +1 -0
- package/dist/Navigation/RibbonBar.cjs +1 -0
- package/dist/Navigation/RibbonBar.d.cts +6 -0
- package/dist/Navigation/RibbonBar.d.ts +6 -0
- package/dist/Navigation/RibbonBar.js +1 -0
- package/dist/Navigation/SideNav.cjs +1 -1
- package/dist/Navigation/SideNav.js +1 -1
- package/dist/Navigation/index.cjs +2 -2
- package/dist/Navigation/index.d.cts +8 -0
- package/dist/Navigation/index.d.ts +8 -0
- package/dist/Navigation/index.js +2 -2
- package/dist/Overlay/ContextMenu.cjs +1 -0
- package/dist/Overlay/ContextMenu.d.cts +3 -0
- package/dist/Overlay/ContextMenu.d.ts +3 -0
- package/dist/Overlay/ContextMenu.js +1 -0
- package/dist/Overlay/Drawer.cjs +1 -0
- package/dist/Overlay/Drawer.css +1 -0
- package/dist/Overlay/Drawer.d.cts +10 -0
- package/dist/Overlay/Drawer.d.ts +10 -0
- package/dist/Overlay/Drawer.js +1 -0
- package/dist/Overlay/index.cjs +1 -1
- package/dist/Overlay/index.css +1 -0
- package/dist/Overlay/index.d.cts +8 -0
- package/dist/Overlay/index.d.ts +8 -0
- package/dist/Overlay/index.js +1 -1
- package/dist/Primitives/Avatar.cjs +1 -0
- package/dist/Primitives/Avatar.d.cts +4 -0
- package/dist/Primitives/Avatar.d.ts +4 -0
- package/dist/Primitives/Avatar.js +1 -0
- package/dist/Primitives/Badge.cjs +1 -1
- package/dist/Primitives/Badge.js +1 -1
- package/dist/Primitives/Button.cjs +1 -1
- package/dist/Primitives/Button.js +1 -1
- package/dist/Primitives/Checkbox.cjs +1 -1
- package/dist/Primitives/Checkbox.js +1 -1
- package/dist/Primitives/Dropdown.cjs +1 -1
- package/dist/Primitives/Dropdown.js +1 -1
- package/dist/Primitives/DropdownButton.cjs +1 -1
- package/dist/Primitives/DropdownButton.js +1 -1
- package/dist/Primitives/Indicator.cjs +1 -1
- package/dist/Primitives/Indicator.js +1 -1
- package/dist/Primitives/Input.cjs +1 -1
- package/dist/Primitives/Input.js +1 -1
- package/dist/Primitives/Label.cjs +1 -1
- package/dist/Primitives/Label.js +1 -1
- package/dist/Primitives/Radio.cjs +1 -1
- package/dist/Primitives/Radio.js +1 -1
- package/dist/Primitives/Slider.cjs +1 -0
- package/dist/Primitives/Slider.css +1 -0
- package/dist/Primitives/Slider.d.cts +4 -0
- package/dist/Primitives/Slider.d.ts +4 -0
- package/dist/Primitives/Slider.js +1 -0
- package/dist/Primitives/Switch.cjs +1 -1
- package/dist/Primitives/Switch.js +1 -1
- package/dist/Primitives/Tag.cjs +1 -0
- package/dist/Primitives/Tag.d.cts +2 -0
- package/dist/Primitives/Tag.d.ts +2 -0
- package/dist/Primitives/Tag.js +1 -0
- package/dist/Primitives/index.cjs +1 -1
- package/dist/Primitives/index.css +1 -0
- package/dist/Primitives/index.d.cts +6 -0
- package/dist/Primitives/index.d.ts +6 -0
- package/dist/Primitives/index.js +1 -1
- package/dist/_tsup-dts-rollup.d.cts +1130 -3
- package/dist/_tsup-dts-rollup.d.ts +1130 -3
- package/dist/index.cjs +5 -5
- package/dist/index.css +1 -1
- package/dist/index.d.cts +74 -0
- package/dist/index.d.ts +74 -0
- package/dist/index.js +5 -5
- package/dist/styles/DataDisplay/MetricCard.css +1 -0
- package/dist/styles/DataDisplay/Stat.css +1 -0
- package/dist/styles/Extras/CommandPalette.css +65 -0
- package/dist/styles/Extras/DateTimePicker.css +566 -0
- package/dist/styles/Extras/Timeline.css +52 -0
- package/dist/styles/Feedback/Skeleton.css +37 -0
- package/dist/styles/Feedback/Toast.css +77 -0
- package/dist/styles/Forms/Select.css +36 -0
- package/dist/styles/Navigation/RibbonBar.css +1 -0
- package/dist/styles/Overlay/ContextMenu.css +1 -0
- package/dist/styles/Overlay/Drawer.css +52 -0
- package/dist/styles/Primitives/Slider.css +4 -0
- package/dist/styles/Primitives/Tag.css +1 -0
- package/dist/styles/base.css +1059 -20
- package/dist/styles.css +1726 -18
- package/dist/theme.cjs +1 -1
- package/dist/theme.d.cts +7 -0
- package/dist/theme.d.ts +7 -0
- package/dist/theme.js +1 -1
- package/package.json +1 -1
package/dist/DataDisplay/List.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {createContext,useContext}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';function o(...t){return twMerge(clsx(t))}cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});var n=cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}}),d=cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});var p=createContext({size:"md"});function
|
|
1
|
+
import {createContext,useContext}from'react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';function o(...t){return twMerge(clsx(t))}cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});var n=cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}}),d=cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});var p=createContext({size:"md"});function M({intent:t,size:a="md",className:i,...s}){return jsx(p.Provider,{value:{size:a},children:jsx("ul",{className:o(n({intent:t}),i),...s})})}function N({actions:t,className:a,children:i,...s}){let{size:m}=useContext(p);return jsxs("li",{className:o(d({size:m}),a),...s,children:[jsx("span",{className:"flex min-w-0 flex-1 items-center gap-1.5",children:i}),t&&jsx("span",{className:"ml-auto flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100 [@media(hover:none)]:[&>button]:min-h-(--row-action-touch-min) [@media(hover:none)]:[&>button]:min-w-(--row-action-touch-min) [@media(hover:none)]:[&>button]:flex [@media(hover:none)]:[&>button]:items-center [@media(hover:none)]:[&>button]:justify-center",children:t})]})}export{M as List,N as ListItem};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var react=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function p(...e){return tailwindMerge.twMerge(clsx.clsx(e))}classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});var w=classVarianceAuthority.cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function A(e){return 1-Math.pow(1-e,4)}function I(e,i,l,c,t){let[u,a]=react.useState(()=>t?t(i):i.toFixed(c)),s=react.useRef(null),n=react.useRef(null);return react.useEffect(()=>{s.current!==null&&cancelAnimationFrame(s.current),n.current=null;let g=x=>{n.current===null&&(n.current=x);let y=x-n.current,r=Math.min(y/l,1),f=A(r),b=i+(e-i)*f;a(t?t(b):b.toFixed(c)),r<1&&(s.current=requestAnimationFrame(g));};return s.current=requestAnimationFrame(g),()=>{s.current!==null&&cancelAnimationFrame(s.current);}},[e,i,l,c,t]),u}var P={up:lucideReact.TrendingUp,down:lucideReact.TrendingDown,neutral:lucideReact.Minus},D={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"},h={primary:"bg-primary-100 text-primary-600 dark:bg-primary-800/60 dark:text-primary-300",success:"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",danger:"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",warning:"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400"};function Z({title:e,value:i,decimals:l=0,prefix:c,suffix:t,icon:u,trend:a,trendValue:s,description:n,animateDuration:g=1200,formatter:x,from:y=0,intent:r,size:f,className:b}){let _=I(i,y,g,l,x),v=a?P[a]:null,V=a?D[a]:"";return jsxRuntime.jsxs("div",{className:p(w({intent:r,size:f}),b),children:[jsxRuntime.jsx("div",{className:p("pointer-events-none absolute inset-x-0 top-0 h-0.5 rounded-t-xl",r==="success"&&"bg-gradient-to-r from-success-400 to-success-600",r==="danger"&&"bg-gradient-to-r from-danger-400 to-danger-600",r==="warning"&&"bg-gradient-to-r from-warning-400 to-warning-600",(!r||r==="primary")&&"bg-gradient-to-r from-primary-400 to-primary-600")}),jsxRuntime.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary-500 dark:text-secondary-400",children:e}),jsxRuntime.jsxs("p",{className:"mt-2 flex items-baseline gap-1",children:[c&&jsxRuntime.jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:c}),jsxRuntime.jsx("span",{className:"font-mono text-3xl font-bold tabular-nums text-primary-900 dark:text-primary-50",children:_}),t&&jsxRuntime.jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:t})]})]}),u&&jsxRuntime.jsx("div",{className:p("flex h-12 w-12 shrink-0 items-center justify-center rounded-2xl [&_svg]:h-6 [&_svg]:w-6",h[r??"primary"]??h.primary),children:u})]}),(a||n)&&jsxRuntime.jsxs("div",{className:"mt-3 flex items-center gap-2 border-t border-primary-100 pt-3 dark:border-primary-700/50",children:[a&&v&&jsxRuntime.jsxs("span",{className:p("flex items-center gap-0.5 text-xs font-bold",V),children:[jsxRuntime.jsx(v,{className:"h-3.5 w-3.5"}),s]}),n&&jsxRuntime.jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:n})]})]})}exports.MetricCard=Z;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {useState,useRef,useEffect}from'react';import {Minus,TrendingDown,TrendingUp}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsxs,jsx}from'react/jsx-runtime';function p(...e){return twMerge(clsx(e))}cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});var w=cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function A(e){return 1-Math.pow(1-e,4)}function I(e,i,l,c,t){let[u,a]=useState(()=>t?t(i):i.toFixed(c)),s=useRef(null),n=useRef(null);return useEffect(()=>{s.current!==null&&cancelAnimationFrame(s.current),n.current=null;let g=x=>{n.current===null&&(n.current=x);let y=x-n.current,r=Math.min(y/l,1),f=A(r),b=i+(e-i)*f;a(t?t(b):b.toFixed(c)),r<1&&(s.current=requestAnimationFrame(g));};return s.current=requestAnimationFrame(g),()=>{s.current!==null&&cancelAnimationFrame(s.current);}},[e,i,l,c,t]),u}var P={up:TrendingUp,down:TrendingDown,neutral:Minus},D={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"},h={primary:"bg-primary-100 text-primary-600 dark:bg-primary-800/60 dark:text-primary-300",success:"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",danger:"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",warning:"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400"};function Z({title:e,value:i,decimals:l=0,prefix:c,suffix:t,icon:u,trend:a,trendValue:s,description:n,animateDuration:g=1200,formatter:x,from:y=0,intent:r,size:f,className:b}){let _=I(i,y,g,l,x),v=a?P[a]:null,V=a?D[a]:"";return jsxs("div",{className:p(w({intent:r,size:f}),b),children:[jsx("div",{className:p("pointer-events-none absolute inset-x-0 top-0 h-0.5 rounded-t-xl",r==="success"&&"bg-gradient-to-r from-success-400 to-success-600",r==="danger"&&"bg-gradient-to-r from-danger-400 to-danger-600",r==="warning"&&"bg-gradient-to-r from-warning-400 to-warning-600",(!r||r==="primary")&&"bg-gradient-to-r from-primary-400 to-primary-600")}),jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxs("div",{className:"min-w-0 flex-1",children:[jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary-500 dark:text-secondary-400",children:e}),jsxs("p",{className:"mt-2 flex items-baseline gap-1",children:[c&&jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:c}),jsx("span",{className:"font-mono text-3xl font-bold tabular-nums text-primary-900 dark:text-primary-50",children:_}),t&&jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:t})]})]}),u&&jsx("div",{className:p("flex h-12 w-12 shrink-0 items-center justify-center rounded-2xl [&_svg]:h-6 [&_svg]:w-6",h[r??"primary"]??h.primary),children:u})]}),(a||n)&&jsxs("div",{className:"mt-3 flex items-center gap-2 border-t border-primary-100 pt-3 dark:border-primary-700/50",children:[a&&v&&jsxs("span",{className:p("flex items-center gap-0.5 text-xs font-bold",V),children:[jsx(v,{className:"h-3.5 w-3.5"}),s]}),n&&jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:n})]})]})}export{Z as MetricCard};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function d(...n){return tailwindMerge.twMerge(clsx.clsx(n))}classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});var l=classVarianceAuthority.cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});var h={up:lucideReact.TrendingUp,down:lucideReact.TrendingDown,neutral:lucideReact.Minus},V={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"};function A({title:n,value:x,prefix:o,suffix:p,icon:m,trend:t,trendValue:g,description:i,intent:a,size:y,className:b}){let c=t?h[t]:null,u=t?V[t]:"";return jsxRuntime.jsx("div",{className:d(l({intent:a,size:y}),b),children:jsxRuntime.jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("p",{className:"truncate text-xs font-medium tracking-wider uppercase text-secondary-500 dark:text-secondary-400",children:n}),jsxRuntime.jsxs("p",{className:"mt-1 flex items-baseline gap-1 text-2xl font-bold text-primary-900 dark:text-primary-50",children:[o&&jsxRuntime.jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:o}),jsxRuntime.jsx("span",{children:x}),p&&jsxRuntime.jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:p})]}),(t||i)&&jsxRuntime.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[t&&c&&jsxRuntime.jsxs("span",{className:d("flex items-center gap-0.5 text-xs font-semibold",u),children:[jsxRuntime.jsx(c,{className:"h-3.5 w-3.5"}),g]}),i&&jsxRuntime.jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:i})]})]}),m&&jsxRuntime.jsx("div",{className:d("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl [&_svg]:h-5 [&_svg]:w-5",a==="success"&&"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",a==="danger"&&"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",a==="warning"&&"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400",(!a||a==="primary")&&"bg-primary-100 text-primary-600 dark:bg-primary-800 dark:text-primary-400"),children:m})]})})}exports.Stat=A;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {Minus,TrendingDown,TrendingUp}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';function d(...n){return twMerge(clsx(n))}cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});var l=cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});var h={up:TrendingUp,down:TrendingDown,neutral:Minus},V={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"};function A({title:n,value:x,prefix:o,suffix:p,icon:m,trend:t,trendValue:g,description:i,intent:a,size:y,className:b}){let c=t?h[t]:null,u=t?V[t]:"";return jsx("div",{className:d(l({intent:a,size:y}),b),children:jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxs("div",{className:"min-w-0 flex-1",children:[jsx("p",{className:"truncate text-xs font-medium tracking-wider uppercase text-secondary-500 dark:text-secondary-400",children:n}),jsxs("p",{className:"mt-1 flex items-baseline gap-1 text-2xl font-bold text-primary-900 dark:text-primary-50",children:[o&&jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:o}),jsx("span",{children:x}),p&&jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:p})]}),(t||i)&&jsxs("div",{className:"mt-2 flex items-center gap-2",children:[t&&c&&jsxs("span",{className:d("flex items-center gap-0.5 text-xs font-semibold",u),children:[jsx(c,{className:"h-3.5 w-3.5"}),g]}),i&&jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:i})]})]}),m&&jsx("div",{className:d("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl [&_svg]:h-5 [&_svg]:w-5",a==="success"&&"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",a==="danger"&&"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",a==="warning"&&"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400",(!a||a==="primary")&&"bg-primary-100 text-primary-600 dark:bg-primary-800 dark:text-primary-400"),children:m})]})})}export{A as Stat};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var react=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function m(...r){return tailwindMerge.twMerge(clsx.clsx(r))}var O=classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function W({intent:r,density:a,className:d,...f}){return jsxRuntime.jsx("div",{className:"w-full overflow-auto",children:jsxRuntime.jsx("table",{className:m(O({intent:r,density:a}),d),...f})})}function Y({className:r,...a}){return jsxRuntime.jsx("thead",{className:m("bg-primary-50 text-primary-600 dark:bg-primary-800/50 dark:text-primary-400",r),...a})}function Z({className:r,...a}){return jsxRuntime.jsx("tbody",{className:m("[&_tr:last-child]:border-0",r),...a})}function U({className:r,...a}){return jsxRuntime.jsx("tr",{className:m("border-primary-200 hover:bg-primary-50/50 dark:border-primary-700 dark:hover:bg-primary-800/30 border-b transition-colors",r),...a})}function V({className:r,...a}){return jsxRuntime.jsx("th",{className:m("px-4 py-3 text-left text-xs font-semibold tracking-wider uppercase",r),...a})}function H({className:r,...a}){return jsxRuntime.jsx("td",{className:m("text-primary-700 dark:text-primary-300 px-4 py-3",r),...a})}function ee({icon:r,text:a="No data",className:d}){return jsxRuntime.jsxs("div",{className:m("flex flex-col items-center justify-center gap-3 py-16 text-primary-400 dark:text-primary-500",d),children:[r??jsxRuntime.jsx(lucideReact.Inbox,{className:"h-12 w-12 stroke-[1.2]"}),jsxRuntime.jsx("span",{className:"text-sm",children:a})]})}var Q={sm:"hidden sm:table-cell",md:"hidden md:table-cell",lg:"hidden lg:table-cell"};function Be({columns:r,data:a,sort:d,onSortChange:f,defaultSort:T=null,rowKey:x,rowActions:o,intent:h,density:X,className:C,empty:L}){let[$,A]=react.useState(T),y=d??$,K=react.useCallback(n=>{let g=y?.column===n?y.direction==="asc"?{column:n,direction:"desc"}:null:{column:n,direction:"asc"};f?f(g):A(g);},[y,f]),B=react.useMemo(()=>{if(!y)return a;let n=r.find(P=>P.key===y.column);if(!n)return a;let g=n.compareFn??((P,j)=>{let p=n.cell(P),k=n.cell(j);return p==null&&k==null?0:p==null?-1:k==null?1:typeof p=="number"&&typeof k=="number"?p-k:String(p).localeCompare(String(k))}),u=[...a].sort(g);return y.direction==="desc"?u.reverse():u},[a,y,r]);return jsxRuntime.jsxs(W,{intent:h,density:X,className:C,children:[jsxRuntime.jsx(Y,{children:jsxRuntime.jsxs(U,{children:[r.map(n=>{let g=n.sortable!==false,u=y?.column===n.key;return jsxRuntime.jsx(V,{className:m(g&&"cursor-pointer select-none",n.headerClassName,n.hideBelow&&Q[n.hideBelow]),onClick:g?()=>K(n.key):void 0,"aria-sort":u?y.direction==="asc"?"ascending":"descending":void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[n.header,g&&jsxRuntime.jsx(te,{active:u,direction:u?y.direction:null})]})},n.key)}),o&&jsxRuntime.jsx(V,{className:"w-20 text-right",children:"Actions"})]})}),jsxRuntime.jsx(Z,{children:B.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:r.length+(o?1:0),children:jsxRuntime.jsx(ee,{...L})})}):B.map((n,g)=>jsxRuntime.jsxs(U,{children:[r.map(u=>jsxRuntime.jsx(H,{className:m(u.cellClassName,u.hideBelow&&Q[u.hideBelow]),children:u.cell(n)},u.key)),o&&jsxRuntime.jsx(H,{className:"text-right",children:jsxRuntime.jsx("span",{className:"inline-flex items-center gap-1",children:o(n)})})]},x?x(n,g):g))})]})}function ke({value:r,onCommit:a,onCancel:d}){let[f,T]=react.useState(r),x=react.useRef(null);react.useEffect(()=>{x.current?.focus(),x.current?.select();},[]);let o=()=>a(f);return jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("input",{ref:x,type:"text",value:f,onChange:h=>T(h.target.value),onKeyDown:h=>{h.key==="Enter"&&o(),h.key==="Escape"&&d();},"aria-label":"Edit cell",className:"min-w-0 flex-1 rounded border border-primary-400 bg-white px-1.5 py-0.5 text-sm outline-none focus:ring-1 focus:ring-primary-400 dark:border-primary-600 dark:bg-secondary-800"}),jsxRuntime.jsx("button",{type:"button",onClick:o,className:"text-success-600 hover:text-success-700 dark:text-success-400","aria-label":"Confirm",children:jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5"})}),jsxRuntime.jsx("button",{type:"button",onClick:d,className:"text-danger-500 hover:text-danger-600 dark:text-danger-400","aria-label":"Cancel",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3.5 w-3.5"})})]})}function Ie({columns:r,data:a,rowKey:d,sort:f,onSortChange:T,defaultSort:x=null,selectionMode:o="none",selected:h,onSelectionChange:X,editable:C=false,onCellEdit:L,toolbar:$=false,onAdd:A,onDelete:y,rowActions:K,intent:B,density:n,className:g,empty:u}){let[P,j]=react.useState(x),p=f??P,k=react.useCallback(t=>{let s=p?.column===t?p.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"};T?T(s):j(s);},[p,T]),I=react.useMemo(()=>{if(!p)return a;let t=r.find(v=>v.key===p.column);if(!t)return a;let s=t.compareFn??((v,i)=>{let N=t.cell(v),w=t.cell(i);return N==null&&w==null?0:N==null?-1:w==null?1:typeof N=="number"&&typeof w=="number"?N-w:String(N).localeCompare(String(w))}),l=[...a].sort(s);return p.direction==="desc"?l.reverse():l},[a,p,r]),[re,ae]=react.useState([]),c=h??re,R=X??ae,M=react.useMemo(()=>I.map((t,s)=>d(t,s)),[I,d]),z=o==="multiple"&&M.length>0&&M.every(t=>c.includes(t)),ne=o==="multiple"&&c.length>0&&!z,q=react.useCallback(t=>{o==="single"?R(c.includes(t)?[]:[t]):o==="multiple"&&R(c.includes(t)?c.filter(s=>s!==t):[...c,t]);},[o,c,R]),se=react.useCallback(()=>{R(z?[]:M);},[z,M,R]),[J,F]=react.useState(null),oe=react.useCallback((t,s,l)=>{C&&l!==false&&F({rowKey:t,colKey:s});},[C]),le=react.useCallback((t,s,l)=>{L?.(t,s,l),F(null);},[L]);return jsxRuntime.jsxs("div",{className:"space-y-2",children:[$&&jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[A&&jsxRuntime.jsxs("button",{type:"button",onClick:A,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsxRuntime.jsx(lucideReact.Plus,{className:"h-3.5 w-3.5"})," Add"]}),y&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>y(c),disabled:c.length===0,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-danger-600 transition-colors hover:bg-danger-50 disabled:opacity-40 disabled:pointer-events-none dark:border-secondary-600 dark:bg-secondary-800 dark:text-danger-400 dark:hover:bg-danger-900/20",children:[jsxRuntime.jsx(lucideReact.Trash2,{className:"h-3.5 w-3.5"})," Delete",c.length>0&&` (${c.length})`]}),C&&c.length===1&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{let t=r.find(s=>s.editable!==false);t&&F({rowKey:c[0],colKey:t.key});},className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsxRuntime.jsx(lucideReact.Pencil,{className:"h-3.5 w-3.5"})," Edit"]}),c.length>0&&jsxRuntime.jsxs("span",{className:"ml-auto text-sm text-secondary-500 dark:text-secondary-400",children:[c.length," row",c.length>1?"s":""," selected"]})]}),jsxRuntime.jsxs(W,{intent:B,density:n,className:g,children:[jsxRuntime.jsx(Y,{children:jsxRuntime.jsxs(U,{children:[o==="multiple"&&jsxRuntime.jsx(V,{className:"w-10",children:jsxRuntime.jsx("input",{type:"checkbox",checked:z,ref:t=>{t&&(t.indeterminate=ne);},onChange:se,className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select all"})}),o==="single"&&jsxRuntime.jsx(V,{className:"w-10"}),r.map(t=>{let s=t.sortable!==false,l=p?.column===t.key;return jsxRuntime.jsx(V,{className:m(s&&"cursor-pointer select-none",t.headerClassName),onClick:s?()=>k(t.key):void 0,"aria-sort":l?p.direction==="asc"?"ascending":"descending":void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,s&&jsxRuntime.jsx(te,{active:l,direction:l?p.direction:null})]})},t.key)}),K&&jsxRuntime.jsx(V,{className:"w-20 text-right",children:"Actions"})]})}),jsxRuntime.jsx(Z,{children:I.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:r.length+(o!=="none"?1:0)+(K?1:0),children:jsxRuntime.jsx(ee,{...u})})}):I.map((t,s)=>{let l=d(t,s),v=c.includes(l);return jsxRuntime.jsxs(U,{className:m(v&&"bg-primary-50/60 dark:bg-primary-900/20"),onClick:()=>{o!=="none"&&q(l);},children:[o==="multiple"&&jsxRuntime.jsx(H,{className:"w-10",children:jsxRuntime.jsx("input",{type:"checkbox",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select row"})}),o==="single"&&jsxRuntime.jsx(H,{className:"w-10",children:jsxRuntime.jsx("input",{type:"radio",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer accent-primary-600","aria-label":"Select row"})}),r.map(i=>{let N=J?.rowKey===l&&J?.colKey===i.key,w=i.editValue?.(t)??(()=>{let S=i.cell(t);return typeof S=="string"||typeof S=="number"?String(S):""})();return jsxRuntime.jsx(H,{className:m(i.cellClassName,C&&i.editable!==false&&"cursor-text"),onDoubleClick:S=>{S.stopPropagation(),oe(l,i.key,i.editable);},children:N?jsxRuntime.jsx(ke,{value:w,onCommit:S=>le(l,i.key,S),onCancel:()=>F(null)}):i.cell(t)},i.key)}),K&&jsxRuntime.jsx(H,{className:"text-right",onClick:i=>i.stopPropagation(),children:jsxRuntime.jsx("span",{className:"inline-flex items-center gap-1",children:K(t)})})]},l)})})]})]})}function te({active:r,direction:a}){let d="h-3.5 w-3.5 shrink-0";return !r||!a?jsxRuntime.jsx(lucideReact.ArrowUpDown,{className:m(d,"opacity-30")}):a==="asc"?jsxRuntime.jsx(lucideReact.ArrowUp,{className:m(d,"opacity-70")}):jsxRuntime.jsx(lucideReact.ArrowDown,{className:m(d,"opacity-70")})}exports.DataTable=Ie;exports.SortableTable=Be;exports.Table=W;exports.TableBody=Z;exports.TableCell=H;exports.TableEmpty=ee;exports.TableHead=V;exports.TableHeader=Y;exports.TableRow=U;
|
|
1
|
+
'use strict';var react=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function m(...r){return tailwindMerge.twMerge(clsx.clsx(r))}var O=classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function W({intent:r,density:a,className:c,...f}){return jsxRuntime.jsx("div",{className:"w-full overflow-auto",children:jsxRuntime.jsx("table",{className:m(O({intent:r,density:a}),c),...f})})}function Y({className:r,...a}){return jsxRuntime.jsx("thead",{className:m("bg-primary-50 text-primary-600 dark:bg-primary-800/50 dark:text-primary-400",r),...a})}function Z({className:r,...a}){return jsxRuntime.jsx("tbody",{className:m("[&_tr:last-child]:border-0",r),...a})}function U({className:r,...a}){return jsxRuntime.jsx("tr",{className:m("border-primary-200 hover:bg-primary-50/50 dark:border-primary-700 dark:hover:bg-primary-800/30 border-b transition-colors",r),...a})}function H({className:r,...a}){return jsxRuntime.jsx("th",{className:m("px-4 py-3 text-left text-xs font-semibold tracking-wider uppercase",r),...a})}function P({className:r,...a}){return jsxRuntime.jsx("td",{className:m("text-primary-700 dark:text-primary-300 px-4 py-3",r),...a})}function ee({icon:r,text:a="No data",className:c}){return jsxRuntime.jsxs("div",{className:m("flex flex-col items-center justify-center gap-3 py-16 text-primary-400 dark:text-primary-500",c),children:[r??jsxRuntime.jsx(lucideReact.Inbox,{className:"h-12 w-12 stroke-[1.2]"}),jsxRuntime.jsx("span",{className:"text-sm",children:a})]})}var Q={sm:"hidden sm:table-cell",md:"hidden md:table-cell",lg:"hidden lg:table-cell"};function Ie({columns:r,data:a,sort:c,onSortChange:f,defaultSort:k=null,rowKey:x,rowActions:o,intent:h,density:X,className:K,empty:L}){let[$,A]=react.useState(k),y=c??$,R=react.useCallback(n=>{let g=y?.column===n?y.direction==="asc"?{column:n,direction:"desc"}:null:{column:n,direction:"asc"};f?f(g):A(g);},[y,f]),z=react.useMemo(()=>{if(!y)return a;let n=r.find(E=>E.key===y.column);if(!n)return a;let g=n.compareFn??((E,j)=>{let p=n.cell(E),T=n.cell(j);return p==null&&T==null?0:p==null?-1:T==null?1:typeof p=="number"&&typeof T=="number"?p-T:String(p).localeCompare(String(T))}),u=[...a].sort(g);return y.direction==="desc"?u.reverse():u},[a,y,r]);return jsxRuntime.jsxs(W,{intent:h,density:X,className:K,children:[jsxRuntime.jsx(Y,{children:jsxRuntime.jsxs(U,{children:[r.map(n=>{let g=n.sortable!==false,u=y?.column===n.key;return jsxRuntime.jsx(H,{className:m(g&&"cursor-pointer select-none",n.headerClassName,n.hideBelow&&Q[n.hideBelow]),onClick:g?()=>R(n.key):void 0,"aria-sort":u?y.direction==="asc"?"ascending":"descending":void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[n.header,g&&jsxRuntime.jsx(te,{active:u,direction:u?y.direction:null})]})},n.key)}),o&&jsxRuntime.jsx(H,{className:"w-20 text-right",children:"Actions"})]})}),jsxRuntime.jsx(Z,{children:z.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:r.length+(o?1:0),children:jsxRuntime.jsx(ee,{...L})})}):z.map((n,g)=>jsxRuntime.jsxs(U,{children:[r.map(u=>jsxRuntime.jsx(P,{className:m(u.cellClassName,u.hideBelow&&Q[u.hideBelow]),children:u.cell(n)},u.key)),o&&jsxRuntime.jsx(P,{className:"text-right",children:jsxRuntime.jsx("span",{className:"inline-flex items-center gap-1",children:o(n)})})]},x?x(n,g):g))})]})}function Te({value:r,onCommit:a,onCancel:c}){let[f,k]=react.useState(r),x=react.useRef(null);react.useEffect(()=>{x.current?.focus(),x.current?.select();},[]);let o=()=>a(f);return jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("input",{ref:x,type:"text",value:f,onChange:h=>k(h.target.value),onKeyDown:h=>{h.key==="Enter"&&o(),h.key==="Escape"&&c();},"aria-label":"Edit cell",className:"min-w-0 flex-1 rounded border border-primary-400 bg-white px-1.5 py-0.5 text-sm outline-none focus:ring-1 focus:ring-primary-400 dark:border-primary-600 dark:bg-secondary-800"}),jsxRuntime.jsx("button",{type:"button",onClick:o,className:"text-success-600 hover:text-success-700 dark:text-success-400","aria-label":"Confirm",children:jsxRuntime.jsx(lucideReact.Check,{className:"h-3.5 w-3.5"})}),jsxRuntime.jsx("button",{type:"button",onClick:c,className:"text-danger-500 hover:text-danger-600 dark:text-danger-400","aria-label":"Cancel",children:jsxRuntime.jsx(lucideReact.X,{className:"h-3.5 w-3.5"})})]})}function Me({columns:r,data:a,rowKey:c,sort:f,onSortChange:k,defaultSort:x=null,selectionMode:o="none",selected:h,onSelectionChange:X,editable:K=false,onCellEdit:L,toolbar:$=false,onAdd:A,onDelete:y,rowActions:R,intent:z,density:n,className:g,empty:u}){let[E,j]=react.useState(x),p=f??E,T=react.useCallback(t=>{let s=p?.column===t?p.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"};k?k(s):j(s);},[p,k]),B=react.useMemo(()=>{if(!p)return a;let t=r.find(v=>v.key===p.column);if(!t)return a;let s=t.compareFn??((v,i)=>{let w=t.cell(v),N=t.cell(i);return w==null&&N==null?0:w==null?-1:N==null?1:typeof w=="number"&&typeof N=="number"?w-N:String(w).localeCompare(String(N))}),l=[...a].sort(s);return p.direction==="desc"?l.reverse():l},[a,p,r]),[re,ae]=react.useState([]),d=h??re,_=X??ae,I=react.useMemo(()=>B.map((t,s)=>c(t,s)),[B,c]),M=o==="multiple"&&I.length>0&&I.every(t=>d.includes(t)),ne=o==="multiple"&&d.length>0&&!M,q=react.useCallback(t=>{o==="single"?_(d.includes(t)?[]:[t]):o==="multiple"&&_(d.includes(t)?d.filter(s=>s!==t):[...d,t]);},[o,d,_]),se=react.useCallback(()=>{_(M?[]:I);},[M,I,_]),[J,F]=react.useState(null),oe=react.useCallback((t,s,l)=>{K&&l!==false&&F({rowKey:t,colKey:s});},[K]),le=react.useCallback((t,s,l)=>{L?.(t,s,l),F(null);},[L]);return jsxRuntime.jsxs("div",{className:"space-y-2",children:[$&&jsxRuntime.jsxs("div",{className:"flex items-center gap-2",children:[A&&jsxRuntime.jsxs("button",{type:"button",onClick:A,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsxRuntime.jsx(lucideReact.Plus,{className:"h-3.5 w-3.5"})," Add"]}),y&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>y(d),disabled:d.length===0,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-danger-600 transition-colors hover:bg-danger-50 disabled:opacity-40 disabled:pointer-events-none dark:border-secondary-600 dark:bg-secondary-800 dark:text-danger-400 dark:hover:bg-danger-900/20",children:[jsxRuntime.jsx(lucideReact.Trash2,{className:"h-3.5 w-3.5"})," Delete",d.length>0&&` (${d.length})`]}),K&&d.length===1&&jsxRuntime.jsxs("button",{type:"button",onClick:()=>{let t=r.find(s=>s.editable!==false);t&&F({rowKey:d[0],colKey:t.key});},className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsxRuntime.jsx(lucideReact.Pencil,{className:"h-3.5 w-3.5"})," Edit"]}),d.length>0&&jsxRuntime.jsxs("span",{className:"ml-auto text-sm text-secondary-500 dark:text-secondary-400",children:[d.length," row",d.length>1?"s":""," selected"]})]}),jsxRuntime.jsxs(W,{intent:z,density:n,className:g,children:[jsxRuntime.jsx(Y,{children:jsxRuntime.jsxs(U,{children:[o==="multiple"&&jsxRuntime.jsx(H,{className:"w-10",children:jsxRuntime.jsx("input",{type:"checkbox",checked:M,ref:t=>{t&&(t.indeterminate=ne);},onChange:se,className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select all"})}),o==="single"&&jsxRuntime.jsx(H,{className:"w-10"}),r.map(t=>{let s=t.sortable!==false,l=p?.column===t.key;return jsxRuntime.jsx(H,{className:m(s&&"cursor-pointer select-none",t.headerClassName),onClick:s?()=>T(t.key):void 0,"aria-sort":l?p.direction==="asc"?"ascending":"descending":void 0,children:jsxRuntime.jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,s&&jsxRuntime.jsx(te,{active:l,direction:l?p.direction:null})]})},t.key)}),R&&jsxRuntime.jsx(H,{className:"w-20 text-right",children:"Actions"})]})}),jsxRuntime.jsx(Z,{children:B.length===0?jsxRuntime.jsx("tr",{children:jsxRuntime.jsx("td",{colSpan:r.length+(o!=="none"?1:0)+(R?1:0),children:jsxRuntime.jsx(ee,{...u})})}):B.map((t,s)=>{let l=c(t,s),v=d.includes(l);return jsxRuntime.jsxs(U,{className:m(v&&"bg-primary-50/60 dark:bg-primary-900/20"),onClick:()=>{o!=="none"&&q(l);},children:[o==="multiple"&&jsxRuntime.jsx(P,{className:"w-10",children:jsxRuntime.jsx("input",{type:"checkbox",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select row"})}),o==="single"&&jsxRuntime.jsx(P,{className:"w-10",children:jsxRuntime.jsx("input",{type:"radio",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer accent-primary-600","aria-label":"Select row"})}),r.map(i=>{let w=J?.rowKey===l&&J?.colKey===i.key,N=i.editValue?.(t)??(()=>{let S=i.cell(t);return typeof S=="string"||typeof S=="number"?String(S):""})();return jsxRuntime.jsx(P,{className:m(i.cellClassName,K&&i.editable!==false&&"cursor-text"),onDoubleClick:S=>{S.stopPropagation(),oe(l,i.key,i.editable);},children:w?jsxRuntime.jsx(Te,{value:N,onCommit:S=>le(l,i.key,S),onCancel:()=>F(null)}):i.cell(t)},i.key)}),R&&jsxRuntime.jsx(P,{className:"text-right",onClick:i=>i.stopPropagation(),children:jsxRuntime.jsx("span",{className:"inline-flex items-center gap-1",children:R(t)})})]},l)})})]})]})}function te({active:r,direction:a}){let c="h-3.5 w-3.5 shrink-0";return !r||!a?jsxRuntime.jsx(lucideReact.ArrowUpDown,{className:m(c,"opacity-30")}):a==="asc"?jsxRuntime.jsx(lucideReact.ArrowUp,{className:m(c,"opacity-70")}):jsxRuntime.jsx(lucideReact.ArrowDown,{className:m(c,"opacity-70")})}exports.DataTable=Me;exports.SortableTable=Ie;exports.Table=W;exports.TableBody=Z;exports.TableCell=P;exports.TableEmpty=ee;exports.TableHead=H;exports.TableHeader=Y;exports.TableRow=U;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {useState,useCallback,useMemo,useRef,useEffect}from'react';import {Inbox,Plus,Trash2,Pencil,ArrowUpDown,ArrowUp,ArrowDown,Check,X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';function m(...r){return twMerge(clsx(r))}var O=cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function W({intent:r,density:a,className:d,...f}){return jsx("div",{className:"w-full overflow-auto",children:jsx("table",{className:m(O({intent:r,density:a}),d),...f})})}function Y({className:r,...a}){return jsx("thead",{className:m("bg-primary-50 text-primary-600 dark:bg-primary-800/50 dark:text-primary-400",r),...a})}function Z({className:r,...a}){return jsx("tbody",{className:m("[&_tr:last-child]:border-0",r),...a})}function U({className:r,...a}){return jsx("tr",{className:m("border-primary-200 hover:bg-primary-50/50 dark:border-primary-700 dark:hover:bg-primary-800/30 border-b transition-colors",r),...a})}function V({className:r,...a}){return jsx("th",{className:m("px-4 py-3 text-left text-xs font-semibold tracking-wider uppercase",r),...a})}function H({className:r,...a}){return jsx("td",{className:m("text-primary-700 dark:text-primary-300 px-4 py-3",r),...a})}function ee({icon:r,text:a="No data",className:d}){return jsxs("div",{className:m("flex flex-col items-center justify-center gap-3 py-16 text-primary-400 dark:text-primary-500",d),children:[r??jsx(Inbox,{className:"h-12 w-12 stroke-[1.2]"}),jsx("span",{className:"text-sm",children:a})]})}var Q={sm:"hidden sm:table-cell",md:"hidden md:table-cell",lg:"hidden lg:table-cell"};function Be({columns:r,data:a,sort:d,onSortChange:f,defaultSort:T=null,rowKey:x,rowActions:o,intent:h,density:X,className:C,empty:L}){let[$,A]=useState(T),y=d??$,K=useCallback(n=>{let g=y?.column===n?y.direction==="asc"?{column:n,direction:"desc"}:null:{column:n,direction:"asc"};f?f(g):A(g);},[y,f]),B=useMemo(()=>{if(!y)return a;let n=r.find(P=>P.key===y.column);if(!n)return a;let g=n.compareFn??((P,j)=>{let p=n.cell(P),k=n.cell(j);return p==null&&k==null?0:p==null?-1:k==null?1:typeof p=="number"&&typeof k=="number"?p-k:String(p).localeCompare(String(k))}),u=[...a].sort(g);return y.direction==="desc"?u.reverse():u},[a,y,r]);return jsxs(W,{intent:h,density:X,className:C,children:[jsx(Y,{children:jsxs(U,{children:[r.map(n=>{let g=n.sortable!==false,u=y?.column===n.key;return jsx(V,{className:m(g&&"cursor-pointer select-none",n.headerClassName,n.hideBelow&&Q[n.hideBelow]),onClick:g?()=>K(n.key):void 0,"aria-sort":u?y.direction==="asc"?"ascending":"descending":void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[n.header,g&&jsx(te,{active:u,direction:u?y.direction:null})]})},n.key)}),o&&jsx(V,{className:"w-20 text-right",children:"Actions"})]})}),jsx(Z,{children:B.length===0?jsx("tr",{children:jsx("td",{colSpan:r.length+(o?1:0),children:jsx(ee,{...L})})}):B.map((n,g)=>jsxs(U,{children:[r.map(u=>jsx(H,{className:m(u.cellClassName,u.hideBelow&&Q[u.hideBelow]),children:u.cell(n)},u.key)),o&&jsx(H,{className:"text-right",children:jsx("span",{className:"inline-flex items-center gap-1",children:o(n)})})]},x?x(n,g):g))})]})}function ke({value:r,onCommit:a,onCancel:d}){let[f,T]=useState(r),x=useRef(null);useEffect(()=>{x.current?.focus(),x.current?.select();},[]);let o=()=>a(f);return jsxs("span",{className:"flex items-center gap-1",children:[jsx("input",{ref:x,type:"text",value:f,onChange:h=>T(h.target.value),onKeyDown:h=>{h.key==="Enter"&&o(),h.key==="Escape"&&d();},"aria-label":"Edit cell",className:"min-w-0 flex-1 rounded border border-primary-400 bg-white px-1.5 py-0.5 text-sm outline-none focus:ring-1 focus:ring-primary-400 dark:border-primary-600 dark:bg-secondary-800"}),jsx("button",{type:"button",onClick:o,className:"text-success-600 hover:text-success-700 dark:text-success-400","aria-label":"Confirm",children:jsx(Check,{className:"h-3.5 w-3.5"})}),jsx("button",{type:"button",onClick:d,className:"text-danger-500 hover:text-danger-600 dark:text-danger-400","aria-label":"Cancel",children:jsx(X,{className:"h-3.5 w-3.5"})})]})}function Ie({columns:r,data:a,rowKey:d,sort:f,onSortChange:T,defaultSort:x=null,selectionMode:o="none",selected:h,onSelectionChange:X,editable:C=false,onCellEdit:L,toolbar:$=false,onAdd:A,onDelete:y,rowActions:K,intent:B,density:n,className:g,empty:u}){let[P,j]=useState(x),p=f??P,k=useCallback(t=>{let s=p?.column===t?p.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"};T?T(s):j(s);},[p,T]),I=useMemo(()=>{if(!p)return a;let t=r.find(v=>v.key===p.column);if(!t)return a;let s=t.compareFn??((v,i)=>{let N=t.cell(v),w=t.cell(i);return N==null&&w==null?0:N==null?-1:w==null?1:typeof N=="number"&&typeof w=="number"?N-w:String(N).localeCompare(String(w))}),l=[...a].sort(s);return p.direction==="desc"?l.reverse():l},[a,p,r]),[re,ae]=useState([]),c=h??re,R=X??ae,M=useMemo(()=>I.map((t,s)=>d(t,s)),[I,d]),z=o==="multiple"&&M.length>0&&M.every(t=>c.includes(t)),ne=o==="multiple"&&c.length>0&&!z,q=useCallback(t=>{o==="single"?R(c.includes(t)?[]:[t]):o==="multiple"&&R(c.includes(t)?c.filter(s=>s!==t):[...c,t]);},[o,c,R]),se=useCallback(()=>{R(z?[]:M);},[z,M,R]),[J,F]=useState(null),oe=useCallback((t,s,l)=>{C&&l!==false&&F({rowKey:t,colKey:s});},[C]),le=useCallback((t,s,l)=>{L?.(t,s,l),F(null);},[L]);return jsxs("div",{className:"space-y-2",children:[$&&jsxs("div",{className:"flex items-center gap-2",children:[A&&jsxs("button",{type:"button",onClick:A,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsx(Plus,{className:"h-3.5 w-3.5"})," Add"]}),y&&jsxs("button",{type:"button",onClick:()=>y(c),disabled:c.length===0,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-danger-600 transition-colors hover:bg-danger-50 disabled:opacity-40 disabled:pointer-events-none dark:border-secondary-600 dark:bg-secondary-800 dark:text-danger-400 dark:hover:bg-danger-900/20",children:[jsx(Trash2,{className:"h-3.5 w-3.5"})," Delete",c.length>0&&` (${c.length})`]}),C&&c.length===1&&jsxs("button",{type:"button",onClick:()=>{let t=r.find(s=>s.editable!==false);t&&F({rowKey:c[0],colKey:t.key});},className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsx(Pencil,{className:"h-3.5 w-3.5"})," Edit"]}),c.length>0&&jsxs("span",{className:"ml-auto text-sm text-secondary-500 dark:text-secondary-400",children:[c.length," row",c.length>1?"s":""," selected"]})]}),jsxs(W,{intent:B,density:n,className:g,children:[jsx(Y,{children:jsxs(U,{children:[o==="multiple"&&jsx(V,{className:"w-10",children:jsx("input",{type:"checkbox",checked:z,ref:t=>{t&&(t.indeterminate=ne);},onChange:se,className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select all"})}),o==="single"&&jsx(V,{className:"w-10"}),r.map(t=>{let s=t.sortable!==false,l=p?.column===t.key;return jsx(V,{className:m(s&&"cursor-pointer select-none",t.headerClassName),onClick:s?()=>k(t.key):void 0,"aria-sort":l?p.direction==="asc"?"ascending":"descending":void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,s&&jsx(te,{active:l,direction:l?p.direction:null})]})},t.key)}),K&&jsx(V,{className:"w-20 text-right",children:"Actions"})]})}),jsx(Z,{children:I.length===0?jsx("tr",{children:jsx("td",{colSpan:r.length+(o!=="none"?1:0)+(K?1:0),children:jsx(ee,{...u})})}):I.map((t,s)=>{let l=d(t,s),v=c.includes(l);return jsxs(U,{className:m(v&&"bg-primary-50/60 dark:bg-primary-900/20"),onClick:()=>{o!=="none"&&q(l);},children:[o==="multiple"&&jsx(H,{className:"w-10",children:jsx("input",{type:"checkbox",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select row"})}),o==="single"&&jsx(H,{className:"w-10",children:jsx("input",{type:"radio",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer accent-primary-600","aria-label":"Select row"})}),r.map(i=>{let N=J?.rowKey===l&&J?.colKey===i.key,w=i.editValue?.(t)??(()=>{let S=i.cell(t);return typeof S=="string"||typeof S=="number"?String(S):""})();return jsx(H,{className:m(i.cellClassName,C&&i.editable!==false&&"cursor-text"),onDoubleClick:S=>{S.stopPropagation(),oe(l,i.key,i.editable);},children:N?jsx(ke,{value:w,onCommit:S=>le(l,i.key,S),onCancel:()=>F(null)}):i.cell(t)},i.key)}),K&&jsx(H,{className:"text-right",onClick:i=>i.stopPropagation(),children:jsx("span",{className:"inline-flex items-center gap-1",children:K(t)})})]},l)})})]})]})}function te({active:r,direction:a}){let d="h-3.5 w-3.5 shrink-0";return !r||!a?jsx(ArrowUpDown,{className:m(d,"opacity-30")}):a==="asc"?jsx(ArrowUp,{className:m(d,"opacity-70")}):jsx(ArrowDown,{className:m(d,"opacity-70")})}export{Ie as DataTable,Be as SortableTable,W as Table,Z as TableBody,H as TableCell,ee as TableEmpty,V as TableHead,Y as TableHeader,U as TableRow};
|
|
1
|
+
import {useState,useCallback,useMemo,useRef,useEffect}from'react';import {Inbox,Plus,Trash2,Pencil,ArrowUpDown,ArrowUp,ArrowDown,Check,X}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,jsxs}from'react/jsx-runtime';function m(...r){return twMerge(clsx(r))}var O=cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function W({intent:r,density:a,className:c,...f}){return jsx("div",{className:"w-full overflow-auto",children:jsx("table",{className:m(O({intent:r,density:a}),c),...f})})}function Y({className:r,...a}){return jsx("thead",{className:m("bg-primary-50 text-primary-600 dark:bg-primary-800/50 dark:text-primary-400",r),...a})}function Z({className:r,...a}){return jsx("tbody",{className:m("[&_tr:last-child]:border-0",r),...a})}function U({className:r,...a}){return jsx("tr",{className:m("border-primary-200 hover:bg-primary-50/50 dark:border-primary-700 dark:hover:bg-primary-800/30 border-b transition-colors",r),...a})}function H({className:r,...a}){return jsx("th",{className:m("px-4 py-3 text-left text-xs font-semibold tracking-wider uppercase",r),...a})}function P({className:r,...a}){return jsx("td",{className:m("text-primary-700 dark:text-primary-300 px-4 py-3",r),...a})}function ee({icon:r,text:a="No data",className:c}){return jsxs("div",{className:m("flex flex-col items-center justify-center gap-3 py-16 text-primary-400 dark:text-primary-500",c),children:[r??jsx(Inbox,{className:"h-12 w-12 stroke-[1.2]"}),jsx("span",{className:"text-sm",children:a})]})}var Q={sm:"hidden sm:table-cell",md:"hidden md:table-cell",lg:"hidden lg:table-cell"};function Ie({columns:r,data:a,sort:c,onSortChange:f,defaultSort:k=null,rowKey:x,rowActions:o,intent:h,density:X,className:K,empty:L}){let[$,A]=useState(k),y=c??$,R=useCallback(n=>{let g=y?.column===n?y.direction==="asc"?{column:n,direction:"desc"}:null:{column:n,direction:"asc"};f?f(g):A(g);},[y,f]),z=useMemo(()=>{if(!y)return a;let n=r.find(E=>E.key===y.column);if(!n)return a;let g=n.compareFn??((E,j)=>{let p=n.cell(E),T=n.cell(j);return p==null&&T==null?0:p==null?-1:T==null?1:typeof p=="number"&&typeof T=="number"?p-T:String(p).localeCompare(String(T))}),u=[...a].sort(g);return y.direction==="desc"?u.reverse():u},[a,y,r]);return jsxs(W,{intent:h,density:X,className:K,children:[jsx(Y,{children:jsxs(U,{children:[r.map(n=>{let g=n.sortable!==false,u=y?.column===n.key;return jsx(H,{className:m(g&&"cursor-pointer select-none",n.headerClassName,n.hideBelow&&Q[n.hideBelow]),onClick:g?()=>R(n.key):void 0,"aria-sort":u?y.direction==="asc"?"ascending":"descending":void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[n.header,g&&jsx(te,{active:u,direction:u?y.direction:null})]})},n.key)}),o&&jsx(H,{className:"w-20 text-right",children:"Actions"})]})}),jsx(Z,{children:z.length===0?jsx("tr",{children:jsx("td",{colSpan:r.length+(o?1:0),children:jsx(ee,{...L})})}):z.map((n,g)=>jsxs(U,{children:[r.map(u=>jsx(P,{className:m(u.cellClassName,u.hideBelow&&Q[u.hideBelow]),children:u.cell(n)},u.key)),o&&jsx(P,{className:"text-right",children:jsx("span",{className:"inline-flex items-center gap-1",children:o(n)})})]},x?x(n,g):g))})]})}function Te({value:r,onCommit:a,onCancel:c}){let[f,k]=useState(r),x=useRef(null);useEffect(()=>{x.current?.focus(),x.current?.select();},[]);let o=()=>a(f);return jsxs("span",{className:"flex items-center gap-1",children:[jsx("input",{ref:x,type:"text",value:f,onChange:h=>k(h.target.value),onKeyDown:h=>{h.key==="Enter"&&o(),h.key==="Escape"&&c();},"aria-label":"Edit cell",className:"min-w-0 flex-1 rounded border border-primary-400 bg-white px-1.5 py-0.5 text-sm outline-none focus:ring-1 focus:ring-primary-400 dark:border-primary-600 dark:bg-secondary-800"}),jsx("button",{type:"button",onClick:o,className:"text-success-600 hover:text-success-700 dark:text-success-400","aria-label":"Confirm",children:jsx(Check,{className:"h-3.5 w-3.5"})}),jsx("button",{type:"button",onClick:c,className:"text-danger-500 hover:text-danger-600 dark:text-danger-400","aria-label":"Cancel",children:jsx(X,{className:"h-3.5 w-3.5"})})]})}function Me({columns:r,data:a,rowKey:c,sort:f,onSortChange:k,defaultSort:x=null,selectionMode:o="none",selected:h,onSelectionChange:X,editable:K=false,onCellEdit:L,toolbar:$=false,onAdd:A,onDelete:y,rowActions:R,intent:z,density:n,className:g,empty:u}){let[E,j]=useState(x),p=f??E,T=useCallback(t=>{let s=p?.column===t?p.direction==="asc"?{column:t,direction:"desc"}:null:{column:t,direction:"asc"};k?k(s):j(s);},[p,k]),B=useMemo(()=>{if(!p)return a;let t=r.find(v=>v.key===p.column);if(!t)return a;let s=t.compareFn??((v,i)=>{let w=t.cell(v),N=t.cell(i);return w==null&&N==null?0:w==null?-1:N==null?1:typeof w=="number"&&typeof N=="number"?w-N:String(w).localeCompare(String(N))}),l=[...a].sort(s);return p.direction==="desc"?l.reverse():l},[a,p,r]),[re,ae]=useState([]),d=h??re,_=X??ae,I=useMemo(()=>B.map((t,s)=>c(t,s)),[B,c]),M=o==="multiple"&&I.length>0&&I.every(t=>d.includes(t)),ne=o==="multiple"&&d.length>0&&!M,q=useCallback(t=>{o==="single"?_(d.includes(t)?[]:[t]):o==="multiple"&&_(d.includes(t)?d.filter(s=>s!==t):[...d,t]);},[o,d,_]),se=useCallback(()=>{_(M?[]:I);},[M,I,_]),[J,F]=useState(null),oe=useCallback((t,s,l)=>{K&&l!==false&&F({rowKey:t,colKey:s});},[K]),le=useCallback((t,s,l)=>{L?.(t,s,l),F(null);},[L]);return jsxs("div",{className:"space-y-2",children:[$&&jsxs("div",{className:"flex items-center gap-2",children:[A&&jsxs("button",{type:"button",onClick:A,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsx(Plus,{className:"h-3.5 w-3.5"})," Add"]}),y&&jsxs("button",{type:"button",onClick:()=>y(d),disabled:d.length===0,className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-danger-600 transition-colors hover:bg-danger-50 disabled:opacity-40 disabled:pointer-events-none dark:border-secondary-600 dark:bg-secondary-800 dark:text-danger-400 dark:hover:bg-danger-900/20",children:[jsx(Trash2,{className:"h-3.5 w-3.5"})," Delete",d.length>0&&` (${d.length})`]}),K&&d.length===1&&jsxs("button",{type:"button",onClick:()=>{let t=r.find(s=>s.editable!==false);t&&F({rowKey:d[0],colKey:t.key});},className:"inline-flex items-center gap-1.5 rounded-md border border-secondary-300 bg-white px-3 py-1.5 text-sm font-medium text-secondary-700 transition-colors hover:bg-secondary-50 dark:border-secondary-600 dark:bg-secondary-800 dark:text-secondary-300 dark:hover:bg-secondary-700",children:[jsx(Pencil,{className:"h-3.5 w-3.5"})," Edit"]}),d.length>0&&jsxs("span",{className:"ml-auto text-sm text-secondary-500 dark:text-secondary-400",children:[d.length," row",d.length>1?"s":""," selected"]})]}),jsxs(W,{intent:z,density:n,className:g,children:[jsx(Y,{children:jsxs(U,{children:[o==="multiple"&&jsx(H,{className:"w-10",children:jsx("input",{type:"checkbox",checked:M,ref:t=>{t&&(t.indeterminate=ne);},onChange:se,className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select all"})}),o==="single"&&jsx(H,{className:"w-10"}),r.map(t=>{let s=t.sortable!==false,l=p?.column===t.key;return jsx(H,{className:m(s&&"cursor-pointer select-none",t.headerClassName),onClick:s?()=>T(t.key):void 0,"aria-sort":l?p.direction==="asc"?"ascending":"descending":void 0,children:jsxs("span",{className:"inline-flex items-center gap-1",children:[t.header,s&&jsx(te,{active:l,direction:l?p.direction:null})]})},t.key)}),R&&jsx(H,{className:"w-20 text-right",children:"Actions"})]})}),jsx(Z,{children:B.length===0?jsx("tr",{children:jsx("td",{colSpan:r.length+(o!=="none"?1:0)+(R?1:0),children:jsx(ee,{...u})})}):B.map((t,s)=>{let l=c(t,s),v=d.includes(l);return jsxs(U,{className:m(v&&"bg-primary-50/60 dark:bg-primary-900/20"),onClick:()=>{o!=="none"&&q(l);},children:[o==="multiple"&&jsx(P,{className:"w-10",children:jsx("input",{type:"checkbox",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer rounded border-secondary-300 accent-primary-600","aria-label":"Select row"})}),o==="single"&&jsx(P,{className:"w-10",children:jsx("input",{type:"radio",checked:v,onChange:()=>q(l),onClick:i=>i.stopPropagation(),className:"h-4 w-4 cursor-pointer accent-primary-600","aria-label":"Select row"})}),r.map(i=>{let w=J?.rowKey===l&&J?.colKey===i.key,N=i.editValue?.(t)??(()=>{let S=i.cell(t);return typeof S=="string"||typeof S=="number"?String(S):""})();return jsx(P,{className:m(i.cellClassName,K&&i.editable!==false&&"cursor-text"),onDoubleClick:S=>{S.stopPropagation(),oe(l,i.key,i.editable);},children:w?jsx(Te,{value:N,onCommit:S=>le(l,i.key,S),onCancel:()=>F(null)}):i.cell(t)},i.key)}),R&&jsx(P,{className:"text-right",onClick:i=>i.stopPropagation(),children:jsx("span",{className:"inline-flex items-center gap-1",children:R(t)})})]},l)})})]})]})}function te({active:r,direction:a}){let c="h-3.5 w-3.5 shrink-0";return !r||!a?jsx(ArrowUpDown,{className:m(c,"opacity-30")}):a==="asc"?jsx(ArrowUp,{className:m(c,"opacity-70")}):jsx(ArrowDown,{className:m(c,"opacity-70")})}export{Me as DataTable,Ie as SortableTable,W as Table,Z as TableBody,P as TableCell,ee as TableEmpty,H as TableHead,Y as TableHeader,U as TableRow};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var u=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var u__default=/*#__PURE__*/_interopDefault(u);function d(...s){return tailwindMerge.twMerge(clsx.clsx(s))}classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});var
|
|
1
|
+
'use strict';var u=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var u__default=/*#__PURE__*/_interopDefault(u);function d(...s){return tailwindMerge.twMerge(clsx.clsx(s))}classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});var k=classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});var C=u.createContext({showLines:true,expandedKeys:null,onToggleKey:()=>{},size:"md"});function Z({showLines:s=true,showRoot:a=true,expandedKeys:e,defaultExpandedKeys:g="all",onExpandedKeysChange:x,size:y="md",className:m,children:c,...h}){let [b,l]=u.useState(()=>g),v=u.useCallback(o=>{if(e){let r=new Set(e);r.has(o)?r.delete(o):r.add(o),x?.(r);}else l(r=>{if(r==="all")return new Set(["__ALL_MINUS__",o]);let n=new Set(r);return n.has(o)?n.delete(o):n.add(o),n});},[e,x]),_=e??(b==="all"?null:b);return jsxRuntime.jsx(C.Provider,{value:{showLines:s,expandedKeys:_,onToggleKey:v,size:y},children:a?jsxRuntime.jsx("ul",{className:d("text-sm",m),role:"tree",...h,children:c}):jsxRuntime.jsx("ul",{className:d("text-sm",m),role:"tree",...h,children:jsxRuntime.jsx(E,{children:c})})})}function E({children:s}){let a=V(s);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:a.map(e=>u__default.default.isValidElement(e)&&e.props.children?e.props.children:null)})}function V(s){let a=[];return u__default.default.Children.forEach(s,e=>{u__default.default.isValidElement(e)&&e.type===u__default.default.Fragment?a.push(...V(e.props.children)):a.push(e);}),a}function $({nodeKey:s,label:a,icon:e,actions:g,defaultExpanded:x=false,expanded:y,onToggle:m,children:c,className:h}){let{showLines:b,expandedKeys:l,onToggleKey:w,size:v}=u.useContext(C),[_,o]=u.useState(x),r=u__default.default.Children.count(c)>0,n=s??(typeof a=="string"?a:""),i;y!=null?i=y:l!=null&&n?l.has("__ALL_MINUS__")?i=!l.has(n):i=l.has(n):i=_;let T=()=>{let f=!i;m?m(f):l!=null&&n?w(n):o(f);};return jsxRuntime.jsxs("li",{className:d("select-none",h),role:"treeitem","aria-expanded":r?i:void 0,children:[jsxRuntime.jsxs("div",{className:d("group hover:bg-primary-50 dark:hover:bg-primary-800/50 rounded-md px-1",k({size:v}),r?"cursor-pointer":"cursor-default"),onClick:r?T:void 0,children:[r?jsxRuntime.jsx(lucideReact.ChevronRight,{className:d("text-primary-400 h-4 w-4 shrink-0 transition-transform duration-200",i&&"rotate-90")}):jsxRuntime.jsx("span",{className:"w-4 shrink-0"}),e&&jsxRuntime.jsx("span",{className:"shrink-0",children:e}),jsxRuntime.jsx("span",{className:"text-primary-700 dark:text-primary-300 min-w-0 flex-1 truncate",children:a}),g&&jsxRuntime.jsx("span",{className:"ml-auto flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100 [@media(hover:none)]:[&>button]:min-h-(--row-action-touch-min) [@media(hover:none)]:[&>button]:min-w-(--row-action-touch-min) [@media(hover:none)]:[&>button]:flex [@media(hover:none)]:[&>button]:items-center [@media(hover:none)]:[&>button]:justify-center",onClick:f=>f.stopPropagation(),children:g})]}),r&&jsxRuntime.jsx("div",{className:d("grid transition-[grid-template-rows] duration-200 ease-out",i?"grid-rows-[1fr]":"grid-rows-[0fr]"),children:jsxRuntime.jsx("div",{className:"overflow-hidden",children:jsxRuntime.jsx("ul",{className:d("ml-4 pl-2",b&&"border-primary-200 dark:border-primary-700 border-l"),role:"group",children:c})})})]})}exports.Tree=Z;exports.TreeItem=$;
|
package/dist/DataDisplay/Tree.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import u,{createContext,useState,useCallback,useContext}from'react';import {ChevronRight}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,Fragment,jsxs}from'react/jsx-runtime';function d(...s){return twMerge(clsx(s))}cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});var
|
|
1
|
+
import u,{createContext,useState,useCallback,useContext}from'react';import {ChevronRight}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,Fragment,jsxs}from'react/jsx-runtime';function d(...s){return twMerge(clsx(s))}cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}});cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});var k=cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}});cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});var C=createContext({showLines:true,expandedKeys:null,onToggleKey:()=>{},size:"md"});function Z({showLines:s=true,showRoot:a=true,expandedKeys:e,defaultExpandedKeys:g="all",onExpandedKeysChange:x,size:y="md",className:m,children:c,...h}){let [b,l]=useState(()=>g),v=useCallback(o=>{if(e){let r=new Set(e);r.has(o)?r.delete(o):r.add(o),x?.(r);}else l(r=>{if(r==="all")return new Set(["__ALL_MINUS__",o]);let n=new Set(r);return n.has(o)?n.delete(o):n.add(o),n});},[e,x]),_=e??(b==="all"?null:b);return jsx(C.Provider,{value:{showLines:s,expandedKeys:_,onToggleKey:v,size:y},children:a?jsx("ul",{className:d("text-sm",m),role:"tree",...h,children:c}):jsx("ul",{className:d("text-sm",m),role:"tree",...h,children:jsx(E,{children:c})})})}function E({children:s}){let a=V(s);return jsx(Fragment,{children:a.map(e=>u.isValidElement(e)&&e.props.children?e.props.children:null)})}function V(s){let a=[];return u.Children.forEach(s,e=>{u.isValidElement(e)&&e.type===u.Fragment?a.push(...V(e.props.children)):a.push(e);}),a}function $({nodeKey:s,label:a,icon:e,actions:g,defaultExpanded:x=false,expanded:y,onToggle:m,children:c,className:h}){let{showLines:b,expandedKeys:l,onToggleKey:w,size:v}=useContext(C),[_,o]=useState(x),r=u.Children.count(c)>0,n=s??(typeof a=="string"?a:""),i;y!=null?i=y:l!=null&&n?l.has("__ALL_MINUS__")?i=!l.has(n):i=l.has(n):i=_;let T=()=>{let f=!i;m?m(f):l!=null&&n?w(n):o(f);};return jsxs("li",{className:d("select-none",h),role:"treeitem","aria-expanded":r?i:void 0,children:[jsxs("div",{className:d("group hover:bg-primary-50 dark:hover:bg-primary-800/50 rounded-md px-1",k({size:v}),r?"cursor-pointer":"cursor-default"),onClick:r?T:void 0,children:[r?jsx(ChevronRight,{className:d("text-primary-400 h-4 w-4 shrink-0 transition-transform duration-200",i&&"rotate-90")}):jsx("span",{className:"w-4 shrink-0"}),e&&jsx("span",{className:"shrink-0",children:e}),jsx("span",{className:"text-primary-700 dark:text-primary-300 min-w-0 flex-1 truncate",children:a}),g&&jsx("span",{className:"ml-auto flex shrink-0 items-center gap-1 opacity-0 transition-opacity group-hover:opacity-100 [@media(hover:none)]:opacity-100 [@media(hover:none)]:[&>button]:min-h-(--row-action-touch-min) [@media(hover:none)]:[&>button]:min-w-(--row-action-touch-min) [@media(hover:none)]:[&>button]:flex [@media(hover:none)]:[&>button]:items-center [@media(hover:none)]:[&>button]:justify-center",onClick:f=>f.stopPropagation(),children:g})]}),r&&jsx("div",{className:d("grid transition-[grid-template-rows] duration-200 ease-out",i?"grid-rows-[1fr]":"grid-rows-[0fr]"),children:jsx("div",{className:"overflow-hidden",children:jsx("ul",{className:d("ml-4 pl-2",b&&"border-primary-200 dark:border-primary-700 border-l"),role:"group",children:c})})})]})}export{Z as Tree,$ as TreeItem};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var w=require('react');require('lucide-react');var clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var w__default=/*#__PURE__*/_interopDefault(w);function s(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var I=classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}}),z=classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});var R=classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function S({intent:e,density:t,className:r,...i}){return jsxRuntime.jsx("div",{className:"w-full overflow-auto",children:jsxRuntime.jsx("table",{className:s(I({intent:e,density:t}),r),...i})})}var Y=w.createContext({size:"md"});function _({intent:e,size:t="md",className:r,...i}){return jsxRuntime.jsx(Y.Provider,{value:{size:t},children:jsxRuntime.jsx("ul",{className:s(z({intent:e}),r),...i})})}var re=w.createContext({showLines:true,expandedKeys:null,onToggleKey:()=>{},size:"md"});function K({showLines:e=true,showRoot:t=true,expandedKeys:r,defaultExpandedKeys:i="all",onExpandedKeysChange:a,size:l="md",className:c,children:f,...u}){let [T,b]=w.useState(()=>i),x=w.useCallback(p=>{if(r){let m=new Set(r);m.has(p)?m.delete(p):m.add(p),a?.(m);}else b(m=>{if(m==="all")return new Set(["__ALL_MINUS__",p]);let g=new Set(m);return g.has(p)?g.delete(p):g.add(p),g});},[r,a]),C=r??(T==="all"?null:T);return jsxRuntime.jsx(re.Provider,{value:{showLines:e,expandedKeys:C,onToggleKey:x,size:l},children:t?jsxRuntime.jsx("ul",{className:s("text-sm",c),role:"tree",...u,children:f}):jsxRuntime.jsx("ul",{className:s("text-sm",c),role:"tree",...u,children:jsxRuntime.jsx(ae,{children:f})})})}function ae({children:e}){let t=j(e);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map(r=>w__default.default.isValidElement(r)&&r.props.children?r.props.children:null)})}function j(e){let t=[];return w__default.default.Children.forEach(e,r=>{w__default.default.isValidElement(r)&&r.type===w__default.default.Fragment?t.push(...j(r.props.children)):t.push(r);}),t}function ie({avatar:e,sender:t}){return e?typeof e=="string"?/^(?:https?|data|blob):/.test(e)?jsxRuntime.jsx("img",{src:e,alt:t,className:"h-8 w-8 shrink-0 rounded-full object-cover",draggable:false}):jsxRuntime.jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-lg select-none",children:e}):jsxRuntime.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full",children:e}):jsxRuntime.jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-sm font-semibold select-none",children:t.charAt(0).toUpperCase()})}function le({msg:e,alignRight:t}){return jsxRuntime.jsxs("div",{className:s("flex gap-2.5",t?"flex-row-reverse":"flex-row"),children:[jsxRuntime.jsx(ie,{avatar:e.avatar,sender:e.sender}),jsxRuntime.jsxs("div",{className:s("flex max-w-[75%] flex-col gap-0.5",t?"items-end":"items-start"),children:[jsxRuntime.jsx("span",{className:"text-primary-500 dark:text-primary-400 text-xs",children:e.sender}),jsxRuntime.jsx("div",{className:s("rounded-xl px-3 py-2 text-sm leading-relaxed",t?"rounded-tr-sm bg-primary-500 text-white dark:bg-primary-600":"bg-primary-100 text-primary-800 dark:bg-primary-800 dark:text-primary-200 rounded-tl-sm"),children:e.content}),e.time&&jsxRuntime.jsx("span",{className:"text-primary-400 dark:text-primary-500 text-[10px]",children:e.time})]})]})}function P({messages:e,mode:t="split",autoScroll:r=true,className:i,...a}){let l=w.useRef(null);return w.useEffect(()=>{r&&l.current?.scrollIntoView({behavior:"smooth"});},[e,r]),jsxRuntime.jsxs("div",{className:s("flex flex-col gap-4 overflow-y-auto rounded-lg border p-4","border-primary-200 dark:border-primary-700 dark:bg-primary-900 bg-white",i),...a,children:[e.map(c=>{let f=t==="split"&&!!c.self;return jsxRuntime.jsx(le,{msg:c,alignRight:f},c.id)}),jsxRuntime.jsx("div",{ref:l})]})}var pe={name:"onyx-css-vars",type:"dark",settings:[{settings:{foreground:"var(--color-syntax-plain)",background:"var(--color-syntax-bg)"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"var(--color-syntax-comment)",fontStyle:"italic"}},{scope:["keyword","keyword.control","keyword.operator.new","keyword.operator.expression","storage.type","storage.modifier"],settings:{foreground:"var(--color-syntax-keyword)"}},{scope:["string","string.quoted","string.template"],settings:{foreground:"var(--color-syntax-string)"}},{scope:["entity.name.function","support.function","meta.function-call"],settings:{foreground:"var(--color-syntax-function)"}},{scope:["variable","variable.other","variable.parameter","meta.definition.variable"],settings:{foreground:"var(--color-syntax-variable)"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"var(--color-syntax-number)"}},{scope:["keyword.operator","keyword.operator.assignment","keyword.operator.comparison","keyword.operator.arithmetic"],settings:{foreground:"var(--color-syntax-operator)"}},{scope:["entity.name.tag","punctuation.definition.tag","support.class.component"],settings:{foreground:"var(--color-syntax-tag)"}},{scope:["entity.other.attribute-name","meta.tag.attributes"],settings:{foreground:"var(--color-syntax-attr)"}},{scope:["punctuation","meta.brace","punctuation.definition.block","punctuation.separator","punctuation.terminator"],settings:{foreground:"var(--color-syntax-punctuation)"}},{scope:["entity.name.type","support.type","support.class","entity.other.inherited-class"],settings:{foreground:"var(--color-syntax-type)"}}]},me={typescript:()=>import('@shikijs/langs/typescript'),javascript:()=>import('@shikijs/langs/javascript'),tsx:()=>import('@shikijs/langs/tsx'),jsx:()=>import('@shikijs/langs/jsx'),html:()=>import('@shikijs/langs/html'),css:()=>import('@shikijs/langs/css'),json:()=>import('@shikijs/langs/json'),markdown:()=>import('@shikijs/langs/markdown'),python:()=>import('@shikijs/langs/python'),rust:()=>import('@shikijs/langs/rust'),go:()=>import('@shikijs/langs/go'),java:()=>import('@shikijs/langs/java'),c:()=>import('@shikijs/langs/c'),cpp:()=>import('@shikijs/langs/cpp'),csharp:()=>import('@shikijs/langs/csharp'),vue:()=>import('@shikijs/langs/vue'),xml:()=>import('@shikijs/langs/xml'),yaml:()=>import('@shikijs/langs/yaml'),sql:()=>import('@shikijs/langs/sql'),bash:()=>import('@shikijs/langs/bash'),shell:()=>import('@shikijs/langs/shell')},V=null,U=new Set;function ue(){return V||(V=Promise.all([import('shiki/core'),import('shiki/engine/javascript')]).then(([{createHighlighterCore:e},{createJavaScriptRegexEngine:t}])=>e({themes:[pe],langs:[],engine:t()}))),V}async function ye(e,t,r){let i=await ue();if(t&&!U.has(t)){let l=me[t];if(l)try{let c=await l();await i.loadLanguage(c.default??c),U.add(t);}catch{t="text";}else t="text";}let a=i.codeToHtml(e,{lang:t||"text",theme:"onyx-css-vars"});if(a=a.replace(/(<pre [^>]*style=")/,"$1line-height:1.7;tab-size:2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;"),r){let l=0;a=a.replace(/<span class="line">/g,()=>(l++,`<span class="line"><span class="line-number" data-line="${l}"></span>`));}return a}function M({code:e,language:t="text",lineNumbers:r=false,editable:i=false,onCodeChange:a,size:l,className:c,...f}){let[u,T]=w.useState(""),b=w.useRef(null),N=w.useRef(null),x=w.useRef(null);w.useEffect(()=>{let n=false;return ye(e,t,i?false:r).then(o=>{n||T(o);}),()=>{n=true;}},[e,t,r,i]);let C=w.useCallback(()=>{let n=N.current,o=x.current?.querySelector("pre"),h=b.current?.querySelector("[data-gutter]");n&&o&&(o.scrollTop=n.scrollTop,o.scrollLeft=n.scrollLeft),n&&h&&(h.scrollTop=n.scrollTop);},[]),p=w.useCallback(n=>{a?.(n.target.value);},[a]),m=w.useCallback(n=>{if(n.key==="Tab"){n.preventDefault();let o=n.currentTarget,h=o.selectionStart,$=o.selectionEnd,G=o.value.substring(0,h)+" "+o.value.substring($);a?.(G),requestAnimationFrame(()=>{o.selectionStart=o.selectionEnd=h+2;});}},[a]),g=r&&"[&_.line-number]:inline-block [&_.line-number]:w-8 [&_.line-number]:mr-4 [&_.line-number]:text-right [&_.line-number]:text-secondary-400 [&_.line-number]:select-none [&_.line-number]:before:content-[attr(data-line)]",D="ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",A=1.7,O=e.split(`
|
|
2
|
-
`).length;return
|
|
1
|
+
'use strict';Object.defineProperty(exports,'__esModule',{value:true});var L=require('react'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),classVarianceAuthority=require('class-variance-authority'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var L__default=/*#__PURE__*/_interopDefault(L);function i(...e){return tailwindMerge.twMerge(clsx.clsx(e))}var q=classVarianceAuthority.cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}}),O=classVarianceAuthority.cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});classVarianceAuthority.cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});classVarianceAuthority.cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});var $=classVarianceAuthority.cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}}),G=classVarianceAuthority.cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}}),V=classVarianceAuthority.cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function P({intent:e,density:t,className:r,...s}){return jsxRuntime.jsx("div",{className:"w-full overflow-auto",children:jsxRuntime.jsx("table",{className:i(q({intent:e,density:t}),r),...s})})}var le=L.createContext({size:"md"});function M({intent:e,size:t="md",className:r,...s}){return jsxRuntime.jsx(le.Provider,{value:{size:t},children:jsxRuntime.jsx("ul",{className:i(O({intent:e}),r),...s})})}var me=L.createContext({showLines:true,expandedKeys:null,onToggleKey:()=>{},size:"md"});function H({showLines:e=true,showRoot:t=true,expandedKeys:r,defaultExpandedKeys:s="all",onExpandedKeysChange:a,size:n="md",className:l,children:c,...o}){let [y,g]=L.useState(()=>s),d=L.useCallback(u=>{if(r){let f=new Set(r);f.has(u)?f.delete(u):f.add(u),a?.(f);}else g(f=>{if(f==="all")return new Set(["__ALL_MINUS__",u]);let h=new Set(f);return h.has(u)?h.delete(u):h.add(u),h});},[r,a]),T=r??(y==="all"?null:y);return jsxRuntime.jsx(me.Provider,{value:{showLines:e,expandedKeys:T,onToggleKey:d,size:n},children:t?jsxRuntime.jsx("ul",{className:i("text-sm",l),role:"tree",...o,children:c}):jsxRuntime.jsx("ul",{className:i("text-sm",l),role:"tree",...o,children:jsxRuntime.jsx(ue,{children:c})})})}function ue({children:e}){let t=J(e);return jsxRuntime.jsx(jsxRuntime.Fragment,{children:t.map(r=>L__default.default.isValidElement(r)&&r.props.children?r.props.children:null)})}function J(e){let t=[];return L__default.default.Children.forEach(e,r=>{L__default.default.isValidElement(r)&&r.type===L__default.default.Fragment?t.push(...J(r.props.children)):t.push(r);}),t}function be({avatar:e,sender:t}){return e?typeof e=="string"?/^(?:https?|data|blob):/.test(e)?jsxRuntime.jsx("img",{src:e,alt:t,className:"h-8 w-8 shrink-0 rounded-full object-cover",draggable:false}):jsxRuntime.jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-lg select-none",children:e}):jsxRuntime.jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full",children:e}):jsxRuntime.jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-sm font-semibold select-none",children:t.charAt(0).toUpperCase()})}function xe({msg:e,alignRight:t}){return jsxRuntime.jsxs("div",{className:i("flex gap-2.5",t?"flex-row-reverse":"flex-row"),children:[jsxRuntime.jsx(be,{avatar:e.avatar,sender:e.sender}),jsxRuntime.jsxs("div",{className:i("flex max-w-[75%] flex-col gap-0.5",t?"items-end":"items-start"),children:[jsxRuntime.jsx("span",{className:"text-primary-500 dark:text-primary-400 text-xs",children:e.sender}),jsxRuntime.jsx("div",{className:i("rounded-xl px-3 py-2 text-sm leading-relaxed",t?"rounded-tr-sm bg-primary-500 text-white dark:bg-primary-600":"bg-primary-100 text-primary-800 dark:bg-primary-800 dark:text-primary-200 rounded-tl-sm"),children:e.content}),e.time&&jsxRuntime.jsx("span",{className:"text-primary-400 dark:text-primary-500 text-[10px]",children:e.time})]})]})}function D({messages:e,mode:t="split",autoScroll:r=true,className:s,...a}){let n=L.useRef(null);return L.useEffect(()=>{r&&n.current?.scrollIntoView({behavior:"smooth"});},[e,r]),jsxRuntime.jsxs("div",{className:i("flex flex-col gap-4 overflow-y-auto rounded-lg border p-4","border-primary-200 dark:border-primary-700 dark:bg-primary-900 bg-white",s),...a,children:[e.map(l=>{let c=t==="split"&&!!l.self;return jsxRuntime.jsx(xe,{msg:l,alignRight:c},l.id)}),jsxRuntime.jsx("div",{ref:n})]})}var ke={name:"onyx-css-vars",type:"dark",settings:[{settings:{foreground:"var(--color-syntax-plain)",background:"var(--color-syntax-bg)"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"var(--color-syntax-comment)",fontStyle:"italic"}},{scope:["keyword","keyword.control","keyword.operator.new","keyword.operator.expression","storage.type","storage.modifier"],settings:{foreground:"var(--color-syntax-keyword)"}},{scope:["string","string.quoted","string.template"],settings:{foreground:"var(--color-syntax-string)"}},{scope:["entity.name.function","support.function","meta.function-call"],settings:{foreground:"var(--color-syntax-function)"}},{scope:["variable","variable.other","variable.parameter","meta.definition.variable"],settings:{foreground:"var(--color-syntax-variable)"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"var(--color-syntax-number)"}},{scope:["keyword.operator","keyword.operator.assignment","keyword.operator.comparison","keyword.operator.arithmetic"],settings:{foreground:"var(--color-syntax-operator)"}},{scope:["entity.name.tag","punctuation.definition.tag","support.class.component"],settings:{foreground:"var(--color-syntax-tag)"}},{scope:["entity.other.attribute-name","meta.tag.attributes"],settings:{foreground:"var(--color-syntax-attr)"}},{scope:["punctuation","meta.brace","punctuation.definition.block","punctuation.separator","punctuation.terminator"],settings:{foreground:"var(--color-syntax-punctuation)"}},{scope:["entity.name.type","support.type","support.class","entity.other.inherited-class"],settings:{foreground:"var(--color-syntax-type)"}}]},we={typescript:()=>import('@shikijs/langs/typescript'),javascript:()=>import('@shikijs/langs/javascript'),tsx:()=>import('@shikijs/langs/tsx'),jsx:()=>import('@shikijs/langs/jsx'),html:()=>import('@shikijs/langs/html'),css:()=>import('@shikijs/langs/css'),json:()=>import('@shikijs/langs/json'),markdown:()=>import('@shikijs/langs/markdown'),python:()=>import('@shikijs/langs/python'),rust:()=>import('@shikijs/langs/rust'),go:()=>import('@shikijs/langs/go'),java:()=>import('@shikijs/langs/java'),c:()=>import('@shikijs/langs/c'),cpp:()=>import('@shikijs/langs/cpp'),csharp:()=>import('@shikijs/langs/csharp'),vue:()=>import('@shikijs/langs/vue'),xml:()=>import('@shikijs/langs/xml'),yaml:()=>import('@shikijs/langs/yaml'),sql:()=>import('@shikijs/langs/sql'),bash:()=>import('@shikijs/langs/bash'),shell:()=>import('@shikijs/langs/shell')},z=null,W=new Set;function Te(){return z||(z=Promise.all([import('shiki/core'),import('shiki/engine/javascript')]).then(([{createHighlighterCore:e},{createJavaScriptRegexEngine:t}])=>e({themes:[ke],langs:[],engine:t()}))),z}async function Ne(e,t,r){let s=await Te();if(t&&!W.has(t)){let n=we[t];if(n)try{let l=await n();await s.loadLanguage(l.default??l),W.add(t);}catch{t="text";}else t="text";}let a=s.codeToHtml(e,{lang:t||"text",theme:"onyx-css-vars"});if(a=a.replace(/(<pre [^>]*style=")/,"$1line-height:1.7;tab-size:2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;"),r){let n=0;a=a.replace(/<span class="line">/g,()=>(n++,`<span class="line"><span class="line-number" data-line="${n}"></span>`));}return a}function B({code:e,language:t="text",lineNumbers:r=false,editable:s=false,onCodeChange:a,size:n,className:l,...c}){let[o,y]=L.useState(""),g=L.useRef(null),b=L.useRef(null),d=L.useRef(null);L.useEffect(()=>{let p=false;return Ne(e,t,s?false:r).then(m=>{p||y(m);}),()=>{p=true;}},[e,t,r,s]);let T=L.useCallback(()=>{let p=b.current,m=d.current?.querySelector("pre"),R=g.current?.querySelector("[data-gutter]");p&&m&&(m.scrollTop=p.scrollTop,m.scrollLeft=p.scrollLeft),p&&R&&(R.scrollTop=p.scrollTop);},[]),u=L.useCallback(p=>{a?.(p.target.value);},[a]),f=L.useCallback(p=>{if(p.key==="Tab"){p.preventDefault();let m=p.currentTarget,R=m.selectionStart,re=m.selectionEnd,ae=m.value.substring(0,R)+" "+m.value.substring(re);a?.(ae),requestAnimationFrame(()=>{m.selectionStart=m.selectionEnd=R+2;});}},[a]),h=r&&"[&_.line-number]:inline-block [&_.line-number]:w-8 [&_.line-number]:mr-4 [&_.line-number]:text-right [&_.line-number]:text-secondary-400 [&_.line-number]:select-none [&_.line-number]:before:content-[attr(data-line)]",K="ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",U=1.7,te=e.split(`
|
|
2
|
+
`).length;return s?jsxRuntime.jsxs("div",{ref:g,className:i(V({size:n}),"flex border border-primary-200 dark:border-primary-700",l),style:{background:"var(--color-syntax-bg)"},...c,children:[r&&jsxRuntime.jsx("div",{"data-gutter":true,"aria-hidden":true,className:"shrink-0 select-none overflow-hidden py-4 pl-3 pr-1 text-right text-secondary-400",style:{fontFamily:K,lineHeight:U,width:"3rem"},children:Array.from({length:te},(p,m)=>jsxRuntime.jsx("div",{children:m+1},m))}),jsxRuntime.jsxs("div",{className:"relative min-w-0 flex-1",children:[jsxRuntime.jsx("textarea",{ref:b,value:e,onChange:u,onScroll:T,onKeyDown:f,spellCheck:false,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",className:"relative z-2 m-0 block h-full w-full resize-none overflow-auto whitespace-pre border-none bg-transparent p-4 text-transparent caret-primary-600 outline-none dark:caret-primary-400",style:{fontFamily:K,lineHeight:U,tabSize:2,minHeight:"6rem"}}),jsxRuntime.jsx("div",{ref:d,"aria-hidden":true,className:"pointer-events-none absolute inset-0 z-1 overflow-hidden [&_pre]:m-0 [&_pre]:h-full [&_pre]:overflow-hidden [&_pre]:p-4 [&_code]:bg-transparent",dangerouslySetInnerHTML:o?{__html:o}:void 0})]})]}):jsxRuntime.jsx("div",{ref:g,className:i(V({size:n}),"border border-primary-200 dark:border-primary-700",h,l),style:{background:"var(--color-syntax-bg)"},...c,children:jsxRuntime.jsx("div",{ref:d,className:"[&_pre]:m-0 [&_pre]:p-4",dangerouslySetInnerHTML:o?{__html:o}:void 0,children:o?void 0:jsxRuntime.jsx("pre",{className:"m-0 p-4",style:{background:"var(--color-syntax-bg)"},children:jsxRuntime.jsx("code",{children:e})})})})}var _e={up:lucideReact.TrendingUp,down:lucideReact.TrendingDown,neutral:lucideReact.Minus},Ke={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"};function F({title:e,value:t,prefix:r,suffix:s,icon:a,trend:n,trendValue:l,description:c,intent:o,size:y,className:g}){let b=n?_e[n]:null,d=n?Ke[n]:"";return jsxRuntime.jsx("div",{className:i($({intent:o,size:y}),g),children:jsxRuntime.jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("p",{className:"truncate text-xs font-medium tracking-wider uppercase text-secondary-500 dark:text-secondary-400",children:e}),jsxRuntime.jsxs("p",{className:"mt-1 flex items-baseline gap-1 text-2xl font-bold text-primary-900 dark:text-primary-50",children:[r&&jsxRuntime.jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:r}),jsxRuntime.jsx("span",{children:t}),s&&jsxRuntime.jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:s})]}),(n||c)&&jsxRuntime.jsxs("div",{className:"mt-2 flex items-center gap-2",children:[n&&b&&jsxRuntime.jsxs("span",{className:i("flex items-center gap-0.5 text-xs font-semibold",d),children:[jsxRuntime.jsx(b,{className:"h-3.5 w-3.5"}),l]}),c&&jsxRuntime.jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:c})]})]}),a&&jsxRuntime.jsx("div",{className:i("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl [&_svg]:h-5 [&_svg]:w-5",o==="success"&&"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",o==="danger"&&"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",o==="warning"&&"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400",(!o||o==="primary")&&"bg-primary-100 text-primary-600 dark:bg-primary-800 dark:text-primary-400"),children:a})]})})}function Ee(e){return 1-Math.pow(1-e,4)}function De(e,t,r,s,a){let[n,l]=L.useState(()=>a?a(t):t.toFixed(s)),c=L.useRef(null),o=L.useRef(null);return L.useEffect(()=>{c.current!==null&&cancelAnimationFrame(c.current),o.current=null;let y=g=>{o.current===null&&(o.current=g);let b=g-o.current,d=Math.min(b/r,1),T=Ee(d),u=t+(e-t)*T;l(a?a(u):u.toFixed(s)),d<1&&(c.current=requestAnimationFrame(y));};return c.current=requestAnimationFrame(y),()=>{c.current!==null&&cancelAnimationFrame(c.current);}},[e,t,r,s,a]),n}var Ae={up:lucideReact.TrendingUp,down:lucideReact.TrendingDown,neutral:lucideReact.Minus},Ie={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"},ee={primary:"bg-primary-100 text-primary-600 dark:bg-primary-800/60 dark:text-primary-300",success:"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",danger:"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",warning:"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400"};function j({title:e,value:t,decimals:r=0,prefix:s,suffix:a,icon:n,trend:l,trendValue:c,description:o,animateDuration:y=1200,formatter:g,from:b=0,intent:d,size:T,className:u}){let f=De(t,b,y,r,g),h=l?Ae[l]:null,K=l?Ie[l]:"";return jsxRuntime.jsxs("div",{className:i(G({intent:d,size:T}),u),children:[jsxRuntime.jsx("div",{className:i("pointer-events-none absolute inset-x-0 top-0 h-0.5 rounded-t-xl",d==="success"&&"bg-gradient-to-r from-success-400 to-success-600",d==="danger"&&"bg-gradient-to-r from-danger-400 to-danger-600",d==="warning"&&"bg-gradient-to-r from-warning-400 to-warning-600",(!d||d==="primary")&&"bg-gradient-to-r from-primary-400 to-primary-600")}),jsxRuntime.jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxRuntime.jsxs("div",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary-500 dark:text-secondary-400",children:e}),jsxRuntime.jsxs("p",{className:"mt-2 flex items-baseline gap-1",children:[s&&jsxRuntime.jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:s}),jsxRuntime.jsx("span",{className:"font-mono text-3xl font-bold tabular-nums text-primary-900 dark:text-primary-50",children:f}),a&&jsxRuntime.jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:a})]})]}),n&&jsxRuntime.jsx("div",{className:i("flex h-12 w-12 shrink-0 items-center justify-center rounded-2xl [&_svg]:h-6 [&_svg]:w-6",ee[d??"primary"]??ee.primary),children:n})]}),(l||o)&&jsxRuntime.jsxs("div",{className:"mt-3 flex items-center gap-2 border-t border-primary-100 pt-3 dark:border-primary-700/50",children:[l&&h&&jsxRuntime.jsxs("span",{className:i("flex items-center gap-0.5 text-xs font-bold",K),children:[jsxRuntime.jsx(h,{className:"h-3.5 w-3.5"}),c]}),o&&jsxRuntime.jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:o})]})]})}var ze={Table:P,List:M,Tree:H,Chat:D,CodeBlock:B,Stat:F,MetricCard:j},or=ze;exports.Chat=D;exports.CodeBlock=B;exports.DataDisplay=ze;exports.List=M;exports.MetricCard=j;exports.Stat=F;exports.Table=P;exports.Tree=H;exports.default=or;
|
|
@@ -3,5 +3,11 @@ export { List_alias_1 as List } from '../_tsup-dts-rollup.cjs';
|
|
|
3
3
|
export { Tree_alias_1 as Tree } from '../_tsup-dts-rollup.cjs';
|
|
4
4
|
export { Chat_alias_1 as Chat } from '../_tsup-dts-rollup.cjs';
|
|
5
5
|
export { CodeBlock_alias_1 as CodeBlock } from '../_tsup-dts-rollup.cjs';
|
|
6
|
+
export { Stat_alias_1 as Stat } from '../_tsup-dts-rollup.cjs';
|
|
7
|
+
export { StatProps_alias_1 as StatProps } from '../_tsup-dts-rollup.cjs';
|
|
8
|
+
export { StatTrend_alias_1 as StatTrend } from '../_tsup-dts-rollup.cjs';
|
|
9
|
+
export { MetricCard_alias_1 as MetricCard } from '../_tsup-dts-rollup.cjs';
|
|
10
|
+
export { MetricCardProps_alias_1 as MetricCardProps } from '../_tsup-dts-rollup.cjs';
|
|
11
|
+
export { MetricCardTrend_alias_1 as MetricCardTrend } from '../_tsup-dts-rollup.cjs';
|
|
6
12
|
export { DataDisplay_alias_1 as DataDisplay } from '../_tsup-dts-rollup.cjs';
|
|
7
13
|
export { default_alias_2 as default } from '../_tsup-dts-rollup.cjs';
|
|
@@ -3,5 +3,11 @@ export { List_alias_1 as List } from '../_tsup-dts-rollup.js';
|
|
|
3
3
|
export { Tree_alias_1 as Tree } from '../_tsup-dts-rollup.js';
|
|
4
4
|
export { Chat_alias_1 as Chat } from '../_tsup-dts-rollup.js';
|
|
5
5
|
export { CodeBlock_alias_1 as CodeBlock } from '../_tsup-dts-rollup.js';
|
|
6
|
+
export { Stat_alias_1 as Stat } from '../_tsup-dts-rollup.js';
|
|
7
|
+
export { StatProps_alias_1 as StatProps } from '../_tsup-dts-rollup.js';
|
|
8
|
+
export { StatTrend_alias_1 as StatTrend } from '../_tsup-dts-rollup.js';
|
|
9
|
+
export { MetricCard_alias_1 as MetricCard } from '../_tsup-dts-rollup.js';
|
|
10
|
+
export { MetricCardProps_alias_1 as MetricCardProps } from '../_tsup-dts-rollup.js';
|
|
11
|
+
export { MetricCardTrend_alias_1 as MetricCardTrend } from '../_tsup-dts-rollup.js';
|
|
6
12
|
export { DataDisplay_alias_1 as DataDisplay } from '../_tsup-dts-rollup.js';
|
|
7
13
|
export { default_alias_2 as default } from '../_tsup-dts-rollup.js';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import w,{createContext,useState,useCallback,useRef,useEffect}from'react';import'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,Fragment,jsxs}from'react/jsx-runtime';function s(...e){return twMerge(clsx(e))}var I=cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}}),z=cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});var R=cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function S({intent:e,density:t,className:r,...i}){return jsx("div",{className:"w-full overflow-auto",children:jsx("table",{className:s(I({intent:e,density:t}),r),...i})})}var Y=createContext({size:"md"});function _({intent:e,size:t="md",className:r,...i}){return jsx(Y.Provider,{value:{size:t},children:jsx("ul",{className:s(z({intent:e}),r),...i})})}var re=createContext({showLines:true,expandedKeys:null,onToggleKey:()=>{},size:"md"});function K({showLines:e=true,showRoot:t=true,expandedKeys:r,defaultExpandedKeys:i="all",onExpandedKeysChange:a,size:l="md",className:c,children:f,...u}){let [T,b]=useState(()=>i),x=useCallback(p=>{if(r){let m=new Set(r);m.has(p)?m.delete(p):m.add(p),a?.(m);}else b(m=>{if(m==="all")return new Set(["__ALL_MINUS__",p]);let g=new Set(m);return g.has(p)?g.delete(p):g.add(p),g});},[r,a]),C=r??(T==="all"?null:T);return jsx(re.Provider,{value:{showLines:e,expandedKeys:C,onToggleKey:x,size:l},children:t?jsx("ul",{className:s("text-sm",c),role:"tree",...u,children:f}):jsx("ul",{className:s("text-sm",c),role:"tree",...u,children:jsx(ae,{children:f})})})}function ae({children:e}){let t=j(e);return jsx(Fragment,{children:t.map(r=>w.isValidElement(r)&&r.props.children?r.props.children:null)})}function j(e){let t=[];return w.Children.forEach(e,r=>{w.isValidElement(r)&&r.type===w.Fragment?t.push(...j(r.props.children)):t.push(r);}),t}function ie({avatar:e,sender:t}){return e?typeof e=="string"?/^(?:https?|data|blob):/.test(e)?jsx("img",{src:e,alt:t,className:"h-8 w-8 shrink-0 rounded-full object-cover",draggable:false}):jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-lg select-none",children:e}):jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full",children:e}):jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-sm font-semibold select-none",children:t.charAt(0).toUpperCase()})}function le({msg:e,alignRight:t}){return jsxs("div",{className:s("flex gap-2.5",t?"flex-row-reverse":"flex-row"),children:[jsx(ie,{avatar:e.avatar,sender:e.sender}),jsxs("div",{className:s("flex max-w-[75%] flex-col gap-0.5",t?"items-end":"items-start"),children:[jsx("span",{className:"text-primary-500 dark:text-primary-400 text-xs",children:e.sender}),jsx("div",{className:s("rounded-xl px-3 py-2 text-sm leading-relaxed",t?"rounded-tr-sm bg-primary-500 text-white dark:bg-primary-600":"bg-primary-100 text-primary-800 dark:bg-primary-800 dark:text-primary-200 rounded-tl-sm"),children:e.content}),e.time&&jsx("span",{className:"text-primary-400 dark:text-primary-500 text-[10px]",children:e.time})]})]})}function P({messages:e,mode:t="split",autoScroll:r=true,className:i,...a}){let l=useRef(null);return useEffect(()=>{r&&l.current?.scrollIntoView({behavior:"smooth"});},[e,r]),jsxs("div",{className:s("flex flex-col gap-4 overflow-y-auto rounded-lg border p-4","border-primary-200 dark:border-primary-700 dark:bg-primary-900 bg-white",i),...a,children:[e.map(c=>{let f=t==="split"&&!!c.self;return jsx(le,{msg:c,alignRight:f},c.id)}),jsx("div",{ref:l})]})}var pe={name:"onyx-css-vars",type:"dark",settings:[{settings:{foreground:"var(--color-syntax-plain)",background:"var(--color-syntax-bg)"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"var(--color-syntax-comment)",fontStyle:"italic"}},{scope:["keyword","keyword.control","keyword.operator.new","keyword.operator.expression","storage.type","storage.modifier"],settings:{foreground:"var(--color-syntax-keyword)"}},{scope:["string","string.quoted","string.template"],settings:{foreground:"var(--color-syntax-string)"}},{scope:["entity.name.function","support.function","meta.function-call"],settings:{foreground:"var(--color-syntax-function)"}},{scope:["variable","variable.other","variable.parameter","meta.definition.variable"],settings:{foreground:"var(--color-syntax-variable)"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"var(--color-syntax-number)"}},{scope:["keyword.operator","keyword.operator.assignment","keyword.operator.comparison","keyword.operator.arithmetic"],settings:{foreground:"var(--color-syntax-operator)"}},{scope:["entity.name.tag","punctuation.definition.tag","support.class.component"],settings:{foreground:"var(--color-syntax-tag)"}},{scope:["entity.other.attribute-name","meta.tag.attributes"],settings:{foreground:"var(--color-syntax-attr)"}},{scope:["punctuation","meta.brace","punctuation.definition.block","punctuation.separator","punctuation.terminator"],settings:{foreground:"var(--color-syntax-punctuation)"}},{scope:["entity.name.type","support.type","support.class","entity.other.inherited-class"],settings:{foreground:"var(--color-syntax-type)"}}]},me={typescript:()=>import('@shikijs/langs/typescript'),javascript:()=>import('@shikijs/langs/javascript'),tsx:()=>import('@shikijs/langs/tsx'),jsx:()=>import('@shikijs/langs/jsx'),html:()=>import('@shikijs/langs/html'),css:()=>import('@shikijs/langs/css'),json:()=>import('@shikijs/langs/json'),markdown:()=>import('@shikijs/langs/markdown'),python:()=>import('@shikijs/langs/python'),rust:()=>import('@shikijs/langs/rust'),go:()=>import('@shikijs/langs/go'),java:()=>import('@shikijs/langs/java'),c:()=>import('@shikijs/langs/c'),cpp:()=>import('@shikijs/langs/cpp'),csharp:()=>import('@shikijs/langs/csharp'),vue:()=>import('@shikijs/langs/vue'),xml:()=>import('@shikijs/langs/xml'),yaml:()=>import('@shikijs/langs/yaml'),sql:()=>import('@shikijs/langs/sql'),bash:()=>import('@shikijs/langs/bash'),shell:()=>import('@shikijs/langs/shell')},V=null,U=new Set;function ue(){return V||(V=Promise.all([import('shiki/core'),import('shiki/engine/javascript')]).then(([{createHighlighterCore:e},{createJavaScriptRegexEngine:t}])=>e({themes:[pe],langs:[],engine:t()}))),V}async function ye(e,t,r){let i=await ue();if(t&&!U.has(t)){let l=me[t];if(l)try{let c=await l();await i.loadLanguage(c.default??c),U.add(t);}catch{t="text";}else t="text";}let a=i.codeToHtml(e,{lang:t||"text",theme:"onyx-css-vars"});if(a=a.replace(/(<pre [^>]*style=")/,"$1line-height:1.7;tab-size:2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;"),r){let l=0;a=a.replace(/<span class="line">/g,()=>(l++,`<span class="line"><span class="line-number" data-line="${l}"></span>`));}return a}function M({code:e,language:t="text",lineNumbers:r=false,editable:i=false,onCodeChange:a,size:l,className:c,...f}){let[u,T]=useState(""),b=useRef(null),N=useRef(null),x=useRef(null);useEffect(()=>{let n=false;return ye(e,t,i?false:r).then(o=>{n||T(o);}),()=>{n=true;}},[e,t,r,i]);let C=useCallback(()=>{let n=N.current,o=x.current?.querySelector("pre"),h=b.current?.querySelector("[data-gutter]");n&&o&&(o.scrollTop=n.scrollTop,o.scrollLeft=n.scrollLeft),n&&h&&(h.scrollTop=n.scrollTop);},[]),p=useCallback(n=>{a?.(n.target.value);},[a]),m=useCallback(n=>{if(n.key==="Tab"){n.preventDefault();let o=n.currentTarget,h=o.selectionStart,$=o.selectionEnd,G=o.value.substring(0,h)+" "+o.value.substring($);a?.(G),requestAnimationFrame(()=>{o.selectionStart=o.selectionEnd=h+2;});}},[a]),g=r&&"[&_.line-number]:inline-block [&_.line-number]:w-8 [&_.line-number]:mr-4 [&_.line-number]:text-right [&_.line-number]:text-secondary-400 [&_.line-number]:select-none [&_.line-number]:before:content-[attr(data-line)]",D="ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",A=1.7,O=e.split(`
|
|
2
|
-
`).length;return
|
|
1
|
+
import L,{createContext,useState,useCallback,useRef,useEffect}from'react';import {Minus,TrendingDown,TrendingUp}from'lucide-react';import {clsx}from'clsx';import {twMerge}from'tailwind-merge';import {cva}from'class-variance-authority';import {jsx,Fragment,jsxs}from'react/jsx-runtime';function i(...e){return twMerge(clsx(e))}var q=cva("w-full text-left text-sm",{variants:{intent:{default:"",striped:"[&_tbody_tr:nth-child(even)]:bg-primary-50 dark:[&_tbody_tr:nth-child(even)]:bg-primary-800/30",bordered:"[&_th]:border [&_td]:border [&_th]:border-primary-200 [&_td]:border-primary-200 dark:[&_th]:border-primary-700 dark:[&_td]:border-primary-700"},density:{compact:"[&_th]:px-2 [&_th]:py-1 [&_td]:px-2 [&_td]:py-1",default:"",relaxed:"[&_th]:px-6 [&_th]:py-5 [&_td]:px-6 [&_td]:py-5"}},defaultVariants:{intent:"default",density:"default"}}),O=cva("text-sm text-primary-700 dark:text-primary-300",{variants:{intent:{default:"space-y-1",bordered:"divide-y divide-primary-200 rounded-lg border border-primary-200 dark:divide-primary-700 dark:border-primary-700 [&>li]:px-4 [&>li]:py-2",hover:"[&>li]:rounded-md [&>li]:px-3 [&>li]:py-2 [&>li]:transition-colors [&>li:hover]:bg-primary-50 dark:[&>li:hover]:bg-primary-800/50"}},defaultVariants:{intent:"default"}});cva("group flex w-full items-center gap-1.5 text-left [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3 [&_svg]:w-3",md:"py-1.5 text-sm [&_svg]:h-3.5 [&_svg]:w-3.5",lg:"py-2 text-base [&_svg]:h-4 [&_svg]:w-4"}},defaultVariants:{size:"md"}});cva("flex cursor-pointer items-center gap-1 rounded transition-colors [&_svg]:shrink-0",{variants:{size:{sm:"py-0.5 text-xs [&_svg]:h-3.5 [&_svg]:w-3.5",md:"py-1 text-sm [&_svg]:h-4 [&_svg]:w-4",lg:"py-1.5 text-base [&_svg]:h-5 [&_svg]:w-5"}},defaultVariants:{size:"md"}});var $=cva("relative rounded-xl border bg-white p-5 shadow-sm transition-shadow hover:shadow-md dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}}),G=cva("relative overflow-hidden rounded-xl border bg-white p-5 shadow-sm transition-all duration-300 hover:shadow-lg dark:bg-primary-900",{variants:{intent:{primary:"border-primary-200 dark:border-primary-700",success:"border-success-200 dark:border-success-800",danger:"border-danger-200 dark:border-danger-800",warning:"border-warning-200 dark:border-warning-800"},size:{sm:"p-4",md:"p-5",lg:"p-6"}},defaultVariants:{intent:"primary",size:"md"}}),V=cva("overflow-x-auto rounded-lg font-mono [background:var(--color-syntax-bg)] [&_pre]:m-0 [&_pre]:p-4 [&_code]:bg-transparent",{variants:{size:{sm:"text-xs",md:"text-sm",lg:"text-base"}},defaultVariants:{size:"md"}});function P({intent:e,density:t,className:r,...s}){return jsx("div",{className:"w-full overflow-auto",children:jsx("table",{className:i(q({intent:e,density:t}),r),...s})})}var le=createContext({size:"md"});function M({intent:e,size:t="md",className:r,...s}){return jsx(le.Provider,{value:{size:t},children:jsx("ul",{className:i(O({intent:e}),r),...s})})}var me=createContext({showLines:true,expandedKeys:null,onToggleKey:()=>{},size:"md"});function H({showLines:e=true,showRoot:t=true,expandedKeys:r,defaultExpandedKeys:s="all",onExpandedKeysChange:a,size:n="md",className:l,children:c,...o}){let [y,g]=useState(()=>s),d=useCallback(u=>{if(r){let f=new Set(r);f.has(u)?f.delete(u):f.add(u),a?.(f);}else g(f=>{if(f==="all")return new Set(["__ALL_MINUS__",u]);let h=new Set(f);return h.has(u)?h.delete(u):h.add(u),h});},[r,a]),T=r??(y==="all"?null:y);return jsx(me.Provider,{value:{showLines:e,expandedKeys:T,onToggleKey:d,size:n},children:t?jsx("ul",{className:i("text-sm",l),role:"tree",...o,children:c}):jsx("ul",{className:i("text-sm",l),role:"tree",...o,children:jsx(ue,{children:c})})})}function ue({children:e}){let t=J(e);return jsx(Fragment,{children:t.map(r=>L.isValidElement(r)&&r.props.children?r.props.children:null)})}function J(e){let t=[];return L.Children.forEach(e,r=>{L.isValidElement(r)&&r.type===L.Fragment?t.push(...J(r.props.children)):t.push(r);}),t}function be({avatar:e,sender:t}){return e?typeof e=="string"?/^(?:https?|data|blob):/.test(e)?jsx("img",{src:e,alt:t,className:"h-8 w-8 shrink-0 rounded-full object-cover",draggable:false}):jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-lg select-none",children:e}):jsx("div",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full",children:e}):jsx("div",{className:"bg-primary-200 text-primary-600 dark:bg-primary-700 dark:text-primary-300 flex h-8 w-8 shrink-0 items-center justify-center rounded-full text-sm font-semibold select-none",children:t.charAt(0).toUpperCase()})}function xe({msg:e,alignRight:t}){return jsxs("div",{className:i("flex gap-2.5",t?"flex-row-reverse":"flex-row"),children:[jsx(be,{avatar:e.avatar,sender:e.sender}),jsxs("div",{className:i("flex max-w-[75%] flex-col gap-0.5",t?"items-end":"items-start"),children:[jsx("span",{className:"text-primary-500 dark:text-primary-400 text-xs",children:e.sender}),jsx("div",{className:i("rounded-xl px-3 py-2 text-sm leading-relaxed",t?"rounded-tr-sm bg-primary-500 text-white dark:bg-primary-600":"bg-primary-100 text-primary-800 dark:bg-primary-800 dark:text-primary-200 rounded-tl-sm"),children:e.content}),e.time&&jsx("span",{className:"text-primary-400 dark:text-primary-500 text-[10px]",children:e.time})]})]})}function D({messages:e,mode:t="split",autoScroll:r=true,className:s,...a}){let n=useRef(null);return useEffect(()=>{r&&n.current?.scrollIntoView({behavior:"smooth"});},[e,r]),jsxs("div",{className:i("flex flex-col gap-4 overflow-y-auto rounded-lg border p-4","border-primary-200 dark:border-primary-700 dark:bg-primary-900 bg-white",s),...a,children:[e.map(l=>{let c=t==="split"&&!!l.self;return jsx(xe,{msg:l,alignRight:c},l.id)}),jsx("div",{ref:n})]})}var ke={name:"onyx-css-vars",type:"dark",settings:[{settings:{foreground:"var(--color-syntax-plain)",background:"var(--color-syntax-bg)"}},{scope:["comment","punctuation.definition.comment"],settings:{foreground:"var(--color-syntax-comment)",fontStyle:"italic"}},{scope:["keyword","keyword.control","keyword.operator.new","keyword.operator.expression","storage.type","storage.modifier"],settings:{foreground:"var(--color-syntax-keyword)"}},{scope:["string","string.quoted","string.template"],settings:{foreground:"var(--color-syntax-string)"}},{scope:["entity.name.function","support.function","meta.function-call"],settings:{foreground:"var(--color-syntax-function)"}},{scope:["variable","variable.other","variable.parameter","meta.definition.variable"],settings:{foreground:"var(--color-syntax-variable)"}},{scope:["constant.numeric","constant.language"],settings:{foreground:"var(--color-syntax-number)"}},{scope:["keyword.operator","keyword.operator.assignment","keyword.operator.comparison","keyword.operator.arithmetic"],settings:{foreground:"var(--color-syntax-operator)"}},{scope:["entity.name.tag","punctuation.definition.tag","support.class.component"],settings:{foreground:"var(--color-syntax-tag)"}},{scope:["entity.other.attribute-name","meta.tag.attributes"],settings:{foreground:"var(--color-syntax-attr)"}},{scope:["punctuation","meta.brace","punctuation.definition.block","punctuation.separator","punctuation.terminator"],settings:{foreground:"var(--color-syntax-punctuation)"}},{scope:["entity.name.type","support.type","support.class","entity.other.inherited-class"],settings:{foreground:"var(--color-syntax-type)"}}]},we={typescript:()=>import('@shikijs/langs/typescript'),javascript:()=>import('@shikijs/langs/javascript'),tsx:()=>import('@shikijs/langs/tsx'),jsx:()=>import('@shikijs/langs/jsx'),html:()=>import('@shikijs/langs/html'),css:()=>import('@shikijs/langs/css'),json:()=>import('@shikijs/langs/json'),markdown:()=>import('@shikijs/langs/markdown'),python:()=>import('@shikijs/langs/python'),rust:()=>import('@shikijs/langs/rust'),go:()=>import('@shikijs/langs/go'),java:()=>import('@shikijs/langs/java'),c:()=>import('@shikijs/langs/c'),cpp:()=>import('@shikijs/langs/cpp'),csharp:()=>import('@shikijs/langs/csharp'),vue:()=>import('@shikijs/langs/vue'),xml:()=>import('@shikijs/langs/xml'),yaml:()=>import('@shikijs/langs/yaml'),sql:()=>import('@shikijs/langs/sql'),bash:()=>import('@shikijs/langs/bash'),shell:()=>import('@shikijs/langs/shell')},z=null,W=new Set;function Te(){return z||(z=Promise.all([import('shiki/core'),import('shiki/engine/javascript')]).then(([{createHighlighterCore:e},{createJavaScriptRegexEngine:t}])=>e({themes:[ke],langs:[],engine:t()}))),z}async function Ne(e,t,r){let s=await Te();if(t&&!W.has(t)){let n=we[t];if(n)try{let l=await n();await s.loadLanguage(l.default??l),W.add(t);}catch{t="text";}else t="text";}let a=s.codeToHtml(e,{lang:t||"text",theme:"onyx-css-vars"});if(a=a.replace(/(<pre [^>]*style=")/,"$1line-height:1.7;tab-size:2;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;"),r){let n=0;a=a.replace(/<span class="line">/g,()=>(n++,`<span class="line"><span class="line-number" data-line="${n}"></span>`));}return a}function B({code:e,language:t="text",lineNumbers:r=false,editable:s=false,onCodeChange:a,size:n,className:l,...c}){let[o,y]=useState(""),g=useRef(null),b=useRef(null),d=useRef(null);useEffect(()=>{let p=false;return Ne(e,t,s?false:r).then(m=>{p||y(m);}),()=>{p=true;}},[e,t,r,s]);let T=useCallback(()=>{let p=b.current,m=d.current?.querySelector("pre"),R=g.current?.querySelector("[data-gutter]");p&&m&&(m.scrollTop=p.scrollTop,m.scrollLeft=p.scrollLeft),p&&R&&(R.scrollTop=p.scrollTop);},[]),u=useCallback(p=>{a?.(p.target.value);},[a]),f=useCallback(p=>{if(p.key==="Tab"){p.preventDefault();let m=p.currentTarget,R=m.selectionStart,re=m.selectionEnd,ae=m.value.substring(0,R)+" "+m.value.substring(re);a?.(ae),requestAnimationFrame(()=>{m.selectionStart=m.selectionEnd=R+2;});}},[a]),h=r&&"[&_.line-number]:inline-block [&_.line-number]:w-8 [&_.line-number]:mr-4 [&_.line-number]:text-right [&_.line-number]:text-secondary-400 [&_.line-number]:select-none [&_.line-number]:before:content-[attr(data-line)]",K="ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace",U=1.7,te=e.split(`
|
|
2
|
+
`).length;return s?jsxs("div",{ref:g,className:i(V({size:n}),"flex border border-primary-200 dark:border-primary-700",l),style:{background:"var(--color-syntax-bg)"},...c,children:[r&&jsx("div",{"data-gutter":true,"aria-hidden":true,className:"shrink-0 select-none overflow-hidden py-4 pl-3 pr-1 text-right text-secondary-400",style:{fontFamily:K,lineHeight:U,width:"3rem"},children:Array.from({length:te},(p,m)=>jsx("div",{children:m+1},m))}),jsxs("div",{className:"relative min-w-0 flex-1",children:[jsx("textarea",{ref:b,value:e,onChange:u,onScroll:T,onKeyDown:f,spellCheck:false,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",className:"relative z-2 m-0 block h-full w-full resize-none overflow-auto whitespace-pre border-none bg-transparent p-4 text-transparent caret-primary-600 outline-none dark:caret-primary-400",style:{fontFamily:K,lineHeight:U,tabSize:2,minHeight:"6rem"}}),jsx("div",{ref:d,"aria-hidden":true,className:"pointer-events-none absolute inset-0 z-1 overflow-hidden [&_pre]:m-0 [&_pre]:h-full [&_pre]:overflow-hidden [&_pre]:p-4 [&_code]:bg-transparent",dangerouslySetInnerHTML:o?{__html:o}:void 0})]})]}):jsx("div",{ref:g,className:i(V({size:n}),"border border-primary-200 dark:border-primary-700",h,l),style:{background:"var(--color-syntax-bg)"},...c,children:jsx("div",{ref:d,className:"[&_pre]:m-0 [&_pre]:p-4",dangerouslySetInnerHTML:o?{__html:o}:void 0,children:o?void 0:jsx("pre",{className:"m-0 p-4",style:{background:"var(--color-syntax-bg)"},children:jsx("code",{children:e})})})})}var _e={up:TrendingUp,down:TrendingDown,neutral:Minus},Ke={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"};function F({title:e,value:t,prefix:r,suffix:s,icon:a,trend:n,trendValue:l,description:c,intent:o,size:y,className:g}){let b=n?_e[n]:null,d=n?Ke[n]:"";return jsx("div",{className:i($({intent:o,size:y}),g),children:jsxs("div",{className:"flex items-start justify-between gap-3",children:[jsxs("div",{className:"min-w-0 flex-1",children:[jsx("p",{className:"truncate text-xs font-medium tracking-wider uppercase text-secondary-500 dark:text-secondary-400",children:e}),jsxs("p",{className:"mt-1 flex items-baseline gap-1 text-2xl font-bold text-primary-900 dark:text-primary-50",children:[r&&jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:r}),jsx("span",{children:t}),s&&jsx("span",{className:"text-base font-semibold text-secondary-500 dark:text-secondary-400",children:s})]}),(n||c)&&jsxs("div",{className:"mt-2 flex items-center gap-2",children:[n&&b&&jsxs("span",{className:i("flex items-center gap-0.5 text-xs font-semibold",d),children:[jsx(b,{className:"h-3.5 w-3.5"}),l]}),c&&jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:c})]})]}),a&&jsx("div",{className:i("flex h-10 w-10 shrink-0 items-center justify-center rounded-xl [&_svg]:h-5 [&_svg]:w-5",o==="success"&&"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",o==="danger"&&"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",o==="warning"&&"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400",(!o||o==="primary")&&"bg-primary-100 text-primary-600 dark:bg-primary-800 dark:text-primary-400"),children:a})]})})}function Ee(e){return 1-Math.pow(1-e,4)}function De(e,t,r,s,a){let[n,l]=useState(()=>a?a(t):t.toFixed(s)),c=useRef(null),o=useRef(null);return useEffect(()=>{c.current!==null&&cancelAnimationFrame(c.current),o.current=null;let y=g=>{o.current===null&&(o.current=g);let b=g-o.current,d=Math.min(b/r,1),T=Ee(d),u=t+(e-t)*T;l(a?a(u):u.toFixed(s)),d<1&&(c.current=requestAnimationFrame(y));};return c.current=requestAnimationFrame(y),()=>{c.current!==null&&cancelAnimationFrame(c.current);}},[e,t,r,s,a]),n}var Ae={up:TrendingUp,down:TrendingDown,neutral:Minus},Ie={up:"text-success-600 dark:text-success-400",down:"text-danger-600 dark:text-danger-400",neutral:"text-secondary-500 dark:text-secondary-400"},ee={primary:"bg-primary-100 text-primary-600 dark:bg-primary-800/60 dark:text-primary-300",success:"bg-success-100 text-success-600 dark:bg-success-900/30 dark:text-success-400",danger:"bg-danger-100 text-danger-600 dark:bg-danger-900/30 dark:text-danger-400",warning:"bg-warning-100 text-warning-600 dark:bg-warning-900/30 dark:text-warning-400"};function j({title:e,value:t,decimals:r=0,prefix:s,suffix:a,icon:n,trend:l,trendValue:c,description:o,animateDuration:y=1200,formatter:g,from:b=0,intent:d,size:T,className:u}){let f=De(t,b,y,r,g),h=l?Ae[l]:null,K=l?Ie[l]:"";return jsxs("div",{className:i(G({intent:d,size:T}),u),children:[jsx("div",{className:i("pointer-events-none absolute inset-x-0 top-0 h-0.5 rounded-t-xl",d==="success"&&"bg-gradient-to-r from-success-400 to-success-600",d==="danger"&&"bg-gradient-to-r from-danger-400 to-danger-600",d==="warning"&&"bg-gradient-to-r from-warning-400 to-warning-600",(!d||d==="primary")&&"bg-gradient-to-r from-primary-400 to-primary-600")}),jsxs("div",{className:"flex items-start justify-between gap-4",children:[jsxs("div",{className:"min-w-0 flex-1",children:[jsx("p",{className:"text-xs font-semibold tracking-widest uppercase text-secondary-500 dark:text-secondary-400",children:e}),jsxs("p",{className:"mt-2 flex items-baseline gap-1",children:[s&&jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:s}),jsx("span",{className:"font-mono text-3xl font-bold tabular-nums text-primary-900 dark:text-primary-50",children:f}),a&&jsx("span",{className:"text-lg font-semibold text-secondary-400 dark:text-secondary-500",children:a})]})]}),n&&jsx("div",{className:i("flex h-12 w-12 shrink-0 items-center justify-center rounded-2xl [&_svg]:h-6 [&_svg]:w-6",ee[d??"primary"]??ee.primary),children:n})]}),(l||o)&&jsxs("div",{className:"mt-3 flex items-center gap-2 border-t border-primary-100 pt-3 dark:border-primary-700/50",children:[l&&h&&jsxs("span",{className:i("flex items-center gap-0.5 text-xs font-bold",K),children:[jsx(h,{className:"h-3.5 w-3.5"}),c]}),o&&jsx("span",{className:"text-xs text-secondary-500 dark:text-secondary-400",children:o})]})]})}var ze={Table:P,List:M,Tree:H,Chat:D,CodeBlock:B,Stat:F,MetricCard:j},or=ze;export{D as Chat,B as CodeBlock,ze as DataDisplay,M as List,j as MetricCard,F as Stat,P as Table,H as Tree,or as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
'use strict';var react=require('react'),reactDom=require('react-dom'),lucideReact=require('lucide-react'),clsx=require('clsx'),tailwindMerge=require('tailwind-merge'),jsxRuntime=require('react/jsx-runtime');function x(...r){return tailwindMerge.twMerge(clsx.clsx(r))}function k(r){return r.toLowerCase().replace(/\s+/g," ").trim()}function H(r,t){if(!t)return true;let a=k(t);return k(r.label).includes(a)||(r.description?k(r.description).includes(a):false)||(r.keywords?r.keywords.some(d=>k(d).includes(a)):false)}function q(r){let t=new Map;for(let a of r){let d=a.group??"";t.has(d)||t.set(d,[]),t.get(d).push(a);}return Array.from(t.entries()).map(([a,d])=>({label:a,items:d}))}function P(r,t,a,d){let[p,b]=react.useState(""),[u,c]=react.useState(0);react.useEffect(()=>{t&&(b(""),c(0));},[t]);let o=react.useMemo(()=>r.filter(e=>!e.disabled&&H(e,p)),[r,p]),v=react.useMemo(()=>q(o),[o]);react.useEffect(()=>{c(e=>Math.min(e,Math.max(0,o.length-1)));},[o.length]);let y=react.useCallback(()=>{let e=o[u];e&&(e.onSelect(),a(false));},[o,u,a]),h=react.useCallback(e=>{switch(e.key){case "ArrowDown":e.preventDefault(),c(n=>(n+1)%Math.max(1,o.length));break;case "ArrowUp":e.preventDefault(),c(n=>(n-1+Math.max(1,o.length))%Math.max(1,o.length));break;case "Enter":e.preventDefault(),y();break;case "Escape":e.preventDefault(),a(false);break}},[o.length,y,a]);return react.useEffect(()=>{if(!d)return;function e(n){(n.metaKey||n.ctrlKey)&&n.key==="k"&&(n.preventDefault(),a(!t));}return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[d,t,a]),{query:p,setQuery:b,groups:v,filtered:o,activeIndex:u,setActiveIndex:c,handleKeyDown:h}}function V({open:r,onOpenChange:t,commands:a,placeholder:d="Type a command or search\u2026",hotkey:p=true,maxItems:b=8,className:u}){let c=react.useRef(null),o=react.useRef(null),{query:v,setQuery:y,groups:h,filtered:e,activeIndex:n,setActiveIndex:D,handleKeyDown:A}=P(a,r,t,p);if(react.useEffect(()=>{if(r){let l=setTimeout(()=>c.current?.focus(),40);return ()=>clearTimeout(l)}},[r]),react.useEffect(()=>{o.current?.querySelector("[data-active='true']")?.scrollIntoView({block:"nearest"});},[n]),!r)return null;let K=0;return reactDom.createPortal(jsxRuntime.jsx("div",{className:"cmd-backdrop fixed inset-0 z-50 flex items-start justify-center pt-[15vh]",onClick:()=>t(false),role:"presentation",children:jsxRuntime.jsxs("div",{className:x("cmd-panel relative flex w-full max-w-lg flex-col overflow-hidden rounded-xl","border border-primary-200 bg-white shadow-2xl","dark:border-primary-700 dark:bg-primary-900",u),onClick:l=>l.stopPropagation(),onKeyDown:A,role:"dialog","aria-label":"Command palette","aria-modal":"true",children:[jsxRuntime.jsxs("div",{className:"flex items-center gap-3 border-b border-primary-100 px-4 dark:border-primary-700",children:[jsxRuntime.jsx(lucideReact.Search,{className:"h-4 w-4 shrink-0 text-secondary-400","aria-hidden":"true"}),jsxRuntime.jsx("input",{ref:c,value:v,onChange:l=>y(l.target.value),placeholder:d,className:"flex-1 bg-transparent py-3.5 text-sm text-primary-900 outline-none placeholder:text-secondary-400 dark:text-primary-50","aria-label":"Search commands","aria-controls":"cmd-results","aria-autocomplete":"list","aria-activedescendant":e[n]?`cmd-item-${e[n].id}`:void 0,spellCheck:false,autoComplete:"off"}),jsxRuntime.jsx("kbd",{className:"hidden shrink-0 rounded border border-primary-200 px-1.5 py-0.5 text-xs text-secondary-400 dark:border-primary-600 sm:block",children:"esc"})]}),jsxRuntime.jsx("div",{id:"cmd-results",ref:o,className:"overflow-y-auto py-2",style:{maxHeight:`${b*2.75}rem`},role:"listbox","aria-label":"Commands",children:e.length===0?jsxRuntime.jsxs("div",{className:"flex flex-col items-center gap-2 py-8 text-sm text-secondary-400",children:[jsxRuntime.jsx(lucideReact.Command,{className:"h-8 w-8 opacity-30"}),jsxRuntime.jsx("span",{children:"No commands found"})]}):h.map(l=>jsxRuntime.jsxs("div",{className:"mb-1 last:mb-0",children:[l.label&&jsxRuntime.jsx("p",{className:"px-4 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-secondary-400 dark:text-secondary-500",children:l.label}),l.items.map(i=>{let w=K++,f=w===n;return jsxRuntime.jsxs("button",{id:`cmd-item-${i.id}`,"data-active":f,role:"option","aria-selected":f,className:x("cmd-item group flex w-full items-center gap-3 px-4 py-2.5 text-left text-sm",f?"bg-primary-100 text-primary-900 dark:bg-primary-800 dark:text-primary-50":"text-primary-700 hover:bg-primary-50 dark:text-primary-300 dark:hover:bg-primary-800/50"),onMouseEnter:()=>D(w),onClick:()=>{i.onSelect(),t(false);},children:[i.icon&&jsxRuntime.jsx("span",{className:x("flex h-7 w-7 shrink-0 items-center justify-center rounded-md border text-xs",f?"border-primary-300 bg-white text-primary-700 dark:border-primary-600 dark:bg-primary-700 dark:text-primary-200":"border-primary-200 bg-primary-50 text-primary-500 dark:border-primary-700 dark:bg-primary-800 dark:text-primary-400"),children:i.icon}),jsxRuntime.jsxs("span",{className:"min-w-0 flex-1",children:[jsxRuntime.jsx("span",{className:"block truncate font-medium",children:i.label}),i.description&&jsxRuntime.jsx("span",{className:"block truncate text-xs text-secondary-400 dark:text-secondary-500",children:i.description})]}),i.shortcut&&jsxRuntime.jsx("span",{className:"flex shrink-0 items-center gap-0.5",children:i.shortcut.map((S,L)=>jsxRuntime.jsx("kbd",{className:"rounded border border-primary-200 px-1.5 py-0.5 text-xs text-secondary-500 dark:border-primary-700 dark:text-secondary-400",children:S},L))})]},i.id)})]},l.label||"_default"))}),e.length>0&&jsxRuntime.jsxs("div",{className:"flex items-center justify-between border-t border-primary-100 px-4 py-2 dark:border-primary-700",children:[jsxRuntime.jsxs("span",{className:"text-xs text-secondary-400",children:[e.length," result",e.length!==1?"s":""]}),jsxRuntime.jsxs("span",{className:"flex items-center gap-3 text-xs text-secondary-400",children:[jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"rounded border border-primary-200 px-1 dark:border-primary-700",children:"\u2191"}),jsxRuntime.jsx("kbd",{className:"rounded border border-primary-200 px-1 dark:border-primary-700",children:"\u2193"}),"Navigate"]}),jsxRuntime.jsxs("span",{className:"flex items-center gap-1",children:[jsxRuntime.jsx("kbd",{className:"rounded border border-primary-200 px-1 dark:border-primary-700",children:"\u21B5"}),"Select"]})]})]})]})}),document.body)}exports.CommandPalette=V;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.cmd-backdrop{background:#0006;backdrop-filter:blur(2px);animation:cmd-backdrop-in .12s ease-out both}@keyframes cmd-backdrop-in{0%{opacity:0}to{opacity:1}}.cmd-panel{animation:cmd-panel-in .18s cubic-bezier(.16,1,.3,1) both}@keyframes cmd-panel-in{0%{opacity:0;transform:scale(.96) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.cmd-item{cursor:default;user-select:none;transition:background-color 80ms ease,color 80ms ease}#cmd-results{scrollbar-width:thin;scrollbar-color:var(--color-primary-300) transparent}#cmd-results::-webkit-scrollbar{width:4px}#cmd-results::-webkit-scrollbar-track{background:transparent}#cmd-results::-webkit-scrollbar-thumb{background:var(--color-primary-300);border-radius:2px}.dark #cmd-results::-webkit-scrollbar-thumb{background:var(--color-primary-700)}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { CommandPalette_alias_3 as CommandPalette } from '../_tsup-dts-rollup.cjs';
|
|
2
|
+
export { CommandPaletteProps_alias_2 as CommandPaletteProps } from '../_tsup-dts-rollup.cjs';
|
|
3
|
+
export { CommandItem_alias_2 as CommandItem } from '../_tsup-dts-rollup.cjs';
|
|
4
|
+
export { CommandGroup_alias_2 as CommandGroup } from '../_tsup-dts-rollup.cjs';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { CommandPalette_alias_3 as CommandPalette } from '../_tsup-dts-rollup.js';
|
|
2
|
+
export { CommandPaletteProps_alias_2 as CommandPaletteProps } from '../_tsup-dts-rollup.js';
|
|
3
|
+
export { CommandItem_alias_2 as CommandItem } from '../_tsup-dts-rollup.js';
|
|
4
|
+
export { CommandGroup_alias_2 as CommandGroup } from '../_tsup-dts-rollup.js';
|