@alkimi.org/ui-kit 0.3.32 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-ACGP6SRB.mjs +3 -0
- package/dist/chunk-ACGP6SRB.mjs.map +1 -0
- package/dist/chunk-BAZPZP3V.js +3 -0
- package/dist/chunk-BAZPZP3V.js.map +1 -0
- package/dist/{chunk-VEDFV5S2.mjs → chunk-EGD7XVML.mjs} +2 -2
- package/dist/chunk-FZ3NXOFK.mjs +3 -0
- package/dist/chunk-FZ3NXOFK.mjs.map +1 -0
- package/dist/{chunk-BI2IMPJG.js → chunk-IAXQEBHX.js} +2 -2
- package/dist/{chunk-BI2IMPJG.js.map → chunk-IAXQEBHX.js.map} +1 -1
- package/dist/chunk-IFNROIYL.mjs +3 -0
- package/dist/chunk-IFNROIYL.mjs.map +1 -0
- package/dist/chunk-M7BIV4VT.mjs +3 -0
- package/dist/chunk-M7BIV4VT.mjs.map +1 -0
- package/dist/chunk-UCGLZ5L4.mjs +3 -0
- package/dist/chunk-UCGLZ5L4.mjs.map +1 -0
- package/dist/chunk-ULIOO55I.js +3 -0
- package/dist/chunk-ULIOO55I.js.map +1 -0
- package/dist/chunk-WSKRASYC.js +3 -0
- package/dist/chunk-WSKRASYC.js.map +1 -0
- package/dist/chunk-XA6V5VKF.js +3 -0
- package/dist/chunk-XA6V5VKF.js.map +1 -0
- package/dist/chunk-Y5RWSXAJ.js +3 -0
- package/dist/chunk-Y5RWSXAJ.js.map +1 -0
- package/dist/components/button.d.mts +1 -1
- package/dist/components/button.d.ts +1 -1
- package/dist/components/calendar.d.mts +13 -0
- package/dist/components/calendar.d.ts +13 -0
- package/dist/components/calendar.js +3 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/calendar.mjs +3 -0
- package/dist/components/calendar.mjs.map +1 -0
- package/dist/components/date-picker.d.mts +20 -0
- package/dist/components/date-picker.d.ts +20 -0
- package/dist/components/date-picker.js +3 -0
- package/dist/components/date-picker.js.map +1 -0
- package/dist/components/date-picker.mjs +3 -0
- package/dist/components/date-picker.mjs.map +1 -0
- package/dist/components/date-range-picker.d.mts +21 -0
- package/dist/components/date-range-picker.d.ts +21 -0
- package/dist/components/date-range-picker.js +3 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/date-range-picker.mjs +3 -0
- package/dist/components/date-range-picker.mjs.map +1 -0
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.mjs +1 -1
- package/dist/components/popover.d.mts +8 -0
- package/dist/components/popover.d.ts +8 -0
- package/dist/components/popover.js +3 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/popover.mjs +3 -0
- package/dist/components/popover.mjs.map +1 -0
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +5 -1
- package/dist/chunk-3ZHGVYWR.mjs +0 -3
- package/dist/chunk-3ZHGVYWR.mjs.map +0 -1
- package/dist/chunk-66KX3FMQ.js +0 -3
- package/dist/chunk-66KX3FMQ.js.map +0 -1
- /package/dist/{chunk-VEDFV5S2.mjs.map → chunk-EGD7XVML.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alkimi.org/ui-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"packageManager": "pnpm@10.26.0",
|
|
5
5
|
"description": "A React component library built with shadcn/ui and Tailwind CSS",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
"@radix-ui/react-checkbox": "^1.3.3",
|
|
84
84
|
"@radix-ui/react-dialog": "^1.0.5",
|
|
85
85
|
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
86
|
+
"@radix-ui/react-popover": "^1.1.15",
|
|
86
87
|
"@radix-ui/react-progress": "^1.1.8",
|
|
87
88
|
"@radix-ui/react-separator": "^1.0.3",
|
|
88
89
|
"@radix-ui/react-slider": "^1.3.6",
|
|
@@ -92,7 +93,10 @@
|
|
|
92
93
|
"@radix-ui/react-tooltip": "^1.0.7",
|
|
93
94
|
"class-variance-authority": "^0.7.0",
|
|
94
95
|
"clsx": "^2.1.0",
|
|
96
|
+
"cmdk": "^1.1.1",
|
|
97
|
+
"date-fns": "^4.1.0",
|
|
95
98
|
"lucide-react": "^0.562.0",
|
|
99
|
+
"react-day-picker": "^9.13.0",
|
|
96
100
|
"tailwind-merge": "^2.2.0",
|
|
97
101
|
"vaul": "^1.1.2"
|
|
98
102
|
}
|
package/dist/chunk-3ZHGVYWR.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import{b as p}from"./chunk-2YRLGFWP.mjs";import{a as n}from"./chunk-S5TKCF6T.mjs";import*as t from"react";import{X as R}from"lucide-react";import{Drawer as f}from"vaul";import*as m from"react";var D={content:["./src/**/*.{ts,tsx}","./stories/**/*.{ts,tsx}"],theme:{extend:{screens:{sm:"448px",md:"576px",lg:"986px",xl:"1280px","2xl":"1400px"}}}},u=D;function v(e){let[a,r]=m.useState(!1);return m.useEffect(()=>{let d=`(min-width: ${u.theme.extend.screens[e]})`,s=window.matchMedia(d),l=()=>r(s.matches);return l(),s.addEventListener("change",l),()=>s.removeEventListener("change",l)},[e]),a}import{jsx as o,jsxs as c}from"react/jsx-runtime";var g="24rem",x=t.createContext(null);function y(){let e=t.useContext(x);if(!e)throw new Error("useDrawer must be used within a Drawer component.");return e}var C=t.forwardRef(({isOpen:e,onClose:a,width:r=g,children:i,...d},s)=>{let l=t.useRef(null),w=v("md"),h=t.useMemo(()=>({isOpen:e,onClose:a,width:r}),[e,a,r]);return c(x.Provider,{value:h,children:[!w&&o(f.Root,{open:e,onOpenChange:b=>{b||a()},direction:"left",children:c(f.Portal,{children:[o(f.Overlay,{className:"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm"}),o(f.Content,{className:"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none",children:i})]})}),w&&c("div",{ref:s,className:"group/drawer peer","data-state":e?"open":"closed",...d,children:[o("div",{className:n("relative bg-transparent transition-[width] duration-200 ease-linear",e?"":"w-0"),style:{width:e?r:"0"}}),o("div",{ref:l,className:n("fixed inset-y-0 right-0 z-10 h-svh transition-[right,width] duration-200 ease-linear flex",e?"right-0":"right-[calc(var(--drawer-width)*-1)]"),style:{"--drawer-width":r,width:r},children:o("div",{"data-drawer":"drawer",className:"flex h-full w-full flex-col",children:o("div",{className:"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow",children:i})})})]})]})});C.displayName="Drawer";var N=t.forwardRef(({className:e,showCloseButton:a=!0,children:r,...i},d)=>{let{onClose:s}=y();return c("div",{ref:d,"data-drawer":"header",className:n("flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border",e),...i,children:[o("div",{className:"flex-1",children:r}),a&&c(p,{variant:"secondary",size:"icon",onClick:s,className:"h-8 w-8 shrink-0 rounded-full",children:[o(R,{size:16}),o("span",{className:"sr-only",children:"Close drawer"})]})]})});N.displayName="DrawerHeader";var P=t.forwardRef(({className:e,...a},r)=>o("h2",{ref:r,className:n("text-lg font-semibold text-primary-accent",e),...a}));P.displayName="DrawerTitle";var M=t.forwardRef(({className:e,...a},r)=>o("div",{ref:r,"data-drawer":"body",className:n("flex-1 overflow-auto p-4",e),...a}));M.displayName="DrawerBody";var E=t.forwardRef(({className:e,...a},r)=>o("div",{ref:r,"data-drawer":"footer",className:n("flex flex-col gap-2 p-4 border-t border-sidebar-border",e),...a}));E.displayName="DrawerFooter";export{y as a,C as b,N as c,P as d,M as e,E as f};
|
|
3
|
-
//# sourceMappingURL=chunk-3ZHGVYWR.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/drawer.tsx","../src/lib/use-media-query.ts","../tailwind.config.ts"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { X } from \"lucide-react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { useMediaQuery } from \"@/lib/use-media-query\"\n\nconst DRAWER_WIDTH = \"24rem\"\n\n// Drawer Context\ntype DrawerContextProps = {\n isOpen: boolean\n onClose: () => void\n width?: string\n}\n\nconst DrawerContext = React.createContext<DrawerContextProps | null>(null)\n\nfunction useDrawer() {\n const context = React.useContext(DrawerContext)\n if (!context) {\n throw new Error(\"useDrawer must be used within a Drawer component.\")\n }\n return context\n}\n\n// Main Unified Drawer Component (Responsive)\nconst Drawer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n isOpen: boolean\n onClose: () => void\n width?: string\n }\n>(({ isOpen, onClose, width = DRAWER_WIDTH, children, ...props }, ref) => {\n const drawerRef = React.useRef<HTMLDivElement>(null)\n const isDesktop = useMediaQuery(\"md\")\n\n const contextValue = React.useMemo<DrawerContextProps>(\n () => ({\n isOpen,\n onClose,\n width,\n }),\n [isOpen, onClose, width]\n )\n\n return (\n <DrawerContext.Provider value={contextValue}>\n {/* Mobile Drawer: visible < md breakpoint */}\n {!isDesktop && (\n <DrawerPrimitive.Root\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) onClose()\n }}\n direction=\"left\"\n >\n <DrawerPrimitive.Portal>\n <DrawerPrimitive.Overlay className=\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\" />\n <DrawerPrimitive.Content className=\"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none\">\n {children}\n </DrawerPrimitive.Content>\n </DrawerPrimitive.Portal>\n </DrawerPrimitive.Root>\n )}\n\n {/* Desktop Drawer: visible >= md breakpoint */}\n {isDesktop && (\n <div\n ref={ref}\n className=\"group/drawer peer\"\n data-state={isOpen ? \"open\" : \"closed\"}\n {...props}\n >\n {/* Spacer to push content */}\n <div\n className={cn(\n \"relative bg-transparent transition-[width] duration-200 ease-linear\",\n isOpen ? \"\" : \"w-0\"\n )}\n style={\n {\n width: isOpen ? width : \"0\",\n } as React.CSSProperties\n }\n />\n\n {/* Fixed drawer panel */}\n <div\n ref={drawerRef}\n className={cn(\n \"fixed inset-y-0 right-0 z-10 h-svh transition-[right,width] duration-200 ease-linear flex\",\n isOpen ? \"right-0\" : \"right-[calc(var(--drawer-width)*-1)]\"\n )}\n style={\n {\n \"--drawer-width\": width,\n width: width,\n } as React.CSSProperties\n }\n >\n <div data-drawer=\"drawer\" className=\"flex h-full w-full flex-col\">\n <div className=\"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )}\n </DrawerContext.Provider>\n )\n})\nDrawer.displayName = \"Drawer\"\n\n// Drawer Header\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n }\n>(({ className, showCloseButton = true, children, ...props }, ref) => {\n const { onClose } = useDrawer()\n\n return (\n <div\n ref={ref}\n data-drawer=\"header\"\n className={cn(\n \"flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border\",\n className\n )}\n {...props}\n >\n <div className=\"flex-1\">{children}</div>\n {showCloseButton && (\n <Button\n variant=\"secondary\"\n size=\"icon\"\n onClick={onClose}\n className=\"h-8 w-8 shrink-0 rounded-full\"\n >\n <X size={16} />\n <span className=\"sr-only\">Close drawer</span>\n </Button>\n )}\n </div>\n )\n})\nDrawerHeader.displayName = \"DrawerHeader\"\n\n// Drawer Title\nconst DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<\"h2\">\n>(({ className, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold text-primary-accent\", className)}\n {...props}\n />\n )\n})\nDrawerTitle.displayName = \"DrawerTitle\"\n\n// Drawer Body/Content\nconst DrawerBody = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"body\"\n className={cn(\"flex-1 overflow-auto p-4\", className)}\n {...props}\n />\n )\n})\nDrawerBody.displayName = \"DrawerBody\"\n\n// Drawer Footer\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"footer\"\n className={cn(\n \"flex flex-col gap-2 p-4 border-t border-sidebar-border\",\n className\n )}\n {...props}\n />\n )\n})\nDrawerFooter.displayName = \"DrawerFooter\"\n\nexport {\n Drawer,\n DrawerHeader,\n DrawerTitle,\n DrawerBody,\n DrawerFooter,\n useDrawer,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport tailwindConfig from \"../../tailwind.config\"\n\n/**\n * Hook to detect if a Tailwind breakpoint is active\n * Uses the actual breakpoint values from tailwind.config.ts\n */\nexport function useMediaQuery(breakpoint: keyof typeof tailwindConfig.theme.extend.screens) {\n const [matches, setMatches] = React.useState(false)\n\n React.useEffect(() => {\n const value = tailwindConfig.theme.extend.screens[breakpoint]\n const query = `(min-width: ${value})`\n const media = window.matchMedia(query)\n\n const updateMatch = () => setMatches(media.matches)\n updateMatch()\n\n media.addEventListener(\"change\", updateMatch)\n return () => media.removeEventListener(\"change\", updateMatch)\n }, [breakpoint])\n\n return matches\n}\n","import type { Config } from 'tailwindcss'\n\nconst config = {\n content: [\n \"./src/**/*.{ts,tsx}\",\n \"./stories/**/*.{ts,tsx}\",\n ],\n theme: {\n extend: {\n screens: {\n 'sm': '448px',\n 'md': '576px',\n 'lg': '986px',\n 'xl': '1280px',\n '2xl': '1400px',\n },\n },\n },\n} satisfies Config\n\nexport default config\n"],"mappings":"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","names":["React","X","DrawerPrimitive","React","config","tailwind_config_default","useMediaQuery","breakpoint","matches","setMatches","query","tailwind_config_default","media","updateMatch","jsx","jsxs","DRAWER_WIDTH","DrawerContext","useDrawer","context","Drawer","isOpen","onClose","width","children","props","ref","drawerRef","isDesktop","useMediaQuery","contextValue","DrawerPrimitive","open","cn","DrawerHeader","className","showCloseButton","Button","X","DrawerTitle","DrawerBody","DrawerFooter"]}
|
package/dist/chunk-66KX3FMQ.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }"use client";
|
|
2
|
-
var _chunkQKOZTOYUjs = require('./chunk-QKOZTOYU.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var t = _interopRequireWildcard(_react); var m = _interopRequireWildcard(_react);var _lucidereact = require('lucide-react');var _vaul = require('vaul');var D={content:["./src/**/*.{ts,tsx}","./stories/**/*.{ts,tsx}"],theme:{extend:{screens:{sm:"448px",md:"576px",lg:"986px",xl:"1280px","2xl":"1400px"}}}},u=D;function v(e){let[a,r]=m.useState(!1);return m.useEffect(()=>{let d=`(min-width: ${u.theme.extend.screens[e]})`,s=window.matchMedia(d),l=()=>r(s.matches);return l(),s.addEventListener("change",l),()=>s.removeEventListener("change",l)},[e]),a}var _jsxruntime = require('react/jsx-runtime');var g="24rem",x=t.createContext(null);function y(){let e=t.useContext(x);if(!e)throw new Error("useDrawer must be used within a Drawer component.");return e}var C=t.forwardRef(({isOpen:e,onClose:a,width:r=g,children:i,...d},s)=>{let l=t.useRef(null),w=v("md"),h=t.useMemo(()=>({isOpen:e,onClose:a,width:r}),[e,a,r]);return _jsxruntime.jsxs.call(void 0, x.Provider,{value:h,children:[!w&&_jsxruntime.jsx.call(void 0, _vaul.Drawer.Root,{open:e,onOpenChange:b=>{b||a()},direction:"left",children:_jsxruntime.jsxs.call(void 0, _vaul.Drawer.Portal,{children:[_jsxruntime.jsx.call(void 0, _vaul.Drawer.Overlay,{className:"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm"}),_jsxruntime.jsx.call(void 0, _vaul.Drawer.Content,{className:"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none",children:i})]})}),w&&_jsxruntime.jsxs.call(void 0, "div",{ref:s,className:"group/drawer peer","data-state":e?"open":"closed",...d,children:[_jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "relative bg-transparent transition-[width] duration-200 ease-linear",e?"":"w-0"),style:{width:e?r:"0"}}),_jsxruntime.jsx.call(void 0, "div",{ref:l,className:_chunkFUYXCJOQjs.a.call(void 0, "fixed inset-y-0 right-0 z-10 h-svh transition-[right,width] duration-200 ease-linear flex",e?"right-0":"right-[calc(var(--drawer-width)*-1)]"),style:{"--drawer-width":r,width:r},children:_jsxruntime.jsx.call(void 0, "div",{"data-drawer":"drawer",className:"flex h-full w-full flex-col",children:_jsxruntime.jsx.call(void 0, "div",{className:"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow",children:i})})})]})]})});C.displayName="Drawer";var N=t.forwardRef(({className:e,showCloseButton:a=!0,children:r,...i},d)=>{let{onClose:s}=y();return _jsxruntime.jsxs.call(void 0, "div",{ref:d,"data-drawer":"header",className:_chunkFUYXCJOQjs.a.call(void 0, "flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border",e),...i,children:[_jsxruntime.jsx.call(void 0, "div",{className:"flex-1",children:r}),a&&_jsxruntime.jsxs.call(void 0, _chunkQKOZTOYUjs.b,{variant:"secondary",size:"icon",onClick:s,className:"h-8 w-8 shrink-0 rounded-full",children:[_jsxruntime.jsx.call(void 0, _lucidereact.X,{size:16}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Close drawer"})]})]})});N.displayName="DrawerHeader";var P=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "h2",{ref:r,className:_chunkFUYXCJOQjs.a.call(void 0, "text-lg font-semibold text-primary-accent",e),...a}));P.displayName="DrawerTitle";var M=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-drawer":"body",className:_chunkFUYXCJOQjs.a.call(void 0, "flex-1 overflow-auto p-4",e),...a}));M.displayName="DrawerBody";var E=t.forwardRef(({className:e,...a},r)=>_jsxruntime.jsx.call(void 0, "div",{ref:r,"data-drawer":"footer",className:_chunkFUYXCJOQjs.a.call(void 0, "flex flex-col gap-2 p-4 border-t border-sidebar-border",e),...a}));E.displayName="DrawerFooter";exports.a = y; exports.b = C; exports.c = N; exports.d = P; exports.e = M; exports.f = E;
|
|
3
|
-
//# sourceMappingURL=chunk-66KX3FMQ.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-66KX3FMQ.js","../src/components/drawer.tsx","../tailwind.config.ts","../src/lib/use-media-query.ts"],"names":["config","tailwind_config_default","useMediaQuery","breakpoint","matches","setMatches","query","media","updateMatch","DRAWER_WIDTH","DrawerContext","useDrawer","context","Drawer","isOpen","onClose","width","children","props","ref","drawerRef","isDesktop","contextValue","jsxs","jsx","DrawerPrimitive","open","cn","DrawerHeader","className","showCloseButton","Button","X","DrawerTitle","DrawerBody","DrawerFooter"],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,sDAAwC,gHCCxD,2CACL,4BACwB,ICFpCA,CAAAA,CAAS,CACb,OAAA,CAAS,CACP,qBAAA,CACA,yBACF,CAAA,CACA,KAAA,CAAO,CACL,MAAA,CAAQ,CACN,OAAA,CAAS,CACP,EAAA,CAAM,OAAA,CACN,EAAA,CAAM,OAAA,CACN,EAAA,CAAM,OAAA,CACN,EAAA,CAAM,QAAA,CACN,KAAA,CAAO,QACT,CACF,CACF,CACF,CAAA,CAEOC,CAAAA,CAAQD,CAAAA,CCXR,SAASE,CAAAA,CAAcC,CAAAA,CAA8D,CAC1F,GAAM,CAACC,CAAAA,CAASC,CAAU,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAElD,OAAM,CAAA,CAAA,SAAA,CAAU,CAAA,CAAA,EAAM,CAEpB,IAAMC,CAAAA,CAAQ,CAAA,YAAA,EADAL,CAAAA,CAAe,KAAA,CAAM,MAAA,CAAO,OAAA,CAAQE,CAAU,CAC1B,CAAA,CAAA,CAAA,CAC5BI,CAAAA,CAAQ,MAAA,CAAO,UAAA,CAAWD,CAAK,CAAA,CAE/BE,CAAAA,CAAc,CAAA,CAAA,EAAMH,CAAAA,CAAWE,CAAAA,CAAM,OAAO,CAAA,CAClD,OAAAC,CAAAA,CAAY,CAAA,CAEZD,CAAAA,CAAM,gBAAA,CAAiB,QAAA,CAAUC,CAAW,CAAA,CACrC,CAAA,CAAA,EAAMD,CAAAA,CAAM,mBAAA,CAAoB,QAAA,CAAUC,CAAW,CAC9D,CAAA,CAAG,CAACL,CAAU,CAAC,CAAA,CAERC,CACT,CFoCU,+CAAA,IAnDJK,CAAAA,CAAe,OAAA,CASfC,CAAAA,CAAsB,CAAA,CAAA,aAAA,CAAyC,IAAI,CAAA,CAEzE,SAASC,CAAAA,CAAAA,CAAY,CACnB,IAAMC,CAAAA,CAAgB,CAAA,CAAA,UAAA,CAAWF,CAAa,CAAA,CAC9C,EAAA,CAAI,CAACE,CAAAA,CACH,MAAM,IAAI,KAAA,CAAM,mDAAmD,CAAA,CAErE,OAAOA,CACT,CAGA,IAAMC,CAAAA,CAAe,CAAA,CAAA,UAAA,CAOnB,CAAC,CAAE,MAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAAC,CAAAA,CAAS,KAAA,CAAAC,CAAAA,CAAQP,CAAAA,CAAc,QAAA,CAAAQ,CAAAA,CAAU,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAAQ,CACxE,IAAMC,CAAAA,CAAkB,CAAA,CAAA,MAAA,CAAuB,IAAI,CAAA,CAC7CC,CAAAA,CAAYnB,CAAAA,CAAc,IAAI,CAAA,CAE9BoB,CAAAA,CAAqB,CAAA,CAAA,OAAA,CACzB,CAAA,CAAA,EAAA,CAAO,CACL,MAAA,CAAAR,CAAAA,CACA,OAAA,CAAAC,CAAAA,CACA,KAAA,CAAAC,CACF,CAAA,CAAA,CACA,CAACF,CAAAA,CAAQC,CAAAA,CAASC,CAAK,CACzB,CAAA,CAEA,OACEO,8BAAAA,CAACb,CAAc,QAAA,CAAd,CAAuB,KAAA,CAAOY,CAAAA,CAE5B,QAAA,CAAA,CAAA,CAACD,CAAAA,EACAG,6BAAAA,YAACC,CAAgB,IAAA,CAAhB,CACC,IAAA,CAAMX,CAAAA,CACN,YAAA,CAAeY,CAAAA,EAAS,CACjBA,CAAAA,EAAMX,CAAAA,CAAQ,CACrB,CAAA,CACA,SAAA,CAAU,MAAA,CAEV,QAAA,CAAAQ,8BAAAA,YAACE,CAAgB,MAAA,CAAhB,CACC,QAAA,CAAA,CAAAD,6BAAAA,YAACC,CAAgB,OAAA,CAAhB,CAAwB,SAAA,CAAU,sDAAA,CAAuD,CAAA,CAC1FD,6BAAAA,YAACC,CAAgB,OAAA,CAAhB,CAAwB,SAAA,CAAU,yJAAA,CAChC,QAAA,CAAAR,CAAAA,CACH,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAIDI,CAAAA,EACCE,8BAAAA,KAAC,CAAA,CACC,GAAA,CAAKJ,CAAAA,CACL,SAAA,CAAU,mBAAA,CACV,YAAA,CAAYL,CAAAA,CAAS,MAAA,CAAS,QAAA,CAC7B,GAAGI,CAAAA,CAGJ,QAAA,CAAA,CAAAM,6BAAAA,KAAC,CAAA,CACC,SAAA,CAAWG,gCAAAA,qEACT,CACAb,CAAAA,CAAS,EAAA,CAAK,KAChB,CAAA,CACA,KAAA,CACE,CACE,KAAA,CAAOA,CAAAA,CAASE,CAAAA,CAAQ,GAC1B,CAAA,CAEJ,CAAA,CAGAQ,6BAAAA,KAAC,CAAA,CACC,GAAA,CAAKJ,CAAAA,CACL,SAAA,CAAWO,gCAAAA,2FACT,CACAb,CAAAA,CAAS,SAAA,CAAY,sCACvB,CAAA,CACA,KAAA,CACE,CACE,gBAAA,CAAkBE,CAAAA,CAClB,KAAA,CAAOA,CACT,CAAA,CAGF,QAAA,CAAAQ,6BAAAA,KAAC,CAAA,CAAI,aAAA,CAAY,QAAA,CAAS,SAAA,CAAU,6BAAA,CAClC,QAAA,CAAAA,6BAAAA,KAAC,CAAA,CAAI,SAAA,CAAU,+FAAA,CACZ,QAAA,CAAAP,CAAAA,CACH,CAAA,CACF,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CAAA,CAEJ,CAEJ,CAAC,CAAA,CACDJ,CAAAA,CAAO,WAAA,CAAc,QAAA,CAGrB,IAAMe,CAAAA,CAAqB,CAAA,CAAA,UAAA,CAKzB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,eAAA,CAAAC,CAAAA,CAAkB,CAAA,CAAA,CAAM,QAAA,CAAAb,CAAAA,CAAU,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAAQ,CACpE,GAAM,CAAE,OAAA,CAAAJ,CAAQ,CAAA,CAAIJ,CAAAA,CAAU,CAAA,CAE9B,OACEY,8BAAAA,KAAC,CAAA,CACC,GAAA,CAAKJ,CAAAA,CACL,aAAA,CAAY,QAAA,CACZ,SAAA,CAAWQ,gCAAAA,kFACT,CACAE,CACF,CAAA,CACC,GAAGX,CAAAA,CAEJ,QAAA,CAAA,CAAAM,6BAAAA,KAAC,CAAA,CAAI,SAAA,CAAU,QAAA,CAAU,QAAA,CAAAP,CAAAA,CAAS,CAAA,CACjCa,CAAAA,EACCP,8BAAAA,kBAACQ,CAAA,CACC,OAAA,CAAQ,WAAA,CACR,IAAA,CAAK,MAAA,CACL,OAAA,CAAShB,CAAAA,CACT,SAAA,CAAU,+BAAA,CAEV,QAAA,CAAA,CAAAS,6BAAAA,cAACQ,CAAA,CAAE,IAAA,CAAM,EAAA,CAAI,CAAA,CACbR,6BAAAA,MAAC,CAAA,CAAK,SAAA,CAAU,SAAA,CAAU,QAAA,CAAA,cAAA,CAAY,CAAA,CAAA,CACxC,CAAA,CAAA,CAEJ,CAEJ,CAAC,CAAA,CACDI,CAAAA,CAAa,WAAA,CAAc,cAAA,CAG3B,IAAMK,CAAAA,CAAoB,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAJ,CAAAA,CAAW,GAAGX,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAExBK,6BAAAA,IAAC,CAAA,CACC,GAAA,CAAKL,CAAAA,CACL,SAAA,CAAWQ,gCAAAA,2CAAG,CAA6CE,CAAS,CAAA,CACnE,GAAGX,CAAAA,CACN,CAEH,CAAA,CACDe,CAAAA,CAAY,WAAA,CAAc,aAAA,CAG1B,IAAMC,CAAAA,CAAmB,CAAA,CAAA,UAAA,CAGvB,CAAC,CAAE,SAAA,CAAAL,CAAAA,CAAW,GAAGX,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAExBK,6BAAAA,KAAC,CAAA,CACC,GAAA,CAAKL,CAAAA,CACL,aAAA,CAAY,MAAA,CACZ,SAAA,CAAWQ,gCAAAA,0BAAG,CAA4BE,CAAS,CAAA,CAClD,GAAGX,CAAAA,CACN,CAEH,CAAA,CACDgB,CAAAA,CAAW,WAAA,CAAc,YAAA,CAGzB,IAAMC,CAAAA,CAAqB,CAAA,CAAA,UAAA,CAGzB,CAAC,CAAE,SAAA,CAAAN,CAAAA,CAAW,GAAGX,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAExBK,6BAAAA,KAAC,CAAA,CACC,GAAA,CAAKL,CAAAA,CACL,aAAA,CAAY,QAAA,CACZ,SAAA,CAAWQ,gCAAAA,wDACT,CACAE,CACF,CAAA,CACC,GAAGX,CAAAA,CACN,CAEH,CAAA,CACDiB,CAAAA,CAAa,WAAA,CAAc,cAAA,CAAA,yFAAA","file":"/Users/admin/Desktop/PROJECTS/alkimi-ui-kit/dist/chunk-66KX3FMQ.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { X } from \"lucide-react\"\nimport { Drawer as DrawerPrimitive } from \"vaul\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/button\"\nimport { useMediaQuery } from \"@/lib/use-media-query\"\n\nconst DRAWER_WIDTH = \"24rem\"\n\n// Drawer Context\ntype DrawerContextProps = {\n isOpen: boolean\n onClose: () => void\n width?: string\n}\n\nconst DrawerContext = React.createContext<DrawerContextProps | null>(null)\n\nfunction useDrawer() {\n const context = React.useContext(DrawerContext)\n if (!context) {\n throw new Error(\"useDrawer must be used within a Drawer component.\")\n }\n return context\n}\n\n// Main Unified Drawer Component (Responsive)\nconst Drawer = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n isOpen: boolean\n onClose: () => void\n width?: string\n }\n>(({ isOpen, onClose, width = DRAWER_WIDTH, children, ...props }, ref) => {\n const drawerRef = React.useRef<HTMLDivElement>(null)\n const isDesktop = useMediaQuery(\"md\")\n\n const contextValue = React.useMemo<DrawerContextProps>(\n () => ({\n isOpen,\n onClose,\n width,\n }),\n [isOpen, onClose, width]\n )\n\n return (\n <DrawerContext.Provider value={contextValue}>\n {/* Mobile Drawer: visible < md breakpoint */}\n {!isDesktop && (\n <DrawerPrimitive.Root\n open={isOpen}\n onOpenChange={(open) => {\n if (!open) onClose()\n }}\n direction=\"left\"\n >\n <DrawerPrimitive.Portal>\n <DrawerPrimitive.Overlay className=\"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm\" />\n <DrawerPrimitive.Content className=\"fixed inset-y-0 left-0 z-50 flex h-full w-[85vw] max-w-md flex-col bg-sidebar border-r border-sidebar-border text-primary-accent shadow-lg outline-none\">\n {children}\n </DrawerPrimitive.Content>\n </DrawerPrimitive.Portal>\n </DrawerPrimitive.Root>\n )}\n\n {/* Desktop Drawer: visible >= md breakpoint */}\n {isDesktop && (\n <div\n ref={ref}\n className=\"group/drawer peer\"\n data-state={isOpen ? \"open\" : \"closed\"}\n {...props}\n >\n {/* Spacer to push content */}\n <div\n className={cn(\n \"relative bg-transparent transition-[width] duration-200 ease-linear\",\n isOpen ? \"\" : \"w-0\"\n )}\n style={\n {\n width: isOpen ? width : \"0\",\n } as React.CSSProperties\n }\n />\n\n {/* Fixed drawer panel */}\n <div\n ref={drawerRef}\n className={cn(\n \"fixed inset-y-0 right-0 z-10 h-svh transition-[right,width] duration-200 ease-linear flex\",\n isOpen ? \"right-0\" : \"right-[calc(var(--drawer-width)*-1)]\"\n )}\n style={\n {\n \"--drawer-width\": width,\n width: width,\n } as React.CSSProperties\n }\n >\n <div data-drawer=\"drawer\" className=\"flex h-full w-full flex-col\">\n <div className=\"flex flex-col my-2.5 mr-2.5 rounded-2xl border bg-sidebar border-sidebar-border h-full shadow\">\n {children}\n </div>\n </div>\n </div>\n </div>\n )}\n </DrawerContext.Provider>\n )\n})\nDrawer.displayName = \"Drawer\"\n\n// Drawer Header\nconst DrawerHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n }\n>(({ className, showCloseButton = true, children, ...props }, ref) => {\n const { onClose } = useDrawer()\n\n return (\n <div\n ref={ref}\n data-drawer=\"header\"\n className={cn(\n \"flex w-full items-start justify-between gap-2 p-4 border-b border-sidebar-border\",\n className\n )}\n {...props}\n >\n <div className=\"flex-1\">{children}</div>\n {showCloseButton && (\n <Button\n variant=\"secondary\"\n size=\"icon\"\n onClick={onClose}\n className=\"h-8 w-8 shrink-0 rounded-full\"\n >\n <X size={16} />\n <span className=\"sr-only\">Close drawer</span>\n </Button>\n )}\n </div>\n )\n})\nDrawerHeader.displayName = \"DrawerHeader\"\n\n// Drawer Title\nconst DrawerTitle = React.forwardRef<\n HTMLHeadingElement,\n React.ComponentProps<\"h2\">\n>(({ className, ...props }, ref) => {\n return (\n <h2\n ref={ref}\n className={cn(\"text-lg font-semibold text-primary-accent\", className)}\n {...props}\n />\n )\n})\nDrawerTitle.displayName = \"DrawerTitle\"\n\n// Drawer Body/Content\nconst DrawerBody = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"body\"\n className={cn(\"flex-1 overflow-auto p-4\", className)}\n {...props}\n />\n )\n})\nDrawerBody.displayName = \"DrawerBody\"\n\n// Drawer Footer\nconst DrawerFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-drawer=\"footer\"\n className={cn(\n \"flex flex-col gap-2 p-4 border-t border-sidebar-border\",\n className\n )}\n {...props}\n />\n )\n})\nDrawerFooter.displayName = \"DrawerFooter\"\n\nexport {\n Drawer,\n DrawerHeader,\n DrawerTitle,\n DrawerBody,\n DrawerFooter,\n useDrawer,\n}\n","import type { Config } from 'tailwindcss'\n\nconst config = {\n content: [\n \"./src/**/*.{ts,tsx}\",\n \"./stories/**/*.{ts,tsx}\",\n ],\n theme: {\n extend: {\n screens: {\n 'sm': '448px',\n 'md': '576px',\n 'lg': '986px',\n 'xl': '1280px',\n '2xl': '1400px',\n },\n },\n },\n} satisfies Config\n\nexport default config\n","\"use client\"\n\nimport * as React from \"react\"\nimport tailwindConfig from \"../../tailwind.config\"\n\n/**\n * Hook to detect if a Tailwind breakpoint is active\n * Uses the actual breakpoint values from tailwind.config.ts\n */\nexport function useMediaQuery(breakpoint: keyof typeof tailwindConfig.theme.extend.screens) {\n const [matches, setMatches] = React.useState(false)\n\n React.useEffect(() => {\n const value = tailwindConfig.theme.extend.screens[breakpoint]\n const query = `(min-width: ${value})`\n const media = window.matchMedia(query)\n\n const updateMatch = () => setMatches(media.matches)\n updateMatch()\n\n media.addEventListener(\"change\", updateMatch)\n return () => media.removeEventListener(\"change\", updateMatch)\n }, [breakpoint])\n\n return matches\n}\n"]}
|
|
File without changes
|