@orion-ds/react 4.3.7 → 4.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blocks/sections/ActivityFeed/ActivityFeed.cjs +1 -0
- package/dist/blocks/sections/ActivityFeed/ActivityFeed.mjs +1 -0
- package/dist/blocks/sections/Breadcrumbs/Breadcrumbs.cjs +1 -0
- package/dist/blocks/sections/Breadcrumbs/Breadcrumbs.mjs +1 -0
- package/dist/blocks/sections/CTA/CTA.cjs +1 -0
- package/dist/blocks/sections/CTA/CTA.mjs +1 -0
- package/dist/blocks/sections/CarouselSection/CarouselSection.cjs +1 -0
- package/dist/blocks/sections/CarouselSection/CarouselSection.mjs +1 -0
- package/dist/blocks/sections/Chat/Chat.cjs +1 -0
- package/dist/blocks/sections/Chat/Chat.mjs +1 -0
- package/dist/blocks/sections/Comparison/Comparison.cjs +1 -0
- package/dist/blocks/sections/Comparison/Comparison.mjs +1 -0
- package/dist/blocks/sections/Contact/Contact.cjs +1 -0
- package/dist/blocks/sections/Contact/Contact.mjs +1 -0
- package/dist/blocks/sections/FAQ/FAQ.cjs +1 -0
- package/dist/blocks/sections/FAQ/FAQ.mjs +1 -0
- package/dist/blocks/sections/FAQ/FAQItemCard.cjs +1 -0
- package/dist/blocks/sections/FAQ/FAQItemCard.mjs +1 -0
- package/dist/blocks/sections/Gallery/Gallery.cjs +1 -0
- package/dist/blocks/sections/Gallery/Gallery.mjs +1 -0
- package/dist/blocks/sections/Hero/Hero.cjs +1 -0
- package/dist/blocks/sections/Hero/Hero.mjs +1 -0
- package/dist/blocks/sections/Newsletter/Newsletter.cjs +1 -0
- package/dist/blocks/sections/Newsletter/Newsletter.mjs +1 -0
- package/dist/blocks/sections/SettingsLayout/SettingsLayout.cjs +1 -0
- package/dist/blocks/sections/SettingsLayout/SettingsLayout.mjs +1 -0
- package/dist/client.cjs +2 -0
- package/dist/client.mjs +274 -0
- package/dist/components/Accordion/Accordion.cjs +1 -0
- package/dist/components/Accordion/Accordion.mjs +1 -0
- package/dist/components/AgentCard/AgentCard.cjs +1 -0
- package/dist/components/AgentCard/AgentCard.mjs +1 -0
- package/dist/components/Alert/Alert.cjs +1 -0
- package/dist/components/Alert/Alert.mjs +1 -0
- package/dist/components/AlertDialog/AlertDialog.cjs +1 -0
- package/dist/components/AlertDialog/AlertDialog.mjs +1 -0
- package/dist/components/Avatar/Avatar.cjs +1 -0
- package/dist/components/Avatar/Avatar.mjs +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.cjs +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.mjs +1 -0
- package/dist/components/Calendar/Calendar.cjs +1 -0
- package/dist/components/Calendar/Calendar.mjs +1 -0
- package/dist/components/Carousel/Carousel.cjs +1 -0
- package/dist/components/Carousel/Carousel.mjs +1 -0
- package/dist/components/Chart/Chart.cjs +1 -0
- package/dist/components/Chart/Chart.mjs +1 -0
- package/dist/components/Chat/components/ChatAudioPlayer.cjs +1 -0
- package/dist/components/Chat/components/ChatAudioPlayer.mjs +1 -0
- package/dist/components/Chat/components/ChatCodeBlock.cjs +1 -0
- package/dist/components/Chat/components/ChatCodeBlock.mjs +1 -0
- package/dist/components/Chat/components/ChatFileUpload.cjs +1 -0
- package/dist/components/Chat/components/ChatFileUpload.mjs +1 -0
- package/dist/components/Chat/components/ChatImagePreview.cjs +1 -0
- package/dist/components/Chat/components/ChatImagePreview.mjs +1 -0
- package/dist/components/Chat/components/ChatInput.cjs +1 -0
- package/dist/components/Chat/components/ChatInput.mjs +1 -0
- package/dist/components/Chat/components/ChatLightbox.cjs +1 -0
- package/dist/components/Chat/components/ChatLightbox.mjs +1 -0
- package/dist/components/Chat/components/ChatSidebar.cjs +1 -0
- package/dist/components/Chat/components/ChatSidebar.mjs +1 -0
- package/dist/components/Checkbox/Checkbox.cjs +1 -0
- package/dist/components/Checkbox/Checkbox.mjs +1 -0
- package/dist/components/CodeEditor/CodeEditor.cjs +1 -0
- package/dist/components/CodeEditor/CodeEditor.mjs +1 -0
- package/dist/components/Collapsible/Collapsible.cjs +1 -0
- package/dist/components/Collapsible/Collapsible.mjs +1 -0
- package/dist/components/CollapsibleFolder/CollapsibleFolder.cjs +1 -0
- package/dist/components/CollapsibleFolder/CollapsibleFolder.mjs +1 -0
- package/dist/components/Combobox/Combobox.cjs +1 -0
- package/dist/components/Combobox/Combobox.mjs +1 -0
- package/dist/components/Command/Command.cjs +1 -0
- package/dist/components/Command/Command.mjs +1 -0
- package/dist/components/CommandBar/CommandBar.cjs +1 -0
- package/dist/components/CommandBar/CommandBar.mjs +1 -0
- package/dist/components/DataTable/DataTable.cjs +1 -0
- package/dist/components/DataTable/DataTable.mjs +1 -0
- package/dist/components/DatePicker/DatePicker.cjs +1 -0
- package/dist/components/DatePicker/DatePicker.mjs +1 -0
- package/dist/components/DetailPanel/DetailPanel.cjs +1 -0
- package/dist/components/DetailPanel/DetailPanel.mjs +1 -0
- package/dist/components/Drawer/Drawer.cjs +1 -0
- package/dist/components/Drawer/Drawer.mjs +1 -0
- package/dist/components/Dropdown/Dropdown.cjs +1 -0
- package/dist/components/Dropdown/Dropdown.mjs +1 -0
- package/dist/components/Field/Field.cjs +1 -0
- package/dist/components/Field/Field.mjs +1 -0
- package/dist/components/FileUploader/FileUploader.cjs +1 -0
- package/dist/components/FileUploader/FileUploader.mjs +1 -0
- package/dist/components/FilterBar/FilterBar.cjs +1 -0
- package/dist/components/FilterBar/FilterBar.mjs +1 -0
- package/dist/components/FontLoader/FontLoader.cjs +1 -0
- package/dist/components/FontLoader/FontLoader.mjs +1 -0
- package/dist/components/FormSection/FormSection.cjs +1 -0
- package/dist/components/FormSection/FormSection.mjs +1 -0
- package/dist/components/Icon/Icon.cjs +1 -0
- package/dist/components/Icon/Icon.mjs +1 -0
- package/dist/components/IconGallery/IconGallery.cjs +1 -0
- package/dist/components/IconGallery/IconGallery.mjs +1 -0
- package/dist/components/InputOTP/InputOTP.cjs +1 -0
- package/dist/components/InputOTP/InputOTP.mjs +1 -0
- package/dist/components/List/List.cjs +1 -0
- package/dist/components/List/List.mjs +1 -0
- package/dist/components/Modal/Modal.cjs +1 -0
- package/dist/components/Modal/Modal.mjs +1 -0
- package/dist/components/NavTree/NavTree.cjs +1 -0
- package/dist/components/NavTree/NavTree.mjs +1 -0
- package/dist/components/Navbar/Navbar.cjs +1 -0
- package/dist/components/Navbar/Navbar.mjs +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.cjs +1 -0
- package/dist/components/NotificationCenter/NotificationCenter.mjs +1 -0
- package/dist/components/Pagination/Pagination.cjs +1 -0
- package/dist/components/Pagination/Pagination.mjs +1 -0
- package/dist/components/Popover/Popover.cjs +1 -0
- package/dist/components/Popover/Popover.mjs +1 -0
- package/dist/components/QuickActions/QuickActions.cjs +1 -0
- package/dist/components/QuickActions/QuickActions.mjs +1 -0
- package/dist/components/Radio/Radio.cjs +1 -0
- package/dist/components/Radio/Radio.mjs +1 -0
- package/dist/components/SearchInput/SearchInput.cjs +1 -0
- package/dist/components/SearchInput/SearchInput.mjs +1 -0
- package/dist/components/Sidebar/Sidebar.cjs +1 -0
- package/dist/components/Sidebar/Sidebar.mjs +1 -0
- package/dist/components/Slider/Slider.cjs +1 -0
- package/dist/components/Slider/Slider.mjs +1 -0
- package/dist/components/Stepper/Stepper.cjs +1 -0
- package/dist/components/Stepper/Stepper.mjs +1 -0
- package/dist/components/Switch/Switch.cjs +1 -0
- package/dist/components/Switch/Switch.mjs +1 -0
- package/dist/components/Table/Table.cjs +1 -0
- package/dist/components/Table/Table.mjs +1 -0
- package/dist/components/Tabs/Tabs.cjs +1 -0
- package/dist/components/Tabs/Tabs.mjs +1 -0
- package/dist/components/Textarea/Textarea.cjs +1 -0
- package/dist/components/Textarea/Textarea.mjs +1 -0
- package/dist/components/Toast/Toast.cjs +1 -0
- package/dist/components/Toast/Toast.mjs +1 -0
- package/dist/components/Toggle/Toggle.cjs +1 -0
- package/dist/components/Toggle/Toggle.mjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -0
- package/dist/components/ToggleGroup/ToggleGroup.mjs +1 -0
- package/dist/components/Tooltip/Tooltip.cjs +1 -0
- package/dist/components/Tooltip/Tooltip.mjs +1 -0
- package/dist/components/UserMenu/UserMenu.cjs +1 -0
- package/dist/components/UserMenu/UserMenu.mjs +1 -0
- package/dist/components/WorkspaceSwitcher/WorkspaceSwitcher.cjs +1 -0
- package/dist/components/WorkspaceSwitcher/WorkspaceSwitcher.mjs +1 -0
- package/dist/contexts/ThemeContext.cjs +1 -0
- package/dist/contexts/ThemeContext.mjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +227 -227
- package/dist/sections/index.cjs +1 -0
- package/dist/sections/index.mjs +43 -0
- package/dist/tokens/brands.cjs +1 -1
- package/dist/tokens/brands.mjs +3 -2
- package/dist/tokens/index.cjs +1 -0
- package/dist/tokens/index.mjs +24 -0
- package/dist/tokens/utils.cjs +1 -1
- package/dist/tokens/utils.mjs +36 -24
- package/package.json +31 -36
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),u=require("react"),n=require("date-fns"),x=require("lucide-react"),a=require("./Calendar.module.css.cjs"),O=require("../Button/Button.cjs"),R=["Su","Mo","Tu","We","Th","Fr","Sa"];function _(t,r){const c=t.length,d=(r%c+c)%c;return[...t.slice(d),...t.slice(0,d)]}const C=t=>{const{mode:r="single",min:c,max:d,disabled:m,weekStartsOn:h=0,showOutsideDays:j=!0,className:v,...k}=t,{selected:W,onSelect:F,...E}=k,[f,S]=u.useState(()=>r==="single"&&t.mode!=="range"&&t.mode!=="multiple"&&t.selected?n.startOfMonth(t.selected):r==="range"&&t.mode==="range"&&t.selected?.from?n.startOfMonth(t.selected.from):n.startOfMonth(new Date)),N=u.useMemo(()=>{const e=n.startOfMonth(f),s=n.endOfMonth(f),l=n.startOfWeek(e,{weekStartsOn:h}),o=n.endOfWeek(s,{weekStartsOn:h});return n.eachDayOfInterval({start:l,end:o})},[f,h]),B=u.useMemo(()=>_(R,h),[h]),g=u.useCallback(e=>c&&n.isBefore(e,z(c))||d&&n.isAfter(e,P(d))?!0:m?Array.isArray(m)?m.some(s=>n.isSameDay(s,e)):m(e):!1,[c,d,m]),y=u.useCallback(e=>r==="single"&&t.mode!=="range"&&t.mode!=="multiple"?t.selected?n.isSameDay(t.selected,e):!1:r==="multiple"&&t.mode==="multiple"?t.selected?.some(s=>n.isSameDay(s,e))??!1:!1,[r,t]),M=u.useCallback(e=>{if(r!=="range"||t.mode!=="range"||!t.selected)return null;const{from:s,to:l}=t.selected;return s?l?n.isSameDay(e,s)&&n.isSameDay(e,l)||n.isSameDay(e,s)?"start":n.isSameDay(e,l)?"end":n.isAfter(e,s)&&n.isBefore(e,l)?"middle":null:n.isSameDay(e,s)?"start":null:null},[r,t]),w=u.useCallback(e=>{if(!g(e)){if(r==="single"&&t.mode!=="range"&&t.mode!=="multiple"){const s=t.onSelect;s?.(e)}else if(r==="range"&&t.mode==="range"){const s=t.onSelect,l=t.selected;!l?.from||l.from&&l.to?s?.({from:e,to:void 0}):n.isBefore(e,l.from)?s?.({from:e,to:l.from}):s?.({from:l.from,to:e})}else if(r==="multiple"&&t.mode==="multiple"){const s=t.onSelect,l=t.selected??[],o=l.findIndex(D=>n.isSameDay(D,e));o>=0?s?.(l.filter((D,L)=>L!==o)):s?.([...l,e])}}},[r,t,g]),A=()=>S(e=>n.subMonths(e,1)),I=()=>S(e=>n.addMonths(e,1)),T=e=>{const s=[a.default.day];if(!n.isSameMonth(e,f)&&s.push(a.default.outside),n.isToday(e)&&s.push(a.default.today),g(e)&&s.push(a.default.disabled),r==="range"){const o=M(e);o==="start"&&(s.push(a.default.rangeStart),t.mode==="range"&&t.selected?.from&&t.selected?.to&&n.isSameDay(t.selected.from,t.selected.to)&&s.push(a.default.rangeEnd)),o==="middle"&&s.push(a.default.rangeMiddle),o==="end"&&s.push(a.default.rangeEnd)}else y(e)&&s.push(a.default.selected);return s.join(" ")},q=[a.default.calendar,v].filter(Boolean).join(" "),b=u.useId();return i.jsxs("div",{className:q,...E,children:[i.jsxs("div",{className:a.default.header,children:[i.jsx(O.Button,{variant:"ghost",iconOnly:!0,size:"sm",icon:i.jsx(x.ChevronLeft,{size:16}),onClick:A,"aria-label":"Previous month"}),i.jsx("span",{id:b,className:a.default.monthLabel,children:n.format(f,"MMMM yyyy")}),i.jsx(O.Button,{variant:"ghost",iconOnly:!0,size:"sm",icon:i.jsx(x.ChevronRight,{size:16}),onClick:I,"aria-label":"Next month"})]}),i.jsxs("div",{className:a.default.grid,role:"grid","aria-labelledby":b,children:[B.map(e=>i.jsx("div",{className:a.default.weekday,role:"columnheader","aria-label":e,children:e},e)),N.map(e=>!n.isSameMonth(e,f)&&!j?i.jsx("div",{},e.toISOString()):i.jsx("button",{type:"button",className:T(e),onClick:()=>w(e),disabled:g(e),tabIndex:n.isToday(e)?0:-1,"aria-label":n.format(e,"EEEE, MMMM d, yyyy"),"aria-selected":y(e)||M(e)!==null,children:n.format(e,"d")},e.toISOString()))]})]})};C.displayName="Calendar";function z(t){const r=new Date(t);return r.setHours(0,0,0,0),r}function P(t){const r=new Date(t);return r.setHours(23,59,59,999),r}exports.Calendar=C;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs as M, jsx as c } from "react/jsx-runtime";
|
|
2
3
|
import { useState as K, useMemo as N, useCallback as g, useId as Y } from "react";
|
|
3
4
|
import { startOfMonth as S, endOfMonth as q, startOfWeek as G, endOfWeek as J, eachDayOfInterval as Q, isBefore as y, isAfter as k, isSameDay as i, format as b, isSameMonth as x, isToday as w, subMonths as U, addMonths as V } from "date-fns";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),l=require("react"),tt=require("./CarouselCard.cjs"),q=require("lucide-react"),p=require("../../tokens/primitives.cjs"),r=require("./Carousel.module.css.cjs"),et=parseInt(p.spacing[6],10),rt=parseInt(p.spacing[4],10),st=parseInt(p.spacing[6],10),lt=parseInt(p.spacing[8],10),T=l.forwardRef(({items:n,variant:_="editorial",aspectRatio:B="16/9",peek:D=!0,autoScroll:R=!1,autoScrollInterval:j=5e3,gap:i="md",align:I="edge",alignOffset:S,showNavigation:$=!0,showPagination:w=!1,onSlideChange:W,renderNavigation:N,highlightActive:y=!1,loop:x=!1,className:z,...H},F)=>{const s=l.useRef(null),[K,J]=l.useState(!1),[Q,U]=l.useState(!0),[f,V]=l.useState(0),M=l.useRef(0),u=l.useCallback(()=>i==="sm"?rt:i==="lg"?lt:st,[i]),d=l.useCallback(t=>{const e=t.children[0];return e?e.offsetWidth:0},[]),v=l.useCallback(()=>{if(!s.current)return;const{scrollLeft:t,scrollWidth:e,clientWidth:c}=s.current,h=d(s.current),g=u(),b=t>=e-c-1,m=t<=1;J(!m),U(!b);let o;if(b)o=n.length-1;else{const L=Math.round(t/(h+g));o=Math.min(Math.max(0,L),n.length-1)}o!==M.current&&(M.current=o,V(o),W?.(o))},[i,n.length,W,u,d]),C=l.useCallback(t=>{if(!s.current)return;const{scrollLeft:e,scrollWidth:c,clientWidth:h}=s.current,g=d(s.current),b=u(),m=g+b,o=e<=1,L=e>=c-h-1;if(x){if(t==="right"&&L){s.current.scrollTo({left:0,behavior:"smooth"});return}if(t==="left"&&o){s.current.scrollTo({left:c-h,behavior:"smooth"});return}}s.current.scrollBy({left:t==="left"?-m:m,behavior:"smooth"})},[i,x,u,d]),k=l.useCallback(t=>{if(!s.current)return;const e=d(s.current),c=u();s.current.scrollTo({left:t*(e+c),behavior:"smooth"})},[u,d]);l.useEffect(()=>{const t=s.current;if(t)return v(),t.addEventListener("scroll",v),()=>{t.removeEventListener("scroll",v)}},[v]),l.useEffect(()=>{if(!R||n.length<=1)return;const t=setInterval(()=>{const e=(f+1)%n.length;k(e)},j);return()=>clearInterval(t)},[R,j,f,n.length,k]);const P=I==="container"&&S!==void 0,E=P?Math.max(0,S-et):0,X=i==="sm"?r.default.gapSm:i==="lg"?r.default.gapLg:r.default.gapMd,Y=I==="container"?r.default.trackContainer:r.default.trackEdge,Z=[r.default.carousel,D&&r.default.peek,y&&r.default.highlightActive,X,z].filter(Boolean).join(" "),O=[r.default.track,Y].filter(Boolean).join(" "),G=x&&n.length>1,A={canScrollLeft:G||K,canScrollRight:G||Q,scrollLeft:()=>C("left"),scrollRight:()=>C("right"),activeIndex:f,totalItems:n.length};return a.jsxs("div",{ref:F,className:Z,...H,children:[a.jsx("div",{ref:s,className:O,style:P?{scrollPaddingInlineStart:S}:void 0,role:"region","aria-label":"Carousel",children:n.map((t,e)=>{const c=e===0,g=e===f&&y;return a.jsx(tt.CarouselCard,{item:t,aspectRatio:B,variant:_,className:g?r.default.cardHighlighted:void 0,style:c&&E>0?{marginLeft:E}:void 0},t.title||e)})}),$&&n.length>1&&(N?N(A):a.jsxs("div",{className:r.default.navigation,children:[a.jsx("button",{type:"button",className:r.default.navButton,onClick:()=>C("left"),disabled:!A.canScrollLeft,"aria-label":"Previous",children:a.jsx(q.ChevronLeft,{size:24})}),a.jsx("button",{type:"button",className:r.default.navButton,onClick:()=>C("right"),disabled:!A.canScrollRight,"aria-label":"Next",children:a.jsx(q.ChevronRight,{size:24})})]})),w&&n.length>1&&a.jsx("div",{className:r.default.pagination,children:n.map((t,e)=>a.jsx("button",{type:"button",className:`${r.default.dot} ${e===f?r.default.dotActive:""}`,onClick:()=>k(e),"aria-label":`Go to slide ${e+1}`},e))})]})});T.displayName="Carousel";exports.Carousel=T;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("react"),p=require("recharts"),R=require("./useResolvedChartColors.cjs"),t=require("./Chart.module.css.cjs"),f=h.createContext({}),j=({config:s,children:o,className:a,style:n,...l})=>{const{resolvedConfig:r,resolvedColorVars:i}=R.useResolvedChartColors(s),d=[t.default.container,a].filter(Boolean).join(" ");return e.jsx(f.Provider,{value:r,children:e.jsx("div",{role:"figure",className:d,style:{...i,...n},...l,children:e.jsx(p.ResponsiveContainer,{width:"100%",height:"100%",children:o})})})};j.displayName="ChartContainer";const v=({active:s,payload:o,label:a,indicator:n="dot",hideLabel:l=!1,hideIndicator:r=!1,labelFormatter:i,formatter:d,className:u})=>{const L=h.useContext(f);if(!s||!o?.length)return null;const b=[t.default.tooltip,u].filter(Boolean).join(" "),g=i?i(String(a)):a,T={dot:t.default.tooltipDot,line:t.default.tooltipLine,dashed:t.default.tooltipDashed}[n];return e.jsxs("div",{className:b,children:[!l&&g&&e.jsx("div",{className:t.default.tooltipLabel,children:g}),e.jsx("div",{className:t.default.tooltipItems,children:o.map(c=>{const C=String(c.dataKey||c.name),m=L[C],q=m?.label||C,I=d?d(c.value,C):String(c.value),x=c.color||m?.color;return e.jsxs("div",{className:t.default.tooltipItem,children:[!r&&e.jsx("span",{className:T,style:{backgroundColor:x,borderColor:x}}),e.jsx("span",{className:t.default.tooltipName,children:q}),e.jsx("span",{className:t.default.tooltipValue,children:I})]},C)})})]})};v.displayName="ChartTooltipContent";const N=({payload:s,className:o})=>{const a=h.useContext(f);if(!s?.length)return null;const n=[t.default.legend,o].filter(Boolean).join(" ");return e.jsx("div",{className:n,children:s.map(l=>{const r=l.dataKey||l.value,i=a[r],d=i?.label||r,u=l.color||i?.color;return e.jsxs("div",{className:t.default.legendItem,children:[e.jsx("span",{className:t.default.legendDot,style:{backgroundColor:u}}),e.jsx("span",{children:d})]},r)})})};N.displayName="ChartLegendContent";const y=({id:s,color:o,startOpacity:a=.4,endOpacity:n=.05})=>e.jsxs("linearGradient",{id:s,x1:"0",y1:"0",x2:"0",y2:"1",children:[e.jsx("stop",{offset:"5%",stopColor:o,stopOpacity:a}),e.jsx("stop",{offset:"95%",stopColor:o,stopOpacity:n})]});y.displayName="ChartGradient";const S=p.Tooltip,G=p.Legend;exports.ChartContainer=j;exports.ChartGradient=y;exports.ChartLegend=G;exports.ChartLegendContent=N;exports.ChartTooltip=S;exports.ChartTooltipContent=v;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),P=require("lucide-react"),m=require("../utils.cjs"),l=require("../Chat.module.css.cjs"),p=({src:k,duration:T,title:h,className:b,...x})=>{const[o,f]=r.useState(!1),[s,d]=r.useState(0),[a,g]=r.useState(T||0),n=r.useRef(null),j=r.useCallback(()=>{const e=n.current;e&&!isNaN(e.duration)&&isFinite(e.duration)&&g(e.duration)},[]),v=r.useCallback(()=>{const e=n.current;e&&d(e.currentTime)},[]),C=r.useCallback(()=>{f(!1),d(0)},[]),w=r.useCallback(()=>{const e=n.current;e&&(o?e.pause():e.play().catch(()=>{f(!1)}),f(!o))},[o]),N=r.useCallback(e=>{const c=n.current;if(!c||!a)return;const u=e.currentTarget.getBoundingClientRect(),y=(e.clientX-u.left)/u.width*a;c.currentTime=y,d(y)},[a]),A=r.useCallback(e=>{const c=n.current;if(!c||!a)return;const u=5;let i=s;switch(e.key){case"ArrowRight":case"ArrowUp":e.preventDefault(),i=Math.min(s+u,a);break;case"ArrowLeft":case"ArrowDown":e.preventDefault(),i=Math.max(s-u,0);break;case"Home":e.preventDefault(),i=0;break;case"End":e.preventDefault(),i=a;break;default:return}c.currentTime=i,d(i)},[s,a]),D=a>0?s/a*100:0;return r.useEffect(()=>()=>{const e=n.current;e&&e.pause()},[]),t.jsxs("div",{className:[l.default.audioPlayer,b].filter(Boolean).join(" "),...x,children:[t.jsx("audio",{ref:n,src:k,onLoadedMetadata:j,onTimeUpdate:v,onEnded:C,preload:"metadata"}),t.jsx("button",{className:l.default.audioPlayerButton,onClick:w,"aria-label":o?"Pause":"Play",children:o?t.jsx(P.Pause,{size:16}):t.jsx(P.Play,{size:16})}),t.jsxs("div",{className:l.default.audioPlayerProgress,children:[h&&t.jsx("span",{className:l.default.attachmentPreviewName,children:h}),t.jsx("div",{className:l.default.audioPlayerTrack,onClick:N,onKeyDown:A,role:"slider","aria-label":"Audio progress","aria-valuemin":0,"aria-valuemax":a,"aria-valuenow":s,"aria-valuetext":`${m.formatTime(s)} of ${m.formatTime(a)}`,tabIndex:0,children:t.jsx("div",{className:l.default.audioPlayerFill,style:{width:`${D}%`}})}),t.jsxs("div",{className:l.default.audioPlayerTime,children:[t.jsx("span",{children:m.formatTime(s)}),t.jsx("span",{children:m.formatTime(a)})]})]})]})};p.displayName="ChatAudioPlayer";exports.ChatAudioPlayer=p;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("react"),f=require("react-syntax-highlighter"),d=require("react-syntax-highlighter/dist/esm/styles/prism"),u=require("lucide-react"),o=require("../Chat.module.css.cjs"),k=require("../../../contexts/ThemeContext.cjs"),b=t=>t?{js:"javascript",ts:"typescript",jsx:"jsx",tsx:"tsx",py:"python",rb:"ruby",sh:"bash",shell:"bash",yml:"yaml",md:"markdown"}[t.toLowerCase()]||t.toLowerCase():"text",h=({code:t,language:s,showLineNumbers:m=!1,showCopyButton:p=!0,maxHeight:y="400px",className:C,...x})=>{const[a,r]=n.useState(!1);let c="dark";try{c=k.useThemeContext().theme}catch{}const g=n.useCallback(async()=>{try{await navigator.clipboard.writeText(t),r(!0),setTimeout(()=>r(!1),2e3)}catch(l){console.error("Failed to copy code:",l)}},[t]),i=b(s),j=c==="light"?d.oneLight:d.oneDark;return e.jsxs("div",{className:[o.default.codeBlock,C].filter(Boolean).join(" "),...x,children:[e.jsxs("div",{className:o.default.codeBlockHeader,children:[e.jsx("span",{className:o.default.codeBlockLanguage,children:i}),p&&e.jsx("button",{className:[o.default.codeBlockCopy,a&&o.default.codeBlockCopied].filter(Boolean).join(" "),onClick:g,"aria-label":a?"Copied!":"Copy code",children:a?e.jsxs(e.Fragment,{children:[e.jsx(u.Check,{size:14}),"Copied!"]}):e.jsxs(e.Fragment,{children:[e.jsx(u.Copy,{size:14}),"Copy"]})})]}),e.jsx("div",{className:o.default.codeBlockContent,style:{maxHeight:y},children:e.jsx(f.Prism,{language:i,style:j,showLineNumbers:m,customStyle:{margin:0,padding:0,background:"transparent",fontSize:"inherit",lineHeight:"inherit"},codeTagProps:{style:{fontFamily:"var(--font-mono)"}},children:t})})]})};h.displayName="ChatCodeBlock";exports.ChatCodeBlock=h;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),t=require("react"),R=require("lucide-react"),h=require("../utils.cjs"),o=require("../Chat.module.css.cjs"),g=({onFilesSelected:f,accept:i=["*/*"],multiple:C=!0,maxSize:s=10*1024*1024,children:v,className:D,...k})=>{const[m,u]=t.useState(!1),c=t.useRef(null),d=t.useCallback(e=>{if(!e||e.length===0)return;const r=[];Array.from(e).forEach(l=>{if(s&&l.size>s){console.warn(`File ${l.name} exceeds max size of ${h.formatFileSize(s)}`);return}const F=i.includes("*/*"),q=i.flatMap(n=>(n.endsWith("/*"),n));if(!(F||q.some(n=>{if(n.endsWith("/*")){const N=n.split("/")[0];return l.type.startsWith(`${N}/`)}return l.type===n||l.name.endsWith(n)}))){console.warn(`File ${l.name} type not accepted`);return}r.push(l)}),r.length>0&&f?.(r)},[i,s,f]),b=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),u(!0)},[]),j=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),u(!1)},[]),y=t.useCallback(e=>{e.preventDefault(),e.stopPropagation(),u(!1);const{files:r}=e.dataTransfer;d(r)},[d]),x=t.useCallback(e=>{d(e.target.files),c.current&&(c.current.value="")},[d]),p=t.useCallback(()=>{c.current?.click()},[]),U=t.useCallback(e=>{(e.key==="Enter"||e.key===" ")&&(e.preventDefault(),p())},[p]);return a.jsxs("div",{className:[o.default.fileUpload,m&&o.default.fileUploadDragging,D].filter(Boolean).join(" "),onDragOver:b,onDragLeave:j,onDrop:y,onClick:p,onKeyDown:U,role:"button",tabIndex:0,"aria-label":"Upload files",...k,children:[a.jsx("input",{ref:c,type:"file",accept:i.join(","),multiple:C,onChange:x,style:{display:"none"},"aria-hidden":"true"}),v||a.jsxs(a.Fragment,{children:[a.jsx("div",{className:o.default.fileUploadIcon,children:a.jsx(R.Upload,{size:32})}),a.jsxs("div",{className:o.default.fileUploadText,children:[a.jsx("strong",{children:"Click to upload"})," or drag and drop"]}),a.jsxs("div",{className:o.default.fileUploadHint,children:["Max file size: ",h.formatFileSize(s)]})]})]})};g.displayName="ChatFileUpload";exports.ChatFileUpload=g;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),I=require("lucide-react"),a=require("../Chat.module.css.cjs"),w=require("./ChatLightbox.cjs"),u=({src:i,alt:t="Image attachment",thumbnail:g,onClick:n,enableLightbox:s=!0,className:o,...l})=>{const[h,c]=d.useState(!1),[f,v]=d.useState(!1),m=()=>{n?n():s&&c(!0)},x=r=>{(r.key==="Enter"||r.key===" ")&&(r.preventDefault(),m())},j=()=>{v(!0)};return f?e.jsxs("div",{className:[a.default.imagePreview,a.default.attachmentPreview,o].filter(Boolean).join(" "),...l,children:[e.jsx("div",{className:a.default.attachmentPreviewIcon,children:e.jsx(I.ImageOff,{size:20})}),e.jsx("span",{className:a.default.attachmentPreviewName,children:"Image failed to load"})]}):e.jsxs(e.Fragment,{children:[e.jsx("div",{className:[a.default.imagePreview,o].filter(Boolean).join(" "),onClick:m,onKeyDown:x,role:"button",tabIndex:0,"aria-label":t,...l,children:e.jsx("img",{src:g||i,alt:t,className:a.default.imagePreviewImg,onError:j,loading:"lazy"})}),s&&e.jsx(w.ChatLightbox,{src:i,alt:t,isOpen:h,onClose:()=>c(!1)})]})};u.displayName="ChatImagePreview";exports.ChatImagePreview=u;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),o=require("lucide-react"),_=require("../hooks/useChatInput.cjs"),$=require("./ChatVoiceRecorder.cjs"),E=require("../utils.cjs"),a=require("../Chat.module.css.cjs"),X=m=>m.type.startsWith("image/")?e.jsx(o.Image,{size:14}):e.jsx(o.File,{size:14}),y=l.forwardRef(({onSend:m,placeholder:R="Type a message...",allowAttachments:N=!0,allowVoiceRecording:S=!0,allowAudioUpload:G=!0,disabled:i=!1,maxLength:f,acceptedFileTypes:k=["image/*","audio/*",".pdf",".doc",".docx",".txt"],isLoading:s=!1,pendingAttachments:z,onRemoveAttachment:I,className:q,...w},r)=>{const[j,h]=l.useState(!1),u=l.useRef(null),{value:x,setValue:B,attachments:D,addAttachments:c,removeAttachment:F,handleSubmit:g,handleKeyDown:V,textareaRef:C,isEmpty:P}=_.useChatInput({maxLength:f,onSend:m,disabled:i||s}),d=z||D,M=I||F,T=l.useCallback(t=>{C.current=t,typeof r=="function"?r(t):r&&(r.current=t)},[r,C]),W=l.useCallback(t=>{const n=t.target.files;n&&n.length>0&&c(Array.from(n)),u.current&&(u.current.value="")},[c]),K=l.useCallback(t=>{const n=t.clipboardData.items,p=[];for(const v of n)if(v.type.startsWith("image/")){const A=v.getAsFile();A&&p.push(A)}p.length>0&&(t.preventDefault(),c(p))},[c]),O=l.useCallback(t=>{const n=Object.assign(t,{name:`voice-${Date.now()}.webm`,lastModified:Date.now()});c([n]),h(!1)},[c]),U=l.useCallback(()=>{i||s||g()},[i,s,g]),b=!P||d.length>0;return e.jsx("div",{className:[a.default.inputContainer,q].filter(Boolean).join(" "),children:e.jsxs("div",{className:a.default.inputWrapper,children:[d.length>0&&e.jsx("div",{className:a.default.pendingAttachments,children:d.map((t,n)=>e.jsxs("div",{className:a.default.pendingAttachment,children:[X(t),e.jsx("span",{children:t.name}),e.jsxs("span",{className:a.default.pendingAttachmentSize,children:["(",E.formatFileSize(t.size),")"]}),e.jsx("button",{className:a.default.pendingAttachmentRemove,onClick:()=>M(n),"aria-label":`Remove ${t.name}`,children:e.jsx(o.X,{size:14})})]},n))}),j&&e.jsx($.ChatVoiceRecorder,{onRecordingComplete:O,onCancel:()=>h(!1)}),!j&&e.jsxs("div",{className:a.default.inputBox,children:[N&&e.jsxs("div",{className:a.default.inputActions,children:[e.jsx("input",{ref:u,type:"file",accept:k.join(","),multiple:!0,onChange:W,style:{display:"none"},"aria-hidden":"true"}),e.jsx("button",{className:a.default.inputButton,onClick:()=>u.current?.click(),disabled:i||s,"aria-label":"Attach file",title:"Attach file",children:e.jsx(o.Paperclip,{size:20})})]}),e.jsx("textarea",{ref:T,className:a.default.inputTextarea,value:x,onChange:t=>B(t.target.value),onKeyDown:V,onPaste:K,placeholder:R,disabled:i||s,maxLength:f,rows:1,"aria-label":"Message input",...w}),e.jsxs("div",{className:a.default.inputActions,children:[S&&!x&&d.length===0&&e.jsx("button",{className:a.default.inputButton,onClick:()=>h(!0),disabled:i||s,"aria-label":"Record voice message",title:"Record voice message",children:e.jsx(o.Mic,{size:20})}),e.jsx("button",{className:[a.default.inputButton,b&&a.default.inputButtonPrimary].filter(Boolean).join(" "),onClick:U,disabled:i||s||!b,"aria-label":"Send message",title:"Send message",children:s?e.jsx("span",{className:a.default.inputSpinner}):e.jsx(o.Send,{size:20})})]})]})]})})});y.displayName="ChatInput";exports.ChatInput=y;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),n=require("react"),b=require("lucide-react"),i=require("../Chat.module.css.cjs"),l=({src:s,alt:d="Image",isOpen:a,onClose:t,className:f,...m})=>{const u=n.useRef(null),r=n.useRef(null),c=n.useCallback(e=>{if(e.key==="Escape"){t();return}e.key==="Tab"&&(e.preventDefault(),u.current?.focus())},[t]),g=e=>{e.target===e.currentTarget&&t()};return n.useEffect(()=>(a&&(r.current=document.activeElement,document.addEventListener("keydown",c),document.body.style.overflow="hidden",requestAnimationFrame(()=>{u.current?.focus()})),()=>{document.removeEventListener("keydown",c),document.body.style.overflow="",r.current&&typeof r.current.focus=="function"&&r.current.focus()}),[a,c]),a?o.jsxs("div",{className:[i.default.lightbox,f].filter(Boolean).join(" "),onClick:g,role:"dialog","aria-modal":"true","aria-label":"Image viewer",...m,children:[o.jsx("button",{ref:u,className:i.default.lightboxClose,onClick:t,"aria-label":"Close image viewer",children:o.jsx(b.X,{size:24})}),o.jsx("img",{src:s,alt:d,className:i.default.lightboxImage})]}):null};l.displayName="ChatLightbox";exports.ChatLightbox=l;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),c=require("lucide-react"),t=require("../Chat.module.css.cjs"),O={today:"Today",yesterday:"Yesterday",previous7:"Previous 7 days",previous30:"Previous 30 days",older:"Older"},y=["today","yesterday","previous7","previous30","older"],C=a=>{const r=new Date,u=(new Date(r.getFullYear(),r.getMonth(),r.getDate()).getTime()-new Date(a.getFullYear(),a.getMonth(),a.getDate()).getTime())/(1e3*60*60*24);return u<1?"today":u<2?"yesterday":u<7?"previous7":u<30?"previous30":"older"},P=a=>{const r=C(a);return r==="today"?new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit"}).format(a):r==="yesterday"?"Yesterday":r==="previous7"?new Intl.DateTimeFormat("en-US",{weekday:"short"}).format(a):new Intl.DateTimeFormat("en-US",{month:"short",day:"numeric"}).format(a)},z=a=>{const r=new Map;return y.forEach(n=>r.set(n,[])),a.forEach(n=>{const b=C(n.updatedAt);r.get(b)?.push(n)}),r},S=({conversations:a=[],activeConversationId:r,onSelectConversation:n,onNewConversation:b,onDeleteConversation:u,onSearch:x,header:w,footer:N,collapsed:m=!1,onCollapsedChange:f,className:I,...D})=>{const[h,T]=d.useState(""),[p,j]=d.useState(null),o=d.useRef(void 0);d.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]);const g=d.useMemo(()=>{if(!h.trim())return a;const s=h.toLowerCase();return a.filter(l=>l.title.toLowerCase().includes(s)||l.preview?.toLowerCase().includes(s))},[a,h]),v=d.useMemo(()=>z(g),[g]),B=d.useCallback(s=>{const l=s.target.value;T(l),x?.(l)},[x]),k=d.useCallback(s=>{n?.(s),m&&f&&f(!0)},[n,m,f]),F=d.useCallback((s,l)=>{s.stopPropagation(),p===l?(u?.(l),j(null),o.current&&clearTimeout(o.current)):(j(l),o.current&&clearTimeout(o.current),o.current=setTimeout(()=>{j(null)},3e3))},[p,u]),M=y.some(s=>(v.get(s)?.length??0)>0);return e.jsxs(e.Fragment,{children:[!m&&e.jsx("div",{className:t.default.sidebarOverlay,onClick:()=>f?.(!0),"aria-hidden":"true"}),e.jsxs("aside",{className:[t.default.sidebar,m&&t.default.sidebarCollapsed,!m&&t.default.sidebarOpen,I].filter(Boolean).join(" "),...D,children:[e.jsx("div",{className:t.default.sidebarHeader,children:w||e.jsxs(e.Fragment,{children:[e.jsx("button",{className:[t.default.inputButton,t.default.inputButtonPrimary,t.default.sidebarNewButton].filter(Boolean).join(" "),onClick:b,"aria-label":"New conversation",children:e.jsxs("span",{className:t.default.sidebarNewButtonInner,children:[e.jsx(c.Plus,{size:18}),e.jsx("span",{children:"New Chat"})]})}),e.jsx("button",{className:[t.default.inputButton,t.default.sidebarCloseButton].join(" "),onClick:()=>f?.(!0),"aria-label":"Close sidebar",children:e.jsx(c.X,{size:20})})]})}),e.jsx("div",{className:t.default.sidebarSearch,children:e.jsxs("div",{className:t.default.sidebarSearchWrapper,children:[e.jsx(c.Search,{size:16,className:t.default.sidebarSearchIcon}),e.jsx("input",{type:"search",className:[t.default.sidebarSearchInput,t.default.sidebarSearchInputWithIcon].join(" "),placeholder:"Search conversations...",value:h,onChange:B,"aria-label":"Search conversations"})]})}),e.jsx("div",{className:t.default.sidebarList,role:"list","aria-label":"Conversations",children:M?y.map(s=>{const l=v.get(s)??[];return l.length===0?null:e.jsxs("div",{children:[e.jsx("div",{className:t.default.sidebarGroupHeader,children:O[s]}),l.map(i=>e.jsxs("button",{className:[t.default.sidebarItem,i.id===r&&t.default.sidebarItemActive].filter(Boolean).join(" "),onClick:()=>k(i.id),role:"listitem","aria-selected":i.id===r,"aria-label":`Conversation: ${i.title}`,children:[e.jsx(c.MessageSquare,{size:18,className:t.default.sidebarItemIcon}),e.jsxs("div",{className:t.default.sidebarItemContent,children:[e.jsx("span",{className:t.default.sidebarItemTitle,children:i.title}),i.preview&&e.jsx("span",{className:t.default.sidebarItemPreview,children:i.preview})]}),e.jsx("span",{className:t.default.sidebarItemDate,children:P(i.updatedAt)}),u&&e.jsx("button",{className:t.default.sidebarItemDelete,onClick:q=>F(q,i.id),"aria-label":p===i.id?`Confirm delete ${i.title}`:`Delete ${i.title}`,children:p===i.id?e.jsx("span",{className:t.default.sidebarItemDeleteConfirm,children:"Delete?"}):e.jsx(c.Trash2,{size:16})})]},i.id))]},s)}):e.jsxs("div",{className:t.default.sidebarEmpty,children:[e.jsx(c.MessageSquare,{size:32,className:t.default.sidebarEmptyIcon}),e.jsx("p",{children:h?"No conversations found":"No conversations yet"})]})}),N&&e.jsx("div",{className:t.default.sidebarFooter,children:N})]})]})};S.displayName="ChatSidebar";exports.ChatSidebar=S;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs as l, Fragment as C, jsx as r } from "react/jsx-runtime";
|
|
2
3
|
import { useState as D, useRef as Y, useEffect as x, useMemo as S, useCallback as y } from "react";
|
|
3
4
|
import { Plus as A, X as U, Search as $, MessageSquare as T, Trash2 as q } from "lucide-react";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),t=require("react"),u=require("lucide-react"),s=require("./Checkbox.module.css.cjs"),m=t.forwardRef(({label:i,helperText:n,error:a,size:j="md",indeterminate:r=!1,className:k,id:N,disabled:h,required:o,checked:v,"aria-label":f,"aria-describedby":p,...C},y)=>{const R=t.useId(),l=N||`checkbox-${R}`,x=`${l}-error`,b=`${l}-helper`,g=t.useRef(null),d=y||g;t.useEffect(()=>{d.current&&(d.current.indeterminate=r)},[r,d]);const c=[];a&&c.push(x),n&&!a&&c.push(b),p&&c.push(p);const I=c.length>0?c.join(" "):void 0;!(i||f)&&process.env.NODE_ENV==="development"&&console.warn("Checkbox: Missing accessible name. Provide either a `label` prop or `aria-label` for screen reader users.");const q=r?"mixed":void 0,M=[s.default.container,s.default[j],a&&s.default.error,h&&s.default.disabled,k].filter(Boolean).join(" ");return e.jsxs("div",{className:M,children:[e.jsx("input",{ref:d,type:"checkbox",id:l,className:s.default.input,disabled:h,required:o,checked:v,"aria-required":o||void 0,"aria-invalid":a?"true":"false","aria-checked":q,"aria-describedby":I,"aria-label":i?void 0:f,...C}),e.jsxs("label",{htmlFor:l,className:s.default.labelWrapper,children:[e.jsx("span",{className:s.default.checkbox,"aria-hidden":"true",children:e.jsx("span",{className:s.default.checkmark,children:r?e.jsx(u.Minus,{strokeWidth:3}):e.jsx(u.Check,{strokeWidth:3})})}),i&&e.jsxs("span",{className:s.default.label,children:[i,o&&e.jsx("span",{className:s.default.required,"aria-hidden":"true",children:"*"})]})]}),n&&!a&&e.jsx("p",{id:b,className:s.default.helperText,children:n}),a&&e.jsxs("p",{id:x,className:s.default.errorMessage,role:"alert","aria-live":"assertive",children:[e.jsx(u.AlertCircle,{size:14,"aria-hidden":"true"}),e.jsx("span",{children:a})]})]})});m.displayName="Checkbox";exports.Checkbox=m;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),i=require("react"),_=require("react-syntax-highlighter"),$=require("react-syntax-highlighter/dist/esm/styles/prism"),l=require("./CodeEditor.module.css.cjs"),z=require("../../contexts/ThemeContext.cjs");try{const r=require("refractor/all");r.default&&r.default.registered&&r.default.registered("markdown")&&!r.default.languages.markdown?.["quoted-string"]&&r.default.languages.insertBefore("markdown","bold",{"quoted-string":{pattern:/"(?:\\.|[^"\\])*"/,greedy:!0,alias:"string"}})}catch{}const A=i.forwardRef(({value:r="",onChange:g,language:j,readOnly:T=!1,showLineNumbers:k=!0,placeholder:C,minRows:m=10,className:B,"aria-label":S,...R},D)=>{const p=i.useRef(null),x=i.useRef(null),v=i.useRef(null),E=i.useRef(null),K=i.useRef(null),u=i.useRef(null),h=D||K,[y,F]=i.useState(0),[d,O]=i.useState([]);let q="dark";try{q=z.useThemeContext().theme}catch{}const P=q==="light"?$.oneLight:$.oneDark,L=Math.max(r.split(`
|
|
2
3
|
`).length,m);i.useEffect(()=>{if(u.current&&h.current){const{start:e,end:t}=u.current;h.current.setSelectionRange(e,t),u.current=null}}),i.useEffect(()=>{const e=v.current,t=E.current;if(!e||!t)return;const n=()=>{const o=t.clientWidth;if(o<=0)return;e.style.width=`${o}px`;const a=r.split(`
|
|
3
4
|
`),f=Math.max(a.length,m),b=[];for(let N=0;N<f;N++){const V=a[N]??"";e.textContent=V||" ",b.push(e.scrollHeight)}O(b)};n();const c=new ResizeObserver(n);return c.observe(t),()=>c.disconnect()},[r,m]),i.useEffect(()=>{const e=n=>{const c=n.target;p.current&&(p.current.scrollTop=c.scrollTop),x.current&&(x.current.scrollTop=c.scrollTop,x.current.scrollLeft=c.scrollLeft)},t=h?.current;if(t)return t.addEventListener("scroll",e),()=>{t.removeEventListener("scroll",e)}},[h]);const w=e=>{const t=e.value.substring(0,e.selectionStart);F(t.split(`
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const C=require("react/jsx-runtime"),e=require("react"),p=require("./Collapsible.module.css.cjs"),x=e.createContext(null);function j(){const t=e.useContext(x);if(!t)throw new Error("Collapsible.Trigger/Content must be used within a Collapsible");return t}const I=e.forwardRef(({asChild:t,className:d,children:l,onClick:n,...u},s)=>{const{open:a,disabled:r,toggle:i,contentId:b,triggerId:c}=j(),o=e.useCallback(g=>{i(),n?.(g)},[i,n]);if(t&&e.isValidElement(l))return e.cloneElement(l,{id:c,"aria-expanded":a,"aria-controls":b,disabled:r,onClick:o});const f=[p.default.trigger,d].filter(Boolean).join(" ");return C.jsx("button",{ref:s,id:c,type:"button",className:f,"aria-expanded":a,"aria-controls":b,disabled:r,onClick:o,...u,children:l})});I.displayName="Collapsible.Trigger";const N=e.forwardRef(({forceMount:t,className:d,children:l,...n},u)=>{const{open:s,triggerId:a,contentId:r}=j();if(!t&&!s)return null;const i=[p.default.content,s&&p.default.contentOpen,d].filter(Boolean).join(" ");return C.jsx("div",{ref:u,id:r,role:"region","aria-labelledby":a,className:i,...n,children:C.jsx("div",{className:p.default.contentInner,children:l})})});N.displayName="Collapsible.Content";const v=e.forwardRef(({open:t,defaultOpen:d=!1,onOpenChange:l,disabled:n=!1,className:u,children:s,...a},r)=>{const[i,b]=e.useState(d),c=t!==void 0,o=c?t:i,f=e.useId(),g=e.useId(),y=e.useCallback(()=>{if(n)return;const m=!o;c||b(m),l?.(m)},[o,c,n,l]),w=[p.default.collapsible,u].filter(Boolean).join(" "),R={open:o,disabled:n,toggle:y,contentId:f,triggerId:g};return C.jsx(x.Provider,{value:R,children:C.jsx("div",{ref:r,className:w,"data-state":o?"open":"closed",...a,children:s})})});v.displayName="Collapsible";const O=Object.assign(v,{Trigger:I,Content:N});exports.Collapsible=O;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as C } from "react/jsx-runtime";
|
|
2
3
|
import { forwardRef as m, useState as B, useId as x, useCallback as I, isValidElement as E, cloneElement as h, createContext as R, useContext as P } from "react";
|
|
3
4
|
import p from "./Collapsible.module.css.mjs";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),le=require("@dnd-kit/core"),g=require("lucide-react"),a=require("./CollapsibleFolder.module.css.cjs"),h=require("../Collapsible/Collapsible.cjs"),ne=require("../Badge/Badge.cjs"),F=require("../Dropdown/Dropdown.cjs"),R=require("../Button/Button.cjs");function w(E){const{id:u,title:B,itemCount:x,items:r,renderItem:z,itemLabel:O="Item",itemLabelPlural:k="Items",emptyText:A="No items in this folder",sortLabel:v="Sort",defaultExpanded:$=!0,sortOptions:i,selectedSort:M,onSortChange:P,onDrop:D,onFolderEdit:b,onFolderDelete:j,onFolderInvite:N,isDropTarget:Y=!1,isDropCompleted:H=!1,onDragEnter:Z,onDragLeaveFolder:C,className:_,...G}=E,[f,J]=o.useState($),[m,d]=o.useState(null),[T,p]=o.useState(!1),I=o.useRef(null),{setNodeRef:K}=le.useDroppable({id:u}),Q=t=>{if(t.preventDefault(),t.dataTransfer.dropEffect="move",T||(p(!0),Z?.()),!f||r.length===0){d(0);return}const l=I.current;if(!l)return;const n=Array.from(l.querySelectorAll("[data-item-id]")),ae=t.clientY;let L=n.length;for(let c=0;c<n.length;c++){const S=n[c];if(!S)continue;const q=S.getBoundingClientRect();if(ae<q.top+q.height/2){L=c;break}}d(L)},U=t=>{t.currentTarget.contains(t.relatedTarget)||(p(!1),d(null),C?.())},V=t=>{t.preventDefault();const l=t.dataTransfer.getData("text/plain")||t.dataTransfer.getData("itemId");if(l&&D){const n=m??r.length;D(l,u,n)}p(!1),d(null),C?.()},W=(t,l)=>{t.dataTransfer.effectAllowed="move",t.dataTransfer.setData("text/plain",l)},X=i?.map(t=>({id:t.value,label:t.label,onClick:()=>P?.(t.value)})),y=[...b?[{id:"rename",label:"Rename",onClick:b}]:[],...N?[{id:"invite",label:"Invite participants",onClick:N}]:[],...j?[{id:"delete",label:"Delete folder",danger:!0,onClick:j}]:[]],s=Y||T,ee=[a.default.folder,s&&a.default.dropTarget,H&&a.default.dropCompleted,_].filter(Boolean).join(" "),te=x===1?O:k;return e.jsx("div",{ref:K,className:ee,"data-folder-id":u,"data-drop-active":s,onDragOver:Q,onDragLeave:U,onDrop:V,...G,children:e.jsxs(h.Collapsible,{open:f,onOpenChange:J,children:[e.jsxs("div",{className:a.default.header,children:[e.jsxs(h.Collapsible.Trigger,{className:a.default.trigger,children:[e.jsx(g.ChevronDown,{size:20,className:`${a.default.chevron} ${f?a.default.expanded:""}`}),e.jsx("h2",{className:a.default.title,children:B}),e.jsxs(ne.Badge,{variant:"secondary",className:a.default.badge,children:[x,e.jsxs("span",{className:a.default.badgeLabel,children:[" ",te]})]})]}),e.jsxs("div",{className:a.default.actions,children:[i&&i.length>0&&e.jsx("div",{className:a.default.sortDropdown,children:e.jsx(F.Dropdown,{trigger:e.jsx(R.Button,{variant:"ghost",size:"sm",iconRight:e.jsx(g.ChevronDown,{size:16}),"aria-label":`Sort by ${v}`,children:i.find(t=>t.value===M)?.label||v}),items:X,placement:"bottom-end"})}),y.length>0&&e.jsx(F.Dropdown,{trigger:e.jsx(R.Button,{variant:"ghost",size:"sm",iconOnly:!0,icon:e.jsx(g.MoreHorizontal,{size:20}),"aria-label":"Folder actions"}),items:y,placement:"bottom-end"})]})]}),e.jsx(h.Collapsible.Content,{children:e.jsx("div",{className:a.default.content,children:r.length===0?s?e.jsx("div",{className:a.default.emptyDropZone,children:e.jsx("div",{className:a.default.insertionLine,role:"presentation"})}):e.jsx("div",{className:a.default.emptyState,children:e.jsx("p",{className:a.default.emptyText,children:A})}):e.jsxs("div",{className:a.default.grid,ref:I,children:[r.map((t,l)=>e.jsxs(o.Fragment,{children:[s&&m===l&&e.jsx("div",{className:a.default.insertionLine,role:"presentation"}),e.jsx("div",{"data-item-id":t.id,draggable:t.draggable,onDragStart:n=>W(n,t.id),children:z(t,l)})]},t.id)),s&&m===r.length&&e.jsx("div",{className:a.default.insertionLine,role:"presentation"})]})})})]})})}w.displayName="CollapsibleFolder";exports.CollapsibleFolder=w;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),l=require("react"),oe=require("react-dom"),R=require("lucide-react"),t=require("./Combobox.module.css.cjs"),de=(u,i)=>{const c=i.toLowerCase().trim();return c?u.label.toLowerCase().includes(c)||u.value.toLowerCase().includes(c)||(u.description?.toLowerCase().includes(c)??!1):!0},X=l.forwardRef(({options:u,value:i,onChange:c,onInputChange:P,size:D="md",label:S,helperText:z,error:g,loading:K=!1,clearable:U=!0,allowFreeInput:f=!1,filterFn:B=de,openOnFocus:I=!0,minChars:C=0,emptyText:Y="No results found",renderOption:T,maxHeight:_=300,fullWidth:G=!1,placeholder:V,disabled:w,className:J,id:Q,onFocus:A,onBlur:H,onKeyDown:W,...Z},k)=>{const F=l.useId(),$=Q||F,q=`${$}-listbox`,v=l.useRef(null),N=l.useRef(null),b=l.useRef(null),[r,h]=l.useState(!1),[E,o]=l.useState(""),[d,j]=l.useState(-1),[M,ee]=l.useState({top:0,left:0,width:0}),a=l.useMemo(()=>u.find(e=>e.value===i)??null,[u,i]);l.useEffect(()=>{a?o(a.label):f||o("")},[a,f]);const p=l.useMemo(()=>E.length<C?[]:u.filter(e=>B(e,E)),[u,E,C,B]),x=l.useCallback(()=>{if(!v.current)return;const e=v.current.getBoundingClientRect();ee({top:e.bottom+window.scrollY+4,left:e.left+window.scrollX,width:e.width})},[]);l.useEffect(()=>{if(r)return x(),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0),()=>{window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}},[r,x]),l.useEffect(()=>{if(!r)return;const e=n=>{const m=n.target;v.current&&!v.current.contains(m)&&b.current&&!b.current.contains(m)&&(h(!1),!f&&!i?o(""):a&&o(a.label))};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[r,f,i,a]);const te=l.useCallback(e=>{const n=e.target.value;o(n),j(-1),P?.(n),!r&&n.length>=C&&h(!0),a&&n!==a.label&&!f&&c?.(null,null)},[r,C,P,a,f,c]),se=l.useCallback(e=>{I&&!w&&h(!0),A?.(e)},[I,w,A]),le=l.useCallback(e=>{setTimeout(()=>{b.current?.contains(document.activeElement)||(h(!1),!f&&!i?o(""):a&&o(a.label))},200),H?.(e)},[f,i,a,H]),O=l.useCallback(e=>{e.disabled||(c?.(e.value,e),o(e.label),h(!1),j(-1),N.current?.focus())},[c]),ne=l.useCallback(e=>{e.stopPropagation(),c?.(null,null),o(""),N.current?.focus()},[c]),ae=l.useCallback(e=>{switch(e.key){case"ArrowDown":e.preventDefault(),r?j(n=>Math.min(n+1,p.length-1)):h(!0);break;case"ArrowUp":e.preventDefault(),j(n=>Math.max(n-1,0));break;case"Enter":e.preventDefault(),r&&d>=0&&p[d]&&O(p[d]);break;case"Escape":e.preventDefault(),h(!1),o(a?a.label:"");break;case"Tab":h(!1);break}W?.(e)},[r,d,p,O,a,W]);l.useEffect(()=>{d>=0&&b.current&&b.current.querySelectorAll('[role="option"]')[d]?.scrollIntoView({block:"nearest"})},[d]);const re=[t.default.container,t.default[D],G&&t.default.fullWidth,w&&t.default.disabled,g&&t.default.error,J].filter(Boolean).join(" "),L=D==="sm"?14:D==="lg"?20:16,ie=(e,n)=>{const m=e.value===i,y=n===d;return T?T(e,m,y):s.jsxs(s.Fragment,{children:[e.icon&&s.jsx("span",{className:t.default.optionIcon,"aria-hidden":"true",children:e.icon}),s.jsxs("div",{className:t.default.optionContent,children:[s.jsx("span",{className:t.default.optionLabel,children:e.label}),e.description&&s.jsx("span",{className:t.default.optionDescription,children:e.description})]}),m&&s.jsx(R.Check,{size:L,className:t.default.checkIcon,"aria-hidden":"true"})]})},ce=s.jsx("div",{ref:b,className:`${t.default.dropdown} ${r&&t.default.visible}`,style:{top:M.top,left:M.left,width:M.width,maxHeight:_},role:"listbox",id:q,"aria-label":S||V,children:K?s.jsxs("div",{className:t.default.loading,children:[s.jsx(R.Loader2,{size:L,className:t.default.spinner}),s.jsx("span",{children:"Loading..."})]}):p.length===0?s.jsx("div",{className:t.default.empty,children:Y}):p.map((e,n)=>{const m=n===d,y=e.value===i;return s.jsx("div",{className:[t.default.option,m&&t.default.highlighted,y&&t.default.selected,e.disabled&&t.default.disabled].filter(Boolean).join(" "),role:"option","aria-selected":y,"aria-disabled":e.disabled,onClick:()=>O(e),onMouseEnter:()=>j(n),children:ie(e,n)},e.value)})});return s.jsxs("div",{className:re,children:[S&&s.jsx("label",{htmlFor:$,className:t.default.label,children:S}),s.jsxs("div",{ref:v,className:t.default.inputWrapper,onClick:()=>N.current?.focus(),children:[s.jsx("input",{...Z,ref:e=>{typeof k=="function"?k(e):k&&(k.current=e),N.current=e},id:$,type:"text",className:t.default.input,value:E,onChange:te,onFocus:se,onBlur:le,onKeyDown:ae,disabled:w,placeholder:V,role:"combobox","aria-expanded":r,"aria-haspopup":"listbox","aria-controls":q,"aria-autocomplete":"list","aria-activedescendant":d>=0?`${q}-option-${d}`:void 0}),s.jsxs("div",{className:t.default.actions,children:[U&&i&&!w&&s.jsx("button",{type:"button",className:t.default.clearButton,onClick:ne,"aria-label":"Clear selection",tabIndex:-1,children:s.jsx(R.X,{size:L})}),s.jsx("span",{className:`${t.default.chevron} ${r?t.default.open:""}`,"aria-hidden":"true",children:s.jsx(R.ChevronDown,{size:L})})]})]}),(z||g)&&s.jsx("span",{className:g?t.default.errorText:t.default.helperText,children:g||z}),r&&oe.createPortal(ce,document.body)]})});X.displayName="Combobox";exports.Combobox=X;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),s=require("react"),H=require("react-dom"),K=require("lucide-react"),r=require("./Command.module.css.cjs"),U=require("../Divider/Divider.cjs"),B=s.createContext(null);function S(){const e=s.useContext(B);if(!e)throw new Error("Command compound components must be used within <Command>");return e}const $=(e,t)=>t?e.toLowerCase().includes(t.toLowerCase())?1:0:1,d=({value:e,onValueChange:t,filter:n=$,children:i,className:c,...l})=>{const[C,b]=s.useState(""),[v,p]=s.useState(0),y=s.useRef(new Map),[,j]=s.useState(0),x=s.useId(),m=e!==void 0?e:C,I=s.useCallback(o=>{e!==void 0?t?.(o):b(o),p(0)},[e,t]),N=s.useCallback((o,u)=>{y.current.set(o,u),j(f=>f+1)},[]),w=s.useCallback(o=>{y.current.delete(o),j(u=>u+1)},[]),g=s.useCallback(()=>{const o=[];for(const[u,f]of y.current)n(f,m)>0&&o.push(u);return o},[n,m]),h=s.useMemo(()=>({search:m,setSearch:I,filter:n,activeIndex:v,setActiveIndex:p,registerItem:N,unregisterItem:w,items:y.current,getVisibleItems:g,listId:x}),[m,I,n,v,p,N,w,g,x]),k=s.useRef(null),E=s.useCallback(o=>{const u=g();if(u.length){if(o.key==="ArrowDown")o.preventDefault(),p(f=>(f+1)%u.length);else if(o.key==="ArrowUp")o.preventDefault(),p(f=>(f-1+u.length)%u.length);else if(o.key==="Enter"){o.preventDefault();const f=u[v];f&&k.current?.querySelector(`[data-command-id="${f}"]`)?.click()}}},[g,v,p]),T=[r.default.command,c].filter(Boolean).join(" ");return a.jsx(B.Provider,{value:h,children:a.jsx("div",{ref:k,className:T,onKeyDown:E,...l,children:i})})},R=({className:e,...t})=>{const{search:n,setSearch:i,listId:c}=S(),l=s.useRef(null);s.useEffect(()=>{l.current?.focus()},[]);const C=[r.default.inputWrapper,e].filter(Boolean).join(" ");return a.jsxs("div",{className:C,children:[a.jsx(K.Search,{size:16,className:r.default.searchIcon,"aria-hidden":"true"}),a.jsx("input",{ref:l,className:r.default.input,value:n,onChange:b=>i(b.target.value),type:"text",role:"combobox","aria-expanded":"true","aria-autocomplete":"list","aria-controls":c,...t})]})};R.displayName="Command.Input";const q=({children:e,className:t,...n})=>{const{listId:i}=S(),c=[r.default.list,t].filter(Boolean).join(" ");return a.jsx("div",{id:i,className:c,role:"listbox",...n,children:e})};q.displayName="Command.List";const L=({children:e,className:t})=>{const{getVisibleItems:n}=S();if(n().length>0)return null;const c=[r.default.empty,t].filter(Boolean).join(" ");return a.jsx("div",{className:c,role:"status","aria-live":"polite",children:e})};L.displayName="Command.Empty";const A=({heading:e,children:t,className:n})=>{const i=[r.default.group,n].filter(Boolean).join(" ");return a.jsxs("div",{className:i,role:"group","aria-label":e,children:[e&&a.jsx("div",{className:r.default.groupHeading,children:e}),t]})};A.displayName="Command.Group";let z=0;const V=({onSelect:e,disabled:t=!1,value:n,children:i,className:c,...l})=>{const{filter:C,search:b,activeIndex:v,getVisibleItems:p,registerItem:y,unregisterItem:j}=S(),x=s.useRef("");x.current||(x.current=`cmd-item-${++z}`);const m=x.current,I=n||D(i);s.useEffect(()=>(y(m,I),()=>j(m)),[m,I,y,j]);const N=C(I,b)>0,h=p().indexOf(m)===v,k=()=>{t||e?.()},E=[r.default.item,t&&r.default.itemDisabled,!N&&r.default.itemHidden,c].filter(Boolean).join(" ");return a.jsx("div",{className:E,"data-command-id":m,"data-active":h,role:"option","aria-selected":h,"aria-disabled":t,onClick:k,...l,children:i})};V.displayName="Command.Item";const G=({className:e})=>{const t=[r.default.separator,e].filter(Boolean).join(" ");return a.jsx(U.Divider,{spacing:"none",className:t})};G.displayName="Command.Separator";const M=({children:e,className:t})=>{const n=[r.default.shortcut,t].filter(Boolean).join(" ");return a.jsx("span",{className:n,children:e})};M.displayName="Command.Shortcut";const P=({open:e,onOpenChange:t,children:n,className:i})=>{if(s.useEffect(()=>{if(!e)return;const l=C=>{C.key==="Escape"&&t(!1)};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,t]),s.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),!e)return null;const c=l=>{l.target===l.currentTarget&&t(!1)};return H.createPortal(a.jsx("div",{className:r.default.dialogBackdrop,onClick:c,children:a.jsx("div",{className:[r.default.dialogContent,i].filter(Boolean).join(" "),children:a.jsx(d,{children:n})})}),document.body)};P.displayName="Command.Dialog";d.Input=R;d.List=q;d.Empty=L;d.Group=A;d.Item=V;d.Separator=G;d.Shortcut=M;d.Dialog=P;d.displayName="Command";function D(e){return typeof e=="string"?e:typeof e=="number"?String(e):Array.isArray(e)?e.map(D).join(" "):s.isValidElement(e)&&e.props?D(e.props.children):""}exports.Command=d;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as a, jsxs as R } from "react/jsx-runtime";
|
|
2
3
|
import z, { useState as L, useRef as S, useId as F, useCallback as b, useMemo as W, createContext as J, useEffect as j, useContext as Q } from "react";
|
|
3
4
|
import { createPortal as X } from "react-dom";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),n=require("react"),w=require("lucide-react"),a=require("./CommandBar.module.css.cjs"),S=n.forwardRef(({open:d,onOpenChange:c,commands:m,recentCommands:i,onSelect:D,placeholder:E="Type a command or search...",emptyMessage:C="No results found.",footer:N,className:L,...R},M)=>{const[r,b]=n.useState(""),[o,u]=n.useState(0),v=n.useRef(null),y=n.useRef(null),k=n.useMemo(()=>{if(!r)return m;const e=r.toLowerCase();return m.filter(t=>{const l=t.label.toLowerCase().includes(e),h=t.description?.toLowerCase().includes(e),j=t.keywords?.some(K=>K.toLowerCase().includes(e));return l||h||j})},[m,r]),p=n.useMemo(()=>{const e=[],t=[];return k.forEach(l=>{if(l.category){const h=e.find(j=>j.title===l.category);h?h.commands.push(l):e.push({title:l.category,commands:[l]})}else t.push(l)}),t.length>0&&e.unshift({title:"",commands:t}),e},[k]),f=n.useMemo(()=>{const e=[];return i&&i.length>0&&!r&&e.push(...i),p.forEach(t=>{e.push(...t.commands)}),e},[p,i,r]);n.useEffect(()=>{d&&(b(""),u(0),setTimeout(()=>v.current?.focus(),0))},[d]);const $=n.useCallback(e=>{switch(e.key){case"ArrowDown":e.preventDefault(),u(t=>Math.min(t+1,f.length-1));break;case"ArrowUp":e.preventDefault(),u(t=>Math.max(t-1,0));break;case"Enter":{e.preventDefault();const t=f[o];t&&!t.disabled&&x(t);break}case"Escape":e.preventDefault(),c(!1);break}},[f,o,c]),x=e=>{D?.(e),e.onSelect(),c(!1)};if(n.useEffect(()=>{const e=y.current;if(!e)return;const t=e.querySelector(`[data-index="${o}"]`);t&&t.scrollIntoView({block:"nearest"})},[o]),n.useEffect(()=>{const e=t=>{(t.metaKey||t.ctrlKey)&&t.key==="k"&&(t.preventDefault(),c(!d))};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[d,c]),!d)return null;const I=[a.default.commandBar,L].filter(Boolean).join(" ");let g=0;return s.jsx("div",{className:a.default.overlay,onClick:()=>c(!1),children:s.jsxs("div",{ref:M,className:I,onClick:e=>e.stopPropagation(),onKeyDown:$,...R,children:[s.jsxs("div",{className:a.default.inputWrapper,children:[s.jsx(w.Search,{size:18,className:a.default.searchIcon}),s.jsx("input",{ref:v,type:"text",className:a.default.input,placeholder:E,value:r,onChange:e=>{b(e.target.value),u(0)},autoComplete:"off",autoCorrect:"off",spellCheck:!1}),s.jsx("kbd",{className:a.default.shortcutHint,children:"ESC"})]}),s.jsx("div",{ref:y,className:a.default.results,children:f.length===0?s.jsx("div",{className:a.default.empty,children:C}):s.jsxs(s.Fragment,{children:[i&&i.length>0&&!r&&s.jsxs("div",{className:a.default.group,children:[s.jsx("div",{className:a.default.groupTitle,children:"Recent"}),i.map(e=>{const t=g++;return s.jsxs("button",{type:"button","data-index":t,className:`${a.default.item} ${t===o?a.default.itemSelected:""} ${e.disabled?a.default.itemDisabled:""}`,onClick:()=>!e.disabled&&x(e),onMouseEnter:()=>u(t),children:[e.icon&&s.jsx("span",{className:a.default.itemIcon,children:e.icon}),s.jsxs("span",{className:a.default.itemContent,children:[s.jsx("span",{className:a.default.itemLabel,children:e.label}),e.description&&s.jsx("span",{className:a.default.itemDescription,children:e.description})]}),e.shortcut&&s.jsx("kbd",{className:a.default.itemShortcut,children:e.shortcut})]},`recent-${e.id}`)})]}),p.map(e=>s.jsxs("div",{className:a.default.group,children:[e.title&&s.jsx("div",{className:a.default.groupTitle,children:e.title}),e.commands.map(t=>{const l=g++;return s.jsxs("button",{type:"button","data-index":l,className:`${a.default.item} ${l===o?a.default.itemSelected:""} ${t.disabled?a.default.itemDisabled:""}`,onClick:()=>!t.disabled&&x(t),onMouseEnter:()=>u(l),children:[t.icon&&s.jsx("span",{className:a.default.itemIcon,children:t.icon}),s.jsxs("span",{className:a.default.itemContent,children:[s.jsx("span",{className:a.default.itemLabel,children:t.label}),t.description&&s.jsx("span",{className:a.default.itemDescription,children:t.description})]}),t.shortcut&&s.jsx("kbd",{className:a.default.itemShortcut,children:t.shortcut})]},t.id)})]},e.title||"ungrouped"))]})}),N?s.jsx("div",{className:a.default.footer,children:N}):s.jsxs("div",{className:a.default.footer,children:[s.jsxs("span",{className:a.default.footerHint,children:[s.jsx(w.Command,{size:12})," ",s.jsx("span",{children:"K to toggle"})]}),s.jsxs("span",{className:a.default.footerHint,children:[s.jsx("span",{children:"↑↓"})," to navigate"]}),s.jsxs("span",{className:a.default.footerHint,children:[s.jsx("span",{children:"↵"})," to select"]})]})]})})});S.displayName="CommandBar";exports.CommandBar=S;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),f=require("react"),b=require("lucide-react"),e=require("./DataTable.module.css.cjs"),q=f.forwardRef(({left:n,right:i,children:u,className:x,...k},r)=>a.jsxs("div",{ref:r,className:`${e.default.toolbar} ${x||""}`,...k,children:[n&&a.jsx("div",{className:e.default.toolbarLeft,children:n}),u,i&&a.jsx("div",{className:e.default.toolbarRight,children:i})]}));q.displayName="DataTable.Toolbar";const I=f.forwardRef(({pagination:n,onChange:i,className:u,...x},k)=>{const{page:r,pageSize:h,total:N,pageSizeOptions:T=[10,25,50,100]}=n,m=Math.ceil(N/h),M=(r-1)*h+1,y=Math.min(r*h,N),v=o=>{o>=1&&o<=m&&i({page:o,pageSize:h})},g=o=>{i({page:1,pageSize:Number(o.target.value)})};return a.jsxs("div",{ref:k,className:`${e.default.pagination} ${u||""}`,...x,children:[a.jsxs("div",{className:e.default.paginationInfo,children:[a.jsxs("span",{className:e.default.paginationText,children:[M,"-",y," of ",N]}),a.jsx("select",{className:e.default.pageSizeSelect,value:h,onChange:g,children:T.map(o=>a.jsxs("option",{value:o,children:[o," / page"]},o))})]}),a.jsxs("div",{className:e.default.paginationControls,children:[a.jsx("button",{type:"button",className:e.default.paginationButton,onClick:()=>v(r-1),disabled:r<=1,"aria-label":"Previous page",children:a.jsx(b.ChevronLeft,{size:16})}),a.jsxs("span",{className:e.default.paginationPages,children:[r," / ",m]}),a.jsx("button",{type:"button",className:e.default.paginationButton,onClick:()=>v(r+1),disabled:r>=m,"aria-label":"Next page",children:a.jsx(b.ChevronRight,{size:16})})]})]})});I.displayName="DataTable.Pagination";const R=f.forwardRef(({state:n,className:i,...u},x)=>a.jsxs("div",{ref:x,className:`${e.default.emptyState} ${i||""}`,...u,children:[n.icon&&a.jsx("div",{className:e.default.emptyIcon,children:n.icon}),a.jsx("h3",{className:e.default.emptyTitle,children:n.title}),n.description&&a.jsx("p",{className:e.default.emptyDescription,children:n.description}),n.action&&a.jsx("div",{className:e.default.emptyAction,children:n.action})]}));R.displayName="DataTable.EmptyState";function oe({columns:n,data:i,rowKey:u="id",searchable:x=!1,searchPlaceholder:k="Search...",searchValue:r,onSearchChange:h,pagination:N,onPaginationChange:T,selectable:m=!1,selectedKeys:M,onSelectionChange:y,bulkActions:v,rowActions:g,sort:o,onSortChange:S,emptyState:B,loading:E=!1,striped:K=!1,hoverable:W=!0,compact:w=!1,stickyHeader:H=!1,maxHeight:U,onRowClick:_,toolbar:z,className:F,...G},J){const[Q,X]=f.useState(""),[Y,O]=f.useState([]),[Z,ee]=f.useState(),[P,V]=f.useState(null),$=r??Q,d=M??Y,p=o??Z,A=f.useCallback((t,s)=>typeof u=="function"?u(t,s):t[u]??s,[u]),ae=t=>{const s=t.target.value;h?h(s):X(s)},te=t=>{if(!t.sortable)return;let s;p?.key===t.key?p.direction==="asc"?s={key:t.key,direction:"desc"}:s=void 0:s={key:t.key,direction:"asc"},S?S(s):ee(s)},se=()=>{const t=i.map((c,j)=>A(c,j)),s=d.length===i.length?[]:t;y?y(s):O(s)},le=t=>{const s=d.includes(t)?d.filter(c=>c!==t):[...d,t];y?y(s):O(s)},D=f.useMemo(()=>{let t=[...i];if(!h&&$){const s=$.toLowerCase();t=t.filter(c=>Object.values(c).some(j=>String(j).toLowerCase().includes(s)))}return!S&&p&&t.sort((s,c)=>{const j=s[p.key],l=c[p.key],L=String(j).localeCompare(String(l));return p.direction==="asc"?L:-L}),t},[i,$,p,h,S]),ne=[e.default.dataTable,w&&e.default.compact,F].filter(Boolean).join(" "),ie=[e.default.table,K&&e.default.striped,W&&e.default.hoverable,H&&e.default.stickyHeader].filter(Boolean).join(" "),ce=i.length>0&&d.length===i.length,de=d.length>0&&d.length<i.length,re={icon:a.jsx(b.Inbox,{size:48}),title:"No data",description:"There are no items to display."};return a.jsxs("div",{ref:J,className:ne,...G,children:[(x||z||m&&d.length>0)&&a.jsxs("div",{className:e.default.toolbar,children:[a.jsxs("div",{className:e.default.toolbarLeft,children:[m&&d.length>0&&v&&a.jsxs("div",{className:e.default.bulkActions,children:[a.jsxs("span",{className:e.default.selectedCount,children:[d.length," selected"]}),v.map(t=>a.jsxs("button",{type:"button",className:`${e.default.bulkAction} ${t.variant==="danger"?e.default.bulkActionDanger:""}`,onClick:()=>t.onClick(d),children:[t.icon,a.jsx("span",{children:t.label})]},t.key))]}),z]}),a.jsx("div",{className:e.default.toolbarRight,children:x&&a.jsxs("div",{className:e.default.searchWrapper,children:[a.jsx(b.Search,{size:16,className:e.default.searchIcon}),a.jsx("input",{type:"text",className:e.default.searchInput,placeholder:k,value:$,onChange:ae})]})})]}),a.jsx("div",{className:e.default.tableContainer,style:{maxHeight:U},children:E?a.jsx("div",{className:e.default.loadingOverlay,children:a.jsx("div",{className:e.default.spinner})}):D.length===0?a.jsx(R,{state:B||re}):a.jsxs("table",{className:ie,children:[a.jsx("thead",{className:e.default.thead,children:a.jsxs("tr",{children:[m&&a.jsx("th",{className:`${e.default.th} ${e.default.checkboxCell}`,children:a.jsx("input",{type:"checkbox",className:e.default.checkbox,checked:ce,ref:t=>{t&&(t.indeterminate=de)},onChange:se,"aria-label":"Select all rows"})}),n.map(t=>a.jsx("th",{className:`${e.default.th} ${t.sortable?e.default.sortable:""} ${t.sticky?e.default[`sticky-${t.sticky}`]:""} ${t.hideOnMobile?e.default.hideOnMobile:""}`,style:{width:t.width,minWidth:t.minWidth,textAlign:t.align},onClick:()=>te(t),children:a.jsxs("span",{className:e.default.thContent,children:[t.header,t.sortable&&a.jsx("span",{className:e.default.sortIcon,children:p?.key===t.key?p.direction==="asc"?a.jsx(b.ChevronUp,{size:14}):a.jsx(b.ChevronDown,{size:14}):a.jsx(b.ChevronUp,{size:14,className:e.default.sortIconInactive})})]})},t.key)),g&&g.length>0&&a.jsx("th",{className:`${e.default.th} ${e.default.actionsCell}`,children:a.jsx("span",{className:"sr-only",children:"Actions"})})]})}),a.jsx("tbody",{className:e.default.tbody,children:D.map((t,s)=>{const c=A(t,s),j=d.includes(c);return a.jsxs("tr",{className:`${e.default.tr} ${j?e.default.trSelected:""}`,onClick:l=>{l.target.closest(`.${e.default.checkbox}`)||l.target.closest(`.${e.default.actionMenu}`)||_?.(t,s)},children:[m&&a.jsx("td",{className:`${e.default.td} ${e.default.checkboxCell}`,children:a.jsx("input",{type:"checkbox",className:e.default.checkbox,checked:j,onChange:()=>le(c),"aria-label":`Select row ${s+1}`})}),n.map(l=>a.jsx("td",{className:`${e.default.td} ${l.sticky?e.default[`sticky-${l.sticky}`]:""} ${l.hideOnMobile?e.default.hideOnMobile:""}`,style:{textAlign:l.align},children:l.render?l.render(t[l.key],t,s):String(t[l.key]??"")},l.key)),g&&g.length>0&&a.jsx("td",{className:`${e.default.td} ${e.default.actionsCell}`,children:a.jsxs("div",{className:e.default.actionMenu,children:[a.jsx("button",{type:"button",className:e.default.actionMenuTrigger,onClick:()=>V(P===c?null:c),"aria-label":"Row actions",children:a.jsx(b.MoreHorizontal,{size:16})}),P===c&&a.jsx("div",{className:e.default.actionMenuDropdown,children:g.filter(l=>!l.show||l.show(t)).map(l=>a.jsxs("button",{type:"button",className:`${e.default.actionMenuItem} ${l.variant==="danger"?e.default.actionMenuItemDanger:""}`,onClick:()=>{l.onClick(t),V(null)},children:[l.icon,a.jsx("span",{children:l.label})]},l.key))})]})})]},c)})})]})}),N&&D.length>0&&a.jsx(I,{pagination:N,onChange:T||(()=>{})})]})}const C=f.forwardRef(oe);C.Toolbar=q;C.Pagination=I;C.EmptyState=R;exports.DataTable=C;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs as n, jsx as t } from "react/jsx-runtime";
|
|
2
3
|
import { forwardRef as T, useState as M, useCallback as pe, useMemo as me } from "react";
|
|
3
4
|
import { Search as be, ChevronUp as E, ChevronDown as Ne, MoreHorizontal as ge, Inbox as ye, ChevronLeft as ke, ChevronRight as ue } from "lucide-react";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),r=require("react"),d=require("date-fns"),O=require("lucide-react"),l=require("./DatePicker.module.css.cjs"),h=require("../Calendar/Calendar.cjs"),R=require("../Popover/Popover.cjs"),F=require("../Button/Button.cjs"),x=e=>{const{mode:a="single",min:S,max:b,disabledDates:v,placeholder:m="Pick a date",presets:i,format:c="PPP",disabled:C=!1,triggerClassName:P,className:N}=e,[k,o]=r.useState(!1),f=r.useMemo(()=>a==="single"&&e.mode!=="range"?e.selected?d.format(e.selected,c):null:a==="range"&&e.mode==="range"&&e.selected?.from?e.selected.to?`${d.format(e.selected.from,c)} - ${d.format(e.selected.to,c)}`:d.format(e.selected.from,c):null,[a,e,c]),g=r.useCallback(n=>{if(a==="single"&&e.mode!=="range"){const s=e.onSelect;s?.(n),o(!1)}else if(a==="range"&&e.mode==="range"){const s=e.onSelect,u=n;s?.(u),u?.from&&u?.to&&o(!1)}},[a,e]),q=r.useCallback(n=>{if(a==="single"&&e.mode!=="range"){const s=e.onSelect;s?.(n.value)}else if(a==="range"&&e.mode==="range"){const s=e.onSelect;s?.(n.value)}o(!1)},[a,e]),y=[l.default.trigger,P].filter(Boolean).join(" "),B=[l.default.wrapper,N].filter(Boolean).join(" "),j={min:S,max:b,disabled:v},D=t.jsxs("div",{className:l.default.popoverContent,children:[i&&i.length>0&&t.jsx("div",{className:l.default.presets,children:i.map(n=>t.jsx("button",{type:"button",className:l.default.presetButton,onClick:()=>q(n),children:n.label},n.label))}),a==="single"?t.jsx(h.Calendar,{mode:"single",selected:e.mode!=="range"?e.selected:void 0,onSelect:g,...j}):t.jsx(h.Calendar,{mode:"range",selected:e.mode==="range"?e.selected:void 0,onSelect:g,...j})]}),w=t.jsx(F.Button,{variant:"secondary",className:y,disabled:C,"aria-label":m,icon:t.jsx(O.Calendar,{size:16,className:l.default.triggerIcon}),children:f?t.jsx("span",{children:f}):t.jsx("span",{className:l.default.placeholder,children:m})});return t.jsx("div",{className:B,children:t.jsx(R.Popover,{trigger:w,content:D,placement:"bottom-start",open:k,onOpenChange:o,showArrow:!1,offset:4,className:l.default.popover})})};x.displayName="DatePicker";exports.DatePicker=x;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),a=require("react"),P=require("lucide-react"),e=require("./DetailPanel.module.css.cjs"),u=a.forwardRef(({open:t,onClose:s,title:f,description:m,subtitle:d,children:v,size:h="md",position:y="right",headerActions:j,footer:n,overlay:N=!0,closeOnOverlayClick:x=!0,closeOnEscape:r=!0,loading:b=!1,className:p,...w},D)=>{const c=a.useRef(null),o=m??d;if(a.useEffect(()=>{d&&process.env.NODE_ENV==="development"&&console.warn('[DetailPanel] The "subtitle" prop is deprecated. Use "description" instead. subtitle will be removed in v3.0.')},[d]),a.useEffect(()=>{if(!t||!r)return;const i=k=>{k.key==="Escape"&&s()};return document.addEventListener("keydown",i),()=>document.removeEventListener("keydown",i)},[t,r,s]),a.useEffect(()=>{if(t){const i=document.body.style.overflow;return document.body.style.overflow="hidden",setTimeout(()=>{c.current?.focus()},0),()=>{document.body.style.overflow=i}}},[t]),!t)return null;const E=()=>{x&&s()},g=[e.default.panel,e.default[`size-${h}`],e.default[`position-${y}`],p].filter(Boolean).join(" ");return l.jsxs("div",{className:e.default.container,children:[N&&l.jsx("div",{className:e.default.overlay,onClick:E,"aria-hidden":"true"}),l.jsxs("div",{ref:D||c,className:g,role:"dialog","aria-modal":"true","aria-labelledby":"detail-panel-title",tabIndex:-1,...w,children:[l.jsxs("div",{className:e.default.header,children:[l.jsxs("div",{className:e.default.headerContent,children:[l.jsx("h2",{id:"detail-panel-title",className:e.default.title,children:f}),o&&l.jsx("p",{className:e.default.subtitle,children:o})]}),l.jsxs("div",{className:e.default.headerActions,children:[j,l.jsx("button",{type:"button",className:e.default.closeButton,onClick:s,"aria-label":"Close panel",children:l.jsx(P.X,{size:20})})]})]}),l.jsx("div",{className:e.default.body,children:b?l.jsx("div",{className:e.default.loading,children:l.jsx("div",{className:e.default.spinner})}):v}),n&&l.jsx("div",{className:e.default.footer,children:n})]})]})});u.displayName="DetailPanel";exports.DetailPanel=u;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),s=require("react"),g=require("react-dom"),a=require("./Drawer.module.css.cjs"),u=s.forwardRef(({children:e,className:r,...o},d)=>t.jsx("div",{ref:d,className:`${a.default.header} ${r||""}`,...o,children:e}));u.displayName="Drawer.Header";const f=s.forwardRef(({children:e,className:r,...o},d)=>t.jsx("div",{ref:d,className:`${a.default.body} ${r||""}`,...o,children:e}));f.displayName="Drawer.Body";const w=s.forwardRef(({children:e,className:r,...o},d)=>t.jsx("div",{ref:d,className:`${a.default.footer} ${r||""}`,...o,children:e}));w.displayName="Drawer.Footer";const m=s.forwardRef(({open:e,onClose:r,placement:o="right",size:d="md",closeOnBackdrop:n=!0,closeOnEscape:c=!0,showCloseButton:y=!0,children:v,className:b,...h},j)=>{const l=s.useCallback(i=>{c&&i.key==="Escape"&&r()},[c,r]),k=s.useCallback(()=>{n&&r()},[n,r]);if(s.useEffect(()=>{if(e){const i=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",l),()=>{document.body.style.overflow=i,document.removeEventListener("keydown",l)}}},[e,l]),!e)return null;const x=[a.default.overlay,e&&a.default.overlayVisible].filter(Boolean).join(" "),D=[a.default.drawer,a.default[o],a.default[`size-${d}`],e&&a.default.drawerVisible,b].filter(Boolean).join(" "),N=t.jsxs("div",{className:x,children:[t.jsx("div",{className:a.default.backdrop,onClick:k,"aria-hidden":"true"}),t.jsxs("div",{ref:j,className:D,role:"dialog","aria-modal":"true",...h,children:[y&&t.jsx("button",{type:"button",className:a.default.closeButton,onClick:r,"aria-label":"Close drawer",children:t.jsx("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:t.jsx("path",{d:"M15 5L5 15M5 5L15 15",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}),v]})]});return g.createPortal(N,document.body)});m.displayName="Drawer";const p=Object.assign(m,{Header:u,Body:f,Footer:w});exports.Drawer=p;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),s=require("react"),U=require("react-dom"),i=require("./Dropdown.module.css.cjs"),V=(e,l,m)=>{const r=window.scrollX,c=window.scrollY,u=4;let n=0,h=0;switch(m){case"bottom-start":n=e.bottom+c+u,h=e.left+r;break;case"bottom":n=e.bottom+c+u,h=e.left+r+(e.width-l.width)/2;break;case"bottom-end":n=e.bottom+c+u,h=e.right+r-l.width;break;case"top-start":n=e.top+c-l.height-u,h=e.left+r;break;case"top":n=e.top+c-l.height-u,h=e.left+r+(e.width-l.width)/2;break;case"top-end":n=e.top+c-l.height-u,h=e.right+r-l.width;break}return{top:n,left:h}},_=({item:e,onSelect:l,onNavigate:m})=>{const r=()=>{e.disabled||(e.onClick?.(),l())},c=n=>{n.key==="Enter"||n.key===" "?(n.preventDefault(),r()):n.key==="ArrowDown"?(n.preventDefault(),m?.("down")):n.key==="ArrowUp"&&(n.preventDefault(),m?.("up"))},u=[i.default.item,e.disabled&&i.default.disabled,e.danger&&i.default.danger].filter(Boolean).join(" ");return a.jsxs("div",{className:u,role:"menuitem",tabIndex:e.disabled?-1:0,"aria-disabled":e.disabled,onClick:r,onKeyDown:c,children:[e.icon&&a.jsx("span",{className:i.default.icon,"aria-hidden":"true",children:e.icon}),a.jsx("span",{className:i.default.label,children:e.label}),e.shortcut&&a.jsx("span",{className:i.default.shortcut,"aria-hidden":"true",children:e.shortcut})]})},P=s.forwardRef(({trigger:e,items:l=[],groups:m=[],placement:r="bottom-start",open:c,onOpenChange:u,onSelect:n,minWidth:h=180,closeOnSelect:y=!0,className:F,...S},A)=>{const[B,M]=s.useState(!1),[C,z]=s.useState({top:0,left:0}),[v,E]=s.useState(-1),w=s.useRef(null),k=s.useRef(null),x=s.useRef(new Map);s.useImperativeHandle(A,()=>w.current);const j=c!==void 0,f=j?c:B,I=(m.length>0?m:[{items:l}]).flatMap(t=>t.items).filter(t=>!t.disabled),b=s.useCallback(t=>{j||M(t),u?.(t),t||E(-1)},[j,u]),p=s.useCallback(()=>{if(!w.current||!k.current)return;const t=w.current.getBoundingClientRect(),d=k.current.getBoundingClientRect(),o=V(t,d,r);z(o)},[r]);s.useEffect(()=>{if(f)return requestAnimationFrame(p),window.addEventListener("resize",p),window.addEventListener("scroll",p,!0),requestAnimationFrame(()=>{const t=x.current.get(0);t&&(t.focus(),E(0))}),()=>{window.removeEventListener("resize",p),window.removeEventListener("scroll",p,!0)}},[f,p]),s.useEffect(()=>{if(!f)return;const t=d=>{const o=d.target;w.current&&!w.current.contains(o)&&k.current&&!k.current.contains(o)&&b(!1)};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[f,b]),s.useEffect(()=>{if(!f)return;const t=d=>{d.key==="Escape"&&b(!1)};return document.addEventListener("keydown",t),()=>document.removeEventListener("keydown",t)},[f,b]);const K=s.useCallback(()=>{b(!f)},[f,b]),T=s.useCallback(t=>{n?.(t),y&&b(!1)},[y,n,b]),X=s.useCallback(t=>{const d=I.length;if(d===0)return;let o;t==="down"?o=v<d-1?v+1:0:o=v>0?v-1:d-1,E(o),x.current.get(o)?.focus()},[v,I.length]),Y=s.isValidElement(e)?s.cloneElement(e,{onClick:K,"aria-expanded":f,"aria-haspopup":"menu"}):e,D=m.length>0?m:[{items:l}],H=[i.default.menu,f&&i.default.visible,F].filter(Boolean).join(" ");let N=0;const O=a.jsx("div",{ref:k,className:H,style:{top:C.top,left:C.left,minWidth:h},role:"menu","aria-orientation":"vertical",...S,children:D.map((t,d)=>a.jsxs("div",{className:i.default.group,children:[t.label&&a.jsx("div",{className:i.default.groupLabel,children:t.label}),t.items.map(o=>{const L=N;return o.disabled||N++,a.jsx("div",{ref:q=>{q&&!o.disabled&&x.current.set(L,q)},children:a.jsx(_,{item:o,onSelect:()=>T(o),onNavigate:X})},o.id)}),d<D.length-1&&a.jsx("div",{className:i.default.separator,role:"separator"})]},d))});return a.jsxs(a.Fragment,{children:[a.jsx("div",{ref:w,className:i.default.trigger,children:Y}),f&&U.createPortal(O,document.body)]})});P.displayName="Dropdown";exports.Dropdown=P;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsx as m, jsxs as L, Fragment as O } from "react/jsx-runtime";
|
|
2
3
|
import { forwardRef as Q, useState as N, useRef as C, useImperativeHandle as W, useCallback as k, useEffect as x, isValidElement as Z, cloneElement as _ } from "react";
|
|
3
4
|
import { createPortal as $ } from "react-dom";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),x=require("react"),b=require("lucide-react"),e=require("./Field.module.css.cjs"),v=x.forwardRef(({label:i,error:s,helperText:t,leftIcon:r,rightIcon:d,fullWidth:I=!1,size:c="md",optional:u=!1,className:g,id:$,disabled:f,required:o,"aria-label":h,"aria-describedby":p,...y},F)=>{const C=x.useId(),n=$||`field-${C}`,m=`${n}-error`,j=`${n}-helper`,N=s&&!d,l=[];s&&l.push(m),t&&!s&&l.push(j),p&&l.push(p);const R=l.length>0?l.join(" "):void 0;!(i||h)&&process.env.NODE_ENV==="development"&&console.warn("Field: Missing accessible name. Provide either a `label` prop or `aria-label` for screen reader users.");const q=[e.default.fieldContainer,I&&e.default.fullWidth,s&&e.default.error,f&&e.default.disabled,g].filter(Boolean).join(" "),A=[e.default.input,e.default[c],r&&e.default.hasLeftIcon,(d||N)&&e.default.hasRightIcon].filter(Boolean).join(" "),B=c==="sm"?14:c==="lg"?20:16;return a.jsxs("div",{className:q,children:[i&&a.jsxs("label",{htmlFor:n,className:e.default.label,children:[a.jsx("span",{className:e.default.labelText,children:i}),u&&a.jsx("span",{className:e.default.optional,"aria-hidden":"true",children:"(optional)"}),o&&!u&&a.jsx("span",{className:e.default.required,"aria-hidden":"true",children:"*"})]}),a.jsxs("div",{className:e.default.inputWrapper,children:[r&&a.jsx("span",{className:e.default.leftIcon,"aria-hidden":"true",children:r}),a.jsx("input",{ref:F,id:n,className:A,disabled:f,required:o,"aria-required":o||void 0,"aria-invalid":s?"true":"false","aria-describedby":R,"aria-label":i?void 0:h,...y}),d&&a.jsx("span",{className:`${e.default.rightIcon} ${e.default.rightIconInteractive}`,children:d}),N&&a.jsx("span",{className:`${e.default.rightIcon} ${e.default.errorIconInline}`,"aria-hidden":"true",children:a.jsx(b.AlertCircle,{size:B})})]}),t&&!s&&a.jsx("p",{id:j,className:e.default.helperText,children:t}),s&&a.jsxs("p",{id:m,className:e.default.errorMessage,role:"alert","aria-live":"assertive",children:[a.jsx(b.AlertCircle,{size:14,"aria-hidden":"true",className:e.default.errorIconMessage}),a.jsx("span",{children:s})]})]})});v.displayName="Field";exports.Field=v;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),n=require("react"),o=require("lucide-react"),s=require("./FileUploader.module.css.cjs"),G=t=>t.startsWith("image/")?o.FileImage:t.startsWith("video/")?o.FileVideo:t.startsWith("audio/")?o.FileAudio:t.includes("pdf")||t.includes("document")?o.FileText:o.File,z=t=>{if(t===0)return"0 B";const i=1024,c=["B","KB","MB","GB"],h=Math.floor(Math.log(t)/Math.log(i));return`${parseFloat((t/Math.pow(i,h)).toFixed(1))} ${c[h]}`},$=n.forwardRef(({accept:t,maxFiles:i,maxSize:c,multiple:h=!0,onFilesAdded:C,onFileRemove:D,files:p=[],disabled:l=!1,dropzoneContent:M,placeholder:B="Drag and drop files here, or click to browse",showFileList:E=!0,compact:v=!1,variant:R="default",error:g,helperText:k,className:S,...W},y)=>{const x=n.useRef(null),[A,N]=n.useState(!1),[m,w]=n.useState(null),F=n.useCallback(e=>{const u=[],r=[],I=Array.from(e);return i&&p.length+I.length>i?(r.push(`Maximum ${i} files allowed`),{valid:u,errors:r}):(I.forEach(d=>{if(c&&d.size>c){r.push(`${d.name} exceeds maximum size of ${z(c)}`);return}if(t&&t.length>0&&!t.some(f=>f.startsWith(".")?d.name.toLowerCase().endsWith(f.toLowerCase()):f.endsWith("/*")?d.type.startsWith(f.replace("/*","/")):d.type===f)){r.push(`${d.name} is not an accepted file type`);return}u.push(d)}),{valid:u,errors:r})},[t,i,c,p.length]),j=n.useCallback(e=>{if(l)return;const{valid:u,errors:r}=F(e);r.length>0&&r[0]&&(w(r[0]),setTimeout(()=>w(null),3e3)),u.length>0&&C?.(u)},[l,F,C]),L=n.useCallback(e=>{e.preventDefault(),l||N(!0)},[l]),U=n.useCallback(e=>{e.preventDefault(),N(!1)},[]),b=n.useCallback(e=>{e.preventDefault(),N(!1),j(e.dataTransfer.files)},[j]),T=n.useCallback(e=>{e.target.files&&j(e.target.files),e.target.value=""},[j]),q=()=>{l||x.current?.click()},H=e=>{(e.key==="Enter"||e.key===" ")&&!l&&(e.preventDefault(),x.current?.click())},P=t?.join(","),K=[s.default.fileUploader,s.default[R],v&&s.default.compact,S].filter(Boolean).join(" "),O=[s.default.dropzone,A&&s.default.dropzoneDragging,l&&s.default.dropzoneDisabled,(g||m)&&s.default.dropzoneError].filter(Boolean).join(" ");return a.jsxs("div",{ref:y,className:K,...W,children:[a.jsxs("div",{className:O,onDragOver:L,onDragLeave:U,onDrop:b,onClick:q,onKeyDown:H,role:"button",tabIndex:l?-1:0,"aria-disabled":l,children:[a.jsx("input",{ref:x,type:"file",className:s.default.input,accept:P,multiple:h,onChange:T,disabled:l,"aria-hidden":"true"}),M||a.jsxs("div",{className:s.default.dropzoneContent,children:[a.jsx("div",{className:s.default.dropzoneIcon,children:a.jsx(o.Upload,{size:v?20:24})}),a.jsx("p",{className:s.default.dropzonePlaceholder,children:B}),!v&&a.jsxs("div",{className:s.default.dropzoneHints,children:[t&&a.jsxs("span",{className:s.default.dropzoneHint,children:["Accepted: ",t.join(", ")]}),c&&a.jsxs("span",{className:s.default.dropzoneHint,children:["Max size: ",z(c)]}),i&&a.jsxs("span",{className:s.default.dropzoneHint,children:["Max files: ",i]})]})]})]}),(g||m||k)&&a.jsx("div",{className:`${s.default.helperText} ${g||m?s.default.helperTextError:""}`,children:g||m||k}),E&&p.length>0&&a.jsx("ul",{className:s.default.fileList,children:p.map(e=>{const u=G(e.type);return a.jsxs("li",{className:s.default.fileItem,children:[a.jsx("div",{className:s.default.fileIcon,children:e.preview?a.jsx("img",{src:e.preview,alt:"",className:s.default.filePreview}):a.jsx(u,{size:20})}),a.jsxs("div",{className:s.default.fileInfo,children:[a.jsx("span",{className:s.default.fileName,children:e.name}),a.jsx("span",{className:s.default.fileSize,children:z(e.size)})]}),a.jsxs("div",{className:s.default.fileStatus,children:[e.status==="uploading"&&a.jsxs(a.Fragment,{children:[a.jsx("div",{className:s.default.progressBar,children:a.jsx("div",{className:s.default.progressFill,style:{width:`${e.progress||0}%`}})}),a.jsx(o.Loader2,{size:16,className:s.default.fileStatusIcon})]}),e.status==="completed"&&a.jsx(o.CheckCircle,{size:16,className:s.default.fileStatusSuccess}),e.status==="error"&&a.jsx(o.AlertCircle,{size:16,className:s.default.fileStatusError})]}),D&&a.jsx("button",{type:"button",className:s.default.fileRemove,onClick:r=>{r.stopPropagation(),D(e.id)},"aria-label":`Remove ${e.name}`,children:a.jsx(o.X,{size:16})})]},e.id)})})]})});$.displayName="FileUploader";exports.FileUploader=$;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
import { jsxs as a, jsx as s, Fragment as X } from "react/jsx-runtime";
|
|
2
3
|
import { forwardRef as q, useRef as J, useState as M, useCallback as u } from "react";
|
|
3
4
|
import { Upload as Q, Loader2 as Y, CheckCircle as Z, AlertCircle as _, X as b, FileImage as ee, FileVideo as re, FileAudio as se, FileText as ne, File as te } from "lucide-react";
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("react"),r=require("lucide-react"),l=require("./FilterBar.module.css.cjs"),$=({filter:c,onSelect:a,onClose:d})=>{const[n,i]=o.useState([]),p=t=>{if(c.type==="multi-select"){const m=n.includes(t.value)?n.filter(f=>f!==t.value):[...n,t.value];i(m)}else a(t.value),d()},h=()=>{n.length>0&&a(n),d()};return e.jsxs("div",{className:l.default.dropdown,children:[c.options?.map(t=>e.jsxs("button",{type:"button",className:`${l.default.dropdownItem} ${n.includes(t.value)?l.default.dropdownItemSelected:""}`,onClick:()=>p(t),children:[c.type==="multi-select"&&e.jsx("span",{className:l.default.checkbox,children:n.includes(t.value)&&"✓"}),e.jsx("span",{children:t.label}),t.count!==void 0&&e.jsx("span",{className:l.default.optionCount,children:t.count})]},t.value)),c.type==="multi-select"&&e.jsxs("div",{className:l.default.dropdownFooter,children:[e.jsx("button",{type:"button",className:l.default.dropdownCancel,onClick:d,children:"Cancel"}),e.jsx("button",{type:"button",className:l.default.dropdownApply,onClick:h,children:"Apply"})]})]})},N=o.forwardRef(({filters:c,activeFilters:a,onFilterChange:d,onFilterRemove:n,onClearAll:i,searchable:p=!1,searchValue:h="",onSearchChange:t,searchPlaceholder:m="Search...",showCount:f=!0,compact:b=!1,className:k,...g},w)=>{const[C,x]=o.useState(null),j=o.useRef(null);o.useEffect(()=>{const s=u=>{j.current&&!j.current.contains(u.target)&&x(null)};return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[]);const S=(s,u)=>{d(s,u)},R=[l.default.filterBar,b&&l.default.compact,k].filter(Boolean).join(" ");return e.jsxs("div",{ref:w,className:R,...g,children:[p&&e.jsxs("div",{className:l.default.searchWrapper,children:[e.jsx(r.Search,{size:16,className:l.default.searchIcon}),e.jsx("input",{type:"text",className:l.default.searchInput,placeholder:m,value:h,onChange:s=>t?.(s.target.value)})]}),e.jsx("div",{className:l.default.filters,ref:j,children:c.map(s=>{const u=a.some(v=>v.key===s.key),y=C===s.key;return e.jsxs("div",{className:l.default.filterWrapper,children:[e.jsxs("button",{type:"button",className:`${l.default.filterTrigger} ${u?l.default.filterActive:""}`,onClick:()=>x(y?null:s.key),children:[s.icon||(s.type.includes("date")?e.jsx(r.Calendar,{size:14}):e.jsx(r.Filter,{size:14})),e.jsx("span",{children:s.label}),e.jsx(r.ChevronDown,{size:14,className:`${l.default.chevron} ${y?l.default.chevronOpen:""}`})]}),y&&s.type!=="text"&&e.jsx($,{filter:s,onSelect:v=>S(s.key,v),onClose:()=>x(null)})]},s.key)})}),a.length>0&&e.jsxs("div",{className:l.default.activeFilters,children:[a.map(s=>e.jsxs("span",{className:l.default.chip,children:[e.jsx("span",{className:l.default.chipLabel,children:s.label}),e.jsx("button",{type:"button",className:l.default.chipRemove,onClick:()=>n(s.key),"aria-label":`Remove ${s.label} filter`,children:e.jsx(r.X,{size:12})})]},s.key)),i&&a.length>1&&e.jsx("button",{type:"button",className:l.default.clearAll,onClick:i,children:"Clear all"})]}),f&&a.length>0&&e.jsxs("span",{className:l.default.count,children:[a.length," filter",a.length!==1?"s":""," ","active"]})]})});N.displayName="FilterBar";exports.FilterBar=N;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),l=require("react"),s=require("../../utils/fonts.cjs");function m({onLoad:r,onError:i,showLoadingState:h=!1,loadingComponent:u,children:d}){const[g,t]=l.useState(!1),[f,F]=l.useState(!1);return l.useEffect(()=>{if(typeof document>"u"||f)return;const c=document.head;if(c.querySelector('link[href*="fonts.googleapis.com"]')){F(!0),t(!0),r?.();return}try{s.FONT_PRECONNECT_URLS.forEach((a,y)=>{const n=document.createElement("link");n.rel="preconnect",n.href=a,y===1&&(n.crossOrigin="anonymous"),n.setAttribute("data-orion-fonts","preconnect"),c.appendChild(n)});const e=document.createElement("link");e.rel="stylesheet",e.href=s.GOOGLE_FONTS_URL,e.setAttribute("data-orion-fonts","stylesheet"),e.onload=async()=>{try{await s.waitForFonts([...s.ALL_FONTS]),t(!0),r?.()}catch{t(!0),r?.()}},e.onerror=()=>{const a=new Error("Failed to load Google Fonts");console.error("[Orion] Failed to load fonts from Google Fonts"),i?.(a),t(!0)},c.appendChild(e),F(!0)}catch(e){console.error("[Orion] Error injecting font links:",e),i?.(e instanceof Error?e:new Error("Font injection failed")),t(!0)}},[f,r,i]),h&&!g?u?o.jsx(o.Fragment,{children:u}):null:d?o.jsx(o.Fragment,{children:d}):null}m.displayName="FontLoader";exports.FontLoader=m;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),r=require("react"),$=require("lucide-react"),e=require("./FormSection.module.css.cjs"),m=r.forwardRef(({label:t,helpText:d,children:o,columns:l=1,className:s,...n},i)=>{const u=[e.default.group,e.default[`columns-${l}`],s].filter(Boolean).join(" ");return a.jsxs("div",{ref:i,className:u,...n,children:[t&&a.jsx("div",{className:e.default.groupLabel,children:t}),a.jsx("div",{className:e.default.groupFields,children:o}),d&&a.jsx("div",{className:e.default.groupHelp,children:d})]})});m.displayName="FormSection.Group";const j=r.forwardRef(({children:t,align:d="end",className:o,...l},s)=>{const n=[e.default.actions,e.default[`align-${d}`],o].filter(Boolean).join(" ");return a.jsx("div",{ref:s,className:n,...l,children:t})});j.displayName="FormSection.Actions";const N=r.forwardRef(({title:t,description:d,children:o,actions:l,collapsible:s=!1,defaultCollapsed:n=!1,divider:i=!1,variant:u="default",icon:f,disabled:h=!1,className:x,...p},v)=>{const[c,S]=r.useState(n),g=[e.default.formSection,e.default[`variant-${u}`],i&&e.default.divider,h&&e.default.disabled,s&&e.default.collapsible,c&&e.default.collapsed,x].filter(Boolean).join(" "),F=()=>{s&&S(!c)},y=s?"button":"div",R=s?{type:"button",onClick:F,"aria-expanded":!c}:{},C=t||f||s;return a.jsxs("div",{ref:v,className:g,...p,children:[C&&a.jsxs(y,{className:e.default.header,...R,children:[a.jsxs("div",{className:e.default.headerContent,children:[f&&a.jsx("span",{className:e.default.icon,children:f}),(t||d)&&a.jsxs("div",{className:e.default.headerText,children:[t&&a.jsx("h3",{className:e.default.title,children:t}),d&&a.jsx("p",{className:e.default.description,children:d})]})]}),s&&a.jsx($.ChevronDown,{size:20,className:`${e.default.collapseIcon} ${c?e.default.iconCollapsed:""}`})]}),(!s||!c)&&a.jsxs("div",{className:e.default.content,children:[a.jsx("div",{className:e.default.fields,children:o}),l&&a.jsx("div",{className:e.default.actionsWrapper,children:l})]})]})});N.displayName="FormSection";const q=Object.assign(N,{Group:m,Actions:j});exports.FormSection=q;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I=require("react/jsx-runtime"),t=require("react"),n=require("./Icon.module.css.cjs"),S={xs:12,sm:16,md:20,lg:24,xl:32},l=t.forwardRef(({icon:i,size:e="md",color:s="current",strokeWidth:d=2,label:a,decorative:c=!1,disabled:f=!1,className:o,style:u,...m},p)=>{const h=t.useMemo(()=>typeof e=="number"?e:S[e],[e]),g=t.useMemo(()=>{const r=[n.default.icon];return typeof e=="string"&&r.push(n.default[e]),r.push(n.default[s]),f&&r.push(n.default.disabled),o&&r.push(o),r.filter(Boolean).join(" ")},[e,s,f,o]),y=t.useMemo(()=>c?{"aria-hidden":!0,role:"presentation"}:{"aria-label":a,role:"img"},[c,a]),M=t.useMemo(()=>typeof e=="number"?{width:e,height:e,...u}:u,[e,u]);return I.jsx(i,{ref:p,className:g,size:h,strokeWidth:d,style:M,...y,...m})});l.displayName="Icon";exports.Icon=l;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),s=require("react"),d=require("lucide-react"),a=require("./IconGallery.module.css.cjs"),C={Navigation:["Menu","X","ChevronDown","ChevronUp","ChevronLeft","ChevronRight","ArrowDown","ArrowUp","ArrowLeft","ArrowRight","Home","Settings","Bell","User","LogOut","LogIn","Search","MapPin","Navigation"],Actions:["Plus","Minus","Check","Copy","Download","Upload","Share2","Trash2","Edit","Eye","EyeOff","Lock","Unlock","Zap","Refresh","RotateCw","Save","Send","Archive","Flag"],Status:["AlertCircle","CheckCircle","XCircle","Info","HelpCircle","AlertTriangle","CheckCircle2","Circle","Loader","Loader2","Clock","Calendar"],Media:["Image","Video","Music","FileText","File","Folder","FolderOpen","Camera","Paperclip","Play","Pause","Volume2","VolumeX"],Communication:["Mail","MessageSquare","Heart","Star","Share","MessageCircle","Phone","Smartphone","Gift","ThumbsUp","ThumbsDown"],Commerce:["ShoppingCart","DollarSign","CreditCard","Tag","Briefcase","TrendingUp","TrendingDown","BarChart","PieChart","Activity"]},m=({className:u})=>{const[r,f]=s.useState(""),[n,h]=s.useState(null),[g,p]=s.useState(null),c=s.useMemo(()=>Object.keys(d.icons).sort(),[]),o=s.useMemo(()=>{let e=c;if(n){const l=C[n];l&&(e=e.filter(i=>l.includes(i)))}if(r){const l=r.toLowerCase();e=e.filter(i=>i.toLowerCase().includes(l))}return e.sort()},[c,r,n]),j=s.useCallback(e=>{const l=`import { ${e} } from 'lucide-react';`;navigator.clipboard.writeText(l),p(e),setTimeout(()=>p(null),1500)},[]),x=s.useCallback(e=>{const l=d.icons[e];return l?t.jsx(l,{size:24}):null},[]);return t.jsxs("div",{className:`${a.default.gallery}${u?` ${u}`:""}`,children:[t.jsxs("div",{className:a.default.header,children:[t.jsx("h1",{children:"Icon Browser"}),t.jsxs("p",{children:[c.length.toLocaleString()," icons available"]})]}),t.jsxs("div",{className:a.default.searchContainer,children:[t.jsx(d.Search,{size:20,className:a.default.searchIcon}),t.jsx("input",{type:"text",placeholder:"Search icons...",value:r,onChange:e=>f(e.target.value),className:a.default.searchInput}),r&&t.jsxs("span",{className:a.default.resultCount,children:[o.length," results"]})]}),t.jsxs("div",{className:a.default.categories,children:[t.jsx("button",{className:`${a.default.categoryBtn} ${n?"":a.default.active}`,onClick:()=>h(null),type:"button",children:"All"}),Object.keys(C).map(e=>t.jsx("button",{className:`${a.default.categoryBtn} ${n===e?a.default.active:""}`,onClick:()=>h(e),type:"button",children:e},e))]}),t.jsx("div",{className:a.default.iconGrid,children:o.map(e=>t.jsxs("button",{className:a.default.iconItem,onClick:()=>j(e),title:e,type:"button",children:[t.jsx("span",{className:a.default.iconDisplay,children:x(e)}),t.jsx("span",{className:a.default.iconName,children:e}),g===e&&t.jsx("span",{className:a.default.copiedBadge,children:"Copied!"})]},e))}),o.length===0&&t.jsx("div",{className:a.default.noResults,children:t.jsxs("p",{children:['No icons found for "',r,'"']})}),t.jsxs("div",{className:a.default.usageInfo,children:[t.jsx("h3",{children:"Usage"}),t.jsx("pre",{className:a.default.codeBlock,children:`import { Search, Download } from 'lucide-react';
|
|
2
3
|
|
|
3
4
|
<Button icon={<Search size={20} />}>Search</Button>`})]})]})};m.displayName="IconGallery";exports.IconGallery=m;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),t=require("react"),n=require("./InputOTP.module.css.cjs"),b=t.createContext(null);function M(){const e=t.useContext(b);if(!e)throw new Error("InputOTP.Slot/Group/Separator must be used within an InputOTP");return e}const k=t.forwardRef(({className:e,children:s,...r},o)=>{const l=[n.default.group,e].filter(Boolean).join(" ");return u.jsx("div",{ref:o,className:l,...r,children:s})});k.displayName="InputOTP.Group";const w=t.forwardRef(({index:e,className:s,...r},o)=>{const{value:l,activeIndex:d,size:O,disabled:c,isFocused:I,focusInput:T}=M(),p=l[e],m=I&&e===d,P=p!==void 0&&p!=="",x=[n.default.slot,m&&n.default.slotActive,P&&n.default.slotFilled,c&&n.default.slotDisabled,s].filter(Boolean).join(" ");return u.jsx("div",{ref:o,className:x,onClick:T,...r,children:P?p:m?u.jsx("span",{className:n.default.caret}):null})});w.displayName="InputOTP.Slot";const R=t.forwardRef(({className:e,children:s,...r},o)=>{const l=[n.default.separator,e].filter(Boolean).join(" ");return u.jsx("div",{ref:o,className:l,role:"separator",...r,children:s??u.jsx("span",{"aria-hidden":"true",children:"–"})})});R.displayName="InputOTP.Separator";const g=t.forwardRef(({maxLength:e,value:s,defaultValue:r="",onChange:o,onComplete:l,type:d="numeric",size:O="md",disabled:c=!1,autoFocus:I=!1,className:T,children:p,...m},P)=>{const[x,y]=t.useState(r),[D,h]=t.useState(!1),j=t.useRef(null),N=s!==void 0,f=N?s:x,B=Math.min(f.length,e-1),F=d==="numeric"?"[0-9]":"[a-zA-Z0-9]",C=d==="numeric"?/[^0-9]/g:/[^a-zA-Z0-9]/g;t.useEffect(()=>{I&&j.current?.focus()},[I]);const v=t.useCallback(a=>{const i=a.replace(C,"").slice(0,e);N||y(i),o?.(i),i.length===e&&l?.(i)},[e,C,N,o,l]),A=t.useCallback(a=>{v(a.target.value)},[v]),G=t.useCallback(a=>{a.key==="Backspace"&&f.length===0&&a.preventDefault()},[f]),V=t.useCallback(a=>{a.preventDefault();const i=a.clipboardData.getData("text/plain");v(i)},[v]),S=t.useCallback(()=>{c||j.current?.focus()},[c]),q=[n.default.root,n.default[O],T].filter(Boolean).join(" "),z={value:f,activeIndex:B,size:O,disabled:c,isFocused:D,focusInput:S};return u.jsx(b.Provider,{value:z,children:u.jsxs("div",{ref:P,className:q,onClick:S,"data-otp-container":!0,...m,children:[u.jsx("input",{ref:j,className:n.default.hiddenInput,type:"text",inputMode:d==="numeric"?"numeric":"text",pattern:`${F}*`,maxLength:e,value:f,disabled:c,autoComplete:"one-time-code","aria-label":`OTP input, ${e} digits`,onChange:A,onKeyDown:G,onPaste:V,onFocus:()=>h(!0),onBlur:()=>h(!1),tabIndex:0}),p]})})});g.displayName="InputOTP";const E=Object.assign(g,{Group:k,Slot:w,Separator:R});exports.InputOTP=E;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),h=require("react"),y=require("lucide-react"),a=require("./List.module.css.cjs"),N=({item:s,size:c,interactive:e,selectable:d,onClick:o})=>{const i=h.useCallback(()=>{!s.disabled&&(e||d)&&s.onClick&&s.onClick(),o?.()},[s,e,d,o]),t=h.useCallback(u=>{(u.key==="Enter"||u.key===" ")&&(e||d)&&(u.preventDefault(),i())},[e,d,i]),f=[a.default.item,a.default[c],e&&a.default.interactive,d&&a.default.selectable,s.selected&&a.default.selected,s.disabled&&a.default.disabled,s.className].filter(Boolean).join(" "),r=!s.disabled&&(e||d||s.onClick);return l.jsxs("li",{className:f,role:d?"option":e?"button":void 0,tabIndex:r?0:void 0,"aria-selected":d?s.selected:void 0,"aria-disabled":s.disabled,onClick:r?i:void 0,onKeyDown:r?t:void 0,children:[s.leading&&l.jsx("span",{className:a.default.leading,"aria-hidden":"true",children:s.leading}),l.jsxs("div",{className:a.default.content,children:[l.jsx("span",{className:a.default.primary,children:s.primary}),s.secondary&&l.jsx("span",{className:a.default.secondary,children:s.secondary})]}),s.trailing&&l.jsx("span",{className:a.default.trailing,children:s.trailing}),d&&s.selected&&l.jsx("span",{className:a.default.checkmark,"aria-hidden":"true",children:l.jsx(y.Check,{size:c==="sm"?14:c==="lg"?20:16})})]})},j=h.forwardRef(({items:s,size:c="md",variant:e="default",interactive:d=!1,selectable:o=!1,onSelect:i,renderItem:t,emptyContent:f,className:r,...u},k)=>{const x=h.useCallback(n=>{i&&!n.disabled&&i(n)},[i]),p=[a.default.list,a.default[e],r].filter(Boolean).join(" ");return s.length===0&&f?l.jsx("div",{className:a.default.empty,children:f}):l.jsx("ul",{ref:k,className:p,role:o?"listbox":"list",...u,children:s.map((n,C)=>t?l.jsx("li",{className:a.default.customItem,children:t(n,C)},n.id):l.jsx(N,{item:n,size:c,interactive:d,selectable:o,onClick:()=>x(n)},n.id))})});j.displayName="List";exports.List=j;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
"use client";
|
|
1
2
|
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),n=require("react"),o=require("./Modal.module.css.cjs"),r=({open:e,onClose:a,size:t="md",closeOnBackdrop:m=!0,closeOnEscape:s=!0,showCloseButton:f=!0,children:y,className:v})=>{if(n.useEffect(()=>{if(!e||!s)return;const d=b=>{b.key==="Escape"&&a()};return document.addEventListener("keydown",d),()=>document.removeEventListener("keydown",d)},[e,s,a]),n.useEffect(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),!e)return null;const N=[o.default.modal,o.default[t],v].filter(Boolean).join(" "),j=d=>{m&&d.target===d.currentTarget&&a()};return l.jsx("div",{className:o.default.backdrop,onClick:j,role:"dialog","aria-modal":"true",children:l.jsxs("div",{className:N,children:[f&&l.jsx("button",{type:"button",className:o.default.closeButton,onClick:a,"aria-label":"Close modal",style:{position:"absolute",top:"var(--spacing-4)",right:"var(--spacing-4)"},children:"×"}),y]})})},i=({className:e,children:a})=>{const t=[o.default.header,e].filter(Boolean).join(" ");return l.jsx("div",{className:t,children:a})},c=({className:e,children:a})=>{const t=[o.default.body,e].filter(Boolean).join(" ");return l.jsx("div",{className:t,children:a})},u=({className:e,children:a})=>{const t=[o.default.footer,e].filter(Boolean).join(" ");return l.jsx("div",{className:t,children:a})};r.Header=i;r.Body=c;r.Footer=u;r.displayName="Modal";i.displayName="Modal.Header";c.displayName="Modal.Body";u.displayName="Modal.Footer";exports.Modal=r;
|