@codefast/ui 0.2.30 → 0.2.31
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/CHANGELOG.md +16 -0
- package/README.md +9 -9
- package/dist/chunk-25YVEZ64.cjs.map +1 -1
- package/dist/chunk-2EVCRJID.cjs.map +1 -1
- package/dist/chunk-2HEVHJKK.cjs.map +1 -1
- package/dist/chunk-2IMNP5E3.js +2 -0
- package/dist/chunk-2IMNP5E3.js.map +1 -0
- package/dist/chunk-2MN3L273.cjs.map +1 -1
- package/dist/chunk-2NGMMHVD.cjs.map +1 -1
- package/dist/chunk-3JCHUM2E.cjs.map +1 -1
- package/dist/chunk-3XKK56VS.cjs.map +1 -1
- package/dist/chunk-3YNM2FAF.cjs.map +1 -1
- package/dist/chunk-45XT7WPV.cjs.map +1 -1
- package/dist/chunk-5M632OZ3.cjs.map +1 -1
- package/dist/chunk-67WF7GP7.js +2 -0
- package/dist/chunk-67WF7GP7.js.map +1 -0
- package/dist/chunk-6Y3TATEU.cjs.map +1 -1
- package/dist/chunk-6Z2OPAPQ.cjs.map +1 -1
- package/dist/chunk-74METGII.cjs.map +1 -1
- package/dist/chunk-7CCZJ647.cjs.map +1 -1
- package/dist/chunk-AAAIMKE6.cjs.map +1 -1
- package/dist/chunk-ASEUIM44.cjs.map +1 -1
- package/dist/chunk-ASI3MMOG.cjs +2 -0
- package/dist/{chunk-JM2VJEQF.cjs.map → chunk-ASI3MMOG.cjs.map} +1 -1
- package/dist/chunk-AZFVCNWH.cjs.map +1 -1
- package/dist/chunk-BTEH3T5W.cjs.map +1 -1
- package/dist/chunk-BWJ6X4FP.js +2 -0
- package/dist/chunk-BWJ6X4FP.js.map +1 -0
- package/dist/chunk-BZPP4CU7.cjs.map +1 -1
- package/dist/chunk-CEK2UYDP.cjs.map +1 -1
- package/dist/chunk-CT4OIAD4.cjs.map +1 -1
- package/dist/chunk-DD4HTA6V.cjs.map +1 -1
- package/dist/chunk-E627ZOLH.cjs.map +1 -1
- package/dist/chunk-EMPC5HNU.cjs.map +1 -1
- package/dist/chunk-GDO6H6FE.cjs.map +1 -1
- package/dist/chunk-GDOXPS6I.cjs.map +1 -1
- package/dist/chunk-GGIVV535.cjs.map +1 -1
- package/dist/{chunk-HEK7QLFR.js → chunk-GIPFEUMD.js} +1 -1
- package/dist/{chunk-HEK7QLFR.js.map → chunk-GIPFEUMD.js.map} +1 -1
- package/dist/chunk-GPPLLR2C.cjs.map +1 -1
- package/dist/chunk-HD2FCRL3.cjs.map +1 -1
- package/dist/chunk-HFJKDL4E.cjs.map +1 -1
- package/dist/{chunk-K3WFUR2W.cjs → chunk-HH6A66HR.cjs} +2 -2
- package/dist/chunk-HH6A66HR.cjs.map +1 -0
- package/dist/chunk-HSMBTYPE.cjs.map +1 -1
- package/dist/chunk-IDELSFHC.cjs.map +1 -1
- package/dist/chunk-IJRHIFOZ.cjs +2 -0
- package/dist/chunk-IJRHIFOZ.cjs.map +1 -0
- package/dist/chunk-IK76PHGB.cjs.map +1 -1
- package/dist/chunk-IU3UVNAL.js +2 -0
- package/dist/chunk-IU3UVNAL.js.map +1 -0
- package/dist/chunk-J7FLM6VE.cjs.map +1 -1
- package/dist/chunk-JIF3ESOX.cjs.map +1 -1
- package/dist/chunk-JW6C57Y5.cjs.map +1 -1
- package/dist/chunk-KEF3RCSW.cjs.map +1 -1
- package/dist/chunk-KOVXL4P6.cjs.map +1 -1
- package/dist/chunk-LOMEOK37.cjs.map +1 -1
- package/dist/chunk-MCMCMOW6.cjs.map +1 -1
- package/dist/{chunk-HVGYQUXR.js → chunk-MX4VRXZV.js} +2 -2
- package/dist/{chunk-GXYHZRFH.cjs → chunk-NHKDM4JU.cjs} +1 -1
- package/dist/chunk-NHKDM4JU.cjs.map +1 -0
- package/dist/chunk-NOJBMCCJ.cjs.map +1 -1
- package/dist/chunk-NUJF2BA2.cjs.map +1 -1
- package/dist/chunk-PCH5RP2Y.cjs.map +1 -1
- package/dist/chunk-POJOZ7HM.cjs.map +1 -1
- package/dist/chunk-PWZWNYMT.cjs.map +1 -1
- package/dist/chunk-PYHULPLG.cjs +2 -0
- package/dist/chunk-PYHULPLG.cjs.map +1 -0
- package/dist/chunk-Q24HBDJY.cjs.map +1 -1
- package/dist/chunk-QQHIPYWF.cjs.map +1 -1
- package/dist/chunk-RNLUQH6E.cjs.map +1 -1
- package/dist/chunk-SLXE24VS.cjs.map +1 -1
- package/dist/chunk-SMJEDCFP.cjs.map +1 -1
- package/dist/chunk-SRP463XH.cjs.map +1 -1
- package/dist/chunk-SXYB6LLL.js +2 -0
- package/dist/chunk-SXYB6LLL.js.map +1 -0
- package/dist/chunk-TNP6NVCR.cjs.map +1 -1
- package/dist/chunk-TRPIIBAS.cjs.map +1 -1
- package/dist/chunk-TT7ESDY6.cjs.map +1 -1
- package/dist/chunk-TUAQU25Y.cjs.map +1 -1
- package/dist/chunk-UAS5UKTZ.cjs.map +1 -1
- package/dist/chunk-US2PK6G5.cjs +2 -0
- package/dist/chunk-US2PK6G5.cjs.map +1 -0
- package/dist/chunk-UYWVE5DL.cjs.map +1 -1
- package/dist/chunk-WOGISN3L.cjs.map +1 -1
- package/dist/chunk-X5CR4RIL.cjs.map +1 -1
- package/dist/chunk-XO4K654G.cjs.map +1 -1
- package/dist/chunk-XXUOW3ID.cjs.map +1 -1
- package/dist/chunk-Y3I5OCGY.cjs +2 -0
- package/dist/chunk-Y3I5OCGY.cjs.map +1 -0
- package/dist/chunk-ZA36F2BJ.cjs.map +1 -1
- package/dist/chunk-ZESL6WID.cjs.map +1 -1
- package/dist/components/accordion.cjs.map +1 -1
- package/dist/components/alert-dialog.cjs.map +1 -1
- package/dist/components/alert.cjs.map +1 -1
- package/dist/components/aspect-ratio.cjs.map +1 -1
- package/dist/components/avatar.cjs.map +1 -1
- package/dist/components/badge.cjs.map +1 -1
- package/dist/components/blockquote.cjs.map +1 -1
- package/dist/components/box.cjs.map +1 -1
- package/dist/components/breadcrumb.cjs.map +1 -1
- package/dist/components/button.cjs.map +1 -1
- package/dist/components/calendar.cjs.map +1 -1
- package/dist/components/card.cjs.map +1 -1
- package/dist/components/carousel.cjs.map +1 -1
- package/dist/components/chart.cjs.map +1 -1
- package/dist/components/checkbox-cards.cjs.map +1 -1
- package/dist/components/checkbox-group.cjs.map +1 -1
- package/dist/components/checkbox.cjs.map +1 -1
- package/dist/components/code.cjs.map +1 -1
- package/dist/components/collapsible.cjs.map +1 -1
- package/dist/components/command.cjs +1 -1
- package/dist/components/command.cjs.map +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/container.cjs.map +1 -1
- package/dist/components/context-menu.cjs.map +1 -1
- package/dist/components/data-table.cjs.map +1 -1
- package/dist/components/dialog.cjs +1 -1
- package/dist/components/dialog.cjs.map +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/drawer.cjs.map +1 -1
- package/dist/components/dropdown-menu.cjs.map +1 -1
- package/dist/components/em.cjs.map +1 -1
- package/dist/components/form.cjs.map +1 -1
- package/dist/components/heading.cjs.map +1 -1
- package/dist/components/hover-card.cjs.map +1 -1
- package/dist/components/inline.cjs.map +1 -1
- package/dist/components/input-date.cjs.map +1 -1
- package/dist/components/input-number.cjs.map +1 -1
- package/dist/components/input-otp.cjs.map +1 -1
- package/dist/components/input-password.cjs.map +1 -1
- package/dist/components/input-search.cjs.map +1 -1
- package/dist/components/input-time.cjs.map +1 -1
- package/dist/components/input.cjs.map +1 -1
- package/dist/components/kbd.cjs.map +1 -1
- package/dist/components/label.cjs.map +1 -1
- package/dist/components/menubar.cjs.map +1 -1
- package/dist/components/navigation-menu.cjs.map +1 -1
- package/dist/components/pagination.cjs.map +1 -1
- package/dist/components/popover.cjs.map +1 -1
- package/dist/components/pre.cjs.map +1 -1
- package/dist/components/progress.cjs.map +1 -1
- package/dist/components/quote.cjs.map +1 -1
- package/dist/components/radio-cards.cjs.map +1 -1
- package/dist/components/radio-group.cjs.map +1 -1
- package/dist/components/radio.cjs.map +1 -1
- package/dist/components/resizable.cjs.map +1 -1
- package/dist/components/scroll-area.cjs.map +1 -1
- package/dist/components/section.cjs.map +1 -1
- package/dist/components/select.cjs.map +1 -1
- package/dist/components/separator.cjs.map +1 -1
- package/dist/components/sheet.cjs +1 -1
- package/dist/components/sheet.cjs.map +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/sidebar.cjs +1 -1
- package/dist/components/sidebar.cjs.map +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/skeleton.cjs.map +1 -1
- package/dist/components/slider.cjs +1 -1
- package/dist/components/slider.cjs.map +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/sonner.cjs.map +1 -1
- package/dist/components/spinner.cjs.map +1 -1
- package/dist/components/strong.cjs.map +1 -1
- package/dist/components/switch.cjs.map +1 -1
- package/dist/components/table.cjs +1 -1
- package/dist/components/table.cjs.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.cjs +1 -1
- package/dist/components/tabs.cjs.map +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/text.cjs.map +1 -1
- package/dist/components/textarea.cjs.map +1 -1
- package/dist/components/toggle-group.cjs.map +1 -1
- package/dist/components/toggle.cjs.map +1 -1
- package/dist/components/tooltip.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.js +1 -1
- package/dist/lib/logger.cjs.map +1 -1
- package/dist/lib/utils.cjs.map +1 -1
- package/package.json +9 -10
- package/dist/chunk-4TENCCRT.js +0 -2
- package/dist/chunk-4TENCCRT.js.map +0 -1
- package/dist/chunk-5NGAG7ZW.cjs +0 -2
- package/dist/chunk-5NGAG7ZW.cjs.map +0 -1
- package/dist/chunk-EJJKYYHY.js +0 -2
- package/dist/chunk-EJJKYYHY.js.map +0 -1
- package/dist/chunk-GXYHZRFH.cjs.map +0 -1
- package/dist/chunk-JM2VJEQF.cjs +0 -2
- package/dist/chunk-K3WFUR2W.cjs.map +0 -1
- package/dist/chunk-KFORL4OH.js +0 -2
- package/dist/chunk-KFORL4OH.js.map +0 -1
- package/dist/chunk-MRIHA5JJ.js +0 -2
- package/dist/chunk-MRIHA5JJ.js.map +0 -1
- package/dist/chunk-PJWKQZHJ.cjs +0 -2
- package/dist/chunk-PJWKQZHJ.cjs.map +0 -1
- package/dist/chunk-YF2ZZY4W.js +0 -2
- package/dist/chunk-YF2ZZY4W.js.map +0 -1
- package/dist/chunk-ZNSIVYMA.cjs +0 -2
- package/dist/chunk-ZNSIVYMA.cjs.map +0 -1
- package/dist/chunk-ZVPN2HIY.cjs +0 -2
- package/dist/chunk-ZVPN2HIY.cjs.map +0 -1
- /package/dist/{chunk-HVGYQUXR.js.map → chunk-MX4VRXZV.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-POJOZ7HM.cjs","../src/components/input.tsx"],"names":["inputVariants","tv","input","root","Input","className","disabled","loaderPosition","loading","prefix","readOnly","spinner","suffix","props","jsx","Spinner","TextInput"],"mappings":"AAAA,mZAAwC,oFCGR,qDACb,+CA2DO,IAnDpBA,CAAAA,CAAgBC,kCAAAA,CACpB,KAAA,CAAO,CACL,IAAA,CAAM,omBAAA,CACN,KAAA,CACE,8GACJ,CACF,CAAC,CAAA,CAEK,CAAE,KAAA,CAAAC,CAAAA,CAAO,IAAA,CAAAC,CAAK,CAAA,CAAIH,CAAAA,CAAc,CAAA,CAMtC,SAASI,CAAAA,CAAM,CACb,SAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAiBkB,CAChB,OACEC,6BAAAA,CAAgB,CAAA,IAAA,CAAf,CACC,SAAA,CAAWX,CAAAA,CAAK,CAAE,SAAA,CAAAE,CAAU,CAAC,CAAA,CAC7B,WAAA,CAAU,OAAA,CACV,QAAA,CAAUC,CAAAA,CACV,cAAA,CAAgBC,CAAAA,CAChB,OAAA,CAASC,CAAAA,CACT,MAAA,CAAQC,CAAAA,CACR,QAAA,CAAUC,CAAAA,CACV,OAAA,CAASC,CAAAA,EAAWG,6BAAAA,mBAACC,CAAA,CAAA,CAAQ,CAAA,CAC7B,MAAA,CAAQH,CAAAA,CAER,QAAA,CAAAE,6BAAAA,CAAgB,CAAA,IAAA,CAAf,CAAoB,SAAA,CAAWZ,CAAAA,CAAM,CAAA,CAAG,WAAA,CAAU,YAAA,CAAc,GAAGW,CAAAA,CAAO,CAAA,CAC7E,CAEJ,CAWA,IAAMG,CAAAA,CAAYZ,CAAAA,CAAAA,4CAAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-POJOZ7HM.cjs","sourcesContent":[null,"import type { ComponentProps, JSX } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport * as InputPrimitive from '@codefast-ui/input';\nimport { tv } from 'tailwind-variants';\n\nimport { Spinner } from '@/components/spinner';\n\n/* -----------------------------------------------------------------------------\n * Variant: Input\n * -------------------------------------------------------------------------- */\n\nconst inputVariants = tv({\n slots: {\n root: \"border-input not-has-disabled:shadow-xs hover:not-has-disabled:not-focus-within:border-ring/60 focus-within:border-ring focus-within:ring-ring/50 focus-within:ring-3 has-disabled:opacity-50 [&>svg]:text-muted-foreground has-aria-invalid:border-destructive hover:not-has-disabled:not-focus-within:has-aria-invalid:border-destructive/60 focus-within:has-aria-invalid:ring-destructive/20 dark:focus-within:has-aria-invalid:ring-destructive/40 dark:bg-input/30 peer flex h-9 w-full grow items-center gap-3 rounded-lg border px-3 text-base transition md:text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0\",\n input:\n 'placeholder:text-muted-foreground outline-hidden file:py-1.75 size-full file:bg-transparent file:font-medium',\n },\n});\n\nconst { input, root } = inputVariants();\n\n/* -----------------------------------------------------------------------------\n * Component: Input\n * -------------------------------------------------------------------------- */\n\nfunction Input({\n className,\n disabled,\n loaderPosition,\n loading,\n prefix,\n readOnly,\n spinner,\n suffix,\n ...props\n}: ComponentProps<typeof InputPrimitive.Root> &\n Omit<ComponentProps<typeof InputPrimitive.Item>, 'prefix' | 'type'> &\n VariantProps<typeof inputVariants> & {\n type?:\n | 'date'\n | 'datetime-local'\n | 'email'\n | 'file'\n | 'month'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'\n | 'week';\n }): JSX.Element {\n return (\n <InputPrimitive.Root\n className={root({ className })}\n data-slot=\"input\"\n disabled={disabled}\n loaderPosition={loaderPosition}\n loading={loading}\n prefix={prefix}\n readOnly={readOnly}\n spinner={spinner || <Spinner />}\n suffix={suffix}\n >\n <InputPrimitive.Item className={input()} data-slot=\"input-item\" {...props} />\n </InputPrimitive.Root>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Deprecated\n * -------------------------------------------------------------------------- */\n\n/**\n * @deprecated\n * This component is an alias of the Input component.\n * Please use the Input component instead to ensure consistency.\n */\nconst TextInput = Input;\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Input, inputVariants, TextInput };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/em.tsx"],"names":["Em","asChild","props","jsx","Slot"],"mappings":"AAEA,0HAAqB,+CAcZ,SARAA,CAAAA,CAAG,CACV,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAEgB,CAGd,OAAOC,6BAAAA,CAFWF,CAAUG,eAAAA,CAAO,IAAA,CAE3B,CAAU,WAAA,CAAU,IAAA,CAAM,GAAGF,CAAAA,CAAO,CAC9C,CAAA,cAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/components/em.tsx"],"names":["Em","asChild","props","jsx","Slot"],"mappings":"AAEA,0HAAqB,+CAcZ,SARAA,CAAAA,CAAG,CACV,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAEgB,CAGd,OAAOC,6BAAAA,CAFWF,CAAUG,eAAAA,CAAO,IAAA,CAE3B,CAAU,WAAA,CAAU,IAAA,CAAM,GAAGF,CAAAA,CAAO,CAC9C,CAAA,cAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-PWZWNYMT.cjs","sourcesContent":["import type { ComponentProps, JSX } from 'react';\n\nimport { Slot } from '@radix-ui/react-slot';\n\n/* -----------------------------------------------------------------------------\n * Component: Em\n * -------------------------------------------------------------------------- */\n\nfunction Em({\n asChild,\n ...props\n}: ComponentProps<'em'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'em';\n\n return <Component data-slot=\"em\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Em };\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";var _chunkIDELSFHCcjs = require('./chunk-IDELSFHC.cjs');var _chunkASI3MMOGcjs = require('./chunk-ASI3MMOG.cjs');var _chunkX5CR4RILcjs = require('./chunk-X5CR4RIL.cjs');var _chunkSRP463XHcjs = require('./chunk-SRP463XH.cjs');var _chunkPOJOZ7HMcjs = require('./chunk-POJOZ7HM.cjs');var _chunkTNP6NVCRcjs = require('./chunk-TNP6NVCR.cjs');var _chunkSMJEDCFPcjs = require('./chunk-SMJEDCFP.cjs');var _hooks = require('@codefast/hooks');var _reactslot = require('@radix-ui/react-slot');var _lucidereact = require('lucide-react');var _react = require('react');var _tailwindvariants = require('tailwind-variants');var _jsxruntime = require('react/jsx-runtime');var j="sidebar_state",q=60*60*24*7,F="16rem",U="18rem",Y="3.0625rem",Q="b",A=_react.createContext.call(void 0, null);function S(){let t=_react.useContext.call(void 0, A);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}function ce({defaultOpen:t=!0,open:e,onOpenChange:n,className:r,style:i,children:l,...m}){let d=_hooks.useIsMobile.call(void 0, ),[c,b]=_react.useState.call(void 0, !1),[v,R]=_react.useState.call(void 0, t),f=_nullishCoalesce(e, () => (v)),h=_react.useCallback.call(void 0, s=>{let u=typeof s=="function"?s(f):s;n?n(u):R(u),document.cookie=`${j}=${u}; path=/; max-age=${q}`},[n,f]),x=_react.useCallback.call(void 0, ()=>{d?b(s=>!s):h(s=>!s)},[d,h,b]);_react.useEffect.call(void 0, ()=>{let s=u=>{u.key===Q&&(u.metaKey||u.ctrlKey)&&(u.preventDefault(),x())};return window.addEventListener("keydown",s),()=>{window.removeEventListener("keydown",s)}},[x]);let C=f?"expanded":"collapsed",H=_react.useMemo.call(void 0, ()=>({state:C,open:f,setOpen:h,isMobile:d,openMobile:c,setOpenMobile:b,toggleSidebar:x}),[C,f,h,d,c,b,x]);return _jsxruntime.jsx.call(void 0, A.Provider,{value:H,children:_jsxruntime.jsx.call(void 0, _chunkIDELSFHCcjs.a,{delayDuration:0,children:_jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",r),"data-slot":"sidebar-wrapper",style:{"--sidebar-width":F,"--sidebar-width-icon":Y,...i},...m,children:l})})})}function pe({side:t="left",variant:e="sidebar",collapsible:n="offcanvas",className:r,children:i,...l}){let{isMobile:m,state:d,openMobile:c,setOpenMobile:b}=S();return n==="none"?_jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col",r),"data-slot":"sidebar",...l,children:i}):m?_jsxruntime.jsx.call(void 0, _chunkASI3MMOGcjs.a,{open:c,onOpenChange:b,...l,children:_jsxruntime.jsxs.call(void 0, _chunkASI3MMOGcjs.c,{className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden","data-mobile":"true","data-sidebar":"sidebar","data-slot":"sidebar",side:t,style:{"--sidebar-width":U},children:[_jsxruntime.jsxs.call(void 0, _chunkASI3MMOGcjs.d,{className:"sr-only",children:[_jsxruntime.jsx.call(void 0, _chunkASI3MMOGcjs.g,{children:"Sidebar"}),_jsxruntime.jsx.call(void 0, _chunkASI3MMOGcjs.h,{children:"Displays the mobile sidebar."})]}),_jsxruntime.jsx.call(void 0, "div",{className:"flex h-full w-full flex-col",children:i})]})}):_jsxruntime.jsxs.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "text-sidebar-foreground group peer hidden md:block",r),"data-collapsible":d==="collapsed"?n:"","data-side":t,"data-slot":"sidebar","data-state":d,"data-variant":e,children:[_jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180",e==="floating"||e==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)"),"data-slot":"sidebar-gap"}),_jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex",t==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",e==="floating"||e==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",r),"data-slot":"sidebar-container",...l,children:_jsxruntime.jsx.call(void 0, "div",{className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm","data-sidebar":"sidebar","data-slot":"sidebar-inner",children:i})})]})}function me({className:t,onClick:e,...n}){let{toggleSidebar:r}=S();return _jsxruntime.jsxs.call(void 0, _chunkTNP6NVCRcjs.b,{className:_chunkSMJEDCFPcjs.a.call(void 0, "size-7",t),"data-sidebar":"trigger","data-slot":"sidebar-trigger",size:"icon",variant:"ghost",onClick:i=>{_optionalChain([e, 'optionalCall', _2 => _2(i)]),r()},...n,children:[_jsxruntime.jsx.call(void 0, _lucidereact.PanelLeftIcon,{}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Toggle Sidebar"})]})}function fe({className:t,...e}){let{toggleSidebar:n}=S();return _jsxruntime.jsx.call(void 0, "button",{className:_chunkSMJEDCFPcjs.a.call(void 0, "hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",t),"data-sidebar":"rail","data-slot":"sidebar-rail",title:"Toggle Sidebar",type:"button",onClick:n,...e})}function ge({className:t,...e}){return _jsxruntime.jsx.call(void 0, "main",{className:_chunkSMJEDCFPcjs.a.call(void 0, "bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",t),"data-slot":"sidebar-inset",...e})}function ve({className:t,...e}){return _jsxruntime.jsx.call(void 0, _chunkPOJOZ7HMcjs.b,{className:_chunkSMJEDCFPcjs.a.call(void 0, "bg-background h-8 w-full shadow-none",t),"data-sidebar":"input","data-slot":"sidebar-input",...e})}function he({className:t,...e}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "flex flex-col gap-2 p-2",t),"data-sidebar":"header","data-slot":"sidebar-header",...e})}function xe({className:t,...e}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "flex flex-col gap-2 p-2",t),"data-sidebar":"footer","data-slot":"sidebar-footer",...e})}function Se({className:t,...e}){return _jsxruntime.jsx.call(void 0, _chunkSRP463XHcjs.a,{className:_chunkSMJEDCFPcjs.a.call(void 0, "bg-sidebar-border mx-2 w-auto",t),"data-sidebar":"separator","data-slot":"sidebar-separator",...e})}function we({className:t,...e}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",t),"data-sidebar":"content","data-slot":"sidebar-content",...e})}function Ce({className:t,...e}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "relative flex w-full min-w-0 flex-col p-2",t),"data-sidebar":"group","data-slot":"sidebar-group",...e})}function ye({className:t,asChild:e=!1,...n}){return _jsxruntime.jsx.call(void 0, e?_reactslot.Slot:"div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0",t),"data-sidebar":"group-label","data-slot":"sidebar-group-label",...n})}function Ee({className:t,asChild:e=!1,...n}){return _jsxruntime.jsx.call(void 0, e?_reactslot.Slot:"button",{className:_chunkSMJEDCFPcjs.a.call(void 0, "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",t),"data-sidebar":"group-action","data-slot":"sidebar-group-action",...n})}function Pe({className:t,...e}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "w-full text-sm",t),"data-sidebar":"group-content","data-slot":"sidebar-group-content",...e})}function Ne({className:t,...e}){return _jsxruntime.jsx.call(void 0, "ul",{className:_chunkSMJEDCFPcjs.a.call(void 0, "flex w-full min-w-0 flex-col gap-1",t),"data-sidebar":"menu","data-slot":"sidebar-menu",...e})}function Me({className:t,...e}){return _jsxruntime.jsx.call(void 0, "li",{className:_chunkSMJEDCFPcjs.a.call(void 0, "group/menu-item relative",t),"data-sidebar":"menu-item","data-slot":"sidebar-menu-item",...e})}var Z=_tailwindvariants.tv.call(void 0, {base:"peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{sm:"h-7 text-xs",md:"h-8 text-sm",lg:"group-data-[collapsible=icon]:p-0! h-12 text-sm"}},defaultVariants:{variant:"default",size:"md"}});function ke({asChild:t=!1,isActive:e=!1,variant:n="default",size:r="md",tooltip:i,className:l,...m}){let d=t?_reactslot.Slot:"button",{isMobile:c,state:b}=S(),v=_jsxruntime.jsx.call(void 0, d,{className:_chunkSMJEDCFPcjs.a.call(void 0, Z({variant:n,size:r}),l),"data-active":e,"data-sidebar":"menu-button","data-size":r,"data-slot":"sidebar-menu-button",...m});return i?(typeof i=="string"&&(i={children:i}),_jsxruntime.jsxs.call(void 0, _chunkIDELSFHCcjs.b,{children:[_jsxruntime.jsx.call(void 0, _chunkIDELSFHCcjs.c,{asChild:!0,children:v}),_jsxruntime.jsx.call(void 0, _chunkIDELSFHCcjs.d,{align:"center",hidden:b!=="collapsed"||c,side:"right",...i})]})):v}function Xe({className:t,asChild:e=!1,showOnHover:n=!1,...r}){return _jsxruntime.jsx.call(void 0, e?_reactslot.Slot:"button",{className:_chunkSMJEDCFPcjs.a.call(void 0, "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",n&&"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",t),"data-sidebar":"menu-action","data-slot":"sidebar-menu-action",...r})}function _e({className:t,...e}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1",t),"data-sidebar":"menu-badge","data-slot":"sidebar-menu-badge",...e})}function Je({className:t,showIcon:e=!1,...n}){let r=_react.useMemo.call(void 0, ()=>`${Math.floor(Math.random()*40)+50}%`,[]);return _jsxruntime.jsxs.call(void 0, "div",{className:_chunkSMJEDCFPcjs.a.call(void 0, "flex h-8 items-center gap-2 rounded-md px-2",t),"data-sidebar":"menu-skeleton","data-slot":"sidebar-menu-skeleton",...n,children:[e?_jsxruntime.jsx.call(void 0, _chunkX5CR4RILcjs.a,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}):null,_jsxruntime.jsx.call(void 0, _chunkX5CR4RILcjs.a,{className:"max-w-(--skeleton-width) h-4 flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":r}})]})}function ze({className:t,...e}){return _jsxruntime.jsx.call(void 0, "ul",{className:_chunkSMJEDCFPcjs.a.call(void 0, "border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",t),"data-sidebar":"menu-sub","data-slot":"sidebar-menu-sub",...e})}function Ie({className:t,...e}){return _jsxruntime.jsx.call(void 0, "li",{className:_chunkSMJEDCFPcjs.a.call(void 0, "group/menu-sub-item relative",t),"data-sidebar":"menu-sub-item","data-slot":"sidebar-menu-sub-item",...e})}function Te({asChild:t=!1,size:e="md",isActive:n=!1,className:r,...i}){return _jsxruntime.jsx.call(void 0, t?_reactslot.Slot:"a",{className:_chunkSMJEDCFPcjs.a.call(void 0, "text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",e==="sm"&&"text-xs",e==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",r),"data-active":n,"data-sidebar":"menu-sub-button","data-size":e,"data-slot":"sidebar-menu-sub-button",...i})}exports.a = S; exports.b = ce; exports.c = pe; exports.d = me; exports.e = fe; exports.f = ge; exports.g = ve; exports.h = he; exports.i = xe; exports.j = Se; exports.k = we; exports.l = Ce; exports.m = ye; exports.n = Ee; exports.o = Pe; exports.p = Ne; exports.q = Me; exports.r = ke; exports.s = Xe; exports.t = _e; exports.u = Je; exports.v = ze; exports.w = Ie; exports.x = Te;
|
|
2
|
+
//# sourceMappingURL=chunk-PYHULPLG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-PYHULPLG.cjs","../src/components/sidebar.tsx"],"names":["SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_KEYBOARD_SHORTCUT","useSidebar","SidebarProvider","defaultOpen","setOpenProp","className","children","isMobile","useIsMobile","openMobile","setOpenMobile","useState","isOpen","setIsOpen","open","openProp","setOpen","useCallback","value","openState"],"mappings":"AAAA,6rBAAY,CAAC,wDAA6D,wDAAqE,wDAAyC,wDAAyC,wDAAyC,wDAAyC,wDCK1S,wCACA,iDACA,2CACA,8BACA,qDA4HD,+CAlHoB,IAAA,CAAA,CAAA,eACkB,CACxCA,CAAAA,CAAgB,EAAA,CAAA,EAAA,CAAA,EAChBC,CAAAA,CAAuB,CAAA,CAAA,CAAA,OACF,CAAA,CAAA,CAAA,OAAA,CAAA,CACrBC,CAAAA,WAY2D,CAAA,CAAI,CAAA,GAErE,CAAA,CAAA,CAAA,kCAAA,IAASC,CAAkC,CACzC,SAAyC,CAAA,CAEzC,CAAA,CAAA,IACE,CAAA,CAAA,+BAAA,CAAA,CAAM,CAAA,EAAA,CAAI,CAAA,CAAA,CAAA,MAAM,IAAA,KAAA,CAAA,mDAUpB,CAAA,CAAA,OAASC,CAAgB,CACvB,SAAA,EAAA,CAAAC,CAAAA,WAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,IAAA,CAAA,CAAA,CAAcC,YACdC,CAAAA,CACA,CAAA,SACA,CAAA,CAAA,CAAA,KAAAC,CACA,CAAA,CAAA,QAMA,CAAMC,CAAAA,CAAWC,GAAY,CACvB,CAACC,CAAAA,CAAYC,IAAiBC,CAAS,CAAA,gCAAK,CAI5C,CAACC,CAAAA,CAAQC,CAAS,CAAA,CAAIF,CAAAA,6BAASR,CAAW,CAC1CW,CAAAA,CAAOC,CAAAA,CAAAA,CAAYH,CAAAA,CACnBI,CAAAA,6BAAUC,CACbC,CAAAA,CAAAA,CAAmD,kBAClD,CAAA,SAAA,GAAMC,CAAAA,CAAY,CAAA,gCAAA,CAAA,EAAA,CAAOD,IAAU,CAAA,CAAA,OAAA,CAAaA,EAAMJ,UAG/B,CAAA,CAErBD,CAAAA,CAAUM,CAAS,CAAA,CAIrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,QAA+B,CAAA,MAAa,CAAA,CAAA,EAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-PYHULPLG.cjs","sourcesContent":[null,"'use client';\n\nimport type { ComponentProps, CSSProperties, JSX } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { useIsMobile } from '@codefast/hooks';\nimport { Slot } from '@radix-ui/react-slot';\nimport { PanelLeftIcon } from 'lucide-react';\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { tv } from 'tailwind-variants';\n\nimport { Button } from '@/components/button';\nimport { Input } from '@/components/input';\nimport { Separator } from '@/components/separator';\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@/components/sheet';\nimport { Skeleton } from '@/components/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/tooltip';\nimport { cn } from '@/lib/utils';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3.0625rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ninterface SidebarContextProps {\n isMobile: boolean;\n open: boolean;\n openMobile: boolean;\n setOpen: (open: boolean) => void;\n setOpenMobile: (open: boolean) => void;\n state: 'collapsed' | 'expanded';\n toggleSidebar: () => void;\n}\n\nconst SidebarContext = createContext<null | SidebarContextProps>(null);\n\nfunction useSidebar(): SidebarContextProps {\n const context = useContext(SidebarContext);\n\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarProvider\n * -------------------------------------------------------------------------- */\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: ComponentProps<'div'> & {\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n}): JSX.Element {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const open = openProp ?? isOpen;\n const setOpen = useCallback(\n (value: ((value: boolean) => boolean) | boolean) => {\n const openState = typeof value === 'function' ? value(open) : value;\n\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n setIsOpen(openState);\n }\n\n // eslint-disable-next-line unicorn/no-document-cookie -- This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((currentValue) => !currentValue);\n } else {\n setOpen((currentValue) => !currentValue);\n }\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n className={cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full', className)}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: Sidebar\n * -------------------------------------------------------------------------- */\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: ComponentProps<'div'> & {\n collapsible?: 'icon' | 'none' | 'offcanvas';\n side?: 'left' | 'right';\n variant?: 'floating' | 'inset' | 'sidebar';\n}): JSX.Element {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col', className)}\n data-slot=\"sidebar\"\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n data-mobile=\"true\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n side={side}\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as CSSProperties\n }\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className={cn('text-sidebar-foreground group peer hidden md:block', className)}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-side={side}\n data-slot=\"sidebar\"\n data-state={state}\n data-variant={variant}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n data-slot=\"sidebar-gap\"\n />\n <div\n className={cn(\n 'w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n data-slot=\"sidebar-container\"\n {...props}\n >\n <div\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarTrigger\n * -------------------------------------------------------------------------- */\n\nfunction SidebarTrigger({ className, onClick, ...props }: ComponentProps<typeof Button>): JSX.Element {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n className={cn('size-7', className)}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarRail\n * -------------------------------------------------------------------------- */\n\nfunction SidebarRail({ className, ...props }: ComponentProps<'button'>): JSX.Element {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n className={cn(\n 'hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n className,\n )}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n title=\"Toggle Sidebar\"\n type=\"button\"\n onClick={toggleSidebar}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInset\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInset({ className, ...props }: ComponentProps<'main'>): JSX.Element {\n return (\n <main\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm',\n className,\n )}\n data-slot=\"sidebar-inset\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInput\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>): JSX.Element {\n return (\n <Input\n className={cn('bg-background h-8 w-full shadow-none', className)}\n data-sidebar=\"input\"\n data-slot=\"sidebar-input\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarHeader\n * -------------------------------------------------------------------------- */\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('flex flex-col gap-2 p-2', className)}\n data-sidebar=\"header\"\n data-slot=\"sidebar-header\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarFooter\n * -------------------------------------------------------------------------- */\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('flex flex-col gap-2 p-2', className)}\n data-sidebar=\"footer\"\n data-slot=\"sidebar-footer\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarSeparator\n * -------------------------------------------------------------------------- */\n\nfunction SidebarSeparator({ className, ...props }: ComponentProps<typeof Separator>): JSX.Element {\n return (\n <Separator\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n data-sidebar=\"separator\"\n data-slot=\"sidebar-separator\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarContent({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n data-sidebar=\"content\"\n data-slot=\"sidebar-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroup\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n data-sidebar=\"group\"\n data-slot=\"sidebar-group\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupLabel\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<'div'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n )}\n data-sidebar=\"group-label\"\n data-slot=\"sidebar-group-label\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<'button'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'button';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n )}\n data-sidebar=\"group-action\"\n data-slot=\"sidebar-group-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('w-full text-sm', className)}\n data-sidebar=\"group-content\"\n data-slot=\"sidebar-group-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenu\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<'ul'>): JSX.Element {\n return (\n <ul\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n data-sidebar=\"menu\"\n data-slot=\"sidebar-menu\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuItem({ className, ...props }: ComponentProps<'li'>): JSX.Element {\n return (\n <li\n className={cn('group/menu-item relative', className)}\n data-sidebar=\"menu-item\"\n data-slot=\"sidebar-menu-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Variant: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nconst sidebarMenuButtonVariants = tv({\n base: 'peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n sm: 'h-7 text-xs',\n md: 'h-8 text-sm',\n lg: 'group-data-[collapsible=icon]:p-0! h-12 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'md',\n tooltip,\n className,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof sidebarMenuButtonVariants> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: ComponentProps<typeof TooltipContent> | string;\n }): JSX.Element {\n const Component = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Component\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n data-active={isActive}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-slot=\"sidebar-menu-button\"\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n // eslint-disable-next-line no-param-reassign -- convert it to an object with default properties\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent align=\"center\" hidden={state !== 'collapsed' || isMobile} side=\"right\" {...tooltip} />\n </Tooltip>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'button';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n data-sidebar=\"menu-action\"\n data-slot=\"sidebar-menu-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuBadge\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn(\n 'text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1',\n className,\n )}\n data-sidebar=\"menu-badge\"\n data-slot=\"sidebar-menu-badge\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSkeleton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<'div'> & {\n showIcon?: boolean;\n}): JSX.Element {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n data-sidebar=\"menu-skeleton\"\n data-slot=\"sidebar-menu-skeleton\"\n {...props}\n >\n {showIcon ? <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" /> : null}\n <Skeleton\n className=\"max-w-(--skeleton-width) h-4 flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as CSSProperties\n }\n />\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSub\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<'ul'>): JSX.Element {\n return (\n <ul\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\n className,\n )}\n data-sidebar=\"menu-sub\"\n data-slot=\"sidebar-menu-sub\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<'li'>): JSX.Element {\n return (\n <li\n className={cn('group/menu-sub-item relative', className)}\n data-sidebar=\"menu-sub-item\"\n data-slot=\"sidebar-menu-sub-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubButton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: ComponentProps<'a'> & {\n asChild?: boolean;\n isActive?: boolean;\n size?: 'md' | 'sm';\n}): JSX.Element {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n data-active={isActive}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-slot=\"sidebar-menu-sub-button\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-Q24HBDJY.cjs","../src/components/checkbox-group.tsx"],"names":["CheckboxGroup","className","props","jsx","cn","CheckboxGroupItem","CheckIcon"],"mappings":"AAAA,mZAAwC,6GCEA,2CACd,+CASjB,SADAA,CAAAA,CAAc,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAoE,CAC/G,OAAOC,6BAAAA,CAAwB,CAAA,IAAA,CAAvB,CAA4B,SAAA,CAAWC,iCAAAA,YAAG,CAAcH,CAAS,CAAA,CAAG,WAAA,CAAU,gBAAA,CAAkB,GAAGC,CAAAA,CAAO,CACpH,CAMA,SAASG,CAAAA,CAAkB,CAAE,SAAA,CAAAJ,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAoE,CACnH,OACEC,6BAAAA,CAAwB,CAAA,IAAA,CAAvB,CACC,SAAA,CAAWC,iCAAAA,0pBACT,CACAH,CACF,CAAA,CACA,WAAA,CAAU,qBAAA,CACT,GAAGC,CAAAA,CAEJ,QAAA,CAAAC,6BAAAA,CAAwB,CAAA,sBAAA,CAAvB,CACC,SAAA,CAAU,+DAAA,CACV,WAAA,CAAU,0BAAA,CAEV,QAAA,CAAAA,6BAAAA,sBAACG,CAAA,CAAU,SAAA,CAAU,UAAA,CAAW,CAAA,CAClC,CAAA,CACF,CAEJ,CAAA,6BAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-Q24HBDJY.cjs","sourcesContent":[null,"import type { ComponentProps, JSX } from 'react';\n\nimport * as CheckboxGroupPrimitive from '@codefast-ui/checkbox-group';\nimport { CheckIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/* -----------------------------------------------------------------------------\n * Component: CheckboxGroup\n * -------------------------------------------------------------------------- */\n\nfunction CheckboxGroup({ className, ...props }: ComponentProps<typeof CheckboxGroupPrimitive.Root>): JSX.Element {\n return <CheckboxGroupPrimitive.Root className={cn('grid gap-2', className)} data-slot=\"checkbox-group\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: CheckboxGroupItem\n * -------------------------------------------------------------------------- */\n\nfunction CheckboxGroupItem({ className, ...props }: ComponentProps<typeof CheckboxGroupPrimitive.Item>): JSX.Element {\n return (\n <CheckboxGroupPrimitive.Item\n className={cn(\n 'border-input text-primary-foreground shadow-xs outline-hidden hover:not-disabled:not-aria-checked:border-ring/60 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3 focus-visible:aria-checked:ring-primary/20 dark:focus-visible:aria-checked:ring-primary/40 aria-checked:border-primary aria-checked:bg-primary aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-checked:aria-invalid:bg-destructive hover:not-disabled:not-aria-checked:aria-invalid:border-destructive/60 dark:bg-input/30 peer flex size-4 shrink-0 items-center justify-center rounded-sm border transition disabled:opacity-50',\n className,\n )}\n data-slot=\"checkbox-group-item\"\n {...props}\n >\n <CheckboxGroupPrimitive.CheckboxGroupIndicator\n className=\"flex items-center justify-center text-current transition-none\"\n data-slot=\"checkbox-group-indicator\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxGroupPrimitive.CheckboxGroupIndicator>\n </CheckboxGroupPrimitive.Item>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { CheckboxGroup, CheckboxGroupItem };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/code.tsx"],"names":["Code","asChild","props","jsx","Slot"],"mappings":"AAEA,0HAAqB,+CAcZ,SARAA,CAAAA,CAAK,CACZ,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAEgB,CAGd,OAAOC,6BAAAA,CAFWF,CAAUG,eAAAA,CAAO,MAAA,CAE3B,CAAU,WAAA,CAAU,MAAA,CAAQ,GAAGF,CAAAA,CAAO,CAChD,CAAA,cAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/components/code.tsx"],"names":["Code","asChild","props","jsx","Slot"],"mappings":"AAEA,0HAAqB,+CAcZ,SARAA,CAAAA,CAAK,CACZ,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAEgB,CAGd,OAAOC,6BAAAA,CAFWF,CAAUG,eAAAA,CAAO,MAAA,CAE3B,CAAU,WAAA,CAAU,MAAA,CAAQ,GAAGF,CAAAA,CAAO,CAChD,CAAA,cAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-QQHIPYWF.cjs","sourcesContent":["import type { ComponentProps, JSX } from 'react';\n\nimport { Slot } from '@radix-ui/react-slot';\n\n/* -----------------------------------------------------------------------------\n * Component: Code\n * -------------------------------------------------------------------------- */\n\nfunction Code({\n asChild,\n ...props\n}: ComponentProps<'code'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'code';\n\n return <Component data-slot=\"code\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Code };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-RNLUQH6E.cjs","../src/components/accordion.tsx"],"names":["Accordion","props","jsx","AccordionItem","className","cn","AccordionIcon","asChild","Slot","ChevronDownIcon","AccordionTrigger","children","AccordionContent"],"mappings":"AAAA,mZAAwC,6GCEJ,iDACf,2CACW,+CASvB,SADAA,CAAAA,CAAU,CAAE,GAAGC,CAAM,CAAA,CAAgE,CAC5F,OAAOC,6BAAAA,CAAoB,CAAA,IAAA,CAAnB,CAAwB,WAAA,CAAU,WAAA,CAAa,GAAGD,CAAAA,CAAO,CACnE,CAMA,SAASE,CAAAA,CAAc,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGH,CAAM,CAAA,CAAgE,CAC3G,OACEC,6BAAAA,CAAoB,CAAA,IAAA,CAAnB,CACC,SAAA,CAAWG,iCAAAA,0BAAG,CAA4BD,CAAS,CAAA,CACnD,WAAA,CAAU,gBAAA,CACT,GAAGH,CAAAA,CACN,CAEJ,CAMA,SAASK,CAAAA,CAAc,CACrB,OAAA,CAAAC,CAAAA,CACA,SAAA,CAAAH,CAAAA,CACA,GAAGH,CACL,CAAA,CAGgB,CAGd,OACEC,6BAAAA,CAHiBK,CAAUC,eAAAA,CAAOC,4BAAAA,CAGjC,CACC,aAAA,CAAW,CAAA,CAAA,CACX,SAAA,CAAWJ,iCAAAA,yFACT,CACAD,CACF,CAAA,CACA,WAAA,CAAU,gBAAA,CACT,GAAGH,CAAAA,CACN,CAEJ,CAMA,SAASS,CAAAA,CAAiB,CACxB,SAAA,CAAAN,CAAAA,CACA,QAAA,CAAAO,CAAAA,CACA,GAAGV,CACL,CAAA,CAAmE,CACjE,OACEC,6BAAAA,CAAoB,CAAA,MAAA,CAAnB,CAA0B,SAAA,CAAU,MAAA,CAAO,WAAA,CAAU,2BAAA,CACpD,QAAA,CAAAA,6BAAAA,CAAoB,CAAA,OAAA,CAAnB,CACC,SAAA,CAAWG,iCAAAA,uQACT,CACAD,CACF,CAAA,CACA,WAAA,CAAU,mBAAA,CACT,GAAGH,CAAAA,CAEH,QAAA,CAAAU,CAAAA,CACH,CAAA,CACF,CAEJ,CAMA,SAASC,CAAAA,CAAiB,CACxB,QAAA,CAAAD,CAAAA,CACA,SAAA,CAAAP,CAAAA,CACA,GAAGH,CACL,CAAA,CAAmE,CACjE,OACEC,6BAAAA,CAAoB,CAAA,OAAA,CAAnB,CACC,SAAA,CAAU,uGAAA,CACV,WAAA,CAAU,mBAAA,CACT,GAAGD,CAAAA,CAEJ,QAAA,CAAAC,6BAAAA,KAAC,CAAA,CAAI,SAAA,CAAWG,iCAAAA,mBAAG,CAAqBD,CAAS,CAAA,CAAI,QAAA,CAAAO,CAAAA,CAAS,CAAA,CAChE,CAEJ,CAAA,0EAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-RNLUQH6E.cjs","sourcesContent":[null,"import type { ComponentProps, JSX } from 'react';\n\nimport * as AccordionPrimitive from '@radix-ui/react-accordion';\nimport { Slot } from '@radix-ui/react-slot';\nimport { ChevronDownIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/* -----------------------------------------------------------------------------\n * Component: Accordion\n * -------------------------------------------------------------------------- */\n\nfunction Accordion({ ...props }: ComponentProps<typeof AccordionPrimitive.Root>): JSX.Element {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: AccordionItem\n * -------------------------------------------------------------------------- */\n\nfunction AccordionItem({ className, ...props }: ComponentProps<typeof AccordionPrimitive.Item>): JSX.Element {\n return (\n <AccordionPrimitive.Item\n className={cn('border-b last:border-b-0', className)}\n data-slot=\"accordion-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: AccordionIcon\n * -------------------------------------------------------------------------- */\n\nfunction AccordionIcon({\n asChild,\n className,\n ...props\n}: ComponentProps<typeof Slot> & {\n asChild?: boolean;\n className?: string;\n}): JSX.Element {\n const Component = (asChild ? Slot : ChevronDownIcon) as typeof Slot;\n\n return (\n <Component\n aria-hidden\n className={cn(\n 'text-muted-foreground size-4 shrink-0 translate-y-0.5 transition-transform duration-200',\n className,\n )}\n data-slot=\"accordion-icon\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: AccordionTrigger\n * -------------------------------------------------------------------------- */\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: ComponentProps<typeof AccordionPrimitive.Trigger>): JSX.Element {\n return (\n <AccordionPrimitive.Header className=\"flex\" data-slot=\"accordion-trigger-wrapper\">\n <AccordionPrimitive.Trigger\n className={cn(\n 'focus-visible:ring-ring/50 focus-visible:ring-3 outline-hidden hover:not-disabled:underline group/accordion-trigger flex grow items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium disabled:opacity-50 [&[data-state=open]>svg]:rotate-180',\n className,\n )}\n data-slot=\"accordion-trigger\"\n {...props}\n >\n {children}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: AccordionContent\n * -------------------------------------------------------------------------- */\n\nfunction AccordionContent({\n children,\n className,\n ...props\n}: ComponentProps<typeof AccordionPrimitive.Content>): JSX.Element {\n return (\n <AccordionPrimitive.Content\n className=\"data-[state=open]:animate-collapsible-down data-[state=closed]:animate-collapsible-up overflow-hidden\"\n data-slot=\"accordion-content\"\n {...props}\n >\n <div className={cn('pb-4 pt-0 text-sm', className)}>{children}</div>\n </AccordionPrimitive.Content>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Accordion, AccordionContent, AccordionIcon, AccordionItem, AccordionTrigger };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-SLXE24VS.cjs","../src/components/breadcrumb.tsx"],"names":["Breadcrumb","props","jsx","BreadcrumbList","className","cn","BreadcrumbItem","BreadcrumbLink","asChild","Slot","BreadcrumbPage","BreadcrumbSeparator","children","ChevronRightIcon","BreadcrumbEllipsis","jsxs","EllipsisIcon"],"mappings":"AAAA,qOAAwC,iDCEnB,2CAC0B,+CAatC,SALAA,CAAAA,CAAW,CAClB,GAAGC,CACL,CAAA,CAEgB,CACd,OAAOC,6BAAAA,KAAC,CAAA,CAAI,YAAA,CAAW,YAAA,CAAa,WAAA,CAAU,YAAA,CAAc,GAAGD,CAAAA,CAAO,CACxE,CAMA,SAASE,CAAAA,CAAe,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGH,CAAM,CAAA,CAAsC,CAClF,OACEC,6BAAAA,IAAC,CAAA,CACC,SAAA,CAAWG,iCAAAA,wFACT,CACAD,CACF,CAAA,CACA,WAAA,CAAU,iBAAA,CACT,GAAGH,CAAAA,CACN,CAEJ,CAMA,SAASK,CAAAA,CAAe,CAAE,SAAA,CAAAF,CAAAA,CAAW,GAAGH,CAAM,CAAA,CAAsC,CAClF,OAAOC,6BAAAA,IAAC,CAAA,CAAG,SAAA,CAAWG,iCAAAA,kCAAG,CAAoCD,CAAS,CAAA,CAAG,WAAA,CAAU,iBAAA,CAAmB,GAAGH,CAAAA,CAAO,CAClH,CAMA,SAASM,CAAAA,CAAe,CACtB,OAAA,CAAAC,CAAAA,CACA,SAAA,CAAAJ,CAAAA,CACA,GAAGH,CACL,CAAA,CAEgB,CAGd,OACEC,6BAAAA,CAHgBM,CAAUC,eAAAA,CAAO,GAAA,CAGhC,CACC,SAAA,CAAWJ,iCAAAA,yCAAG,CAA2CD,CAAS,CAAA,CAClE,WAAA,CAAU,iBAAA,CACT,GAAGH,CAAAA,CACN,CAEJ,CAMA,SAASS,CAAAA,CAAe,CAAE,SAAA,CAAAN,CAAAA,CAAW,GAAGH,CAAM,CAAA,CAAwC,CACpF,OACEC,6BAAAA,MAAC,CAAA,CACC,cAAA,CAAa,MAAA,CACb,eAAA,CAAc,MAAA,CACd,SAAA,CAAWG,iCAAAA,6BAAG,CAA+BD,CAAS,CAAA,CACtD,WAAA,CAAU,iBAAA,CACV,IAAA,CAAK,MAAA,CACJ,GAAGH,CAAAA,CACN,CAEJ,CAMA,SAASU,CAAAA,CAAoB,CAAE,QAAA,CAAAC,CAAAA,CAAU,GAAGX,CAAM,CAAA,CAAsC,CACtF,OACEC,6BAAAA,IAAC,CAAA,CAAG,aAAA,CAAY,MAAA,CAAO,WAAA,CAAU,sBAAA,CAAuB,IAAA,CAAK,cAAA,CAAgB,GAAGD,CAAAA,CAC7E,QAAA,kBAAAW,CAAAA,SAAYV,6BAAAA,6BAACW,CAAA,CAAiB,SAAA,CAAU,UAAA,CAAW,GAAA,CACtD,CAEJ,CAMA,SAASC,CAAAA,CAAmB,CAAE,SAAA,CAAAV,CAAAA,CAAW,GAAGH,CAAM,CAAA,CAAwC,CACxF,OACEc,8BAAAA,MAAC,CAAA,CACC,aAAA,CAAY,MAAA,CACZ,SAAA,CAAWV,iCAAAA,yCAAG,CAA2CD,CAAS,CAAA,CAClE,WAAA,CAAU,qBAAA,CACV,IAAA,CAAK,cAAA,CACJ,GAAGH,CAAAA,CAEJ,QAAA,CAAA,CAAAC,6BAAAA,yBAACc,CAAA,CAAa,SAAA,CAAU,QAAA,CAAS,CAAA,CACjCd,6BAAAA,MAAC,CAAA,CAAK,SAAA,CAAU,SAAA,CAAU,QAAA,CAAA,MAAA,CAAI,CAAA,CAAA,CAChC,CAEJ,CAAA,wGAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-SLXE24VS.cjs","sourcesContent":[null,"import type { ComponentProps, JSX, ReactNode } from 'react';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport { ChevronRightIcon, EllipsisIcon } from 'lucide-react';\n\nimport { cn } from '@/lib/utils';\n\n/* -----------------------------------------------------------------------------\n * Component: Breadcrumb\n * -------------------------------------------------------------------------- */\n\nfunction Breadcrumb({\n ...props\n}: ComponentProps<'nav'> & {\n separator?: ReactNode;\n}): JSX.Element {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: BreadcrumbList\n * -------------------------------------------------------------------------- */\n\nfunction BreadcrumbList({ className, ...props }: ComponentProps<'ol'>): JSX.Element {\n return (\n <ol\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 break-words text-sm sm:gap-2',\n className,\n )}\n data-slot=\"breadcrumb-list\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: BreadcrumbItem\n * -------------------------------------------------------------------------- */\n\nfunction BreadcrumbItem({ className, ...props }: ComponentProps<'li'>): JSX.Element {\n return <li className={cn('inline-flex items-center gap-1.5', className)} data-slot=\"breadcrumb-item\" {...props} />;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: BreadcrumbLink\n * -------------------------------------------------------------------------- */\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: ComponentProps<'a'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn('hover:text-foreground transition-colors', className)}\n data-slot=\"breadcrumb-link\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: BreadcrumbPage\n * -------------------------------------------------------------------------- */\n\nfunction BreadcrumbPage({ className, ...props }: ComponentProps<'span'>): JSX.Element {\n return (\n <span\n aria-current=\"page\"\n aria-disabled=\"true\"\n className={cn('text-foreground font-normal', className)}\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: BreadcrumbSeparator\n * -------------------------------------------------------------------------- */\n\nfunction BreadcrumbSeparator({ children, ...props }: ComponentProps<'li'>): JSX.Element {\n return (\n <li aria-hidden=\"true\" data-slot=\"breadcrumb-separator\" role=\"presentation\" {...props}>\n {children ?? <ChevronRightIcon className=\"size-3.5\" />}\n </li>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: BreadcrumbEllipsis\n * -------------------------------------------------------------------------- */\n\nfunction BreadcrumbEllipsis({ className, ...props }: ComponentProps<'span'>): JSX.Element {\n return (\n <span\n aria-hidden=\"true\"\n className={cn('flex size-4 items-center justify-center', className)}\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n {...props}\n >\n <EllipsisIcon className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/utils.ts"],"names":["cn","inputs","twMerge","clsx"],"mappings":"AAEA,qGAAqB,+CACG,SAKRA,CAAAA,CAAAA,GAAMC,CAAAA,CAA8B,CAClD,OAAOC,oCAAAA,wBAAQC,CAAW,CAAC,CAC7B,CAAA,cAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/lib/utils.ts"],"names":["cn","inputs","twMerge","clsx"],"mappings":"AAEA,qGAAqB,+CACG,SAKRA,CAAAA,CAAAA,GAAMC,CAAAA,CAA8B,CAClD,OAAOC,oCAAAA,wBAAQC,CAAW,CAAC,CAC7B,CAAA,cAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-SMJEDCFP.cjs","sourcesContent":["import type { ClassValue } from 'clsx';\n\nimport { clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\n/**\n * Returns the combined class names from the given inputs.\n */\nexport function cn(...inputs: ClassValue[]): string {\n return twMerge(clsx(inputs));\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-SRP463XH.cjs","../src/components/separator.tsx"],"names":["separatorVariants","tv","Separator","align","className","decorative","orientation","props","jsx","SeparatorItem","cn"],"mappings":"AAAA,mZAAwC,6GCGJ,qDACjB,+CAwCf,IAhCEA,CAAAA,CAAoBC,kCAAAA,CACxB,IAAA,CAAM,+CAAA,CACN,QAAA,CAAU,CACR,KAAA,CAAO,CACL,MAAA,CAAQ,gBAAA,CACR,GAAA,CAAK,aAAA,CACL,KAAA,CAAO,eACT,CAAA,CACA,WAAA,CAAa,CACX,UAAA,CAAY,aAAA,CACZ,QAAA,CAAU,sBACZ,CACF,CAAA,CACA,eAAA,CAAiB,CACf,KAAA,CAAO,QAAA,CACP,WAAA,CAAa,YACf,CACF,CAAC,CAAA,CAMD,SAASC,CAAAA,CAAU,CACjB,KAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAA,CAAA,CACb,WAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAC4E,CAC1E,OACEC,6BAAAA,CAAoB,CAAA,IAAA,CAAnB,CACC,SAAA,CAAWR,CAAAA,CAAkB,CAAE,KAAA,CAAAG,CAAAA,CAAO,SAAA,CAAAC,CAAAA,CAAW,WAAA,CAAAE,CAAY,CAAC,CAAA,CAC9D,WAAA,CAAU,WAAA,CACV,UAAA,CAAYD,CAAAA,CACZ,WAAA,CAAaC,CAAAA,CACZ,GAAGC,CAAAA,CACN,CAEJ,CAMA,SAASE,CAAAA,CAAc,CAAE,SAAA,CAAAL,CAAAA,CAAW,GAAGG,CAAM,CAAA,CAAuC,CAClF,OACEC,6BAAAA,KAAC,CAAA,CACC,SAAA,CAAWE,iCAAAA,gEAAG,CAAkEN,CAAS,CAAA,CACzF,WAAA,CAAU,gBAAA,CACT,GAAGG,CAAAA,CACN,CAEJ,CAAA,6BAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-SRP463XH.cjs","sourcesContent":[null,"import type { ComponentProps, JSX } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport * as SeparatorPrimitive from '@radix-ui/react-separator';\nimport { tv } from 'tailwind-variants';\n\nimport { cn } from '@/lib/utils';\n\n/* -----------------------------------------------------------------------------\n * Variant: Separator\n * -------------------------------------------------------------------------- */\n\nconst separatorVariants = tv({\n base: 'bg-border relative flex shrink-0 items-center',\n variants: {\n align: {\n center: 'justify-center',\n end: 'justify-end',\n start: 'justify-start',\n },\n orientation: {\n horizontal: 'h-px w-full',\n vertical: 'h-full w-px flex-col',\n },\n },\n defaultVariants: {\n align: 'center',\n orientation: 'horizontal',\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Component: Separator\n * -------------------------------------------------------------------------- */\n\nfunction Separator({\n align,\n className,\n decorative = true,\n orientation,\n ...props\n}: ComponentProps<typeof SeparatorPrimitive.Root> &\n Omit<VariantProps<typeof separatorVariants>, 'orientation'>): JSX.Element {\n return (\n <SeparatorPrimitive.Root\n className={separatorVariants({ align, className, orientation })}\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SeparatorItem\n * -------------------------------------------------------------------------- */\n\nfunction SeparatorItem({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('bg-background text-muted-foreground absolute mx-2 px-2 text-sm', className)}\n data-slot=\"separator-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Separator, SeparatorItem };\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use client";import{a as J,b as z,c as I,d as T}from"./chunk-SSNF4WDW.js";import{a as N,c as M,d as k,g as X,h as _}from"./chunk-67WF7GP7.js";import{a as w}from"./chunk-HODP3L6K.js";import{a as P}from"./chunk-MKTUHVAW.js";import{b as E}from"./chunk-B74UCONC.js";import{b as y}from"./chunk-ZFCLI44C.js";import{a as o}from"./chunk-OKUFCFYT.js";import{useIsMobile as K}from"@codefast/hooks";import{Slot as g}from"@radix-ui/react-slot";import{PanelLeftIcon as V}from"lucide-react";import{createContext as G,useCallback as O,useContext as L,useEffect as $,useMemo as D,useState as B}from"react";import{tv as W}from"tailwind-variants";import{jsx as a,jsxs as p}from"react/jsx-runtime";var j="sidebar_state",q=60*60*24*7,F="16rem",U="18rem",Y="3.0625rem",Q="b",A=G(null);function S(){let t=L(A);if(!t)throw new Error("useSidebar must be used within a SidebarProvider.");return t}function ce({defaultOpen:t=!0,open:e,onOpenChange:n,className:r,style:i,children:l,...m}){let d=K(),[c,b]=B(!1),[v,R]=B(t),f=e??v,h=O(s=>{let u=typeof s=="function"?s(f):s;n?n(u):R(u),document.cookie=`${j}=${u}; path=/; max-age=${q}`},[n,f]),x=O(()=>{d?b(s=>!s):h(s=>!s)},[d,h,b]);$(()=>{let s=u=>{u.key===Q&&(u.metaKey||u.ctrlKey)&&(u.preventDefault(),x())};return window.addEventListener("keydown",s),()=>{window.removeEventListener("keydown",s)}},[x]);let C=f?"expanded":"collapsed",H=D(()=>({state:C,open:f,setOpen:h,isMobile:d,openMobile:c,setOpenMobile:b,toggleSidebar:x}),[C,f,h,d,c,b,x]);return a(A.Provider,{value:H,children:a(J,{delayDuration:0,children:a("div",{className:o("group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",r),"data-slot":"sidebar-wrapper",style:{"--sidebar-width":F,"--sidebar-width-icon":Y,...i},...m,children:l})})})}function pe({side:t="left",variant:e="sidebar",collapsible:n="offcanvas",className:r,children:i,...l}){let{isMobile:m,state:d,openMobile:c,setOpenMobile:b}=S();return n==="none"?a("div",{className:o("bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col",r),"data-slot":"sidebar",...l,children:i}):m?a(N,{open:c,onOpenChange:b,...l,children:p(M,{className:"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden","data-mobile":"true","data-sidebar":"sidebar","data-slot":"sidebar",side:t,style:{"--sidebar-width":U},children:[p(k,{className:"sr-only",children:[a(X,{children:"Sidebar"}),a(_,{children:"Displays the mobile sidebar."})]}),a("div",{className:"flex h-full w-full flex-col",children:i})]})}):p("div",{className:o("text-sidebar-foreground group peer hidden md:block",r),"data-collapsible":d==="collapsed"?n:"","data-side":t,"data-slot":"sidebar","data-state":d,"data-variant":e,children:[a("div",{className:o("w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180",e==="floating"||e==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)"),"data-slot":"sidebar-gap"}),a("div",{className:o("w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex",t==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",e==="floating"||e==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",r),"data-slot":"sidebar-container",...l,children:a("div",{className:"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm","data-sidebar":"sidebar","data-slot":"sidebar-inner",children:i})})]})}function me({className:t,onClick:e,...n}){let{toggleSidebar:r}=S();return p(y,{className:o("size-7",t),"data-sidebar":"trigger","data-slot":"sidebar-trigger",size:"icon",variant:"ghost",onClick:i=>{e?.(i),r()},...n,children:[a(V,{}),a("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function fe({className:t,...e}){let{toggleSidebar:n}=S();return a("button",{className:o("hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize",t),"data-sidebar":"rail","data-slot":"sidebar-rail",title:"Toggle Sidebar",type:"button",onClick:n,...e})}function ge({className:t,...e}){return a("main",{className:o("bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",t),"data-slot":"sidebar-inset",...e})}function ve({className:t,...e}){return a(E,{className:o("bg-background h-8 w-full shadow-none",t),"data-sidebar":"input","data-slot":"sidebar-input",...e})}function he({className:t,...e}){return a("div",{className:o("flex flex-col gap-2 p-2",t),"data-sidebar":"header","data-slot":"sidebar-header",...e})}function xe({className:t,...e}){return a("div",{className:o("flex flex-col gap-2 p-2",t),"data-sidebar":"footer","data-slot":"sidebar-footer",...e})}function Se({className:t,...e}){return a(P,{className:o("bg-sidebar-border mx-2 w-auto",t),"data-sidebar":"separator","data-slot":"sidebar-separator",...e})}function we({className:t,...e}){return a("div",{className:o("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",t),"data-sidebar":"content","data-slot":"sidebar-content",...e})}function Ce({className:t,...e}){return a("div",{className:o("relative flex w-full min-w-0 flex-col p-2",t),"data-sidebar":"group","data-slot":"sidebar-group",...e})}function ye({className:t,asChild:e=!1,...n}){return a(e?g:"div",{className:o("text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0",t),"data-sidebar":"group-label","data-slot":"sidebar-group-label",...n})}function Ee({className:t,asChild:e=!1,...n}){return a(e?g:"button",{className:o("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",t),"data-sidebar":"group-action","data-slot":"sidebar-group-action",...n})}function Pe({className:t,...e}){return a("div",{className:o("w-full text-sm",t),"data-sidebar":"group-content","data-slot":"sidebar-group-content",...e})}function Ne({className:t,...e}){return a("ul",{className:o("flex w-full min-w-0 flex-col gap-1",t),"data-sidebar":"menu","data-slot":"sidebar-menu",...e})}function Me({className:t,...e}){return a("li",{className:o("group/menu-item relative",t),"data-sidebar":"menu-item","data-slot":"sidebar-menu-item",...e})}var Z=W({base:"peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]"},size:{sm:"h-7 text-xs",md:"h-8 text-sm",lg:"group-data-[collapsible=icon]:p-0! h-12 text-sm"}},defaultVariants:{variant:"default",size:"md"}});function ke({asChild:t=!1,isActive:e=!1,variant:n="default",size:r="md",tooltip:i,className:l,...m}){let d=t?g:"button",{isMobile:c,state:b}=S(),v=a(d,{className:o(Z({variant:n,size:r}),l),"data-active":e,"data-sidebar":"menu-button","data-size":r,"data-slot":"sidebar-menu-button",...m});return i?(typeof i=="string"&&(i={children:i}),p(z,{children:[a(I,{asChild:!0,children:v}),a(T,{align:"center",hidden:b!=="collapsed"||c,side:"right",...i})]})):v}function Xe({className:t,asChild:e=!1,showOnHover:n=!1,...r}){return a(e?g:"button",{className:o("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0",n&&"peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0",t),"data-sidebar":"menu-action","data-slot":"sidebar-menu-action",...r})}function _e({className:t,...e}){return a("div",{className:o("text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1",t),"data-sidebar":"menu-badge","data-slot":"sidebar-menu-badge",...e})}function Je({className:t,showIcon:e=!1,...n}){let r=D(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return p("div",{className:o("flex h-8 items-center gap-2 rounded-md px-2",t),"data-sidebar":"menu-skeleton","data-slot":"sidebar-menu-skeleton",...n,children:[e?a(w,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}):null,a(w,{className:"max-w-(--skeleton-width) h-4 flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":r}})]})}function ze({className:t,...e}){return a("ul",{className:o("border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden",t),"data-sidebar":"menu-sub","data-slot":"sidebar-menu-sub",...e})}function Ie({className:t,...e}){return a("li",{className:o("group/menu-sub-item relative",t),"data-sidebar":"menu-sub-item","data-slot":"sidebar-menu-sub-item",...e})}function Te({asChild:t=!1,size:e="md",isActive:n=!1,className:r,...i}){return a(t?g:"a",{className:o("text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",e==="sm"&&"text-xs",e==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",r),"data-active":n,"data-sidebar":"menu-sub-button","data-size":e,"data-slot":"sidebar-menu-sub-button",...i})}export{S as a,ce as b,pe as c,me as d,fe as e,ge as f,ve as g,he as h,xe as i,Se as j,we as k,Ce as l,ye as m,Ee as n,Pe as o,Ne as p,Me as q,ke as r,Xe as s,_e as t,Je as u,ze as v,Ie as w,Te as x};
|
|
2
|
+
//# sourceMappingURL=chunk-SXYB6LLL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/sidebar.tsx"],"names":["useIsMobile","Slot","PanelLeftIcon","createContext","useCallback","useContext","useEffect","useMemo","useState","tv","jsx","jsxs","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","isMobile","openMobile","setOpenMobile","isOpen","setIsOpen","open","setOpen","value","openState","toggleSidebar","currentValue","handleKeyDown","event","state","contextValue","TooltipProvider","cn","Sidebar","side","variant","collapsible","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","SidebarMenuButton","isActive","size","tooltip","Component","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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","sourcesContent":["'use client';\n\nimport type { ComponentProps, CSSProperties, JSX } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { useIsMobile } from '@codefast/hooks';\nimport { Slot } from '@radix-ui/react-slot';\nimport { PanelLeftIcon } from 'lucide-react';\nimport { createContext, useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { tv } from 'tailwind-variants';\n\nimport { Button } from '@/components/button';\nimport { Input } from '@/components/input';\nimport { Separator } from '@/components/separator';\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from '@/components/sheet';\nimport { Skeleton } from '@/components/skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/tooltip';\nimport { cn } from '@/lib/utils';\n\nconst SIDEBAR_COOKIE_NAME = 'sidebar_state';\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = '16rem';\nconst SIDEBAR_WIDTH_MOBILE = '18rem';\nconst SIDEBAR_WIDTH_ICON = '3.0625rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ninterface SidebarContextProps {\n isMobile: boolean;\n open: boolean;\n openMobile: boolean;\n setOpen: (open: boolean) => void;\n setOpenMobile: (open: boolean) => void;\n state: 'collapsed' | 'expanded';\n toggleSidebar: () => void;\n}\n\nconst SidebarContext = createContext<null | SidebarContextProps>(null);\n\nfunction useSidebar(): SidebarContextProps {\n const context = useContext(SidebarContext);\n\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarProvider\n * -------------------------------------------------------------------------- */\n\nfunction SidebarProvider({\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n}: ComponentProps<'div'> & {\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n}): JSX.Element {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [isOpen, setIsOpen] = useState(defaultOpen);\n const open = openProp ?? isOpen;\n const setOpen = useCallback(\n (value: ((value: boolean) => boolean) | boolean) => {\n const openState = typeof value === 'function' ? value(open) : value;\n\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n setIsOpen(openState);\n }\n\n // eslint-disable-next-line unicorn/no-document-cookie -- This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open],\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = useCallback(() => {\n if (isMobile) {\n setOpenMobile((currentValue) => !currentValue);\n } else {\n setOpen((currentValue) => !currentValue);\n }\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n useEffect(() => {\n const handleKeyDown: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? 'expanded' : 'collapsed';\n\n const contextValue = useMemo<SidebarContextProps>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar],\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n className={cn('group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full', className)}\n data-slot=\"sidebar-wrapper\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as CSSProperties\n }\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: Sidebar\n * -------------------------------------------------------------------------- */\n\nfunction Sidebar({\n side = 'left',\n variant = 'sidebar',\n collapsible = 'offcanvas',\n className,\n children,\n ...props\n}: ComponentProps<'div'> & {\n collapsible?: 'icon' | 'none' | 'offcanvas';\n side?: 'left' | 'right';\n variant?: 'floating' | 'inset' | 'sidebar';\n}): JSX.Element {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('bg-sidebar text-sidebar-foreground w-(--sidebar-width) flex h-full flex-col', className)}\n data-slot=\"sidebar\"\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n className=\"bg-sidebar text-sidebar-foreground w-(--sidebar-width) p-0 [&>button]:hidden\"\n data-mobile=\"true\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar\"\n side={side}\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as CSSProperties\n }\n >\n <SheetHeader className=\"sr-only\">\n <SheetTitle>Sidebar</SheetTitle>\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\n </SheetHeader>\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n className={cn('text-sidebar-foreground group peer hidden md:block', className)}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-side={side}\n data-slot=\"sidebar\"\n data-state={state}\n data-variant={variant}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'w-(--sidebar-width) relative bg-transparent transition-[width] duration-200 ease-linear group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n data-slot=\"sidebar-gap\"\n />\n <div\n className={cn(\n 'w-(--sidebar-width) fixed inset-y-0 z-10 hidden h-svh transition-[left,right,width] duration-200 ease-linear md:flex',\n side === 'left'\n ? 'left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]'\n : 'right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]',\n // Adjust the padding for floating and inset variants.\n variant === 'floating' || variant === 'inset'\n ? 'p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l',\n className,\n )}\n data-slot=\"sidebar-container\"\n {...props}\n >\n <div\n className=\"bg-sidebar group-data-[variant=floating]:border-sidebar-border flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm\"\n data-sidebar=\"sidebar\"\n data-slot=\"sidebar-inner\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarTrigger\n * -------------------------------------------------------------------------- */\n\nfunction SidebarTrigger({ className, onClick, ...props }: ComponentProps<typeof Button>): JSX.Element {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n className={cn('size-7', className)}\n data-sidebar=\"trigger\"\n data-slot=\"sidebar-trigger\"\n size=\"icon\"\n variant=\"ghost\"\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeftIcon />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarRail\n * -------------------------------------------------------------------------- */\n\nfunction SidebarRail({ className, ...props }: ComponentProps<'button'>): JSX.Element {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n className={cn(\n 'hover:after:bg-sidebar-border in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize hover:group-data-[collapsible=offcanvas]:bg-sidebar absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] group-data-[side=left]:-right-4 group-data-[side=right]:left-0 group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full sm:flex [[data-side=left][data-collapsible=offcanvas]_&]:-right-2 [[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-collapsible=offcanvas]_&]:-left-2 [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n className,\n )}\n data-sidebar=\"rail\"\n data-slot=\"sidebar-rail\"\n title=\"Toggle Sidebar\"\n type=\"button\"\n onClick={toggleSidebar}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInset\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInset({ className, ...props }: ComponentProps<'main'>): JSX.Element {\n return (\n <main\n className={cn(\n 'bg-background relative flex w-full flex-1 flex-col md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm',\n className,\n )}\n data-slot=\"sidebar-inset\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarInput\n * -------------------------------------------------------------------------- */\n\nfunction SidebarInput({ className, ...props }: ComponentProps<typeof Input>): JSX.Element {\n return (\n <Input\n className={cn('bg-background h-8 w-full shadow-none', className)}\n data-sidebar=\"input\"\n data-slot=\"sidebar-input\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarHeader\n * -------------------------------------------------------------------------- */\n\nfunction SidebarHeader({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('flex flex-col gap-2 p-2', className)}\n data-sidebar=\"header\"\n data-slot=\"sidebar-header\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarFooter\n * -------------------------------------------------------------------------- */\n\nfunction SidebarFooter({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('flex flex-col gap-2 p-2', className)}\n data-sidebar=\"footer\"\n data-slot=\"sidebar-footer\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarSeparator\n * -------------------------------------------------------------------------- */\n\nfunction SidebarSeparator({ className, ...props }: ComponentProps<typeof Separator>): JSX.Element {\n return (\n <Separator\n className={cn('bg-sidebar-border mx-2 w-auto', className)}\n data-sidebar=\"separator\"\n data-slot=\"sidebar-separator\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarContent({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn(\n 'flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden',\n className,\n )}\n data-sidebar=\"content\"\n data-slot=\"sidebar-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroup\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroup({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n data-sidebar=\"group\"\n data-slot=\"sidebar-group\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupLabel\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupLabel({\n className,\n asChild = false,\n ...props\n}: ComponentProps<'div'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'div';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground/70 ring-sidebar-ring outline-hidden focus-visible:ring-3 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n )}\n data-sidebar=\"group-label\"\n data-slot=\"sidebar-group-label\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupAction({\n className,\n asChild = false,\n ...props\n}: ComponentProps<'button'> & {\n asChild?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'button';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n className,\n )}\n data-sidebar=\"group-action\"\n data-slot=\"sidebar-group-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarGroupContent\n * -------------------------------------------------------------------------- */\n\nfunction SidebarGroupContent({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn('w-full text-sm', className)}\n data-sidebar=\"group-content\"\n data-slot=\"sidebar-group-content\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenu\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenu({ className, ...props }: ComponentProps<'ul'>): JSX.Element {\n return (\n <ul\n className={cn('flex w-full min-w-0 flex-col gap-1', className)}\n data-sidebar=\"menu\"\n data-slot=\"sidebar-menu\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuItem({ className, ...props }: ComponentProps<'li'>): JSX.Element {\n return (\n <li\n className={cn('group/menu-item relative', className)}\n data-sidebar=\"menu-item\"\n data-slot=\"sidebar-menu-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Variant: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nconst sidebarMenuButtonVariants = tv({\n base: 'peer/menu-button outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground group-has-data-[sidebar=menu-action]/menu-item:pr-8 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! focus-visible:ring-3 flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm transition-[width,height,padding] disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:font-medium [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background hover:bg-sidebar-accent hover:text-sidebar-accent-foreground shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n sm: 'h-7 text-xs',\n md: 'h-8 text-sm',\n lg: 'group-data-[collapsible=icon]:p-0! h-12 text-sm',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuButton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuButton({\n asChild = false,\n isActive = false,\n variant = 'default',\n size = 'md',\n tooltip,\n className,\n ...props\n}: ComponentProps<'button'> &\n VariantProps<typeof sidebarMenuButtonVariants> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: ComponentProps<typeof TooltipContent> | string;\n }): JSX.Element {\n const Component = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Component\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n data-active={isActive}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-slot=\"sidebar-menu-button\"\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n // eslint-disable-next-line no-param-reassign -- convert it to an object with default properties\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent align=\"center\" hidden={state !== 'collapsed' || isMobile} side=\"right\" {...tooltip} />\n </Tooltip>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuAction\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuAction({\n className,\n asChild = false,\n showOnHover = false,\n ...props\n}: ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n}): JSX.Element {\n const Component = asChild ? Slot : 'button';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground peer-hover/menu-button:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 transition-transform after:absolute after:-inset-2 group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1 md:after:hidden [&>svg]:size-4 [&>svg]:shrink-0',\n showOnHover &&\n 'peer-data-[active=true]/menu-button:text-sidebar-accent-foreground group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0',\n className,\n )}\n data-sidebar=\"menu-action\"\n data-slot=\"sidebar-menu-action\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuBadge\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuBadge({ className, ...props }: ComponentProps<'div'>): JSX.Element {\n return (\n <div\n className={cn(\n 'text-sidebar-foreground peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums group-data-[collapsible=icon]:hidden peer-data-[size=default]/menu-button:top-1.5 peer-data-[size=lg]/menu-button:top-2.5 peer-data-[size=sm]/menu-button:top-1',\n className,\n )}\n data-sidebar=\"menu-badge\"\n data-slot=\"sidebar-menu-badge\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSkeleton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSkeleton({\n className,\n showIcon = false,\n ...props\n}: ComponentProps<'div'> & {\n showIcon?: boolean;\n}): JSX.Element {\n // Random width between 50 to 90%.\n const width = useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n data-sidebar=\"menu-skeleton\"\n data-slot=\"sidebar-menu-skeleton\"\n {...props}\n >\n {showIcon ? <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" /> : null}\n <Skeleton\n className=\"max-w-(--skeleton-width) h-4 flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as CSSProperties\n }\n />\n </div>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSub\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSub({ className, ...props }: ComponentProps<'ul'>): JSX.Element {\n return (\n <ul\n className={cn(\n 'border-sidebar-border mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l px-2.5 py-0.5 group-data-[collapsible=icon]:hidden',\n className,\n )}\n data-sidebar=\"menu-sub\"\n data-slot=\"sidebar-menu-sub\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubItem\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubItem({ className, ...props }: ComponentProps<'li'>): JSX.Element {\n return (\n <li\n className={cn('group/menu-sub-item relative', className)}\n data-sidebar=\"menu-sub-item\"\n data-slot=\"sidebar-menu-sub-item\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: SidebarMenuSubButton\n * -------------------------------------------------------------------------- */\n\nfunction SidebarMenuSubButton({\n asChild = false,\n size = 'md',\n isActive = false,\n className,\n ...props\n}: ComponentProps<'a'> & {\n asChild?: boolean;\n isActive?: boolean;\n size?: 'md' | 'sm';\n}): JSX.Element {\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'text-sidebar-foreground ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground active:bg-sidebar-accent active:text-sidebar-accent-foreground [&>svg]:text-sidebar-accent-foreground outline-hidden focus-visible:ring-3 data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n data-active={isActive}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-slot=\"sidebar-menu-sub-button\"\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-TNP6NVCR.cjs","../src/components/button.tsx"],"names":["buttonVariants","tv","Button","children","className","disabled","loaderPosition","loading","prefix","size","spinner","suffix","variant","props","jsxs","jsx","Spinner"],"mappings":"AAAA,iIAAwC,qDCGrB,+CA6Df,IArDEA,CAAAA,CAAiBC,kCAAAA,CACrB,IAAA,CAAM,8OAAA,CACN,QAAA,CAAU,CACR,IAAA,CAAM,CACJ,EAAA,CAAI,4BAAA,CACJ,EAAA,CAAI,0BAAA,CACJ,EAAA,CAAI,2BAAA,CACJ,IAAA,CAAM,QACR,CAAA,CACA,OAAA,CAAS,CACP,OAAA,CACE,sIAAA,CACF,SAAA,CAAW,sGAAA,CACX,WAAA,CACE,gKAAA,CACF,OAAA,CACE,qbAAA,CACF,KAAA,CACE,iJAAA,CACF,IAAA,CAAM,yFACR,CACF,CAAA,CACA,eAAA,CAAiB,CACf,IAAA,CAAM,IAAA,CACN,OAAA,CAAS,SACX,CACF,CAAC,CAAA,CAMD,SAASC,CAAAA,CAAO,CACd,QAAA,CAAAC,CAAAA,CACA,SAAA,CAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,cAAA,CAAAC,CAAAA,CAAiB,QAAA,CACjB,OAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,IAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,MAAA,CAAAC,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAOkB,CAChB,OACEC,8BAAAA,QAAC,CAAA,CACC,SAAA,CAAWd,CAAAA,CAAe,CAAE,SAAA,CAAAI,CAAAA,CAAW,IAAA,CAAAK,CAAAA,CAAM,OAAA,CAAAG,CAAQ,CAAC,CAAA,CACtD,WAAA,CAAU,QAAA,CACV,cAAA,CAAcA,CAAAA,CACd,QAAA,CAAUL,CAAAA,EAAWF,CAAAA,CACrB,IAAA,CAAK,QAAA,CACJ,GAAGQ,CAAAA,CAEH,QAAA,CAAA,CAAAN,CAAAA,EAAWD,CAAAA,GAAmB,QAAA,CAAWI,CAAAA,EAAWK,6BAAAA,mBAACC,CAAA,CAAA,CAAQ,CAAA,CAAKR,CAAAA,CAClEL,CAAAA,CACAI,CAAAA,EAAWD,CAAAA,GAAmB,QAAA,CAAWI,CAAAA,EAAWK,6BAAAA,mBAACC,CAAA,CAAA,CAAQ,CAAA,CAAKL,CAAAA,CAAAA,CACrE,CAEJ,CAAA,6BAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-TNP6NVCR.cjs","sourcesContent":[null,"import type { ComponentProps, JSX, ReactNode } from 'react';\nimport type { VariantProps } from 'tailwind-variants';\n\nimport { tv } from 'tailwind-variants';\n\nimport { Spinner } from '@/components/spinner';\n\n/* -----------------------------------------------------------------------------\n * Variant: Button\n * -------------------------------------------------------------------------- */\n\nconst buttonVariants = tv({\n base: \"focus-visible:ring-3 outline-hidden inline-flex shrink-0 select-none items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-medium transition disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0\",\n variants: {\n size: {\n sm: 'h-8 px-3 has-[>svg]:px-2.5', // 32px\n md: 'h-9 px-4 has-[>svg]:px-3', // 36px\n lg: 'h-10 px-6 has-[>svg]:px-4', // 40px\n icon: 'size-9',\n },\n variant: {\n default:\n 'bg-primary text-primary-foreground focus-visible:ring-primary/20 dark:focus-visible:ring-primary/40 hover:not-disabled:bg-primary/80',\n secondary: 'bg-secondary text-secondary-foreground hover:not-disabled:bg-secondary/80 focus-visible:ring-ring/50',\n destructive:\n 'bg-destructive dark:bg-destructive/60 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 hover:not-disabled:bg-destructive/90 text-white',\n outline:\n 'border-input shadow-xs hover:not-disabled:bg-secondary hover:not-disabled:text-secondary-foreground focus-visible:ring-ring/50 focus-visible:border-ring aria-invalid:border-destructive dark:aria-invalid:border-destructive/70 hover:not-disabled:aria-invalid:border-destructive/60 focus-within:aria-invalid:ring-destructive/20 dark:focus-within:aria-invalid:ring-destructive/40 dark:bg-input/30 dark:hover:not-disabled:bg-input/50 border',\n ghost:\n 'hover:not-disabled:bg-secondary hover:not-disabled:text-secondary-foreground focus-visible:ring-ring/50 dark:hover:not-disabled:bg-secondary/50',\n link: 'text-primary hover:not-disabled:underline focus-visible:ring-ring/50 underline-offset-4',\n },\n },\n defaultVariants: {\n size: 'md',\n variant: 'default',\n },\n});\n\n/* -----------------------------------------------------------------------------\n * Component: Button\n * -------------------------------------------------------------------------- */\n\nfunction Button({\n children,\n className,\n disabled,\n loaderPosition = 'prefix',\n loading,\n prefix,\n size,\n spinner,\n suffix,\n variant,\n ...props\n}: Omit<ComponentProps<'button'>, 'prefix'> &\n VariantProps<typeof buttonVariants> & {\n loaderPosition?: 'prefix' | 'suffix';\n loading?: boolean;\n prefix?: ReactNode;\n spinner?: ReactNode;\n suffix?: ReactNode;\n }): JSX.Element {\n return (\n <button\n className={buttonVariants({ className, size, variant })}\n data-slot=\"button\"\n data-variant={variant}\n disabled={loading || disabled}\n type=\"button\"\n {...props}\n >\n {loading && loaderPosition === 'prefix' ? spinner || <Spinner /> : prefix}\n {children}\n {loading && loaderPosition === 'suffix' ? spinner || <Spinner /> : suffix}\n </button>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { Button, buttonVariants };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/sonner.tsx"],"names":["theme","useTheme","jsx","Sonner","props"],"mappings":"AAKA,qFAAS,CAAA,yCACA,gCA6BA,+CAvBU,SACX,CAAE,CAAA,CAAA,GAAA,CAAAA,CAAAA,CAAQ,CAAA,GAAA,CAAA,KAAaC,CAAAA,CAAS,CAAA,QAGpCC,CAAAA,CAACC,kCAAAA,CACC,CAAA,OAAA,6BAAA,eAAU,CAAA,CAAA,SAAA,CAAA,eAGN,CAAA,KAAA,CAAA,CAAA,aAAe,CAAA,gBACf,CAAA,eAAiB,CAAA,2BACjB,CAAA,iBAAmB,CAAA,eAInBC,CAAAA,CACN,KAEJ,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,yCAAA","file":"/
|
|
1
|
+
{"version":3,"sources":["../src/components/sonner.tsx"],"names":["theme","useTheme","jsx","Sonner","props"],"mappings":"AAKA,qFAAS,CAAA,yCACA,gCA6BA,+CAvBU,SACX,CAAE,CAAA,CAAA,GAAA,CAAAA,CAAAA,CAAQ,CAAA,GAAA,CAAA,KAAaC,CAAAA,CAAS,CAAA,QAGpCC,CAAAA,CAACC,kCAAAA,CACC,CAAA,OAAA,6BAAA,eAAU,CAAA,CAAA,SAAA,CAAA,eAGN,CAAA,KAAA,CAAA,CAAA,aAAe,CAAA,gBACf,CAAA,eAAiB,CAAA,2BACjB,CAAA,iBAAmB,CAAA,eAInBC,CAAAA,CACN,KAEJ,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,CAAA,CAAA,yCAAA","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-TRPIIBAS.cjs","sourcesContent":["'use client';\n\nimport type { CSSProperties, JSX } from 'react';\nimport type { ToasterProps } from 'sonner';\n\nimport { useTheme } from 'next-themes';\nimport { Toaster as Sonner } from 'sonner';\n\n/* -----------------------------------------------------------------------------\n * Component: Sonner\n * -------------------------------------------------------------------------- */\n\nfunction Toaster({ ...props }: ToasterProps): JSX.Element {\n const { theme = 'system' } = useTheme();\n\n return (\n <Sonner\n className=\"toaster group\"\n style={\n {\n '--normal-bg': 'var(--popover)',\n '--normal-text': 'var(--popover-foreground)',\n '--normal-border': 'var(--border)',\n } as CSSProperties\n }\n theme={theme as ToasterProps['theme']}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport { toast } from 'sonner';\nexport { Toaster };\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/vuongphan/Projects/codefastlabs/codefast/packages/ui/dist/chunk-TT7ESDY6.cjs","../src/components/calendar.tsx"],"names":["orientation","className","jsx","cn","Calendar","classNames","isInteractive","props","UI","SelectionState","DayFlag","CalendarRangeLabel","formatStr","placeholder","date","jsxs","CalendarLabel"],"mappings":"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","file":"/Users/vuongphan/Projects/codefastlabs/codefast/packages/ui/dist/chunk-TT7ESDY6.cjs","sourcesContent":[null,"'use client';\n\nimport type { ComponentProps, JSX, ReactNode } from 'react';\nimport type { CustomComponents, DateRange } from 'react-day-picker';\n\nimport { format } from 'date-fns';\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, DotIcon } from 'lucide-react';\nimport { DayFlag, DayPicker, SelectionState, UI } from 'react-day-picker';\n\nimport { buttonVariants } from '@/components/button';\nimport { cn } from '@/lib/utils';\n\n/* -----------------------------------------------------------------------------\n * Component: Chevron\n * -------------------------------------------------------------------------- */\n\nfunction Chevron({ orientation, className, ...props }: ComponentProps<CustomComponents['Chevron']>): JSX.Element {\n switch (orientation) {\n case 'up': {\n return <ChevronUpIcon className={cn('size-4', className)} {...props} />;\n }\n\n case 'down': {\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />;\n }\n\n case 'left': {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\n }\n\n case 'right': {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />;\n }\n\n default: {\n return <DotIcon className={cn('size-4', className)} {...props} />;\n }\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Component: Calendar\n * -------------------------------------------------------------------------- */\n\nfunction Calendar({ showOutsideDays = true, classNames, ...props }: ComponentProps<typeof DayPicker>): JSX.Element {\n const isInteractive = props.mode !== undefined || props.onDayClick !== undefined;\n\n return (\n <DayPicker\n classNames={{\n [UI.Root]: cn('p-3', classNames?.[UI.Root]),\n [UI.Chevron]: cn(classNames?.[UI.Chevron]),\n [UI.Day]: cn(\n 'grid place-items-center text-center text-sm',\n isInteractive ? 'min-w-8.5 has-focus-visible:z-20 group' : 'min-w-8.5 h-8',\n classNames?.[UI.Day],\n ),\n [UI.DayButton]: cn(\n 'group-[.is-outside]:text-muted-foreground hover:not-disabled:not-group-aria-selected:bg-secondary hover:not-disabled:not-group-aria-selected:text-secondary-foreground group-data-today:not-group-aria-selected:bg-secondary group-data-today:not-group-aria-selected:text-secondary-foreground group-aria-selected:not-group-[.is-range-middle]:bg-primary group-aria-selected:not-group-[.is-range-middle]:text-primary-foreground outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3 group-[.is-selected]:not-group-[.is-range-middle]:focus-visible:ring-primary/20 dark:group-[.is-selected]:not-group-[.is-range-middle]:focus-visible:ring-primary/40 group-[.is-selected]:not-group-[.is-range-middle]:focus-visible:border-primary size-8 rounded-lg border border-transparent disabled:opacity-50',\n classNames?.[UI.DayButton],\n ),\n [UI.CaptionLabel]: cn('flex items-center gap-2 [&>svg]:opacity-50', classNames?.[UI.CaptionLabel]),\n [UI.Dropdowns]: cn('flex gap-4', classNames?.[UI.Dropdowns]),\n [UI.Dropdown]: cn('absolute opacity-0', classNames?.[UI.Dropdown]),\n [UI.DropdownRoot]: cn('relative', classNames?.[UI.DropdownRoot]),\n [UI.Footer]: cn(classNames?.[UI.Footer]),\n [UI.MonthGrid]: cn(classNames?.[UI.MonthGrid]),\n [UI.MonthCaption]: cn('py-1 text-sm font-medium', classNames?.[UI.MonthCaption]),\n [UI.MonthsDropdown]: cn(classNames?.[UI.MonthsDropdown]),\n [UI.Month]: cn('flex flex-col gap-4', classNames?.[UI.Month]),\n [UI.Months]: cn('relative flex gap-4', classNames?.[UI.Months]),\n [UI.Nav]: cn('absolute end-0 flex gap-2', classNames?.[UI.Nav]),\n [UI.NextMonthButton]: buttonVariants({\n variant: 'ghost',\n size: 'icon',\n className: ['size-7', classNames?.[UI.NextMonthButton]],\n }),\n [UI.PreviousMonthButton]: buttonVariants({\n variant: 'ghost',\n size: 'icon',\n className: ['size-7', classNames?.[UI.PreviousMonthButton]],\n }),\n [UI.Week]: cn('mt-2 flex justify-between', classNames?.[UI.Week]),\n [UI.Weeks]: cn(classNames?.[UI.Weeks]),\n [UI.Weekday]: cn('text-muted-foreground min-w-8.5 text-xs font-medium', classNames?.[UI.Weekday]),\n [UI.Weekdays]: cn('flex w-full justify-between', classNames?.[UI.Weekdays]),\n [UI.WeekNumber]: cn(\n 'text-muted-foreground min-w-8.5 grid h-8 place-items-center text-xs font-normal [&+*]:rounded-l-lg',\n classNames?.[UI.WeekNumber],\n ),\n [UI.WeekNumberHeader]: cn('min-w-8.5', classNames?.[UI.WeekNumberHeader]),\n [UI.YearsDropdown]: cn(classNames?.[UI.YearsDropdown]),\n\n [SelectionState.range_end]: cn(\n 'to-secondary is-range-end rounded-r-lg bg-gradient-to-l first:rounded-l-lg',\n classNames?.[SelectionState.range_end],\n ),\n [SelectionState.range_middle]: cn(\n 'is-range-middle bg-secondary text-secondary-foreground first:rounded-l-lg last:rounded-r-lg',\n classNames?.[SelectionState.range_middle],\n ),\n [SelectionState.range_start]: cn(\n 'to-secondary is-range-start rounded-l-lg bg-gradient-to-r last:rounded-r-lg',\n classNames?.[SelectionState.range_start],\n ),\n [SelectionState.selected]: cn('is-selected', classNames?.[SelectionState.selected]),\n\n [DayFlag.disabled]: cn('is-disabled', classNames?.[DayFlag.disabled]),\n [DayFlag.focused]: cn('is-focused', classNames?.[DayFlag.focused]),\n [DayFlag.hidden]: cn('is-hidden size-8', classNames?.[DayFlag.hidden]),\n [DayFlag.outside]: cn('is-outside', classNames?.[DayFlag.outside]),\n [DayFlag.today]: cn('is-today', classNames?.[DayFlag.today]),\n }}\n components={{\n Chevron,\n }}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: CalendarRangeLabel\n * -------------------------------------------------------------------------- */\n\nfunction CalendarRangeLabel({\n date,\n formatStr = 'LLL dd, y',\n placeholder = 'Pick a date',\n}: {\n date: DateRange | undefined;\n formatStr?: string;\n placeholder?: string;\n}): ReactNode {\n if (!date?.from) {\n return <span className=\"truncate\">{placeholder}</span>;\n }\n\n const formattedFromDate = format(date.from, formatStr);\n\n if (!date.to) {\n return <span className=\"truncate\">{formattedFromDate}</span>;\n }\n\n const formattedToDate = format(date.to, formatStr);\n\n return (\n <span className=\"truncate\">\n {formattedFromDate} - {formattedToDate}\n </span>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: CalendarLabel\n * -------------------------------------------------------------------------- */\n\nfunction CalendarLabel({\n date,\n formatStr = 'PPP',\n placeholder = 'Pick a date',\n}: {\n date: Date | undefined;\n formatStr?: string;\n placeholder?: string;\n}): ReactNode {\n if (!date) {\n return <span className=\"truncate\">{placeholder}</span>;\n }\n\n return <span className=\"truncate\">{format(date, formatStr)}</span>;\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport type { DateRange, Matcher } from 'react-day-picker';\nexport { Calendar, CalendarLabel, CalendarRangeLabel };\n"]}
|
|
1
|
+
{"version":3,"sources":["/home/runner/work/codefast/codefast/packages/ui/dist/chunk-TT7ESDY6.cjs","../src/components/calendar.tsx"],"names":["orientation","className","jsx","cn","Calendar","classNames","isInteractive","props","UI","SelectionState","DayFlag","CalendarRangeLabel","formatStr","placeholder","date","jsxs","CalendarLabel"],"mappings":"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","file":"/home/runner/work/codefast/codefast/packages/ui/dist/chunk-TT7ESDY6.cjs","sourcesContent":[null,"'use client';\n\nimport type { ComponentProps, JSX, ReactNode } from 'react';\nimport type { CustomComponents, DateRange } from 'react-day-picker';\n\nimport { format } from 'date-fns';\nimport { ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, ChevronUpIcon, DotIcon } from 'lucide-react';\nimport { DayFlag, DayPicker, SelectionState, UI } from 'react-day-picker';\n\nimport { buttonVariants } from '@/components/button';\nimport { cn } from '@/lib/utils';\n\n/* -----------------------------------------------------------------------------\n * Component: Chevron\n * -------------------------------------------------------------------------- */\n\nfunction Chevron({ orientation, className, ...props }: ComponentProps<CustomComponents['Chevron']>): JSX.Element {\n switch (orientation) {\n case 'up': {\n return <ChevronUpIcon className={cn('size-4', className)} {...props} />;\n }\n\n case 'down': {\n return <ChevronDownIcon className={cn('size-4', className)} {...props} />;\n }\n\n case 'left': {\n return <ChevronLeftIcon className={cn('size-4', className)} {...props} />;\n }\n\n case 'right': {\n return <ChevronRightIcon className={cn('size-4', className)} {...props} />;\n }\n\n default: {\n return <DotIcon className={cn('size-4', className)} {...props} />;\n }\n }\n}\n\n/* -----------------------------------------------------------------------------\n * Component: Calendar\n * -------------------------------------------------------------------------- */\n\nfunction Calendar({ showOutsideDays = true, classNames, ...props }: ComponentProps<typeof DayPicker>): JSX.Element {\n const isInteractive = props.mode !== undefined || props.onDayClick !== undefined;\n\n return (\n <DayPicker\n classNames={{\n [UI.Root]: cn('p-3', classNames?.[UI.Root]),\n [UI.Chevron]: cn(classNames?.[UI.Chevron]),\n [UI.Day]: cn(\n 'grid place-items-center text-center text-sm',\n isInteractive ? 'min-w-8.5 has-focus-visible:z-20 group' : 'min-w-8.5 h-8',\n classNames?.[UI.Day],\n ),\n [UI.DayButton]: cn(\n 'group-[.is-outside]:text-muted-foreground hover:not-disabled:not-group-aria-selected:bg-secondary hover:not-disabled:not-group-aria-selected:text-secondary-foreground group-data-today:not-group-aria-selected:bg-secondary group-data-today:not-group-aria-selected:text-secondary-foreground group-aria-selected:not-group-[.is-range-middle]:bg-primary group-aria-selected:not-group-[.is-range-middle]:text-primary-foreground outline-hidden focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-3 group-[.is-selected]:not-group-[.is-range-middle]:focus-visible:ring-primary/20 dark:group-[.is-selected]:not-group-[.is-range-middle]:focus-visible:ring-primary/40 group-[.is-selected]:not-group-[.is-range-middle]:focus-visible:border-primary size-8 rounded-lg border border-transparent disabled:opacity-50',\n classNames?.[UI.DayButton],\n ),\n [UI.CaptionLabel]: cn('flex items-center gap-2 [&>svg]:opacity-50', classNames?.[UI.CaptionLabel]),\n [UI.Dropdowns]: cn('flex gap-4', classNames?.[UI.Dropdowns]),\n [UI.Dropdown]: cn('absolute opacity-0', classNames?.[UI.Dropdown]),\n [UI.DropdownRoot]: cn('relative', classNames?.[UI.DropdownRoot]),\n [UI.Footer]: cn(classNames?.[UI.Footer]),\n [UI.MonthGrid]: cn(classNames?.[UI.MonthGrid]),\n [UI.MonthCaption]: cn('py-1 text-sm font-medium', classNames?.[UI.MonthCaption]),\n [UI.MonthsDropdown]: cn(classNames?.[UI.MonthsDropdown]),\n [UI.Month]: cn('flex flex-col gap-4', classNames?.[UI.Month]),\n [UI.Months]: cn('relative flex gap-4', classNames?.[UI.Months]),\n [UI.Nav]: cn('absolute end-0 flex gap-2', classNames?.[UI.Nav]),\n [UI.NextMonthButton]: buttonVariants({\n variant: 'ghost',\n size: 'icon',\n className: ['size-7', classNames?.[UI.NextMonthButton]],\n }),\n [UI.PreviousMonthButton]: buttonVariants({\n variant: 'ghost',\n size: 'icon',\n className: ['size-7', classNames?.[UI.PreviousMonthButton]],\n }),\n [UI.Week]: cn('mt-2 flex justify-between', classNames?.[UI.Week]),\n [UI.Weeks]: cn(classNames?.[UI.Weeks]),\n [UI.Weekday]: cn('text-muted-foreground min-w-8.5 text-xs font-medium', classNames?.[UI.Weekday]),\n [UI.Weekdays]: cn('flex w-full justify-between', classNames?.[UI.Weekdays]),\n [UI.WeekNumber]: cn(\n 'text-muted-foreground min-w-8.5 grid h-8 place-items-center text-xs font-normal [&+*]:rounded-l-lg',\n classNames?.[UI.WeekNumber],\n ),\n [UI.WeekNumberHeader]: cn('min-w-8.5', classNames?.[UI.WeekNumberHeader]),\n [UI.YearsDropdown]: cn(classNames?.[UI.YearsDropdown]),\n\n [SelectionState.range_end]: cn(\n 'to-secondary is-range-end rounded-r-lg bg-gradient-to-l first:rounded-l-lg',\n classNames?.[SelectionState.range_end],\n ),\n [SelectionState.range_middle]: cn(\n 'is-range-middle bg-secondary text-secondary-foreground first:rounded-l-lg last:rounded-r-lg',\n classNames?.[SelectionState.range_middle],\n ),\n [SelectionState.range_start]: cn(\n 'to-secondary is-range-start rounded-l-lg bg-gradient-to-r last:rounded-r-lg',\n classNames?.[SelectionState.range_start],\n ),\n [SelectionState.selected]: cn('is-selected', classNames?.[SelectionState.selected]),\n\n [DayFlag.disabled]: cn('is-disabled', classNames?.[DayFlag.disabled]),\n [DayFlag.focused]: cn('is-focused', classNames?.[DayFlag.focused]),\n [DayFlag.hidden]: cn('is-hidden size-8', classNames?.[DayFlag.hidden]),\n [DayFlag.outside]: cn('is-outside', classNames?.[DayFlag.outside]),\n [DayFlag.today]: cn('is-today', classNames?.[DayFlag.today]),\n }}\n components={{\n Chevron,\n }}\n showOutsideDays={showOutsideDays}\n {...props}\n />\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: CalendarRangeLabel\n * -------------------------------------------------------------------------- */\n\nfunction CalendarRangeLabel({\n date,\n formatStr = 'LLL dd, y',\n placeholder = 'Pick a date',\n}: {\n date: DateRange | undefined;\n formatStr?: string;\n placeholder?: string;\n}): ReactNode {\n if (!date?.from) {\n return <span className=\"truncate\">{placeholder}</span>;\n }\n\n const formattedFromDate = format(date.from, formatStr);\n\n if (!date.to) {\n return <span className=\"truncate\">{formattedFromDate}</span>;\n }\n\n const formattedToDate = format(date.to, formatStr);\n\n return (\n <span className=\"truncate\">\n {formattedFromDate} - {formattedToDate}\n </span>\n );\n}\n\n/* -----------------------------------------------------------------------------\n * Component: CalendarLabel\n * -------------------------------------------------------------------------- */\n\nfunction CalendarLabel({\n date,\n formatStr = 'PPP',\n placeholder = 'Pick a date',\n}: {\n date: Date | undefined;\n formatStr?: string;\n placeholder?: string;\n}): ReactNode {\n if (!date) {\n return <span className=\"truncate\">{placeholder}</span>;\n }\n\n return <span className=\"truncate\">{format(date, formatStr)}</span>;\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport type { DateRange, Matcher } from 'react-day-picker';\nexport { Calendar, CalendarLabel, CalendarRangeLabel };\n"]}
|