@egose/shadcn-theme 0.0.3 → 0.0.4
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/{chunk-2N2ED2H7.js → chunk-552ZXB65.js} +2 -2
- package/{chunk-2N2ED2H7.js.map → chunk-552ZXB65.js.map} +1 -1
- package/{chunk-XC6HXMMM.mjs → chunk-BSRQI4AA.mjs} +2 -1
- package/chunk-BSRQI4AA.mjs.map +1 -0
- package/{chunk-YWS36WKB.js → chunk-MN2Z4PPX.js} +2 -1
- package/chunk-MN2Z4PPX.js.map +1 -0
- package/{chunk-BBQHZ4QS.mjs → chunk-RPN4XMJX.mjs} +2 -2
- package/chunk-RPN4XMJX.mjs.map +1 -0
- package/components/form/FormTextInput.js +2 -2
- package/components/form/FormTextInput.mjs +1 -1
- package/components/form/HookFormTextInput.js +2 -2
- package/components/form/HookFormTextInput.mjs +1 -1
- package/components/ui/alert-dialog.js +3 -3
- package/components/ui/alert-dialog.mjs +1 -1
- package/components/ui/button.js +2 -2
- package/components/ui/button.mjs +1 -1
- package/components/ui/calendar.js +3 -6
- package/components/ui/calendar.js.map +1 -1
- package/components/ui/calendar.mjs +2 -5
- package/components/ui/calendar.mjs.map +1 -1
- package/components/ui/carousel.js +3 -3
- package/components/ui/carousel.mjs +1 -1
- package/components/ui/pagination.js +2 -2
- package/components/ui/pagination.mjs +1 -1
- package/components/ui/sidebar.js +8 -8
- package/components/ui/sidebar.js.map +1 -1
- package/components/ui/sidebar.mjs +7 -7
- package/components/ui/sidebar.mjs.map +1 -1
- package/package.json +1 -2
- package/chunk-BBQHZ4QS.mjs.map +0 -1
- package/chunk-XC6HXMMM.mjs.map +0 -1
- package/chunk-YWS36WKB.js.map +0 -1
|
@@ -38,7 +38,7 @@ function TextInput(_a) {
|
|
|
38
38
|
"inputProps"
|
|
39
39
|
]);
|
|
40
40
|
if (!id) id = _kebabCase3.default.call(void 0, name);
|
|
41
|
-
return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkB2G2EZ4Pjs.cn.call(void 0, "
|
|
41
|
+
return /* @__PURE__ */ _react2.default.createElement("div", { className: _chunkB2G2EZ4Pjs.cn.call(void 0, "_text-input", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ _react2.default.createElement(_chunkAXZDZXCYjs.Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ _react2.default.createElement(
|
|
42
42
|
_chunkGJJM336Njs.Input,
|
|
43
43
|
_chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
44
44
|
type,
|
|
@@ -55,4 +55,4 @@ function TextInput(_a) {
|
|
|
55
55
|
|
|
56
56
|
|
|
57
57
|
exports.TextInput = TextInput;
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-552ZXB65.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-552ZXB65.js","../components/form/FormTextInput.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACbA,4EAAkB;AAClB,wGAAuB;AAQvB,IAAM,WAAA,EAAa,EAAA;AAcJ,SAAR,SAAA,CAA2B,EAAA,EAUX;AAVW,EAAA,IAAA,GAAA,EAAA,EAAA,EAChC;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EAjChB,EAAA,EAyBkC,EAAA,EAS7B,OAAA,EAAA,wCAAA,EAT6B,EAS7B;AAAA,IARH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,GAAA,EAAK,iCAAA,IAAe,CAAA;AAE7B,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,aAAG,EAAe,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAClD,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EAC/C,KACH,CAAA,kBAEF,eAAA,CAAA,aAAA;AAAA,IAAC,sBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,IAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,MAAA,CAAA,EAPL;AAAA,MAQC,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADJA;AACA;AACE;AACF,8BAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-552ZXB65.js","sourcesContent":[null,"'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { InputHTMLAttributes } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport default function TextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...others\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Input\n type={type}\n id={id}\n name={name}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...others}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
|
|
@@ -15,6 +15,7 @@ import { Slot } from "@radix-ui/react-slot";
|
|
|
15
15
|
import { cva } from "class-variance-authority";
|
|
16
16
|
var buttonVariants = cva(
|
|
17
17
|
[
|
|
18
|
+
"cursor-pointer",
|
|
18
19
|
"active:translate-y-[0.5px]",
|
|
19
20
|
"disabled:pointer-events-none",
|
|
20
21
|
"disabled:opacity-50",
|
|
@@ -204,4 +205,4 @@ export {
|
|
|
204
205
|
buttonVariants,
|
|
205
206
|
Button
|
|
206
207
|
};
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
208
|
+
//# sourceMappingURL=chunk-BSRQI4AA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/ui/button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Spinner } from './spinner';\n\nconst buttonVariants = cva(\n [\n 'cursor-pointer',\n 'active:translate-y-[0.5px]',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'focus-visible:ring-ring',\n 'font-medium',\n 'gap-2',\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'rounded-sm',\n 'text-sm',\n 'transform',\n 'transition',\n 'transition-colors',\n 'whitespace-nowrap',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n '[&_svg]:size-4',\n ],\n {\n variants: {\n variant: {\n primary: 'border border-primary bg-primary text-primary-foreground shadow-sm hover:bg-primary/90',\n secondary: 'border border-secondary bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/90',\n success: 'border border-success bg-success text-success-foreground shadow-sm hover:bg-success/90',\n warning: 'border border-warning bg-warning text-warning-foreground shadow-sm hover:bg-warning/90',\n danger: 'border border-danger bg-danger text-danger-foreground shadow-sm hover:bg-danger/90',\n info: 'border border-info bg-info text-info-foreground shadow-sm hover:bg-info/90',\n light: 'border border-light bg-light text-light-foreground shadow-sm hover:bg-light/90',\n dark: 'border border-dark bg-dark text-dark-foreground shadow-sm hover:bg-dark/90',\n accent: 'border border-accent bg-accent text-accent-foreground shadow-sm hover:bg-accent/90',\n destructive:\n 'border border-destructive bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n muted: 'border border-muted bg-muted text-muted-foreground shadow-sm hover:bg-muted/90',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-sm px-3 text-xs',\n lg: 'h-10 rounded-sm px-8',\n icon: 'h-9 w-9',\n },\n outline: {\n false: null,\n true: '',\n },\n outlineFilled: {\n false: null,\n true: '',\n },\n loading: {\n false: null,\n true: '',\n },\n thin: {\n false: null,\n true: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n outline: false,\n outlineFilled: false,\n loading: false,\n thin: false,\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nfunction getOutlineClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'border-primary text-primary shadow-sm hover:bg-primary/10',\n secondary: 'border-secondary text-secondary shadow-sm hover:bg-secondary/10',\n success: 'border-success text-success shadow-sm hover:bg-success/10',\n warning: 'border-warning text-warning shadow-sm hover:bg-warning/10',\n danger: 'border-danger text-danger shadow-sm hover:bg-danger/10',\n info: 'border-info text-info shadow-sm hover:bg-info/10',\n light: 'border-light text-light-foreground shadow-sm hover:bg-light/10',\n dark: 'border-dark text-dark shadow-sm hover:bg-dark/10',\n accent: 'border-accent text-accent shadow-sm hover:bg-accent/10',\n destructive: 'border-destructive text-destructive shadow-sm hover:bg-destructive/10',\n muted: 'border-muted text-muted shadow-sm hover:bg-muted/10',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineFilledClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'hover:bg-primary hover:text-primary-foreground',\n secondary: 'hover:bg-secondary hover:text-secondary-foreground',\n success: 'hover:bg-success hover:text-success-foreground',\n warning: 'hover:bg-warning hover:text-warning-foreground',\n danger: 'hover:bg-danger hover:text-danger-foreground',\n info: 'hover:bg-info hover:text-info-foreground',\n light: 'hover:bg-light hover:text-light-foreground',\n dark: 'hover:bg-dark hover:text-dark-foreground',\n accent: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'hover:bg-destructive hover:text-destructive-foreground',\n muted: 'hover:bg-muted hover:text-muted-foreground',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary',\n success: 'bg-success text-success-foreground hover:bg-success',\n warning: 'bg-warning text-warning-foreground hover:bg-warning',\n danger: 'bg-danger text-danger-foreground hover:bg-danger',\n info: 'bg-info text-info-foreground hover:bg-info',\n light: 'bg-light text-light-foreground hover:bg-light',\n dark: 'bg-dark text-dark-foreground hover:bg-dark',\n accent: 'bg-accent text-accent-foreground hover:bg-accent',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive',\n muted: 'bg-muted text-muted-foreground hover:bg-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n info: 'text-info',\n light: 'text-light',\n dark: 'text-dark',\n accent: 'text-accent',\n destructive: 'text-destructive',\n muted: 'text-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getThinClasses(size: any) {\n const colors: Record<string, string> = {\n default: 'h-8 px-2 py-1',\n sm: 'h-7 px-2 py-1',\n lg: 'h-9 px-2 py-1',\n icon: 'h-8 w-8',\n };\n\n return colors[size ?? 'default'];\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, outline, outlineFilled, loading, thin, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n let outlineClasses: string[] = [];\n if (outline || outlineFilled) {\n outlineClasses = ['bg-white border', getOutlineClasses(variant)];\n if (outlineFilled) outlineClasses.push(getOutlineFilledClasses(variant));\n }\n\n const thinClasses = thin ? getThinClasses(size) : '';\n\n if (loading) {\n const { children, ...loaderProps } = props;\n const spinnerClasses = outline || outlineFilled ? getOutlineSpinnerClasses(variant) : getSpinnerClasses(variant);\n const loadingClasses = 'pointer-events-none';\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, outline, className }),\n outlineClasses,\n thinClasses,\n spinnerClasses,\n loadingClasses,\n )}\n ref={ref}\n {...loaderProps}\n >\n <div className=\"relative inline-flex items-center\">\n <span className=\"invisible\">{children}</span>\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner className={cn(spinnerClasses, loadingClasses)} />\n </span>\n </div>\n </Comp>\n );\n }\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, outline, className }), outlineClasses, thinClasses)}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"],"mappings":"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","names":["_a"]}
|
|
@@ -15,6 +15,7 @@ var _reactslot = require('@radix-ui/react-slot');
|
|
|
15
15
|
var _classvarianceauthority = require('class-variance-authority');
|
|
16
16
|
var buttonVariants = _classvarianceauthority.cva.call(void 0,
|
|
17
17
|
[
|
|
18
|
+
"cursor-pointer",
|
|
18
19
|
"active:translate-y-[0.5px]",
|
|
19
20
|
"disabled:pointer-events-none",
|
|
20
21
|
"disabled:opacity-50",
|
|
@@ -204,4 +205,4 @@ Button.displayName = "Button";
|
|
|
204
205
|
|
|
205
206
|
|
|
206
207
|
exports.buttonVariants = buttonVariants; exports.Button = Button;
|
|
207
|
-
//# sourceMappingURL=chunk-
|
|
208
|
+
//# sourceMappingURL=chunk-MN2Z4PPX.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-MN2Z4PPX.js","../components/ui/button.tsx"],"names":["_a"],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-MN2Z4PPX.js","sourcesContent":[null,"import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Spinner } from './spinner';\n\nconst buttonVariants = cva(\n [\n 'cursor-pointer',\n 'active:translate-y-[0.5px]',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'focus-visible:ring-ring',\n 'font-medium',\n 'gap-2',\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'rounded-sm',\n 'text-sm',\n 'transform',\n 'transition',\n 'transition-colors',\n 'whitespace-nowrap',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n '[&_svg]:size-4',\n ],\n {\n variants: {\n variant: {\n primary: 'border border-primary bg-primary text-primary-foreground shadow-sm hover:bg-primary/90',\n secondary: 'border border-secondary bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/90',\n success: 'border border-success bg-success text-success-foreground shadow-sm hover:bg-success/90',\n warning: 'border border-warning bg-warning text-warning-foreground shadow-sm hover:bg-warning/90',\n danger: 'border border-danger bg-danger text-danger-foreground shadow-sm hover:bg-danger/90',\n info: 'border border-info bg-info text-info-foreground shadow-sm hover:bg-info/90',\n light: 'border border-light bg-light text-light-foreground shadow-sm hover:bg-light/90',\n dark: 'border border-dark bg-dark text-dark-foreground shadow-sm hover:bg-dark/90',\n accent: 'border border-accent bg-accent text-accent-foreground shadow-sm hover:bg-accent/90',\n destructive:\n 'border border-destructive bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n muted: 'border border-muted bg-muted text-muted-foreground shadow-sm hover:bg-muted/90',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-sm px-3 text-xs',\n lg: 'h-10 rounded-sm px-8',\n icon: 'h-9 w-9',\n },\n outline: {\n false: null,\n true: '',\n },\n outlineFilled: {\n false: null,\n true: '',\n },\n loading: {\n false: null,\n true: '',\n },\n thin: {\n false: null,\n true: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n outline: false,\n outlineFilled: false,\n loading: false,\n thin: false,\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nfunction getOutlineClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'border-primary text-primary shadow-sm hover:bg-primary/10',\n secondary: 'border-secondary text-secondary shadow-sm hover:bg-secondary/10',\n success: 'border-success text-success shadow-sm hover:bg-success/10',\n warning: 'border-warning text-warning shadow-sm hover:bg-warning/10',\n danger: 'border-danger text-danger shadow-sm hover:bg-danger/10',\n info: 'border-info text-info shadow-sm hover:bg-info/10',\n light: 'border-light text-light-foreground shadow-sm hover:bg-light/10',\n dark: 'border-dark text-dark shadow-sm hover:bg-dark/10',\n accent: 'border-accent text-accent shadow-sm hover:bg-accent/10',\n destructive: 'border-destructive text-destructive shadow-sm hover:bg-destructive/10',\n muted: 'border-muted text-muted shadow-sm hover:bg-muted/10',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineFilledClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'hover:bg-primary hover:text-primary-foreground',\n secondary: 'hover:bg-secondary hover:text-secondary-foreground',\n success: 'hover:bg-success hover:text-success-foreground',\n warning: 'hover:bg-warning hover:text-warning-foreground',\n danger: 'hover:bg-danger hover:text-danger-foreground',\n info: 'hover:bg-info hover:text-info-foreground',\n light: 'hover:bg-light hover:text-light-foreground',\n dark: 'hover:bg-dark hover:text-dark-foreground',\n accent: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'hover:bg-destructive hover:text-destructive-foreground',\n muted: 'hover:bg-muted hover:text-muted-foreground',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary',\n success: 'bg-success text-success-foreground hover:bg-success',\n warning: 'bg-warning text-warning-foreground hover:bg-warning',\n danger: 'bg-danger text-danger-foreground hover:bg-danger',\n info: 'bg-info text-info-foreground hover:bg-info',\n light: 'bg-light text-light-foreground hover:bg-light',\n dark: 'bg-dark text-dark-foreground hover:bg-dark',\n accent: 'bg-accent text-accent-foreground hover:bg-accent',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive',\n muted: 'bg-muted text-muted-foreground hover:bg-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n info: 'text-info',\n light: 'text-light',\n dark: 'text-dark',\n accent: 'text-accent',\n destructive: 'text-destructive',\n muted: 'text-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getThinClasses(size: any) {\n const colors: Record<string, string> = {\n default: 'h-8 px-2 py-1',\n sm: 'h-7 px-2 py-1',\n lg: 'h-9 px-2 py-1',\n icon: 'h-8 w-8',\n };\n\n return colors[size ?? 'default'];\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, outline, outlineFilled, loading, thin, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n let outlineClasses: string[] = [];\n if (outline || outlineFilled) {\n outlineClasses = ['bg-white border', getOutlineClasses(variant)];\n if (outlineFilled) outlineClasses.push(getOutlineFilledClasses(variant));\n }\n\n const thinClasses = thin ? getThinClasses(size) : '';\n\n if (loading) {\n const { children, ...loaderProps } = props;\n const spinnerClasses = outline || outlineFilled ? getOutlineSpinnerClasses(variant) : getSpinnerClasses(variant);\n const loadingClasses = 'pointer-events-none';\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, outline, className }),\n outlineClasses,\n thinClasses,\n spinnerClasses,\n loadingClasses,\n )}\n ref={ref}\n {...loaderProps}\n >\n <div className=\"relative inline-flex items-center\">\n <span className=\"invisible\">{children}</span>\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner className={cn(spinnerClasses, loadingClasses)} />\n </span>\n </div>\n </Comp>\n );\n }\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, outline, className }), outlineClasses, thinClasses)}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"]}
|
|
@@ -38,7 +38,7 @@ function TextInput(_a) {
|
|
|
38
38
|
"inputProps"
|
|
39
39
|
]);
|
|
40
40
|
if (!id) id = _kebabCase(name);
|
|
41
|
-
return /* @__PURE__ */ React.createElement("div", { className: cn("
|
|
41
|
+
return /* @__PURE__ */ React.createElement("div", { className: cn("_text-input", classNames == null ? void 0 : classNames.wrapper) }, label && /* @__PURE__ */ React.createElement(Label, { htmlFor: id, className: classNames == null ? void 0 : classNames.label, required }, label), /* @__PURE__ */ React.createElement(
|
|
42
42
|
Input,
|
|
43
43
|
__spreadProps(__spreadValues(__spreadValues({
|
|
44
44
|
type,
|
|
@@ -55,4 +55,4 @@ function TextInput(_a) {
|
|
|
55
55
|
export {
|
|
56
56
|
TextInput
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-RPN4XMJX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../components/form/FormTextInput.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { InputHTMLAttributes } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport default function TextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...others\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Input\n type={type}\n id={id}\n name={name}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...others}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AAQvB,IAAM,aAAa;AAcJ,SAAR,UAA2B,IAUX;AAVW,eAChC;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EAjChB,IAyBkC,IAS7B,mBAT6B,IAS7B;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,SAPL;AAAA,MAQC,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk552ZXB65js = require('../../chunk-552ZXB65.js');
|
|
5
5
|
require('../../chunk-GJJM336N.js');
|
|
6
6
|
require('../../chunk-AXZDZXCY.js');
|
|
7
7
|
require('../../chunk-B2G2EZ4P.js');
|
|
8
8
|
require('../../chunk-2NMEKWO5.js');
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.default =
|
|
11
|
+
exports.default = _chunk552ZXB65js.TextInput;
|
|
12
12
|
//# sourceMappingURL=FormTextInput.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }"use client";
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunk552ZXB65js = require('../../chunk-552ZXB65.js');
|
|
5
5
|
require('../../chunk-GJJM336N.js');
|
|
6
6
|
|
|
7
7
|
|
|
@@ -48,7 +48,7 @@ function HookTextInput(_a) {
|
|
|
48
48
|
const errorMessage = error != null ? error : fieldError && String(fieldError == null ? void 0 : fieldError.message);
|
|
49
49
|
const showError = !!fieldError && !disabled;
|
|
50
50
|
return /* @__PURE__ */ _react2.default.createElement("div", { className: classNames == null ? void 0 : classNames.wrapper }, /* @__PURE__ */ _react2.default.createElement(
|
|
51
|
-
|
|
51
|
+
_chunk552ZXB65js.TextInput,
|
|
52
52
|
_chunk2NMEKWO5js.__spreadProps.call(void 0, _chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
53
53
|
id,
|
|
54
54
|
name,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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; } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkMN2Z4PPXjs = require('../../chunk-MN2Z4PPX.js');
|
|
4
4
|
require('../../chunk-MKSF24CS.js');
|
|
5
5
|
|
|
6
6
|
|
|
@@ -68,7 +68,7 @@ var AlertDialogDescription = React.forwardRef((_a, ref) => {
|
|
|
68
68
|
AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
|
|
69
69
|
var AlertDialogAction = React.forwardRef((_a, ref) => {
|
|
70
70
|
var _b = _a, { className } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className"]);
|
|
71
|
-
return /* @__PURE__ */ React.createElement(AlertDialogPrimitive.Action, _chunk2NMEKWO5js.__spreadValues.call(void 0, { ref, className: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
71
|
+
return /* @__PURE__ */ React.createElement(AlertDialogPrimitive.Action, _chunk2NMEKWO5js.__spreadValues.call(void 0, { ref, className: _chunkB2G2EZ4Pjs.cn.call(void 0, _chunkMN2Z4PPXjs.buttonVariants.call(void 0, ), className) }, props));
|
|
72
72
|
});
|
|
73
73
|
AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
|
|
74
74
|
var AlertDialogCancel = React.forwardRef((_a, ref) => {
|
|
@@ -77,7 +77,7 @@ var AlertDialogCancel = React.forwardRef((_a, ref) => {
|
|
|
77
77
|
AlertDialogPrimitive.Cancel,
|
|
78
78
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
79
79
|
ref,
|
|
80
|
-
className: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
80
|
+
className: _chunkB2G2EZ4Pjs.cn.call(void 0, _chunkMN2Z4PPXjs.buttonVariants.call(void 0, { variant: "light" }), "mt-2 sm:mt-0", className)
|
|
81
81
|
}, props)
|
|
82
82
|
);
|
|
83
83
|
});
|
package/components/ui/button.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
2
2
|
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var _chunkMN2Z4PPXjs = require('../../chunk-MN2Z4PPX.js');
|
|
5
5
|
require('../../chunk-MKSF24CS.js');
|
|
6
6
|
require('../../chunk-B2G2EZ4P.js');
|
|
7
7
|
require('../../chunk-2NMEKWO5.js');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
exports.Button =
|
|
11
|
+
exports.Button = _chunkMN2Z4PPXjs.Button; exports.buttonVariants = _chunkMN2Z4PPXjs.buttonVariants;
|
|
12
12
|
//# sourceMappingURL=button.js.map
|
package/components/ui/button.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
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; } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkMN2Z4PPXjs = require('../../chunk-MN2Z4PPX.js');
|
|
4
4
|
require('../../chunk-MKSF24CS.js');
|
|
5
5
|
|
|
6
6
|
|
|
@@ -26,10 +26,7 @@ function Calendar(_a) {
|
|
|
26
26
|
caption: "flex justify-center pt-1 relative items-center",
|
|
27
27
|
caption_label: "text-sm font-medium",
|
|
28
28
|
nav: "space-x-1 flex items-center",
|
|
29
|
-
nav_button: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
30
|
-
_chunkYWS36WKBjs.buttonVariants.call(void 0, { variant: "light" }),
|
|
31
|
-
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
32
|
-
),
|
|
29
|
+
nav_button: _chunkB2G2EZ4Pjs.cn.call(void 0, _chunkMN2Z4PPXjs.buttonVariants.call(void 0, { variant: "light" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),
|
|
33
30
|
nav_button_previous: "absolute left-1",
|
|
34
31
|
nav_button_next: "absolute right-1",
|
|
35
32
|
table: "w-full border-collapse space-y-1",
|
|
@@ -40,7 +37,7 @@ function Calendar(_a) {
|
|
|
40
37
|
"relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md",
|
|
41
38
|
props.mode === "range" ? "[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md" : "[&:has([aria-selected])]:rounded-md"
|
|
42
39
|
),
|
|
43
|
-
day: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
40
|
+
day: _chunkB2G2EZ4Pjs.cn.call(void 0, _chunkMN2Z4PPXjs.buttonVariants.call(void 0, { variant: "light" }), "h-8 w-8 p-0 font-normal aria-selected:opacity-100"),
|
|
44
41
|
day_range_start: "day-range-start",
|
|
45
42
|
day_range_end: "day-range-end",
|
|
46
43
|
day_selected: "bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/calendar.js","../../../components/ui/calendar.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACF,0DAAgC;AAChC;AACA;ACZA,2EAAuB;AAEvB,kDAA0B;AAO1B,SAAS,QAAA,CAAS,EAAA,EAA4E;AAA5E,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAAA,EAAW,UAAA,EAAY,gBAAA,EAAkB,KAT7D,EAAA,EASkB,EAAA,EAAoD,MAAA,EAAA,wCAAA,EAApD,EAAoD,CAAlD,WAAA,EAAW,YAAA,EAAY,iBAAA,CAAA,CAAA;AACzC,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA,6CAAA;AAAA,MACC,eAAA;AAAA,MACA,SAAA,EAAW,iCAAA,KAAG,EAAO,SAAS,CAAA;AAAA,MAC9B,UAAA,EAAY,6CAAA;AAAA,QACV,MAAA,EAAQ,+DAAA;AAAA,QACR,KAAA,EAAO,WAAA;AAAA,QACP,OAAA,EAAS,gDAAA;AAAA,QACT,aAAA,EAAe,qBAAA;AAAA,QACf,GAAA,EAAK,6BAAA;AAAA,QACL,UAAA,EAAY,iCAAA
|
|
1
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/calendar.js","../../../components/ui/calendar.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACF,0DAAgC;AAChC;AACA;ACZA,2EAAuB;AAEvB,kDAA0B;AAO1B,SAAS,QAAA,CAAS,EAAA,EAA4E;AAA5E,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAAA,EAAW,UAAA,EAAY,gBAAA,EAAkB,KAT7D,EAAA,EASkB,EAAA,EAAoD,MAAA,EAAA,wCAAA,EAApD,EAAoD,CAAlD,WAAA,EAAW,YAAA,EAAY,iBAAA,CAAA,CAAA;AACzC,EAAA,uBACE,KAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA,6CAAA;AAAA,MACC,eAAA;AAAA,MACA,SAAA,EAAW,iCAAA,KAAG,EAAO,SAAS,CAAA;AAAA,MAC9B,UAAA,EAAY,6CAAA;AAAA,QACV,MAAA,EAAQ,+DAAA;AAAA,QACR,KAAA,EAAO,WAAA;AAAA,QACP,OAAA,EAAS,gDAAA;AAAA,QACT,aAAA,EAAe,qBAAA;AAAA,QACf,GAAA,EAAK,6BAAA;AAAA,QACL,UAAA,EAAY,iCAAA,6CAAG,EAAiB,OAAA,EAAS,QAAQ,CAAC,CAAA,EAAG,yDAAyD,CAAA;AAAA,QAC9G,mBAAA,EAAqB,iBAAA;AAAA,QACrB,eAAA,EAAiB,kBAAA;AAAA,QACjB,KAAA,EAAO,kCAAA;AAAA,QACP,QAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,gEAAA;AAAA,QACX,GAAA,EAAK,kBAAA;AAAA,QACL,IAAA,EAAM,iCAAA;AAAA,UACJ,mNAAA;AAAA,UACA,KAAA,CAAM,KAAA,IAAS,QAAA,EACX,uKAAA,EACA;AAAA,QACN,CAAA;AAAA,QACA,GAAA,EAAK,iCAAA,6CAAG,EAAiB,OAAA,EAAS,QAAQ,CAAC,CAAA,EAAG,mDAAmD,CAAA;AAAA,QACjG,eAAA,EAAiB,iBAAA;AAAA,QACjB,aAAA,EAAe,eAAA;AAAA,QACf,YAAA,EACE,kIAAA;AAAA,QACF,SAAA,EAAW,kCAAA;AAAA,QACX,WAAA,EAAa,kGAAA;AAAA,QACb,YAAA,EAAc,kCAAA;AAAA,QACd,gBAAA,EAAkB,8DAAA;AAAA,QAClB,UAAA,EAAY;AAAA,MAAA,CAAA,EACT,UAAA,CAAA;AAAA,MAEL,UAAA,EACE;AAAA;AAAA;AAAA,MAGA;AAAA,IAAA,CAAA,EAEE,KAAA;AAAA,EACN,CAAA;AAEJ;AACA,QAAA,CAAS,YAAA,EAAc,UAAA;ADEvB;AACE;AACF,4BAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/calendar.js","sourcesContent":[null,"import * as React from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '../../lib/utils';\nimport { buttonVariants } from './button';\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0',\n month: 'space-y-4',\n caption: 'flex justify-center pt-1 relative items-center',\n caption_label: 'text-sm font-medium',\n nav: 'space-x-1 flex items-center',\n nav_button: cn(buttonVariants({ variant: 'light' }), 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100'),\n nav_button_previous: 'absolute left-1',\n nav_button_next: 'absolute right-1',\n table: 'w-full border-collapse space-y-1',\n head_row: 'flex',\n head_cell: 'text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]',\n row: 'flex w-full mt-2',\n cell: cn(\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md',\n props.mode === 'range'\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\n : '[&:has([aria-selected])]:rounded-md',\n ),\n day: cn(buttonVariants({ variant: 'light' }), 'h-8 w-8 p-0 font-normal aria-selected:opacity-100'),\n day_range_start: 'day-range-start',\n day_range_end: 'day-range-end',\n day_selected:\n 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n day_today: 'bg-accent text-accent-foreground',\n day_outside: 'day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground',\n day_disabled: 'text-muted-foreground opacity-50',\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n ...classNames,\n }}\n components={\n {\n // IconLeft: ({ className, ...props }) => <ChevronLeft className={cn('h-4 w-4', className)} {...props} />,\n // IconRight: ({ className, ...props }) => <ChevronRight className={cn('h-4 w-4', className)} {...props} />,\n }\n }\n {...props}\n />\n );\n}\nCalendar.displayName = 'Calendar';\n\nexport { Calendar };\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
buttonVariants
|
|
3
|
-
} from "../../chunk-
|
|
3
|
+
} from "../../chunk-BSRQI4AA.mjs";
|
|
4
4
|
import "../../chunk-P2MQ6OUG.mjs";
|
|
5
5
|
import {
|
|
6
6
|
cn
|
|
@@ -26,10 +26,7 @@ function Calendar(_a) {
|
|
|
26
26
|
caption: "flex justify-center pt-1 relative items-center",
|
|
27
27
|
caption_label: "text-sm font-medium",
|
|
28
28
|
nav: "space-x-1 flex items-center",
|
|
29
|
-
nav_button: cn(
|
|
30
|
-
buttonVariants({ variant: "light" }),
|
|
31
|
-
"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
|
|
32
|
-
),
|
|
29
|
+
nav_button: cn(buttonVariants({ variant: "light" }), "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"),
|
|
33
30
|
nav_button_previous: "absolute left-1",
|
|
34
31
|
nav_button_next: "absolute right-1",
|
|
35
32
|
table: "w-full border-collapse space-y-1",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '../../lib/utils';\nimport { buttonVariants } from './button';\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0',\n month: 'space-y-4',\n caption: 'flex justify-center pt-1 relative items-center',\n caption_label: 'text-sm font-medium',\n nav: 'space-x-1 flex items-center',\n nav_button: cn(
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/calendar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { ChevronLeft, ChevronRight } from 'lucide-react';\nimport { DayPicker } from 'react-day-picker';\n\nimport { cn } from '../../lib/utils';\nimport { buttonVariants } from './button';\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>;\n\nfunction Calendar({ className, classNames, showOutsideDays = true, ...props }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn('p-3', className)}\n classNames={{\n months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0',\n month: 'space-y-4',\n caption: 'flex justify-center pt-1 relative items-center',\n caption_label: 'text-sm font-medium',\n nav: 'space-x-1 flex items-center',\n nav_button: cn(buttonVariants({ variant: 'light' }), 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100'),\n nav_button_previous: 'absolute left-1',\n nav_button_next: 'absolute right-1',\n table: 'w-full border-collapse space-y-1',\n head_row: 'flex',\n head_cell: 'text-muted-foreground rounded-md w-8 font-normal text-[0.8rem]',\n row: 'flex w-full mt-2',\n cell: cn(\n 'relative p-0 text-center text-sm focus-within:relative focus-within:z-20 [&:has([aria-selected])]:bg-accent [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected].day-range-end)]:rounded-r-md',\n props.mode === 'range'\n ? '[&:has(>.day-range-end)]:rounded-r-md [&:has(>.day-range-start)]:rounded-l-md first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md'\n : '[&:has([aria-selected])]:rounded-md',\n ),\n day: cn(buttonVariants({ variant: 'light' }), 'h-8 w-8 p-0 font-normal aria-selected:opacity-100'),\n day_range_start: 'day-range-start',\n day_range_end: 'day-range-end',\n day_selected:\n 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground',\n day_today: 'bg-accent text-accent-foreground',\n day_outside: 'day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground',\n day_disabled: 'text-muted-foreground opacity-50',\n day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground',\n day_hidden: 'invisible',\n ...classNames,\n }}\n components={\n {\n // IconLeft: ({ className, ...props }) => <ChevronLeft className={cn('h-4 w-4', className)} {...props} />,\n // IconRight: ({ className, ...props }) => <ChevronRight className={cn('h-4 w-4', className)} {...props} />,\n }\n }\n {...props}\n />\n );\n}\nCalendar.displayName = 'Calendar';\n\nexport { Calendar };\n"],"mappings":";;;;;;;;;;;;;AAAA,YAAY,WAAW;AAEvB,SAAS,iBAAiB;AAO1B,SAAS,SAAS,IAA4E;AAA5E,eAAE,aAAW,YAAY,kBAAkB,KAT7D,IASkB,IAAoD,kBAApD,IAAoD,CAAlD,aAAW,cAAY;AACzC,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW,GAAG,OAAO,SAAS;AAAA,MAC9B,YAAY;AAAA,QACV,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAS;AAAA,QACT,eAAe;AAAA,QACf,KAAK;AAAA,QACL,YAAY,GAAG,eAAe,EAAE,SAAS,QAAQ,CAAC,GAAG,yDAAyD;AAAA,QAC9G,qBAAqB;AAAA,QACrB,iBAAiB;AAAA,QACjB,OAAO;AAAA,QACP,UAAU;AAAA,QACV,WAAW;AAAA,QACX,KAAK;AAAA,QACL,MAAM;AAAA,UACJ;AAAA,UACA,MAAM,SAAS,UACX,yKACA;AAAA,QACN;AAAA,QACA,KAAK,GAAG,eAAe,EAAE,SAAS,QAAQ,CAAC,GAAG,mDAAmD;AAAA,QACjG,iBAAiB;AAAA,QACjB,eAAe;AAAA,QACf,cACE;AAAA,QACF,WAAW;AAAA,QACX,aAAa;AAAA,QACb,cAAc;AAAA,QACd,kBAAkB;AAAA,QAClB,YAAY;AAAA,SACT;AAAA,MAEL,YACE;AAAA;AAAA;AAAA,MAGA;AAAA,OAEE;AAAA,EACN;AAEJ;AACA,SAAS,cAAc;","names":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkMN2Z4PPXjs = require('../../chunk-MN2Z4PPX.js');
|
|
4
4
|
require('../../chunk-MKSF24CS.js');
|
|
5
5
|
|
|
6
6
|
|
|
@@ -140,7 +140,7 @@ var CarouselPrevious = React.forwardRef(
|
|
|
140
140
|
var _b = _a, { className, variant = "light", size = "icon" } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className", "variant", "size"]);
|
|
141
141
|
const { orientation, scrollPrev, canScrollPrev } = useCarousel();
|
|
142
142
|
return /* @__PURE__ */ React.createElement(
|
|
143
|
-
|
|
143
|
+
_chunkMN2Z4PPXjs.Button,
|
|
144
144
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
145
145
|
ref,
|
|
146
146
|
variant,
|
|
@@ -164,7 +164,7 @@ var CarouselNext = React.forwardRef(
|
|
|
164
164
|
var _b = _a, { className, variant = "light", size = "icon" } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className", "variant", "size"]);
|
|
165
165
|
const { orientation, scrollNext, canScrollNext } = useCarousel();
|
|
166
166
|
return /* @__PURE__ */ React.createElement(
|
|
167
|
-
|
|
167
|
+
_chunkMN2Z4PPXjs.Button,
|
|
168
168
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
169
169
|
ref,
|
|
170
170
|
variant,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
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; } }
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _chunkMN2Z4PPXjs = require('../../chunk-MN2Z4PPX.js');
|
|
4
4
|
require('../../chunk-MKSF24CS.js');
|
|
5
5
|
|
|
6
6
|
|
|
@@ -44,7 +44,7 @@ var PaginationLink = (_a) => {
|
|
|
44
44
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
45
45
|
"aria-current": isActive ? "page" : void 0,
|
|
46
46
|
className: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
47
|
-
|
|
47
|
+
_chunkMN2Z4PPXjs.buttonVariants.call(void 0, {
|
|
48
48
|
variant: isActive ? "light" : "light",
|
|
49
49
|
size
|
|
50
50
|
}),
|
package/components/ui/sidebar.js
CHANGED
|
@@ -17,7 +17,7 @@ var _chunkLUOWYBFHjs = require('../../chunk-LUOWYBFH.js');
|
|
|
17
17
|
var _chunkJ2S6AWOCjs = require('../../chunk-J2S6AWOC.js');
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
var
|
|
20
|
+
var _chunkMN2Z4PPXjs = require('../../chunk-MN2Z4PPX.js');
|
|
21
21
|
require('../../chunk-MKSF24CS.js');
|
|
22
22
|
|
|
23
23
|
|
|
@@ -120,7 +120,7 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
120
120
|
return /* @__PURE__ */ React.createElement(
|
|
121
121
|
"div",
|
|
122
122
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
123
|
-
className: _chunkB2G2EZ4Pjs.cn.call(void 0, "flex h-full w-
|
|
123
|
+
className: _chunkB2G2EZ4Pjs.cn.call(void 0, "flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className),
|
|
124
124
|
ref
|
|
125
125
|
}, props),
|
|
126
126
|
children
|
|
@@ -133,7 +133,7 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
133
133
|
"data-sidebar": "sidebar",
|
|
134
134
|
"data-mobile": "true",
|
|
135
135
|
"aria-describedby": "",
|
|
136
|
-
className: "w-
|
|
136
|
+
className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
|
|
137
137
|
style: {
|
|
138
138
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
139
139
|
},
|
|
@@ -156,10 +156,10 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
156
156
|
"div",
|
|
157
157
|
{
|
|
158
158
|
className: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
159
|
-
"relative h-svh w-
|
|
159
|
+
"relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
|
|
160
160
|
"group-data-[collapsible=offcanvas]:w-0",
|
|
161
161
|
"group-data-[side=right]:rotate-180",
|
|
162
|
-
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-
|
|
162
|
+
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
|
|
163
163
|
)
|
|
164
164
|
}
|
|
165
165
|
),
|
|
@@ -167,10 +167,10 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
167
167
|
"div",
|
|
168
168
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
169
169
|
className: _chunkB2G2EZ4Pjs.cn.call(void 0,
|
|
170
|
-
"fixed inset-y-0 z-10 hidden h-svh w-
|
|
170
|
+
"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
|
|
171
171
|
side === "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)]",
|
|
172
172
|
// Adjust the padding for floating and inset variants.
|
|
173
|
-
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-
|
|
173
|
+
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
174
174
|
className
|
|
175
175
|
)
|
|
176
176
|
}, props),
|
|
@@ -191,7 +191,7 @@ var SidebarTrigger = React.forwardRef(
|
|
|
191
191
|
var _b = _a, { className, onClick } = _b, props = _chunk2NMEKWO5js.__objRest.call(void 0, _b, ["className", "onClick"]);
|
|
192
192
|
const { toggleSidebar } = useSidebar();
|
|
193
193
|
return /* @__PURE__ */ React.createElement(
|
|
194
|
-
|
|
194
|
+
_chunkMN2Z4PPXjs.Button,
|
|
195
195
|
_chunk2NMEKWO5js.__spreadValues.call(void 0, {
|
|
196
196
|
ref,
|
|
197
197
|
"data-sidebar": "trigger",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","../../../components/ui/sidebar.tsx"],"names":[],"mappings":"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","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","sourcesContent":[null,"import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\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 = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.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 [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // 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 = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (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 return () => window.removeEventListener('keydown', handleKeyDown);\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 = React.useMemo<SidebarContext>(\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 style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] 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)_+_theme(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 {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n '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] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\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 {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n '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 text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground 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 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\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
|
+
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","../../../components/ui/sidebar.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACA;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC,mCAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACF,0DAAgC;AAChC;AACE;AACA;AACF,0DAAgC;AAChC;AACA;ACnCA,2EAAuB;AACvB,iDAAqB;AACrB,kEAAkC;AAClC,2CAA0B;AAW1B,IAAM,oBAAA,EAAsB,eAAA;AAC5B,IAAM,uBAAA,EAAyB,GAAA,EAAK,GAAA,EAAK,GAAA,EAAK,CAAA;AAC9C,IAAM,cAAA,EAAgB,OAAA;AACtB,IAAM,qBAAA,EAAuB,OAAA;AAC7B,IAAM,mBAAA,EAAqB,MAAA;AAC3B,IAAM,0BAAA,EAA4B,GAAA;AAYlC,IAAM,eAAA,EAAuB,KAAA,CAAA,aAAA,CAAqC,IAAI,CAAA;AAEtE,SAAS,UAAA,CAAA,EAAa;AACpB,EAAA,MAAM,QAAA,EAAgB,KAAA,CAAA,UAAA,CAAW,cAAc,CAAA;AAC/C,EAAA,GAAA,CAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA,CAAM,mDAAmD,CAAA;AAAA,EACrE;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,IAAM,gBAAA,EAAwB,KAAA,CAAA,UAAA,CAO5B,CAAC,EAAA,EAAyG,GAAA,EAAA,GAAQ;AAAjH,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,YAAA,EAAc,IAAA,EAAM,IAAA,EAAM,QAAA,EAAU,YAAA,EAAc,WAAA,EAAa,SAAA,EAAW,KAAA,EAAO,SAjDtF,EAAA,EAiDG,EAAA,EAAgG,MAAA,EAAA,wCAAA,EAAhG,EAAgG,CAA9F,aAAA,EAAoB,MAAA,EAAgB,cAAA,EAA2B,WAAA,EAAW,OAAA,EAAO,UAAA,CAAA,CAAA;AACpF,EAAA,MAAM,SAAA,EAAW,0CAAA,CAAY;AAC7B,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,EAAA,EAAU,KAAA,CAAA,QAAA,CAAS,KAAK,CAAA;AAIxD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAU,KAAA,CAAA,QAAA,CAAS,WAAW,CAAA;AACpD,EAAA,MAAM,KAAA,EAAO,SAAA,GAAA,KAAA,EAAA,SAAA,EAAY,KAAA;AACzB,EAAA,MAAM,QAAA,EAAgB,KAAA,CAAA,WAAA;AAAA,IACpB,CAAC,KAAA,EAAA,GAAmD;AAClD,MAAA,MAAM,UAAA,EAAY,OAAO,MAAA,IAAU,WAAA,EAAa,KAAA,CAAM,IAAI,EAAA,EAAI,KAAA;AAC9D,MAAA,GAAA,CAAI,WAAA,EAAa;AACf,QAAA,WAAA,CAAY,SAAS,CAAA;AAAA,MACvB,EAAA,KAAO;AACL,QAAA,QAAA,CAAS,SAAS,CAAA;AAAA,MACpB;AAGA,MAAA,QAAA,CAAS,OAAA,EAAS,CAAA,EAAA;AACpB,IAAA;AACkB,IAAA;AACpB,EAAA;AAG4B,EAAA;AACR,IAAA;AACG,EAAA;AAGD,EAAA;AACd,IAAA;AACc,MAAA;AACV,QAAA;AACQ,QAAA;AAChB,MAAA;AACF,IAAA;AAEO,IAAA;AACa,IAAA;AACJ,EAAA;AAIG,EAAA;AAEM,EAAA;AAClB,IAAA;AACL,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACA,MAAA;AACF,IAAA;AACc,IAAA;AAChB,EAAA;AAGE,EAAA;AAEK,IAAA;AAAA,IAAA;AAEG,MAAA;AACE,QAAA;AACA,QAAA;AACG,MAAA;AAGI,MAAA;AACT,QAAA;AACA,QAAA;AACF,MAAA;AACA,MAAA;AACI,IAAA;AAEH,IAAA;AAGP,EAAA;AAEH;AACe;AAEM;AAOV,EAAA;AACQ,EAAA;AAEE,EAAA;AAEhB,IAAA;AAAC,MAAA;AAAA,MAAA;AACe,QAAA;AACd,QAAA;AACI,MAAA;AAEH,MAAA;AACH,IAAA;AAEJ,EAAA;AAEc,EAAA;AAEV,IAAA;AAEG,MAAA;AAAA,MAAA;AACc,QAAA;AACD,QAAA;AACZ,QAAA;AACU,QAAA;AAER,QAAA;AACE,UAAA;AACF,QAAA;AAEF,QAAA;AAAA,MAAA;AAEA,sBAAA;AAEJ,IAAA;AAEJ,EAAA;AAGE,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACU,MAAA;AACE,MAAA;AACZ,MAAA;AACc,MAAA;AACH,MAAA;AAAA,IAAA;AAGX,oBAAA;AAAC,MAAA;AAAA,MAAA;AACY,QAAA;AACT,UAAA;AACA,UAAA;AACA,UAAA;AACY,UAAA;AAGd,QAAA;AAAA,MAAA;AACF,IAAA;AACA,oBAAA;AAAC,MAAA;AAAA,MAAA;AACY,QAAA;AACT,UAAA;AACS,UAAA;AAEL;AAEQ,UAAA;AAGZ,UAAA;AACF,QAAA;AACI,MAAA;AAEJ,sBAAA;AAAC,QAAA;AAAA,QAAA;AACC,UAAA;AACU,UAAA;AAAA,QAAA;AAET,QAAA;AACH,MAAA;AACF,IAAA;AACF,EAAA;AAEH;AACqB;AAEO;AACgB,EAAA;AAAxC,IAAA;AACO,IAAA;AAGN,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACL,QAAA;AACH,QAAA;AACS,QAAA;AACJ,QAAA;AACR,UAAA;AACc,UAAA;AAChB,QAAA;AACI,MAAA;AAEJ,sBAAA;AACA,sBAAA;AACF,IAAA;AAEJ,EAAA;AACF;AACe;AAEW;AACU,EAAA;AAA/B,IAAA;AACO,IAAA;AAGN,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACF,QAAA;AACD,QAAA;AACD,QAAA;AACH,QAAA;AACK,QAAA;AACT,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACI,MAAA;AACN,IAAA;AAEJ,EAAA;AACF;AACY;AAEe;AAA4D,EAAA;AAEnF,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACW,MAAA;AACT,QAAA;AACA,QAAA;AACA,QAAA;AACF,MAAA;AACI,IAAA;AACN,EAAA;AAEH;AACY;AAEc;AACS,EAAA;AAA/B,IAAA;AAEC,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACF,QAAA;AACT,UAAA;AACA,UAAA;AACF,QAAA;AACI,MAAA;AACN,IAAA;AAEJ,EAAA;AACF;AACa;AAEe;AAA2D,EAAA;AAC9E,EAAA;AACR;AACa;AAEc;AAA2D,EAAA;AAC9E,EAAA;AACR;AACa;AAEiB;AACK,EAAA;AAA/B,IAAA;AAEC,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACC,QAAA;AACV,MAAA;AACN,IAAA;AAEJ,EAAA;AACF;AACiB;AAEY;AAA2D,EAAA;AAEpF,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACa,MAAA;AACF,MAAA;AACT,QAAA;AACA,QAAA;AACF,MAAA;AACI,IAAA;AACN,EAAA;AAEH;AACc;AAEY;AAA2D,EAAA;AAElF,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACa,MAAA;AACC,MAAA;AACV,IAAA;AACN,EAAA;AAEH;AACY;AAEmB;AACqB,EAAA;AAAhD,IAAA;AACY,IAAA;AAGX,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACF,QAAA;AACT,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACI,MAAA;AACN,IAAA;AAEJ,EAAA;AACF;AACkB;AAEe;AACoB,EAAA;AAAhD,IAAA;AACY,IAAA;AAGX,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACF,QAAA;AACT,UAAA;AAAA;AAEA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACI,MAAA;AACN,IAAA;AAEJ,EAAA;AACF;AACmB;AAEb;AAC2B,EAAA;AAA5B,IAAA;AACD,IAAA;AAAmG,EAAA;AAEvG;AACoB;AAEM;AAA4D,EAAA;AACpF,EAAA;AACD;AACW;AAEkB;AAAyD,EAAA;AACrF,EAAA;AACD;AACe;AAEV;AACJ,EAAA;AACA,EAAA;AACY,IAAA;AACC,MAAA;AACE,QAAA;AAEP,QAAA;AACJ,MAAA;AACM,MAAA;AACK,QAAA;AACL,QAAA;AACA,QAAA;AACN,MAAA;AACF,IAAA;AACiB,IAAA;AACN,MAAA;AACH,MAAA;AACR,IAAA;AACF,EAAA;AACF;AAEgC;AAO3B,EAAA;AACoB,EAAA;AACL,EAAA;AAGhB,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACa,MAAA;AACF,MAAA;AACE,MAAA;AACC,MAAA;AACV,IAAA;AACN,EAAA;AAGY,EAAA;AACL,IAAA;AACT,EAAA;AAEuB,EAAA;AACX,IAAA;AACE,MAAA;AACZ,IAAA;AACF,EAAA;AAGE,EAAA;AAKH;AACiB;AAEc;AAM3B,EAAA;AACoB,EAAA;AAGrB,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACa,MAAA;AACF,MAAA;AACT,QAAA;AAAA;AAEA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AACA,QAAA;AAEE,QAAA;AACF,QAAA;AACF,MAAA;AACI,IAAA;AACN,EAAA;AAEH;AACiB;AAEa;AACE,EAAA;AAA5B,IAAA;AACD,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACF,QAAA;AACT,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACI,MAAA;AACN,IAAA;AAAA,EAAA;AAEJ;AACiB;AAEX;AAKD,EAAA;AAEiB,EAAA;AACG,IAAA;AAClB,EAAA;AAGH,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACa,MAAA;AACC,MAAA;AACV,IAAA;AAES,IAAA;AACb,oBAAA;AAAC,MAAA;AAAA,MAAA;AACW,QAAA;AACG,QAAA;AAEX,QAAA;AACE,UAAA;AACF,QAAA;AAAA,MAAA;AAEJ,IAAA;AACF,EAAA;AAEH;AACmB;AAES;AACI,EAAA;AAA5B,IAAA;AACD,IAAA;AAAC,MAAA;AAAA,MAAA;AACC,QAAA;AACa,QAAA;AACF,QAAA;AACT,UAAA;AACA,UAAA;AACA,UAAA;AACF,QAAA;AACI,MAAA;AACN,IAAA;AAAA,EAAA;AAEJ;AACe;AAEkB;AAAuD,EAAA;AACtF,EAAA;AACD;AACkB;AAEb;AAOD,EAAA;AACoB,EAAA;AAGrB,EAAA;AAAC,IAAA;AAAA,IAAA;AACC,MAAA;AACa,MAAA;AACF,MAAA;AACE,MAAA;AACF,MAAA;AACT,QAAA;AACA,QAAA;AACiB,QAAA;AACA,QAAA;AACjB,QAAA;AACA,QAAA;AACF,MAAA;AACI,IAAA;AACN,EAAA;AAEH;AACoB;AD3EI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/home/ahnjun/projects/egose-shadcn/package/dist/components/ui/sidebar.js","sourcesContent":[null,"import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\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 = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.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 [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // 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 = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (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 return () => window.removeEventListener('keydown', handleKeyDown);\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 = React.useMemo<SidebarContext>(\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 style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) 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)_+_theme(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 {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n '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] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\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 {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n '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 text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground 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 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\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"]}
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "../../chunk-CBPD4MCN.mjs";
|
|
18
18
|
import {
|
|
19
19
|
Button
|
|
20
|
-
} from "../../chunk-
|
|
20
|
+
} from "../../chunk-BSRQI4AA.mjs";
|
|
21
21
|
import "../../chunk-P2MQ6OUG.mjs";
|
|
22
22
|
import {
|
|
23
23
|
useIsMobile
|
|
@@ -120,7 +120,7 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
120
120
|
return /* @__PURE__ */ React.createElement(
|
|
121
121
|
"div",
|
|
122
122
|
__spreadValues({
|
|
123
|
-
className: cn("flex h-full w-
|
|
123
|
+
className: cn("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground", className),
|
|
124
124
|
ref
|
|
125
125
|
}, props),
|
|
126
126
|
children
|
|
@@ -133,7 +133,7 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
133
133
|
"data-sidebar": "sidebar",
|
|
134
134
|
"data-mobile": "true",
|
|
135
135
|
"aria-describedby": "",
|
|
136
|
-
className: "w-
|
|
136
|
+
className: "w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",
|
|
137
137
|
style: {
|
|
138
138
|
"--sidebar-width": SIDEBAR_WIDTH_MOBILE
|
|
139
139
|
},
|
|
@@ -156,10 +156,10 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
156
156
|
"div",
|
|
157
157
|
{
|
|
158
158
|
className: cn(
|
|
159
|
-
"relative h-svh w-
|
|
159
|
+
"relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
|
|
160
160
|
"group-data-[collapsible=offcanvas]:w-0",
|
|
161
161
|
"group-data-[side=right]:rotate-180",
|
|
162
|
-
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-
|
|
162
|
+
variant === "floating" || variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
|
|
163
163
|
)
|
|
164
164
|
}
|
|
165
165
|
),
|
|
@@ -167,10 +167,10 @@ var Sidebar = React.forwardRef((_a, ref) => {
|
|
|
167
167
|
"div",
|
|
168
168
|
__spreadValues({
|
|
169
169
|
className: cn(
|
|
170
|
-
"fixed inset-y-0 z-10 hidden h-svh w-
|
|
170
|
+
"fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
|
|
171
171
|
side === "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)]",
|
|
172
172
|
// Adjust the padding for floating and inset variants.
|
|
173
|
-
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-
|
|
173
|
+
variant === "floating" || variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
|
|
174
174
|
className
|
|
175
175
|
)
|
|
176
176
|
}, props),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/sidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\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 = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.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 [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // 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 = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (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 return () => window.removeEventListener('keydown', handleKeyDown);\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 = React.useMemo<SidebarContext>(\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 style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-[--sidebar-width] bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-[--sidebar-width-icon]',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] 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)_+_theme(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 {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n '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] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\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 {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n '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 text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground 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 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\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"],"mappings":"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","names":["open"]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/sidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { VariantProps, cva } from 'class-variance-authority';\nimport { PanelLeft } from 'lucide-react';\n\nimport { useIsMobile } from '../../hooks/use-mobile';\nimport { cn } from '../../lib/utils';\nimport { Button } from './button';\nimport { Input } from './input';\nimport { Separator } from './separator';\nimport { Sheet, SheetTitle, SheetContent } from './sheet';\nimport { Skeleton } from './skeleton';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './tooltip';\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 = '3rem';\nconst SIDEBAR_KEYBOARD_SHORTCUT = 'b';\n\ntype SidebarContext = {\n state: 'expanded' | 'collapsed';\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error('useSidebar must be used within a SidebarProvider.');\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.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 [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === 'function' ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // 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 = React.useCallback(() => {\n return isMobile ? setOpenMobile((open) => !open) : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (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 return () => window.removeEventListener('keydown', handleKeyDown);\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 = React.useMemo<SidebarContext>(\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 style={\n {\n '--sidebar-width': SIDEBAR_WIDTH,\n '--sidebar-width-icon': SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n 'group/sidebar-wrapper flex min-h-svh w-screen has-[[data-variant=inset]]:bg-sidebar',\n className,\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n});\nSidebarProvider.displayName = 'SidebarProvider';\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n side?: 'left' | 'right';\n variant?: 'sidebar' | 'floating' | 'inset';\n collapsible?: 'offcanvas' | 'icon' | 'none';\n }\n>(({ side = 'left', variant = 'sidebar', collapsible = 'offcanvas', className, children, ...props }, ref) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === 'none') {\n return (\n <div\n className={cn('flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground', className)}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetTitle className=\"hidden\"></SheetTitle>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n aria-describedby=\"\"\n className=\"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n '--sidebar-width': SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden text-sidebar-foreground md:block\"\n data-state={state}\n data-collapsible={state === 'collapsed' ? collapsible : ''}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n 'relative h-svh w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear',\n 'group-data-[collapsible=offcanvas]:w-0',\n 'group-data-[side=right]:rotate-180',\n variant === 'floating' || variant === 'inset'\n ? 'group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]'\n : 'group-data-[collapsible=icon]:w-(--sidebar-width-icon)',\n )}\n />\n <div\n className={cn(\n 'fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) 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)_+_theme(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 {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n});\nSidebar.displayName = 'Sidebar';\n\nconst SidebarTrigger = React.forwardRef<React.ElementRef<typeof Button>, React.ComponentProps<typeof Button>>(\n ({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"light\"\n size=\"icon\"\n className={cn('h-7 w-7', className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n },\n);\nSidebarTrigger.displayName = 'SidebarTrigger';\n\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'>>(\n ({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n '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] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex',\n '[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize',\n '[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize',\n 'group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar',\n '[[data-side=left][data-collapsible=offcanvas]_&]:-right-2',\n '[[data-side=right][data-collapsible=offcanvas]_&]:-left-2',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarRail.displayName = 'SidebarRail';\n\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<'main'>>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n 'relative flex min-h-svh flex-1 flex-col bg-background',\n 'peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = 'SidebarInset';\n\nconst SidebarInput = React.forwardRef<React.ElementRef<typeof Input>, React.ComponentProps<typeof Input>>(\n ({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n 'h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarInput.displayName = 'SidebarInput';\n\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"header\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarHeader.displayName = 'SidebarHeader';\n\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return <div ref={ref} data-sidebar=\"footer\" className={cn('flex flex-col gap-2 p-2', className)} {...props} />;\n});\nSidebarFooter.displayName = 'SidebarFooter';\n\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\n ({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn('mx-2 w-auto bg-sidebar-border', className)}\n {...props}\n />\n );\n },\n);\nSidebarSeparator.displayName = 'SidebarSeparator';\n\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\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 {...props}\n />\n );\n});\nSidebarContent.displayName = 'SidebarContent';\n\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn('relative flex w-full min-w-0 flex-col p-2', className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = 'SidebarGroup';\n\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'div';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n 'flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n 'group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupLabel.displayName = 'SidebarGroupLabel';\n\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<'button'> & { asChild?: boolean }>(\n ({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n 'absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n },\n);\nSidebarGroupAction.displayName = 'SidebarGroupAction';\n\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} data-sidebar=\"group-content\" className={cn('w-full text-sm', className)} {...props} />\n ),\n);\nSidebarGroupContent.displayName = 'SidebarGroupContent';\n\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(({ className, ...props }, ref) => (\n <ul ref={ref} data-sidebar=\"menu\" className={cn('flex w-full min-w-0 flex-col gap-1', className)} {...props} />\n));\nSidebarMenu.displayName = 'SidebarMenu';\n\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ className, ...props }, ref) => (\n <li ref={ref} data-sidebar=\"menu-item\" className={cn('group/menu-item relative', className)} {...props} />\n));\nSidebarMenuItem.displayName = 'SidebarMenuItem';\n\nconst sidebarMenuButtonVariants = cva(\n 'peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium 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 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0',\n {\n variants: {\n variant: {\n default: 'hover:bg-sidebar-accent hover:text-sidebar-accent-foreground',\n outline:\n 'bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]',\n },\n size: {\n default: 'h-8 text-sm',\n sm: 'h-7 text-xs',\n lg: 'h-12 text-sm group-data-[collapsible=icon]:!p-0',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(({ asChild = false, isActive = false, variant = 'default', size = 'default', tooltip, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === 'string') {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== 'collapsed' || isMobile} {...tooltip} />\n </Tooltip>\n );\n});\nSidebarMenuButton.displayName = 'SidebarMenuButton';\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<'button'> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n 'absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0',\n // Increases the hit area of the button on mobile.\n 'after:absolute after:-inset-2 after:md:hidden',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n showOnHover &&\n 'group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = 'SidebarMenuAction';\n\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<'div'>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n '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 text-sidebar-foreground',\n 'peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground',\n 'peer-data-[size=sm]/menu-button:top-1',\n 'peer-data-[size=default]/menu-button:top-1.5',\n 'peer-data-[size=lg]/menu-button:top-2.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuBadge.displayName = 'SidebarMenuBadge';\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<'div'> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn('flex h-8 items-center gap-2 rounded-md px-2', className)}\n {...props}\n >\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\n <Skeleton\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n '--skeleton-width': width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = 'SidebarMenuSkeleton';\n\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<'ul'>>(\n ({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n 'mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n ),\n);\nSidebarMenuSub.displayName = 'SidebarMenuSub';\n\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<'li'>>(({ ...props }, ref) => (\n <li ref={ref} {...props} />\n));\nSidebarMenuSubItem.displayName = 'SidebarMenuSubItem';\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<'a'> & {\n asChild?: boolean;\n size?: 'sm' | 'md';\n isActive?: boolean;\n }\n>(({ asChild = false, size = 'md', isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a';\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n 'flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground 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 [&>svg]:text-sidebar-accent-foreground',\n 'data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n 'group-data-[collapsible=icon]:hidden',\n className,\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = 'SidebarMenuSubButton';\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"],"mappings":"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","names":["open"]}
|
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.0.
|
|
2
|
+
"version": "0.0.4",
|
|
3
3
|
"description": "shadcn UI theme",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
@@ -50,7 +50,6 @@
|
|
|
50
50
|
"recharts": "^2.15.1",
|
|
51
51
|
"sonner": "^2.0.1",
|
|
52
52
|
"tailwind-merge": "^3.0.2",
|
|
53
|
-
"tailwindcss-animate": "^1.0.7",
|
|
54
53
|
"vaul": "^1.1.2",
|
|
55
54
|
"zod": "^3.24.2"
|
|
56
55
|
},
|
package/chunk-BBQHZ4QS.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/FormTextInput.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { InputHTMLAttributes } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport default function TextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...others\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Input\n type={type}\n id={id}\n name={name}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...others}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAEA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AAQvB,IAAM,aAAa;AAcJ,SAAR,UAA2B,IAUX;AAVW,eAChC;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EAjChB,IAyBkC,IAS7B,mBAT6B,IAS7B;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,cAAc,yCAAY,OAAO,KACjD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,SAPL;AAAA,MAQC,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}
|
package/chunk-XC6HXMMM.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/ui/button.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Spinner } from './spinner';\n\nconst buttonVariants = cva(\n [\n 'active:translate-y-[0.5px]',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'focus-visible:ring-ring',\n 'font-medium',\n 'gap-2',\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'rounded-sm',\n 'text-sm',\n 'transform',\n 'transition',\n 'transition-colors',\n 'whitespace-nowrap',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n '[&_svg]:size-4',\n ],\n {\n variants: {\n variant: {\n primary: 'border border-primary bg-primary text-primary-foreground shadow-sm hover:bg-primary/90',\n secondary: 'border border-secondary bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/90',\n success: 'border border-success bg-success text-success-foreground shadow-sm hover:bg-success/90',\n warning: 'border border-warning bg-warning text-warning-foreground shadow-sm hover:bg-warning/90',\n danger: 'border border-danger bg-danger text-danger-foreground shadow-sm hover:bg-danger/90',\n info: 'border border-info bg-info text-info-foreground shadow-sm hover:bg-info/90',\n light: 'border border-light bg-light text-light-foreground shadow-sm hover:bg-light/90',\n dark: 'border border-dark bg-dark text-dark-foreground shadow-sm hover:bg-dark/90',\n accent: 'border border-accent bg-accent text-accent-foreground shadow-sm hover:bg-accent/90',\n destructive:\n 'border border-destructive bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n muted: 'border border-muted bg-muted text-muted-foreground shadow-sm hover:bg-muted/90',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-sm px-3 text-xs',\n lg: 'h-10 rounded-sm px-8',\n icon: 'h-9 w-9',\n },\n outline: {\n false: null,\n true: '',\n },\n outlineFilled: {\n false: null,\n true: '',\n },\n loading: {\n false: null,\n true: '',\n },\n thin: {\n false: null,\n true: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n outline: false,\n outlineFilled: false,\n loading: false,\n thin: false,\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nfunction getOutlineClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'border-primary text-primary shadow-sm hover:bg-primary/10',\n secondary: 'border-secondary text-secondary shadow-sm hover:bg-secondary/10',\n success: 'border-success text-success shadow-sm hover:bg-success/10',\n warning: 'border-warning text-warning shadow-sm hover:bg-warning/10',\n danger: 'border-danger text-danger shadow-sm hover:bg-danger/10',\n info: 'border-info text-info shadow-sm hover:bg-info/10',\n light: 'border-light text-light-foreground shadow-sm hover:bg-light/10',\n dark: 'border-dark text-dark shadow-sm hover:bg-dark/10',\n accent: 'border-accent text-accent shadow-sm hover:bg-accent/10',\n destructive: 'border-destructive text-destructive shadow-sm hover:bg-destructive/10',\n muted: 'border-muted text-muted shadow-sm hover:bg-muted/10',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineFilledClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'hover:bg-primary hover:text-primary-foreground',\n secondary: 'hover:bg-secondary hover:text-secondary-foreground',\n success: 'hover:bg-success hover:text-success-foreground',\n warning: 'hover:bg-warning hover:text-warning-foreground',\n danger: 'hover:bg-danger hover:text-danger-foreground',\n info: 'hover:bg-info hover:text-info-foreground',\n light: 'hover:bg-light hover:text-light-foreground',\n dark: 'hover:bg-dark hover:text-dark-foreground',\n accent: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'hover:bg-destructive hover:text-destructive-foreground',\n muted: 'hover:bg-muted hover:text-muted-foreground',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary',\n success: 'bg-success text-success-foreground hover:bg-success',\n warning: 'bg-warning text-warning-foreground hover:bg-warning',\n danger: 'bg-danger text-danger-foreground hover:bg-danger',\n info: 'bg-info text-info-foreground hover:bg-info',\n light: 'bg-light text-light-foreground hover:bg-light',\n dark: 'bg-dark text-dark-foreground hover:bg-dark',\n accent: 'bg-accent text-accent-foreground hover:bg-accent',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive',\n muted: 'bg-muted text-muted-foreground hover:bg-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n info: 'text-info',\n light: 'text-light',\n dark: 'text-dark',\n accent: 'text-accent',\n destructive: 'text-destructive',\n muted: 'text-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getThinClasses(size: any) {\n const colors: Record<string, string> = {\n default: 'h-8 px-2 py-1',\n sm: 'h-7 px-2 py-1',\n lg: 'h-9 px-2 py-1',\n icon: 'h-8 w-8',\n };\n\n return colors[size ?? 'default'];\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, outline, outlineFilled, loading, thin, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n let outlineClasses: string[] = [];\n if (outline || outlineFilled) {\n outlineClasses = ['bg-white border', getOutlineClasses(variant)];\n if (outlineFilled) outlineClasses.push(getOutlineFilledClasses(variant));\n }\n\n const thinClasses = thin ? getThinClasses(size) : '';\n\n if (loading) {\n const { children, ...loaderProps } = props;\n const spinnerClasses = outline || outlineFilled ? getOutlineSpinnerClasses(variant) : getSpinnerClasses(variant);\n const loadingClasses = 'pointer-events-none';\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, outline, className }),\n outlineClasses,\n thinClasses,\n spinnerClasses,\n loadingClasses,\n )}\n ref={ref}\n {...loaderProps}\n >\n <div className=\"relative inline-flex items-center\">\n <span className=\"invisible\">{children}</span>\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner className={cn(spinnerClasses, loadingClasses)} />\n </span>\n </div>\n </Comp>\n );\n }\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, outline, className }), outlineClasses, thinClasses)}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"],"mappings":"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","names":["_a"]}
|
package/chunk-YWS36WKB.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/ahnjun/projects/egose-shadcn/package/dist/chunk-YWS36WKB.js","../components/ui/button.tsx"],"names":["_a"],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACXA,2EAAuB;AACvB,iDAAqB;AACrB,kEAAuC;AAIvC,IAAM,eAAA,EAAiB,yCAAA;AAAA,EACrB;AAAA,IACE,4BAAA;AAAA,IACA,8BAAA;AAAA,IACA,qBAAA;AAAA,IACA,4BAAA;AAAA,IACA,sBAAA;AAAA,IACA,yBAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,cAAA;AAAA,IACA,gBAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,mBAAA;AAAA,IACA,mBAAA;AAAA,IACA,6BAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,EACF,CAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,wFAAA;AAAA,QACT,SAAA,EAAW,gGAAA;AAAA,QACX,OAAA,EAAS,wFAAA;AAAA,QACT,OAAA,EAAS,wFAAA;AAAA,QACT,MAAA,EAAQ,oFAAA;AAAA,QACR,IAAA,EAAM,4EAAA;AAAA,QACN,KAAA,EAAO,gFAAA;AAAA,QACP,IAAA,EAAM,4EAAA;AAAA,QACN,MAAA,EAAQ,oFAAA;AAAA,QACR,WAAA,EACE,wGAAA;AAAA,QACF,KAAA,EAAO,gFAAA;AAAA,QACP,IAAA,EAAM;AAAA,MACR,CAAA;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,OAAA,EAAS,eAAA;AAAA,QACT,EAAA,EAAI,6BAAA;AAAA,QACJ,EAAA,EAAI,sBAAA;AAAA,QACJ,IAAA,EAAM;AAAA,MACR,CAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAM;AAAA,MACR,CAAA;AAAA,MACA,aAAA,EAAe;AAAA,QACb,KAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAM;AAAA,MACR,CAAA;AAAA,MACA,OAAA,EAAS;AAAA,QACP,KAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAM;AAAA,MACR,CAAA;AAAA,MACA,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,IAAA;AAAA,QACP,IAAA,EAAM;AAAA,MACR;AAAA,IACF,CAAA;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,SAAA;AAAA,MACT,IAAA,EAAM,SAAA;AAAA,MACN,OAAA,EAAS,KAAA;AAAA,MACT,aAAA,EAAe,KAAA;AAAA,MACf,OAAA,EAAS,KAAA;AAAA,MACT,IAAA,EAAM;AAAA,IACR;AAAA,EACF;AACF,CAAA;AAQA,SAAS,iBAAA,CAAkB,OAAA,EAAc;AACvC,EAAA,MAAM,OAAA,EAAiC;AAAA,IACrC,OAAA,EAAS,2DAAA;AAAA,IACT,SAAA,EAAW,iEAAA;AAAA,IACX,OAAA,EAAS,2DAAA;AAAA,IACT,OAAA,EAAS,2DAAA;AAAA,IACT,MAAA,EAAQ,wDAAA;AAAA,IACR,IAAA,EAAM,kDAAA;AAAA,IACN,KAAA,EAAO,gEAAA;AAAA,IACP,IAAA,EAAM,kDAAA;AAAA,IACN,MAAA,EAAQ,wDAAA;AAAA,IACR,WAAA,EAAa,uEAAA;AAAA,IACb,KAAA,EAAO;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,MAAA,CAAO,QAAA,GAAA,KAAA,EAAA,QAAA,EAAW,SAAS,CAAA;AACpC;AAEA,SAAS,uBAAA,CAAwB,OAAA,EAAc;AAC7C,EAAA,MAAM,OAAA,EAAiC;AAAA,IACrC,OAAA,EAAS,gDAAA;AAAA,IACT,SAAA,EAAW,oDAAA;AAAA,IACX,OAAA,EAAS,gDAAA;AAAA,IACT,OAAA,EAAS,gDAAA;AAAA,IACT,MAAA,EAAQ,8CAAA;AAAA,IACR,IAAA,EAAM,0CAAA;AAAA,IACN,KAAA,EAAO,4CAAA;AAAA,IACP,IAAA,EAAM,0CAAA;AAAA,IACN,MAAA,EAAQ,8CAAA;AAAA,IACR,WAAA,EAAa,wDAAA;AAAA,IACb,KAAA,EAAO;AAAA,EACT,CAAA;AAEA,EAAA,OAAO,MAAA,CAAO,QAAA,GAAA,KAAA,EAAA,QAAA,EAAW,SAAS,CAAA;AACpC;AAEA,SAAS,iBAAA,CAAkB,OAAA,EAAc;AACvC,EAAA,MAAM,OAAA,EAAiC;AAAA,IACrC,OAAA,EAAS,qDAAA;AAAA,IACT,SAAA,EAAW,2DAAA;AAAA,IACX,OAAA,EAAS,qDAAA;AAAA,IACT,OAAA,EAAS,qDAAA;AAAA,IACT,MAAA,EAAQ,kDAAA;AAAA,IACR,IAAA,EAAM,4CAAA;AAAA,IACN,KAAA,EAAO,+CAAA;AAAA,IACP,IAAA,EAAM,4CAAA;AAAA,IACN,MAAA,EAAQ,kDAAA;AAAA,IACR,WAAA,EAAa,iEAAA;AAAA,IACb,KAAA,EAAO,+CAAA;AAAA,IACP,IAAA,EAAM;AAAA,EACR,CAAA;AAEA,EAAA,OAAO,MAAA,CAAO,QAAA,GAAA,KAAA,EAAA,QAAA,EAAW,SAAS,CAAA;AACpC;AAEA,SAAS,wBAAA,CAAyB,OAAA,EAAc;AAC9C,EAAA,MAAM,OAAA,EAAiC;AAAA,IACrC,OAAA,EAAS,cAAA;AAAA,IACT,SAAA,EAAW,gBAAA;AAAA,IACX,OAAA,EAAS,cAAA;AAAA,IACT,OAAA,EAAS,cAAA;AAAA,IACT,MAAA,EAAQ,aAAA;AAAA,IACR,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,MAAA,EAAQ,aAAA;AAAA,IACR,WAAA,EAAa,kBAAA;AAAA,IACb,KAAA,EAAO,YAAA;AAAA,IACP,IAAA,EAAM;AAAA,EACR,CAAA;AAEA,EAAA,OAAO,MAAA,CAAO,QAAA,GAAA,KAAA,EAAA,QAAA,EAAW,SAAS,CAAA;AACpC;AAEA,SAAS,cAAA,CAAe,IAAA,EAAW;AACjC,EAAA,MAAM,OAAA,EAAiC;AAAA,IACrC,OAAA,EAAS,eAAA;AAAA,IACT,EAAA,EAAI,eAAA;AAAA,IACJ,EAAA,EAAI,eAAA;AAAA,IACJ,IAAA,EAAM;AAAA,EACR,CAAA;AAEA,EAAA,OAAO,MAAA,CAAO,KAAA,GAAA,KAAA,EAAA,KAAA,EAAQ,SAAS,CAAA;AACjC;AAEA,IAAM,OAAA,EAAe,KAAA,CAAA,UAAA;AAAA,EACnB,CAAC,EAAA,EAAgG,GAAA,EAAA,GAAQ;AAAxG,IAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,SAAA,EAAW,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,aAAA,EAAe,OAAA,EAAS,IAAA,EAAM,QAAA,EAAU,MA5KhF,EAAA,EA4KG,EAAA,EAAuF,MAAA,EAAA,wCAAA,EAAvF,EAAuF,CAArF,WAAA,EAAW,SAAA,EAAS,MAAA,EAAM,SAAA,EAAS,eAAA,EAAe,SAAA,EAAS,MAAA,EAAM,SAAA,CAAA,CAAA;AAClE,IAAA,MAAM,KAAA,EAAO,QAAA,EAAU,gBAAA,EAAO,QAAA;AAE9B,IAAA,IAAI,eAAA,EAA2B,CAAC,CAAA;AAChC,IAAA,GAAA,CAAI,QAAA,GAAW,aAAA,EAAe;AAC5B,MAAA,eAAA,EAAiB,CAAC,iBAAA,EAAmB,iBAAA,CAAkB,OAAO,CAAC,CAAA;AAC/D,MAAA,GAAA,CAAI,aAAA,EAAe,cAAA,CAAe,IAAA,CAAK,uBAAA,CAAwB,OAAO,CAAC,CAAA;AAAA,IACzE;AAEA,IAAA,MAAM,YAAA,EAAc,KAAA,EAAO,cAAA,CAAe,IAAI,EAAA,EAAI,EAAA;AAElD,IAAA,GAAA,CAAI,OAAA,EAAS;AACX,MAAA,MAAqCA,IAAAA,EAAA,KAAA,EAA7B,EAAA,SAxLd,EAAA,EAwL2CA,GAAAA,EAAhB,YAAA,EAAA,wCAAA,GAAgBA,EAAhB,CAAb,UAAA,CAAA,CAAA;AACR,MAAA,MAAM,eAAA,EAAiB,QAAA,GAAW,cAAA,EAAgB,wBAAA,CAAyB,OAAO,EAAA,EAAI,iBAAA,CAAkB,OAAO,CAAA;AAC/G,MAAA,MAAM,eAAA,EAAiB,qBAAA;AAEvB,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA,6CAAA;AAAA,UACC,SAAA,EAAW,iCAAA;AAAA,YACT,cAAA,CAAe,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,UAAU,CAAC,CAAA;AAAA,YACpD,cAAA;AAAA,YACA,WAAA;AAAA,YACA,cAAA;AAAA,YACA;AAAA,UACF,CAAA;AAAA,UACA;AAAA,QAAA,CAAA,EACI,WAAA,CAAA;AAAA,wBAEJ,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oCAAA,CAAA,kBACb,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,YAAA,CAAA,EAAa,QAAS,CAAA,kBACtC,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,oDAAA,CAAA,kBACd,KAAA,CAAA,aAAA,CAAC,wBAAA,EAAA,EAAQ,SAAA,EAAW,iCAAA,cAAG,EAAgB,cAAc,EAAA,CAAG,CAC1D,CACF;AAAA,MACF,CAAA;AAAA,IAEJ;AAEA,IAAA,uBACE,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA,6CAAA;AAAA,QACC,SAAA,EAAW,iCAAA,cAAG,CAAe,EAAE,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,UAAU,CAAC,CAAA,EAAG,cAAA,EAAgB,WAAW,CAAA;AAAA,QAChG;AAAA,MAAA,CAAA,EACI,KAAA;AAAA,IACN,CAAA;AAAA,EAEJ;AACF,CAAA;AACA,MAAA,CAAO,YAAA,EAAc,QAAA;ADlBrB;AACA;AACE;AACA;AACF,iEAAC","file":"/home/ahnjun/projects/egose-shadcn/package/dist/chunk-YWS36WKB.js","sourcesContent":[null,"import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../lib/utils';\nimport { Spinner } from './spinner';\n\nconst buttonVariants = cva(\n [\n 'active:translate-y-[0.5px]',\n 'disabled:pointer-events-none',\n 'disabled:opacity-50',\n 'focus-visible:outline-none',\n 'focus-visible:ring-1',\n 'focus-visible:ring-ring',\n 'font-medium',\n 'gap-2',\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'rounded-sm',\n 'text-sm',\n 'transform',\n 'transition',\n 'transition-colors',\n 'whitespace-nowrap',\n '[&_svg]:pointer-events-none',\n '[&_svg]:shrink-0',\n '[&_svg]:size-4',\n ],\n {\n variants: {\n variant: {\n primary: 'border border-primary bg-primary text-primary-foreground shadow-sm hover:bg-primary/90',\n secondary: 'border border-secondary bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/90',\n success: 'border border-success bg-success text-success-foreground shadow-sm hover:bg-success/90',\n warning: 'border border-warning bg-warning text-warning-foreground shadow-sm hover:bg-warning/90',\n danger: 'border border-danger bg-danger text-danger-foreground shadow-sm hover:bg-danger/90',\n info: 'border border-info bg-info text-info-foreground shadow-sm hover:bg-info/90',\n light: 'border border-light bg-light text-light-foreground shadow-sm hover:bg-light/90',\n dark: 'border border-dark bg-dark text-dark-foreground shadow-sm hover:bg-dark/90',\n accent: 'border border-accent bg-accent text-accent-foreground shadow-sm hover:bg-accent/90',\n destructive:\n 'border border-destructive bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n muted: 'border border-muted bg-muted text-muted-foreground shadow-sm hover:bg-muted/90',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-sm px-3 text-xs',\n lg: 'h-10 rounded-sm px-8',\n icon: 'h-9 w-9',\n },\n outline: {\n false: null,\n true: '',\n },\n outlineFilled: {\n false: null,\n true: '',\n },\n loading: {\n false: null,\n true: '',\n },\n thin: {\n false: null,\n true: '',\n },\n },\n defaultVariants: {\n variant: 'primary',\n size: 'default',\n outline: false,\n outlineFilled: false,\n loading: false,\n thin: false,\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nfunction getOutlineClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'border-primary text-primary shadow-sm hover:bg-primary/10',\n secondary: 'border-secondary text-secondary shadow-sm hover:bg-secondary/10',\n success: 'border-success text-success shadow-sm hover:bg-success/10',\n warning: 'border-warning text-warning shadow-sm hover:bg-warning/10',\n danger: 'border-danger text-danger shadow-sm hover:bg-danger/10',\n info: 'border-info text-info shadow-sm hover:bg-info/10',\n light: 'border-light text-light-foreground shadow-sm hover:bg-light/10',\n dark: 'border-dark text-dark shadow-sm hover:bg-dark/10',\n accent: 'border-accent text-accent shadow-sm hover:bg-accent/10',\n destructive: 'border-destructive text-destructive shadow-sm hover:bg-destructive/10',\n muted: 'border-muted text-muted shadow-sm hover:bg-muted/10',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineFilledClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'hover:bg-primary hover:text-primary-foreground',\n secondary: 'hover:bg-secondary hover:text-secondary-foreground',\n success: 'hover:bg-success hover:text-success-foreground',\n warning: 'hover:bg-warning hover:text-warning-foreground',\n danger: 'hover:bg-danger hover:text-danger-foreground',\n info: 'hover:bg-info hover:text-info-foreground',\n light: 'hover:bg-light hover:text-light-foreground',\n dark: 'hover:bg-dark hover:text-dark-foreground',\n accent: 'hover:bg-accent hover:text-accent-foreground',\n destructive: 'hover:bg-destructive hover:text-destructive-foreground',\n muted: 'hover:bg-muted hover:text-muted-foreground',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary',\n success: 'bg-success text-success-foreground hover:bg-success',\n warning: 'bg-warning text-warning-foreground hover:bg-warning',\n danger: 'bg-danger text-danger-foreground hover:bg-danger',\n info: 'bg-info text-info-foreground hover:bg-info',\n light: 'bg-light text-light-foreground hover:bg-light',\n dark: 'bg-dark text-dark-foreground hover:bg-dark',\n accent: 'bg-accent text-accent-foreground hover:bg-accent',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive',\n muted: 'bg-muted text-muted-foreground hover:bg-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getOutlineSpinnerClasses(variant: any) {\n const colors: Record<string, string> = {\n primary: 'text-primary',\n secondary: 'text-secondary',\n success: 'text-success',\n warning: 'text-warning',\n danger: 'text-danger',\n info: 'text-info',\n light: 'text-light',\n dark: 'text-dark',\n accent: 'text-accent',\n destructive: 'text-destructive',\n muted: 'text-muted',\n link: 'text-primary',\n };\n\n return colors[variant ?? 'primary'];\n}\n\nfunction getThinClasses(size: any) {\n const colors: Record<string, string> = {\n default: 'h-8 px-2 py-1',\n sm: 'h-7 px-2 py-1',\n lg: 'h-9 px-2 py-1',\n icon: 'h-8 w-8',\n };\n\n return colors[size ?? 'default'];\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, outline, outlineFilled, loading, thin, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n\n let outlineClasses: string[] = [];\n if (outline || outlineFilled) {\n outlineClasses = ['bg-white border', getOutlineClasses(variant)];\n if (outlineFilled) outlineClasses.push(getOutlineFilledClasses(variant));\n }\n\n const thinClasses = thin ? getThinClasses(size) : '';\n\n if (loading) {\n const { children, ...loaderProps } = props;\n const spinnerClasses = outline || outlineFilled ? getOutlineSpinnerClasses(variant) : getSpinnerClasses(variant);\n const loadingClasses = 'pointer-events-none';\n\n return (\n <Comp\n className={cn(\n buttonVariants({ variant, size, outline, className }),\n outlineClasses,\n thinClasses,\n spinnerClasses,\n loadingClasses,\n )}\n ref={ref}\n {...loaderProps}\n >\n <div className=\"relative inline-flex items-center\">\n <span className=\"invisible\">{children}</span>\n <span className=\"absolute inset-0 flex items-center justify-center\">\n <Spinner className={cn(spinnerClasses, loadingClasses)} />\n </span>\n </div>\n </Comp>\n );\n }\n\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, outline, className }), outlineClasses, thinClasses)}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n"]}
|