@trsys-tech/matrix-library 0.5.0-beta.2 → 0.5.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.es.js.map +1 -1
- package/dist/avatar.es.js.map +1 -1
- package/dist/badge.es.js.map +1 -1
- package/dist/breadcrumb.es.js +4 -4
- package/dist/breadcrumb.es.js.map +1 -1
- package/dist/buildformatlongfn.es.js.map +1 -1
- package/dist/buildlocalizefn.es.js.map +1 -1
- package/dist/buildmatchfn.es.js.map +1 -1
- package/dist/buildmatchpatternfn.es.js.map +1 -1
- package/dist/button.es.js +3 -3
- package/dist/button.es.js.map +1 -1
- package/dist/calendar.es.js +3 -3
- package/dist/calendar.es.js.map +1 -1
- package/dist/card.es.js.map +1 -1
- package/dist/checkbox.es.js.map +1 -1
- package/dist/chip.es.js.map +1 -1
- package/dist/collapsible.es.js.map +1 -1
- package/dist/combobox.es.js +3 -3
- package/dist/combobox.es.js.map +1 -1
- package/dist/command.es.js.map +1 -1
- package/dist/components/command/Command.d.ts.map +1 -1
- package/dist/components/form/Form.d.ts +1 -1
- package/dist/components/form/Form.d.ts.map +1 -1
- package/dist/confirm.es.js.map +1 -1
- package/dist/contextmenu.es.js +4 -4
- package/dist/contextmenu.es.js.map +1 -1
- package/dist/dangercircleicon.es.js.map +1 -1
- package/dist/datagrid.es.js +6 -6
- package/dist/datagrid.es.js.map +1 -1
- package/dist/datepicker.es.js.map +1 -1
- package/dist/daterangepicker.es.js.map +1 -1
- package/dist/defaultoptions.es.js.map +1 -1
- package/dist/desktopdatepicker.es.js.map +1 -1
- package/dist/desktopdaterangepicker.es.js.map +1 -1
- package/dist/desktoptimepicker.es.js.map +1 -1
- package/dist/dialog.es.js.map +1 -1
- package/dist/differenceincalendardays.es.js.map +1 -1
- package/dist/drawer.es.js.map +1 -1
- package/dist/en-us.es.js.map +1 -1
- package/dist/form.es.js.map +1 -1
- package/dist/format.es.js.map +1 -1
- package/dist/formatdistance.es.js.map +1 -1
- package/dist/formatters.es.js +68 -2
- package/dist/formatters.es.js.map +1 -1
- package/dist/formcheckbox.es.js.map +1 -1
- package/dist/formcombobox.es.js.map +1 -1
- package/dist/formdatepicker.es.js.map +1 -1
- package/dist/formdaterangepicker.es.js.map +1 -1
- package/dist/forminput.es.js.map +1 -1
- package/dist/formmultiselect.es.js.map +1 -1
- package/dist/formrating.es.js.map +1 -1
- package/dist/formselect.es.js.map +1 -1
- package/dist/formswitch.es.js.map +1 -1
- package/dist/formtextarea.es.js.map +1 -1
- package/dist/formtimepicker.es.js.map +1 -1
- package/dist/getisoweekyear.es.js.map +1 -1
- package/dist/gettimezoneoffsetinmilliseconds.es.js.map +1 -1
- package/dist/getweekyear.es.js.map +1 -1
- package/dist/iconbutton.es.js +3 -3
- package/dist/iconbutton.es.js.map +1 -1
- package/dist/infocircleicon.es.js.map +1 -1
- package/dist/label.es.js.map +1 -1
- package/dist/lightformatters.es.js.map +1 -1
- package/dist/localize.es.js.map +1 -1
- package/dist/longformatters.es.js.map +1 -1
- package/dist/match.es.js.map +1 -1
- package/dist/mobiledatepicker.es.js.map +1 -1
- package/dist/mobiledaterangepicker.es.js.map +1 -1
- package/dist/mobiletimepicker.es.js.map +1 -1
- package/dist/modal.es.js.map +1 -1
- package/dist/multiselect.es.js +3 -3
- package/dist/multiselect.es.js.map +1 -1
- package/dist/normalizedates.es.js.map +1 -1
- package/dist/popover.es.js.map +1 -1
- package/dist/printhtml.es.js.map +1 -1
- package/dist/progress.es.js.map +1 -1
- package/dist/protectedtokens.es.js.map +1 -1
- package/dist/radiogroup.es.js.map +1 -1
- package/dist/rating.es.js.map +1 -1
- package/dist/select.es.js +3 -3
- package/dist/select.es.js.map +1 -1
- package/dist/sheet.es.js.map +1 -1
- package/dist/sidebar.es.js +6 -6
- package/dist/sidebar.es.js.map +1 -1
- package/dist/skeleton.es.js.map +1 -1
- package/dist/startofweek.es.js.map +1 -1
- package/dist/startofweekyear.es.js.map +1 -1
- package/dist/styles.css +1 -0
- package/dist/successcircleicon.es.js.map +1 -1
- package/dist/swipabledrawer.es.js.map +1 -1
- package/dist/switch.es.js.map +1 -1
- package/dist/tabs.es.js.map +1 -1
- package/dist/textarea.es.js.map +1 -1
- package/dist/textfield.es.js.map +1 -1
- package/dist/timepicker.es.js.map +1 -1
- package/dist/timepickercontent.es.js.map +1 -1
- package/dist/toast-components.es.js.map +1 -1
- package/dist/toast.es.js.map +1 -1
- package/dist/tooltip.es.js +2 -2
- package/dist/tooltip.es.js.map +1 -1
- package/dist/use-mobile.es.js.map +1 -1
- package/dist/use-toast.es.js.map +1 -1
- package/dist/utils.es.js.map +1 -1
- package/dist/warningcircleicon.es.js.map +1 -1
- package/package.json +9 -9
- package/dist/style.css +0 -1
package/dist/rating.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating.es.js","sources":["../src/components/rating/Rating.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React from \"react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\nimport { Star } from \"@trsys-tech/matrix-icons\";\r\n\r\nconst ratingVariants = tv({\r\n base: \"flex items-center gap-0\",\r\n variants: {\r\n variant: {\r\n default: \"text-yellow-400\",\r\n primary: \"text-primary\",\r\n secondary: \"text-secondary\",\r\n success: \"text-success\",\r\n danger: \"text-danger\",\r\n warning: \"text-warning\",\r\n info: \"text-info\",\r\n },\r\n size: {\r\n sm: \"[&_*_svg]:h-5 [&_*_svg]:w-5\",\r\n md: \"[&_*_svg]:h-6 [&_*_svg]:w-6\",\r\n lg: \"[&_*_svg]:h-8 [&_*_svg]:w-8\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface RatingProps extends React.HTMLAttributes<HTMLDivElement> {\r\n precision?: \"half\" | \"full\";\r\n variant?: VariantProps<typeof ratingVariants>[\"variant\"];\r\n size?: VariantProps<typeof ratingVariants>[\"size\"];\r\n readOnly?: boolean;\r\n value?: number;\r\n onValueChange?: (value: number) => void;\r\n children?: React.ReactNode;\r\n disabled?: boolean;\r\n max?: number;\r\n Icon?: React.JSXElementConstructor<React.SVGProps<SVGSVGElement>>;\r\n}\r\n\r\nconst Rating = React.forwardRef<HTMLDivElement, RatingProps>((props, ref) => {\r\n const {\r\n precision = \"full\",\r\n variant,\r\n size,\r\n readOnly = false,\r\n onValueChange,\r\n value: _value = 0,\r\n className,\r\n children,\r\n max = 5,\r\n Icon = Star,\r\n disabled,\r\n ...restProps\r\n } = props;\r\n\r\n const [value, setValue] = React.useState(_value);\r\n const [hoveredValue, setHoveredValue] = React.useState<number | null>(null);\r\n\r\n const displayedValue = hoveredValue ?? value;\r\n\r\n React.useEffect(() => {\r\n setValue(_value);\r\n }, [_value]);\r\n\r\n const handleValueChange = (newValue: number) => {\r\n if (readOnly) return;\r\n setValue(newValue);\r\n onValueChange?.(newValue);\r\n };\r\n\r\n const handleHover = (newValue: number | null) => {\r\n if (readOnly) return;\r\n setHoveredValue(newValue);\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(ratingVariants({ variant, size, className }))}\r\n role=\"slider\"\r\n data-value={value}\r\n aria-valuenow={displayedValue}\r\n aria-valuemin={0}\r\n aria-valuemax={max}\r\n aria-valuetext={`${displayedValue} out of ${max}`}\r\n {...restProps}\r\n ref={ref}\r\n >\r\n {Array.from({ length: max }).map((_, index) => (\r\n <RatingItem\r\n Icon={Icon}\r\n index={index}\r\n key={index}\r\n displayedValue={displayedValue}\r\n onHover={handleHover}\r\n onValueChange={handleValueChange}\r\n precision={precision}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n />\r\n ))}\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\ntype RatingItemProps = {\r\n Icon: React.JSXElementConstructor<React.SVGProps<SVGSVGElement>>;\r\n index: number;\r\n onHover: (value: number | null) => void;\r\n onValueChange: (value: number) => void;\r\n displayedValue: number;\r\n precision: \"half\" | \"full\";\r\n readOnly: boolean;\r\n disabled?: boolean;\r\n};\r\n\r\nconst RatingItem = ({ Icon, index, displayedValue, onHover, onValueChange, precision, readOnly, disabled }: RatingItemProps) => {\r\n if (precision === \"half\") {\r\n return (\r\n <div\r\n className={cn(\r\n \"relative hover:scale-125 transition-transform px-0.5\",\r\n readOnly && \"hover:scale-100\",\r\n disabled && \"hover:scale-100 opacity-70\",\r\n )}\r\n >\r\n <Icon className={cn(\"stroke-gray-500\")} />\r\n <button\r\n type=\"button\"\r\n className={cn(\r\n \"absolute top-0 w-[calc(50%+2px)] left-0 overflow-hidden h-full\",\r\n readOnly && \"cursor-default\",\r\n disabled && \"cursor-default hover:scale-100 opacity-70\",\r\n )}\r\n onClick={() => onValueChange(index + 0.5)}\r\n onMouseEnter={() => onHover(index + 0.5)}\r\n onMouseLeave={() => onHover(null)}\r\n disabled={disabled}\r\n aria-label={`Set rating to ${index + 0.5}`}\r\n >\r\n <Icon\r\n className={cn(\r\n \"stroke-none absolute left-0.5 top-0 [mask-image:linear-gradient(to_right,_black_50%,_transparent_50%)]\",\r\n displayedValue >= index + 0.5 && \"stroke-current fill-current\",\r\n )}\r\n />\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={cn(\r\n \"absolute top-0 w-[calc(50%+2px)] right-0 overflow-hidden h-full\",\r\n readOnly && \"cursor-default\",\r\n disabled && \"cursor-default hover:scale-100 opacity-70\",\r\n )}\r\n onClick={() => onValueChange(index + 1)}\r\n onMouseEnter={() => onHover(index + 1)}\r\n onMouseLeave={() => onHover(null)}\r\n disabled={disabled}\r\n aria-label={`Set rating to ${index + 1}`}\r\n >\r\n <Icon\r\n className={cn(\r\n \"stroke-none absolute right-0.5 top-0 [mask-image:linear-gradient(to_left,_black_50%,_transparent_50%)]\",\r\n displayedValue >= index + 1 && \"stroke-current fill-current\",\r\n )}\r\n />\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n onClick={() => onValueChange(index + 1)}\r\n onMouseEnter={() => onHover(index + 1)}\r\n onMouseLeave={() => onHover(null)}\r\n className={cn(\r\n \"hover:scale-125 px-0.5 transition-transform\",\r\n readOnly && \"cursor-default hover:scale-100\",\r\n disabled && \"cursor-default hover:scale-100 opacity-70\",\r\n )}\r\n disabled={disabled}\r\n aria-label={`Set rating to ${index + 1}`}\r\n >\r\n <Icon className={cn(\"stroke-gray-500\", displayedValue >= index + 1 && \"stroke-current fill-current\")} />\r\n </button>\r\n );\r\n};\r\n\r\nexport { Rating, type RatingProps };\r\n"],"names":["ratingVariants","tv","Rating","React","props","ref","precision","variant","size","readOnly","onValueChange","_value","className","children","max","Icon","Star","disabled","restProps","value","setValue","hoveredValue","setHoveredValue","displayedValue","handleValueChange","newValue","handleHover","jsxs","cn","_","index","jsx","RatingItem","onHover"],"mappings":";;;;;AAQA,MAAMA,IAAiBC,EAAG;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,
|
|
1
|
+
{"version":3,"file":"rating.es.js","sources":["../src/components/rating/Rating.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React from \"react\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { tv, VariantProps } from \"tailwind-variants\";\r\nimport { Star } from \"@trsys-tech/matrix-icons\";\r\n\r\nconst ratingVariants = tv({\r\n base: \"flex items-center gap-0\",\r\n variants: {\r\n variant: {\r\n default: \"text-yellow-400\",\r\n primary: \"text-primary\",\r\n secondary: \"text-secondary\",\r\n success: \"text-success\",\r\n danger: \"text-danger\",\r\n warning: \"text-warning\",\r\n info: \"text-info\",\r\n },\r\n size: {\r\n sm: \"[&_*_svg]:h-5 [&_*_svg]:w-5\",\r\n md: \"[&_*_svg]:h-6 [&_*_svg]:w-6\",\r\n lg: \"[&_*_svg]:h-8 [&_*_svg]:w-8\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"md\",\r\n },\r\n});\r\n\r\ninterface RatingProps extends React.HTMLAttributes<HTMLDivElement> {\r\n precision?: \"half\" | \"full\";\r\n variant?: VariantProps<typeof ratingVariants>[\"variant\"];\r\n size?: VariantProps<typeof ratingVariants>[\"size\"];\r\n readOnly?: boolean;\r\n value?: number;\r\n onValueChange?: (value: number) => void;\r\n children?: React.ReactNode;\r\n disabled?: boolean;\r\n max?: number;\r\n Icon?: React.JSXElementConstructor<React.SVGProps<SVGSVGElement>>;\r\n}\r\n\r\nconst Rating = React.forwardRef<HTMLDivElement, RatingProps>((props, ref) => {\r\n const {\r\n precision = \"full\",\r\n variant,\r\n size,\r\n readOnly = false,\r\n onValueChange,\r\n value: _value = 0,\r\n className,\r\n children,\r\n max = 5,\r\n Icon = Star,\r\n disabled,\r\n ...restProps\r\n } = props;\r\n\r\n const [value, setValue] = React.useState(_value);\r\n const [hoveredValue, setHoveredValue] = React.useState<number | null>(null);\r\n\r\n const displayedValue = hoveredValue ?? value;\r\n\r\n React.useEffect(() => {\r\n setValue(_value);\r\n }, [_value]);\r\n\r\n const handleValueChange = (newValue: number) => {\r\n if (readOnly) return;\r\n setValue(newValue);\r\n onValueChange?.(newValue);\r\n };\r\n\r\n const handleHover = (newValue: number | null) => {\r\n if (readOnly) return;\r\n setHoveredValue(newValue);\r\n };\r\n\r\n return (\r\n <div\r\n className={cn(ratingVariants({ variant, size, className }))}\r\n role=\"slider\"\r\n data-value={value}\r\n aria-valuenow={displayedValue}\r\n aria-valuemin={0}\r\n aria-valuemax={max}\r\n aria-valuetext={`${displayedValue} out of ${max}`}\r\n {...restProps}\r\n ref={ref}\r\n >\r\n {Array.from({ length: max }).map((_, index) => (\r\n <RatingItem\r\n Icon={Icon}\r\n index={index}\r\n key={index}\r\n displayedValue={displayedValue}\r\n onHover={handleHover}\r\n onValueChange={handleValueChange}\r\n precision={precision}\r\n readOnly={readOnly}\r\n disabled={disabled}\r\n />\r\n ))}\r\n {children}\r\n </div>\r\n );\r\n});\r\n\r\ntype RatingItemProps = {\r\n Icon: React.JSXElementConstructor<React.SVGProps<SVGSVGElement>>;\r\n index: number;\r\n onHover: (value: number | null) => void;\r\n onValueChange: (value: number) => void;\r\n displayedValue: number;\r\n precision: \"half\" | \"full\";\r\n readOnly: boolean;\r\n disabled?: boolean;\r\n};\r\n\r\nconst RatingItem = ({ Icon, index, displayedValue, onHover, onValueChange, precision, readOnly, disabled }: RatingItemProps) => {\r\n if (precision === \"half\") {\r\n return (\r\n <div\r\n className={cn(\r\n \"relative hover:scale-125 transition-transform px-0.5\",\r\n readOnly && \"hover:scale-100\",\r\n disabled && \"hover:scale-100 opacity-70\",\r\n )}\r\n >\r\n <Icon className={cn(\"stroke-gray-500\")} />\r\n <button\r\n type=\"button\"\r\n className={cn(\r\n \"absolute top-0 w-[calc(50%+2px)] left-0 overflow-hidden h-full\",\r\n readOnly && \"cursor-default\",\r\n disabled && \"cursor-default hover:scale-100 opacity-70\",\r\n )}\r\n onClick={() => onValueChange(index + 0.5)}\r\n onMouseEnter={() => onHover(index + 0.5)}\r\n onMouseLeave={() => onHover(null)}\r\n disabled={disabled}\r\n aria-label={`Set rating to ${index + 0.5}`}\r\n >\r\n <Icon\r\n className={cn(\r\n \"stroke-none absolute left-0.5 top-0 [mask-image:linear-gradient(to_right,_black_50%,_transparent_50%)]\",\r\n displayedValue >= index + 0.5 && \"stroke-current fill-current\",\r\n )}\r\n />\r\n </button>\r\n <button\r\n type=\"button\"\r\n className={cn(\r\n \"absolute top-0 w-[calc(50%+2px)] right-0 overflow-hidden h-full\",\r\n readOnly && \"cursor-default\",\r\n disabled && \"cursor-default hover:scale-100 opacity-70\",\r\n )}\r\n onClick={() => onValueChange(index + 1)}\r\n onMouseEnter={() => onHover(index + 1)}\r\n onMouseLeave={() => onHover(null)}\r\n disabled={disabled}\r\n aria-label={`Set rating to ${index + 1}`}\r\n >\r\n <Icon\r\n className={cn(\r\n \"stroke-none absolute right-0.5 top-0 [mask-image:linear-gradient(to_left,_black_50%,_transparent_50%)]\",\r\n displayedValue >= index + 1 && \"stroke-current fill-current\",\r\n )}\r\n />\r\n </button>\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n onClick={() => onValueChange(index + 1)}\r\n onMouseEnter={() => onHover(index + 1)}\r\n onMouseLeave={() => onHover(null)}\r\n className={cn(\r\n \"hover:scale-125 px-0.5 transition-transform\",\r\n readOnly && \"cursor-default hover:scale-100\",\r\n disabled && \"cursor-default hover:scale-100 opacity-70\",\r\n )}\r\n disabled={disabled}\r\n aria-label={`Set rating to ${index + 1}`}\r\n >\r\n <Icon className={cn(\"stroke-gray-500\", displayedValue >= index + 1 && \"stroke-current fill-current\")} />\r\n </button>\r\n );\r\n};\r\n\r\nexport { Rating, type RatingProps };\r\n"],"names":["ratingVariants","tv","Rating","React","props","ref","precision","variant","size","readOnly","onValueChange","_value","className","children","max","Icon","Star","disabled","restProps","value","setValue","hoveredValue","setHoveredValue","displayedValue","handleValueChange","newValue","handleHover","jsxs","cn","_","index","jsx","RatingItem","onHover"],"mappings":";;;;;AAQA,MAAMA,IAAiBC,EAAG;AAAA,EACxB,MAAM;AAAA,EACN,UAAU;AAAA,IACR,SAAS;AAAA,MACP,SAAS;AAAA,MACT,SAAS;AAAA,MACT,WAAW;AAAA,MACX,SAAS;AAAA,MACT,QAAQ;AAAA,MACR,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAAA,IAER,MAAM;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,iBAAiB;AAAA,IACf,SAAS;AAAA,IACT,MAAM;AAAA,EAAA;AAEV,CAAC,GAeKC,IAASC,EAAM,WAAwC,CAACC,GAAOC,MAAQ;AAC3E,QAAM;AAAA,IACJ,WAAAC,IAAY;AAAA,IACZ,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,eAAAC;AAAA,IACA,OAAOC,IAAS;AAAA,IAChB,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,KAAAC,IAAM;AAAA,IACN,MAAAC,IAAOC;AAAA,IACP,UAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,IACDd,GAEE,CAACe,GAAOC,CAAQ,IAAIjB,EAAM,SAASQ,CAAM,GACzC,CAACU,GAAcC,CAAe,IAAInB,EAAM,SAAwB,IAAI,GAEpEoB,IAAiBF,KAAgBF;AAEvChB,EAAAA,EAAM,UAAU,MAAM;AACpB,IAAAiB,EAAST,CAAM;AAAA,EACjB,GAAG,CAACA,CAAM,CAAC;AAEX,QAAMa,IAAoB,CAACC,MAAqB;AAC9C,IAAIhB,MACJW,EAASK,CAAQ,GACjBf,IAAgBe,CAAQ;AAAA,EAC1B,GAEMC,IAAc,CAACD,MAA4B;AAC/C,IAAIhB,KACJa,EAAgBG,CAAQ;AAAA,EAC1B;AAEA,SACE,gBAAAE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG5B,EAAe,EAAE,SAAAO,GAAS,MAAAC,GAAM,WAAAI,EAAA,CAAW,CAAC;AAAA,MAC1D,MAAK;AAAA,MACL,cAAYO;AAAA,MACZ,iBAAeI;AAAA,MACf,iBAAe;AAAA,MACf,iBAAeT;AAAA,MACf,kBAAgB,GAAGS,CAAc,WAAWT,CAAG;AAAA,MAC9C,GAAGI;AAAA,MACJ,KAAAb;AAAA,MAEC,UAAA;AAAA,QAAA,MAAM,KAAK,EAAE,QAAQS,EAAA,CAAK,EAAE,IAAI,CAACe,GAAGC,MACnC,gBAAAC;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,MAAAjB;AAAA,YACA,OAAAe;AAAA,YAEA,gBAAAP;AAAA,YACA,SAASG;AAAA,YACT,eAAeF;AAAA,YACf,WAAAlB;AAAA,YACA,UAAAG;AAAA,YACA,UAAAQ;AAAA,UAAA;AAAA,UANKa;AAAA,QAAA,CAQR;AAAA,QACAjB;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGP,CAAC,GAaKmB,IAAa,CAAC,EAAE,MAAAjB,GAAM,OAAAe,GAAO,gBAAAP,GAAgB,SAAAU,GAAS,eAAAvB,GAAe,WAAAJ,GAAW,UAAAG,GAAU,UAAAQ,QAC1FX,MAAc,SAEd,gBAAAqB;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,WAAWC;AAAA,MACT;AAAA,MACAnB,KAAY;AAAA,MACZQ,KAAY;AAAA,IAAA;AAAA,IAGd,UAAA;AAAA,MAAA,gBAAAc,EAAChB,GAAA,EAAK,WAAWa,EAAG,iBAAiB,EAAA,CAAG;AAAA,MACxC,gBAAAG;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWH;AAAA,YACT;AAAA,YACAnB,KAAY;AAAA,YACZQ,KAAY;AAAA,UAAA;AAAA,UAEd,SAAS,MAAMP,EAAcoB,IAAQ,GAAG;AAAA,UACxC,cAAc,MAAMG,EAAQH,IAAQ,GAAG;AAAA,UACvC,cAAc,MAAMG,EAAQ,IAAI;AAAA,UAChC,UAAAhB;AAAA,UACA,cAAY,iBAAiBa,IAAQ,GAAG;AAAA,UAExC,UAAA,gBAAAC;AAAA,YAAChB;AAAA,YAAA;AAAA,cACC,WAAWa;AAAA,gBACT;AAAA,gBACAL,KAAkBO,IAAQ,OAAO;AAAA,cAAA;AAAA,YACnC;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,MAEF,gBAAAC;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,WAAWH;AAAA,YACT;AAAA,YACAnB,KAAY;AAAA,YACZQ,KAAY;AAAA,UAAA;AAAA,UAEd,SAAS,MAAMP,EAAcoB,IAAQ,CAAC;AAAA,UACtC,cAAc,MAAMG,EAAQH,IAAQ,CAAC;AAAA,UACrC,cAAc,MAAMG,EAAQ,IAAI;AAAA,UAChC,UAAAhB;AAAA,UACA,cAAY,iBAAiBa,IAAQ,CAAC;AAAA,UAEtC,UAAA,gBAAAC;AAAA,YAAChB;AAAA,YAAA;AAAA,cACC,WAAWa;AAAA,gBACT;AAAA,gBACAL,KAAkBO,IAAQ,KAAK;AAAA,cAAA;AAAA,YACjC;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAAA,IAMJ,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,SAAS,MAAMrB,EAAcoB,IAAQ,CAAC;AAAA,IACtC,cAAc,MAAMG,EAAQH,IAAQ,CAAC;AAAA,IACrC,cAAc,MAAMG,EAAQ,IAAI;AAAA,IAChC,WAAWL;AAAA,MACT;AAAA,MACAnB,KAAY;AAAA,MACZQ,KAAY;AAAA,IAAA;AAAA,IAEd,UAAAA;AAAA,IACA,cAAY,iBAAiBa,IAAQ,CAAC;AAAA,IAEtC,UAAA,gBAAAC,EAAChB,KAAK,WAAWa,EAAG,mBAAmBL,KAAkBO,IAAQ,KAAK,6BAA6B,EAAA,CAAG;AAAA,EAAA;AAAA;"}
|
package/dist/select.es.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
2
|
import * as l from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { Check as x, ChevronDown as m, ChevronUp as b, XMark as w } from "@trsys-tech/matrix-icons";
|
|
4
4
|
import * as e from "@radix-ui/react-select";
|
|
5
5
|
import { cn as s } from "./utils.es.js";
|
|
6
6
|
const p = l.createContext({ onClear: () => {
|
|
@@ -29,7 +29,7 @@ const P = e.Group, k = e.Value, v = l.forwardRef(
|
|
|
29
29
|
children: [
|
|
30
30
|
o,
|
|
31
31
|
/* @__PURE__ */ n("div", { className: "flex items-center gap-2", children: [
|
|
32
|
-
a && c ? /* @__PURE__ */ t(e.Icon, { asChild: !0, onPointerDown: y, onClickCapture: h, children: /* @__PURE__ */ t(
|
|
32
|
+
a && c ? /* @__PURE__ */ t(e.Icon, { asChild: !0, onPointerDown: y, onClickCapture: h, children: /* @__PURE__ */ t(w, { className: "h-4.5 w-4.5" }) }) : null,
|
|
33
33
|
/* @__PURE__ */ t(e.Icon, { asChild: !0, children: /* @__PURE__ */ t(m, { className: "h-4.5 w-4.5 text-primary group-data-[state=open]:rotate-180 transition-transform" }) })
|
|
34
34
|
] })
|
|
35
35
|
]
|
|
@@ -82,7 +82,7 @@ const R = l.forwardRef(
|
|
|
82
82
|
),
|
|
83
83
|
...a,
|
|
84
84
|
children: [
|
|
85
|
-
/* @__PURE__ */ t("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ t(e.ItemIndicator, { children: /* @__PURE__ */ t(
|
|
85
|
+
/* @__PURE__ */ t("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ t(e.ItemIndicator, { children: /* @__PURE__ */ t(x, { className: "h-4 w-4" }) }) }),
|
|
86
86
|
/* @__PURE__ */ t(e.ItemText, { children: o })
|
|
87
87
|
]
|
|
88
88
|
}
|
package/dist/select.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.es.js","sources":["../src/components/select/Select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Check, ChevronDown, ChevronUp, XMark } from \"@trsys-tech/matrix-icons\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport type { SelectValueProps, SelectGroupProps } from \"@radix-ui/react-select\";\n\nimport { cn } from \"../../lib/utils\";\n\ntype ClearSelectContextValue = {\n onClear: () => void;\n value: string | undefined;\n};\n\nconst SelectContext = React.createContext<ClearSelectContextValue>({ onClear: () => {}, value: undefined });\n\nconst Select = ({ onValueChange, value, ...props }: SelectPrimitive.SelectProps) => {\n const onClear = () => {\n onValueChange?.(\"\");\n };\n\n return (\n <SelectContext.Provider value={{ onClear, value }}>\n <SelectPrimitive.Root {...props} value={value} onValueChange={onValueChange} />\n </SelectContext.Provider>\n );\n};\nSelect.displayName = SelectPrimitive.Root.displayName;\ntype SelectProps = React.ComponentProps<typeof Select>;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\ntype SelectTriggerProps = React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n clearable?: boolean;\n};\n\nconst SelectTrigger = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Trigger>, SelectTriggerProps>(\n ({ className, children, clearable, ...props }: SelectTriggerProps, ref) => {\n const { onClear, value } = React.useContext(SelectContext);\n\n const handlePointerDown = (e: React.PointerEvent) => {\n e.stopPropagation();\n };\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"group flex h-8 w-full items-center justify-between whitespace-nowrap rounded-sm border border-input bg-transparent px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground hover:border hover:border-primary focus:border focus:border-primary focus:outline-none focus:ring focus:ring-primary-100 disabled:cursor-not-allowed disabled:bg-gray-100 disabled:text-text-300 disabled:border-none [&>span]:line-clamp-1 [&_svg]:disabled:text-text-300\",\n className,\n )}\n data-value={value}\n {...props}\n >\n {children}\n <div className=\"flex items-center gap-2\">\n {clearable && value ? (\n <SelectPrimitive.Icon asChild onPointerDown={handlePointerDown} onClickCapture={onClear}>\n <XMark className=\"h-4.5 w-4.5\" />\n </SelectPrimitive.Icon>\n ) : null}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4.5 w-4.5 text-primary group-data-[state=open]:rotate-180 transition-transform\" />\n </SelectPrimitive.Icon>\n </div>\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n// type SelectTriggerProps = React.ComponentProps<typeof SelectTrigger>;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton ref={ref} className={cn(\"flex cursor-default items-center justify-center py-1\", className)} {...props}>\n <ChevronUp />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\ntype SelectScrollUpButtonProps = React.ComponentProps<typeof SelectScrollUpButton>;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton ref={ref} className={cn(\"flex cursor-default items-center justify-center py-1\", className)} {...props}>\n <ChevronDown />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\ntype SelectScrollDownButtonProps = React.ComponentProps<typeof SelectScrollDownButton>;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 max-h-[--radix-select-content-available-height]\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\"p-1\", position === \"popper\" && \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\")}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\ntype SelectContentProps = React.ComponentProps<typeof SelectContent>;\n\nconst SelectLabel = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Label>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>>(\n ({ className, ...props }, ref) => <SelectPrimitive.Label ref={ref} className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)} {...props} />,\n);\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\ntype SelectLabelProps = React.ComponentProps<typeof SelectLabel>;\n\nconst SelectItem = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Item>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-200 data-[active=true]:bg-gray-300 data-[active=true]:font-bold data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ),\n);\nSelectItem.displayName = SelectPrimitive.Item.displayName;\ntype SelectItemProps = React.ComponentProps<typeof SelectItem>;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => <SelectPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-muted\", className)} {...props} />);\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\ntype SelectSeparatorProps = React.ComponentProps<typeof SelectSeparator>;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n type SelectProps,\n type SelectGroupProps,\n type SelectValueProps,\n type SelectTriggerProps,\n type SelectContentProps,\n type SelectLabelProps,\n type SelectItemProps,\n type SelectSeparatorProps,\n type SelectScrollUpButtonProps,\n type SelectScrollDownButtonProps,\n};\n"],"names":["SelectContext","React","Select","onValueChange","value","props","onClear","jsx","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","clearable","ref","handlePointerDown","e","jsxs","cn","XMark","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.es.js","sources":["../src/components/select/Select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Check, ChevronDown, ChevronUp, XMark } from \"@trsys-tech/matrix-icons\";\nimport * as SelectPrimitive from \"@radix-ui/react-select\";\nimport type { SelectValueProps, SelectGroupProps } from \"@radix-ui/react-select\";\n\nimport { cn } from \"../../lib/utils\";\n\ntype ClearSelectContextValue = {\n onClear: () => void;\n value: string | undefined;\n};\n\nconst SelectContext = React.createContext<ClearSelectContextValue>({ onClear: () => {}, value: undefined });\n\nconst Select = ({ onValueChange, value, ...props }: SelectPrimitive.SelectProps) => {\n const onClear = () => {\n onValueChange?.(\"\");\n };\n\n return (\n <SelectContext.Provider value={{ onClear, value }}>\n <SelectPrimitive.Root {...props} value={value} onValueChange={onValueChange} />\n </SelectContext.Provider>\n );\n};\nSelect.displayName = SelectPrimitive.Root.displayName;\ntype SelectProps = React.ComponentProps<typeof Select>;\n\nconst SelectGroup = SelectPrimitive.Group;\n\nconst SelectValue = SelectPrimitive.Value;\n\ntype SelectTriggerProps = React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n clearable?: boolean;\n};\n\nconst SelectTrigger = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Trigger>, SelectTriggerProps>(\n ({ className, children, clearable, ...props }: SelectTriggerProps, ref) => {\n const { onClear, value } = React.useContext(SelectContext);\n\n const handlePointerDown = (e: React.PointerEvent) => {\n e.stopPropagation();\n };\n\n return (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"group flex h-8 w-full items-center justify-between whitespace-nowrap rounded-sm border border-input bg-transparent px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground hover:border hover:border-primary focus:border focus:border-primary focus:outline-none focus:ring focus:ring-primary-100 disabled:cursor-not-allowed disabled:bg-gray-100 disabled:text-text-300 disabled:border-none [&>span]:line-clamp-1 [&_svg]:disabled:text-text-300\",\n className,\n )}\n data-value={value}\n {...props}\n >\n {children}\n <div className=\"flex items-center gap-2\">\n {clearable && value ? (\n <SelectPrimitive.Icon asChild onPointerDown={handlePointerDown} onClickCapture={onClear}>\n <XMark className=\"h-4.5 w-4.5\" />\n </SelectPrimitive.Icon>\n ) : null}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4.5 w-4.5 text-primary group-data-[state=open]:rotate-180 transition-transform\" />\n </SelectPrimitive.Icon>\n </div>\n </SelectPrimitive.Trigger>\n );\n },\n);\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName;\n// type SelectTriggerProps = React.ComponentProps<typeof SelectTrigger>;\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton ref={ref} className={cn(\"flex cursor-default items-center justify-center py-1\", className)} {...props}>\n <ChevronUp />\n </SelectPrimitive.ScrollUpButton>\n));\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;\ntype SelectScrollUpButtonProps = React.ComponentProps<typeof SelectScrollUpButton>;\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton ref={ref} className={cn(\"flex cursor-default items-center justify-center py-1\", className)} {...props}>\n <ChevronDown />\n </SelectPrimitive.ScrollDownButton>\n));\nSelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;\ntype SelectScrollDownButtonProps = React.ComponentProps<typeof SelectScrollDownButton>;\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 max-h-[--radix-select-content-available-height]\",\n className,\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\"p-1\", position === \"popper\" && \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\")}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n));\nSelectContent.displayName = SelectPrimitive.Content.displayName;\ntype SelectContentProps = React.ComponentProps<typeof SelectContent>;\n\nconst SelectLabel = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Label>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>>(\n ({ className, ...props }, ref) => <SelectPrimitive.Label ref={ref} className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)} {...props} />,\n);\nSelectLabel.displayName = SelectPrimitive.Label.displayName;\ntype SelectLabelProps = React.ComponentProps<typeof SelectLabel>;\n\nconst SelectItem = React.forwardRef<React.ElementRef<typeof SelectPrimitive.Item>, React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>>(\n ({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-gray-200 data-[active=true]:bg-gray-300 data-[active=true]:font-bold data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className,\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n ),\n);\nSelectItem.displayName = SelectPrimitive.Item.displayName;\ntype SelectItemProps = React.ComponentProps<typeof SelectItem>;\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => <SelectPrimitive.Separator ref={ref} className={cn(\"-mx-1 my-1 h-px bg-muted\", className)} {...props} />);\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName;\ntype SelectSeparatorProps = React.ComponentProps<typeof SelectSeparator>;\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n type SelectProps,\n type SelectGroupProps,\n type SelectValueProps,\n type SelectTriggerProps,\n type SelectContentProps,\n type SelectLabelProps,\n type SelectItemProps,\n type SelectSeparatorProps,\n type SelectScrollUpButtonProps,\n type SelectScrollDownButtonProps,\n};\n"],"names":["SelectContext","React","Select","onValueChange","value","props","onClear","jsx","SelectPrimitive","SelectGroup","SelectValue","SelectTrigger","className","children","clearable","ref","handlePointerDown","e","jsxs","cn","XMark","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator"],"mappings":"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"}
|
package/dist/sheet.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet.es.js","sources":["../src/components/sheet/Sheet.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\r\nimport type {\r\n DialogProps as SheetProps,\r\n DialogTriggerProps as SheetTriggerProps,\r\n DialogCloseProps as SheetCloseProps,\r\n DialogPortalProps as SheetPortalProps,\r\n DialogOverlayProps as SheetOverlayProps,\r\n DialogDescriptionProps as SheetDescriptionProps,\r\n DialogTitleProps as SheetTitleProps,\r\n} from \"@radix-ui/react-dialog\";\r\nimport { tv, type VariantProps } from \"tailwind-variants\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { XMark } from \"@trsys-tech/matrix-icons\";\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\nconst SheetClose = SheetPrimitive.Close;\r\n\r\nconst SheetPortal = SheetPrimitive.Portal;\r\n\r\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(\r\n ({ className, ...props }, ref) => (\r\n <SheetPrimitive.Overlay\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className,\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n ),\r\n);\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\nconst sheetVariants = tv({\r\n base: \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\r\n variants: {\r\n side: {\r\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\r\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\r\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\r\n right: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\r\n },\r\n },\r\n defaultVariants: {\r\n side: \"right\",\r\n },\r\n});\r\n\r\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {}\r\n\r\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\r\n ({ side = \"right\", className, children, ...props }, ref) => (\r\n <SheetPortal>\r\n <SheetOverlay />\r\n <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\r\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\r\n <XMark className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Close</span>\r\n </SheetPrimitive.Close>\r\n {children}\r\n </SheetPrimitive.Content>\r\n </SheetPortal>\r\n ),\r\n);\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />\r\n);\r\nSheetHeader.displayName = \"SheetHeader\";\r\ntype SheetHeaderProps = React.ComponentProps<typeof SheetHeader>;\r\n\r\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\r\n);\r\nSheetFooter.displayName = \"SheetFooter\";\r\ntype SheetFooterProps = React.ComponentProps<typeof SheetFooter>;\r\n\r\nconst SheetTitle = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Title>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>>(\r\n ({ className, ...props }, ref) => <SheetPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />,\r\n);\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst SheetDescription = React.forwardRef<\r\n React.ElementRef<typeof SheetPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\r\n>(({ className, ...props }, ref) => <SheetPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />);\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport {\r\n Sheet,\r\n SheetPortal,\r\n SheetOverlay,\r\n SheetTrigger,\r\n SheetClose,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n type SheetProps,\r\n type SheetPortalProps,\r\n type SheetOverlayProps,\r\n type SheetTriggerProps,\r\n type SheetCloseProps,\r\n type SheetContentProps,\r\n type SheetHeaderProps,\r\n type SheetFooterProps,\r\n type SheetTitleProps,\r\n type SheetDescriptionProps,\r\n};\r\n"],"names":["Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","React","className","props","ref","jsx","cn","sheetVariants","tv","SheetContent","side","children","jsxs","XMark","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":";;;;;;AAkBA,MAAMA,IAAQC,EAAe,MAEvBC,IAAeD,EAAe,SAE9BE,IAAaF,EAAe,OAE5BG,IAAcH,EAAe,QAE7BI,IAAeC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,
|
|
1
|
+
{"version":3,"file":"sheet.es.js","sources":["../src/components/sheet/Sheet.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\r\nimport type {\r\n DialogProps as SheetProps,\r\n DialogTriggerProps as SheetTriggerProps,\r\n DialogCloseProps as SheetCloseProps,\r\n DialogPortalProps as SheetPortalProps,\r\n DialogOverlayProps as SheetOverlayProps,\r\n DialogDescriptionProps as SheetDescriptionProps,\r\n DialogTitleProps as SheetTitleProps,\r\n} from \"@radix-ui/react-dialog\";\r\nimport { tv, type VariantProps } from \"tailwind-variants\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { XMark } from \"@trsys-tech/matrix-icons\";\r\n\r\nconst Sheet = SheetPrimitive.Root;\r\n\r\nconst SheetTrigger = SheetPrimitive.Trigger;\r\n\r\nconst SheetClose = SheetPrimitive.Close;\r\n\r\nconst SheetPortal = SheetPrimitive.Portal;\r\n\r\nconst SheetOverlay = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Overlay>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>>(\r\n ({ className, ...props }, ref) => (\r\n <SheetPrimitive.Overlay\r\n className={cn(\r\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\r\n className,\r\n )}\r\n {...props}\r\n ref={ref}\r\n />\r\n ),\r\n);\r\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\r\n\r\nconst sheetVariants = tv({\r\n base: \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\r\n variants: {\r\n side: {\r\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\r\n bottom: \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\r\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\r\n right: \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\r\n },\r\n },\r\n defaultVariants: {\r\n side: \"right\",\r\n },\r\n});\r\n\r\ninterface SheetContentProps extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>, VariantProps<typeof sheetVariants> {}\r\n\r\nconst SheetContent = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Content>, SheetContentProps>(\r\n ({ side = \"right\", className, children, ...props }, ref) => (\r\n <SheetPortal>\r\n <SheetOverlay />\r\n <SheetPrimitive.Content ref={ref} className={cn(sheetVariants({ side }), className)} {...props}>\r\n <SheetPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary\">\r\n <XMark className=\"h-4 w-4\" />\r\n <span className=\"sr-only\">Close</span>\r\n </SheetPrimitive.Close>\r\n {children}\r\n </SheetPrimitive.Content>\r\n </SheetPortal>\r\n ),\r\n);\r\nSheetContent.displayName = SheetPrimitive.Content.displayName;\r\n\r\nconst SheetHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div className={cn(\"flex flex-col space-y-2 text-center sm:text-left\", className)} {...props} />\r\n);\r\nSheetHeader.displayName = \"SheetHeader\";\r\ntype SheetHeaderProps = React.ComponentProps<typeof SheetHeader>;\r\n\r\nconst SheetFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\r\n <div className={cn(\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\", className)} {...props} />\r\n);\r\nSheetFooter.displayName = \"SheetFooter\";\r\ntype SheetFooterProps = React.ComponentProps<typeof SheetFooter>;\r\n\r\nconst SheetTitle = React.forwardRef<React.ElementRef<typeof SheetPrimitive.Title>, React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>>(\r\n ({ className, ...props }, ref) => <SheetPrimitive.Title ref={ref} className={cn(\"text-lg font-semibold text-foreground\", className)} {...props} />,\r\n);\r\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\r\n\r\nconst SheetDescription = React.forwardRef<\r\n React.ElementRef<typeof SheetPrimitive.Description>,\r\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\r\n>(({ className, ...props }, ref) => <SheetPrimitive.Description ref={ref} className={cn(\"text-sm text-muted-foreground\", className)} {...props} />);\r\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\r\n\r\nexport {\r\n Sheet,\r\n SheetPortal,\r\n SheetOverlay,\r\n SheetTrigger,\r\n SheetClose,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n type SheetProps,\r\n type SheetPortalProps,\r\n type SheetOverlayProps,\r\n type SheetTriggerProps,\r\n type SheetCloseProps,\r\n type SheetContentProps,\r\n type SheetHeaderProps,\r\n type SheetFooterProps,\r\n type SheetTitleProps,\r\n type SheetDescriptionProps,\r\n};\r\n"],"names":["Sheet","SheetPrimitive","SheetTrigger","SheetClose","SheetPortal","SheetOverlay","React","className","props","ref","jsx","cn","sheetVariants","tv","SheetContent","side","children","jsxs","XMark","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":";;;;;;AAkBA,MAAMA,IAAQC,EAAe,MAEvBC,IAAeD,EAAe,SAE9BE,IAAaF,EAAe,OAE5BG,IAAcH,EAAe,QAE7BI,IAAeC,EAAM;AAAA,EACzB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MACxB,gBAAAC;AAAA,IAACT,EAAe;AAAA,IAAf;AAAA,MACC,WAAWU;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MACJ,KAAAC;AAAA,IAAA;AAAA,EAAA;AAGN;AACAJ,EAAa,cAAcJ,EAAe,QAAQ;AAElD,MAAMW,IAAgBC,EAAG;AAAA,EACvB,MAAM;AAAA,EACN,UAAU;AAAA,IACR,MAAM;AAAA,MACJ,KAAK;AAAA,MACL,QAAQ;AAAA,MACR,MAAM;AAAA,MACN,OAAO;AAAA,IAAA;AAAA,EACT;AAAA,EAEF,iBAAiB;AAAA,IACf,MAAM;AAAA,EAAA;AAEV,CAAC,GAIKC,IAAeR,EAAM;AAAA,EACzB,CAAC,EAAE,MAAAS,IAAO,SAAS,WAAAR,GAAW,UAAAS,GAAU,GAAGR,EAAA,GAASC,MAClD,gBAAAQ,EAACb,GAAA,EACC,UAAA;AAAA,IAAA,gBAAAM,EAACL,GAAA,EAAa;AAAA,IACd,gBAAAY,EAAChB,EAAe,SAAf,EAAuB,KAAAQ,GAAU,WAAWE,EAAGC,EAAc,EAAE,MAAAG,GAAM,GAAGR,CAAS,GAAI,GAAGC,GACvF,UAAA;AAAA,MAAA,gBAAAS,EAAChB,EAAe,OAAf,EAAqB,WAAU,4OAC9B,UAAA;AAAA,QAAA,gBAAAS,EAACQ,GAAA,EAAM,WAAU,UAAA,CAAU;AAAA,QAC3B,gBAAAR,EAAC,QAAA,EAAK,WAAU,WAAU,UAAA,QAAA,CAAK;AAAA,MAAA,GACjC;AAAA,MACCM;AAAA,IAAA,EAAA,CACH;AAAA,EAAA,EAAA,CACF;AAEJ;AACAF,EAAa,cAAcb,EAAe,QAAQ;AAElD,MAAMkB,IAAc,CAAC,EAAE,WAAAZ,GAAW,GAAGC,EAAA,MACnC,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAG,oDAAoDJ,CAAS,GAAI,GAAGC,EAAA,CAAO;AAEhGW,EAAY,cAAc;AAG1B,MAAMC,IAAc,CAAC,EAAE,WAAAb,GAAW,GAAGC,EAAA,MACnC,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAG,iEAAiEJ,CAAS,GAAI,GAAGC,EAAA,CAAO;AAE7GY,EAAY,cAAc;AAG1B,MAAMC,IAAaf,EAAM;AAAA,EACvB,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAACT,EAAe,OAAf,EAAqB,KAAAQ,GAAU,WAAWE,EAAG,yCAAyCJ,CAAS,GAAI,GAAGC,EAAA,CAAO;AAClJ;AACAa,EAAW,cAAcpB,EAAe,MAAM;AAE9C,MAAMqB,IAAmBhB,EAAM,WAG7B,CAAC,EAAE,WAAAC,GAAW,GAAGC,EAAA,GAASC,MAAQ,gBAAAC,EAACT,EAAe,aAAf,EAA2B,KAAAQ,GAAU,WAAWE,EAAG,iCAAiCJ,CAAS,GAAI,GAAGC,GAAO,CAAE;AAClJc,EAAiB,cAAcrB,EAAe,YAAY;"}
|
package/dist/sidebar.es.js
CHANGED
|
@@ -7,9 +7,9 @@ import { cn as d } from "./utils.es.js";
|
|
|
7
7
|
import { Skeleton as R } from "./skeleton.es.js";
|
|
8
8
|
import { Separator as E } from "./separator.es.js";
|
|
9
9
|
import { useIsMobile as B } from "./use-mobile.es.js";
|
|
10
|
-
import {
|
|
10
|
+
import { Tooltip as T, TooltipTrigger as A, TooltipContent as D, TooltipProvider as O } from "./tooltip.es.js";
|
|
11
11
|
import { Sheet as G, SheetContent as H, SheetHeader as j, SheetTitle as K, SheetDescription as L } from "./sheet.es.js";
|
|
12
|
-
const V = "sidebar:state", $ =
|
|
12
|
+
const V = "sidebar:state", $ = 3600 * 24 * 7, y = "16rem", C = "18rem", N = "4rem", P = "b", M = i.createContext(null);
|
|
13
13
|
function _() {
|
|
14
14
|
const e = i.useContext(M);
|
|
15
15
|
if (!e)
|
|
@@ -40,7 +40,7 @@ const W = i.forwardRef(({ defaultOpen: e = !0, open: a, onOpenChange: t, classNa
|
|
|
40
40
|
}),
|
|
41
41
|
[S, c, m, b, w]
|
|
42
42
|
);
|
|
43
|
-
return /* @__PURE__ */ r(M.Provider, { value: k, children: /* @__PURE__ */ r(
|
|
43
|
+
return /* @__PURE__ */ r(M.Provider, { value: k, children: /* @__PURE__ */ r(O, { delayDuration: 0, children: /* @__PURE__ */ r(
|
|
44
44
|
"div",
|
|
45
45
|
{
|
|
46
46
|
style: { ...s },
|
|
@@ -309,9 +309,9 @@ const oe = z({
|
|
|
309
309
|
);
|
|
310
310
|
return s ? (typeof s == "string" && (s = {
|
|
311
311
|
children: s
|
|
312
|
-
}), /* @__PURE__ */ x(
|
|
313
|
-
/* @__PURE__ */ r(
|
|
314
|
-
/* @__PURE__ */ r(
|
|
312
|
+
}), /* @__PURE__ */ x(T, { children: [
|
|
313
|
+
/* @__PURE__ */ r(A, { asChild: !0, children: c }),
|
|
314
|
+
/* @__PURE__ */ r(D, { side: "right", align: "center", hidden: h !== "collapsed" || g, ...s })
|
|
315
315
|
] })) : c;
|
|
316
316
|
});
|
|
317
317
|
se.displayName = "SidebarMenuButton";
|
package/dist/sidebar.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar.es.js","sources":["../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { VariantProps, tv } from \"tailwind-variants\";\r\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Skeleton } from \"../skeleton/Skeleton\";\r\nimport { Separator } from \"../separator/Separator\";\r\nimport { useIsMobile } from \"../../lib/hooks/use-mobile\";\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip/Tooltip\";\r\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\r\n\r\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = \"16rem\";\r\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\r\nconst SIDEBAR_WIDTH_ICON = \"4rem\";\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\r\n\r\ntype SidebarContext = {\r\n state: \"expanded\" | \"collapsed\";\r\n open: boolean;\r\n setOpen: (open: boolean) => void;\r\n isMobile: boolean;\r\n toggleSidebar: () => void;\r\n};\r\n\r\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\r\n\r\nfunction useSidebar() {\r\n const context = React.useContext(SidebarContext);\r\n if (!context) {\r\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\r\n }\r\n\r\n return context;\r\n}\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n defaultOpen?: boolean;\r\n open?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n }\r\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\r\n const isMobile = useIsMobile();\r\n\r\n // This is the internal state of the sidebar.\r\n // We use openProp and setOpenProp for control from outside the component.\r\n const [_open, _setOpen] = React.useState(defaultOpen);\r\n const open = openProp ?? _open;\r\n const setOpen = React.useCallback(\r\n (value: boolean | ((value: boolean) => boolean)) => {\r\n const openState = typeof value === \"function\" ? value(open) : value;\r\n if (setOpenProp) {\r\n setOpenProp(openState);\r\n } else {\r\n _setOpen(openState);\r\n }\r\n\r\n // This sets the cookie to keep the sidebar state.\r\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n },\r\n [setOpenProp, open],\r\n );\r\n\r\n // Helper to toggle the sidebar.\r\n const toggleSidebar = React.useCallback(() => {\r\n return setOpen(open => !open);\r\n }, [setOpen]);\r\n\r\n // Adds a keyboard shortcut to toggle the sidebar.\r\n React.useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n event.preventDefault();\r\n toggleSidebar();\r\n }\r\n };\r\n\r\n window.addEventListener(\"keydown\", handleKeyDown);\r\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\r\n }, [toggleSidebar]);\r\n\r\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n // This makes it easier to style the sidebar with Tailwind classes.\r\n const state = open ? \"expanded\" : \"collapsed\";\r\n\r\n const contextValue = React.useMemo<SidebarContext>(\r\n () => ({\r\n state,\r\n open,\r\n setOpen,\r\n isMobile,\r\n toggleSidebar,\r\n }),\r\n [state, open, setOpen, isMobile, toggleSidebar],\r\n );\r\n\r\n return (\r\n <SidebarContext.Provider value={contextValue}>\r\n <TooltipProvider delayDuration={0}>\r\n <div\r\n style={{ ...style } as React.CSSProperties}\r\n className={cn(\"group/sidebar-wrapper flex h-full w-full has-[[data-variant=inset]]:bg-gray-50\", className)}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </TooltipProvider>\r\n </SidebarContext.Provider>\r\n );\r\n});\r\nSidebarProvider.displayName = \"SidebarProvider\";\r\ntype SidebarProviderProps = React.ComponentProps<typeof SidebarProvider>;\r\n\r\nconst Sidebar = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n side?: \"left\" | \"right\";\r\n variant?: \"sidebar\" | \"floating\" | \"inset\";\r\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\r\n width?: string;\r\n widthIcon?: string;\r\n widthMobile?: string;\r\n }\r\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, width, widthIcon, widthMobile, style, ...props }, ref) => {\r\n const { isMobile, state, open, setOpen } = useSidebar();\r\n\r\n if (collapsible === \"none\") {\r\n return (\r\n <div\r\n data-side={side}\r\n style={\r\n {\r\n ...(side === \"left\"\r\n ? {\r\n \"--sidebar-left-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-left-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }\r\n : {\r\n \"--sidebar-right-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-right-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }),\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n className={cn(\r\n \"flex h-full data-[side=left]:w-[--sidebar-left-width] data-[side=right]:w-[--sidebar-right-width] flex-col bg-gray-50\",\r\n className,\r\n )}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n if (isMobile) {\r\n return (\r\n <Sheet open={open} onOpenChange={setOpen} {...props}>\r\n <SheetContent\r\n data-sidebar=\"sidebar\"\r\n data-mobile=\"true\"\r\n data-side={side}\r\n className=\"data-[side=left]:w-[--sidebar-left-width] data-[side=right]:w-[--sidebar-right-width] bg-gray-50 p-0 [&>button]:hidden\"\r\n style={\r\n {\r\n ...(side === \"left\"\r\n ? {\r\n \"--sidebar-left-width\": widthMobile ?? SIDEBAR_WIDTH_MOBILE,\r\n }\r\n : {\r\n \"--sidebar-right-width\": widthMobile ?? SIDEBAR_WIDTH_MOBILE,\r\n }),\r\n } as React.CSSProperties\r\n }\r\n side={side}\r\n >\r\n <VisuallyHidden>\r\n <SheetHeader>\r\n <SheetTitle> </SheetTitle>\r\n <SheetDescription> </SheetDescription>\r\n </SheetHeader>\r\n </VisuallyHidden>\r\n <div className=\"flex h-full w-full flex-col\">{children}</div>\r\n </SheetContent>\r\n </Sheet>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"group peer hidden md:block relative\"\r\n data-state={state}\r\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\r\n data-variant={variant}\r\n data-side={side}\r\n style={\r\n {\r\n ...(side === \"left\"\r\n ? {\r\n \"--sidebar-left-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-left-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }\r\n : {\r\n \"--sidebar-right-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-right-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }),\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n >\r\n {/* This is what handles the sidebar gap on desktop */}\r\n <div\r\n className={cn(\r\n \"duration-200 relative h-full group-data-[side=left]:w-[--sidebar-left-width] group-data-[side=right]:w-[--sidebar-right-width] bg-transparent transition-[width] ease-linear\",\r\n \"group-data-[side=left]:group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:group-data-[collapsible=offcanvas]:w-0\",\r\n \"group-data-[side=right]:rotate-180\",\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"group-data-[side=left]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-left-width-icon)_+_theme(spacing.4))] group-data-[side=right]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-right-width-icon)_+_theme(spacing.4))]\"\r\n : \"group-data-[side=left]:group-data-[collapsible=icon]:w-[--sidebar-left-width-icon] group-data-[side=right]:group-data-[collapsible=icon]:w-[--sidebar-right-width-icon]\",\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"duration-200 absolute inset-y-0 z-10 hidden h-full group-data-[side=left]:w-[--sidebar-left-width] group-data-[side=right]:w-[--sidebar-right-width] transition-[left,right,width] ease-linear md:flex\",\r\n side === \"left\"\r\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-left-width)*-1)]\"\r\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-right-width)*-1)]\",\r\n // Adjust the padding for floating and inset variants.\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"p-2 group-data-[side=left]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-left-width-icon)_+_theme(spacing.4)_+2px)] group-data-[side=right]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-right-width-icon)_+_theme(spacing.4)_+2px)]\"\r\n : \"group-data-[side=left]:group-data-[collapsible=icon]:w-[--sidebar-left-width-icon] group-data-[side=right]:group-data-[collapsible=icon]:w-[--sidebar-right-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <div\r\n data-sidebar=\"sidebar\"\r\n className=\"flex h-full w-full flex-col bg-gray-50 group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n});\r\nSidebar.displayName = \"Sidebar\";\r\ntype SidebarProps = React.ComponentProps<typeof Sidebar>;\r\n\r\nconst SidebarTrigger = React.forwardRef<React.ElementRef<\"button\">, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\r\n ({ className, onClick, asChild, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar();\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"trigger\"\r\n className={cn(\"h-7 w-7\", className)}\r\n onClick={event => {\r\n onClick?.(event);\r\n toggleSidebar();\r\n }}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nSidebarTrigger.displayName = \"SidebarTrigger\";\r\ntype SidebarTriggerProps = React.ComponentProps<typeof SidebarTrigger>;\r\n\r\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(({ className, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar();\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n data-sidebar=\"rail\"\r\n aria-label=\"Toggle Sidebar\"\r\n tabIndex={-1}\r\n onClick={toggleSidebar}\r\n title=\"Toggle Sidebar\"\r\n className={cn(\r\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-gray-50-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\r\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\r\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\r\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-gray-50\",\r\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\r\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarRail.displayName = \"SidebarRail\";\r\ntype SidebarRailProps = React.ComponentProps<typeof SidebarRail>;\r\n\r\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\r\n return (\r\n <main\r\n ref={ref}\r\n className={cn(\r\n \"relative flex h-full flex-1 flex-col bg-background\",\r\n \"peer-data-[variant=inset]:min-h-[calc(100%-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\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarInset.displayName = \"SidebarInset\";\r\ntype SidebarInsetProps = React.ComponentProps<typeof SidebarInset>;\r\n\r\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return <div ref={ref} data-sidebar=\"header\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\r\n});\r\nSidebarHeader.displayName = \"SidebarHeader\";\r\ntype SidebarHeaderProps = React.ComponentProps<typeof SidebarHeader>;\r\n\r\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return <div ref={ref} data-sidebar=\"footer\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\r\n});\r\nSidebarFooter.displayName = \"SidebarFooter\";\r\ntype SidebarFooterProps = React.ComponentProps<typeof SidebarFooter>;\r\n\r\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\r\n ({ className, ...props }, ref) => {\r\n return <Separator ref={ref} data-sidebar=\"separator\" className={cn(\"mx-2 w-auto bg-gray-50-border\", className)} {...props} />;\r\n },\r\n);\r\nSidebarSeparator.displayName = \"SidebarSeparator\";\r\ntype SidebarSeparatorProps = React.ComponentProps<typeof SidebarSeparator>;\r\n\r\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"content\"\r\n className={cn(\"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarContent.displayName = \"SidebarContent\";\r\ntype SidebarContentProps = React.ComponentProps<typeof SidebarContent>;\r\n\r\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return <div ref={ref} data-sidebar=\"group\" className={cn(\"relative flex w-full min-w-0 flex-col py-2\", className)} {...props} />;\r\n});\r\nSidebarGroup.displayName = \"SidebarGroup\";\r\ntype SidebarGroupProps = React.ComponentProps<typeof SidebarGroup>;\r\n\r\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\r\n ({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"div\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-label\"\r\n className={cn(\r\n \"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-none transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\r\ntype SidebarGroupLabelProps = React.ComponentProps<typeof SidebarGroupLabel>;\r\n\r\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\r\n ({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-action\"\r\n className={cn(\r\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform hover:bg-gray-50-accent focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n // Increases the hit area of the button on mobile.\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\r\ntype SidebarGroupActionProps = React.ComponentProps<typeof SidebarGroupAction>;\r\n\r\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => (\r\n <div ref={ref} data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\r\n));\r\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\r\ntype SidebarGroupContentProps = React.ComponentProps<typeof SidebarGroupContent>;\r\n\r\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\r\n <ul ref={ref} data-sidebar=\"menu\" className={cn(\"flex w-full min-w-0 flex-col gap-4\", className)} {...props} />\r\n));\r\nSidebarMenu.displayName = \"SidebarMenu\";\r\ntype SidebarMenuProps = React.ComponentProps<typeof SidebarMenu>;\r\n\r\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\r\n <li ref={ref} data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative ps-2\", className)} {...props} />\r\n));\r\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\r\ntype SidebarMenuItemProps = React.ComponentProps<typeof SidebarMenuItem>;\r\n\r\nconst sidebarMenuButtonVariants = tv({\r\n base: [\r\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-s-md rounded-e-none p-2 text-left text-sm text-text-400 font-medium outline-none transition-[width,height,padding] hover:bg-gray-50 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\",\r\n \"data-[active=true]:bg-primary data-[active=true]:text-gray-0 data-[active=true]:font-bold group-data-[collapsible=icon]:size-10 group-data-[collapsible=icon]:w-14 group-data-[collapsible=icon]:p-2 group-data-[collapsible=icon]:pl-4 [&>span:last-child]:truncate\",\r\n \"[&>svg]:size-6 [&>svg]:shrink-0 [&>svg]:data-[active=true]:text-secondary group-data-[collapsible=icon]:[&>svg]:me-2\",\r\n \"data-[active=true]:before:[content:''] data-[active=true]:before:absolute data-[active=true]:before:start-0 data-[active=true]:before:h-10 data-[active=true]:before:w-1 data-[active=true]:before:bg-secondary data-[active=true]:before:rounded-e-md\",\r\n \"overflow-ellipsis whitespace-nowrap\",\r\n ].join(\" \"),\r\n variants: {\r\n variant: {\r\n default: \"hover:bg-gray-50\",\r\n outline: \"bg-background shadow-[0_0_0_1px_hsl(var(--gray--300))] hover:bg-gray-50 hover:shadow-[0_0_0_1px_hsl(var(--gray-400))]\",\r\n },\r\n size: {\r\n default: \"h-10 text-sm\",\r\n sm: \"h-7 text-xs\",\r\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n});\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean;\r\n isActive?: boolean;\r\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n } & VariantProps<typeof sidebarMenuButtonVariants>\r\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n const { isMobile, state } = useSidebar();\r\n\r\n const button = (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n );\r\n\r\n if (!tooltip) {\r\n return button;\r\n }\r\n\r\n if (typeof tooltip === \"string\") {\r\n tooltip = {\r\n children: tooltip,\r\n };\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{button}</TooltipTrigger>\r\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\r\n </Tooltip>\r\n );\r\n});\r\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\r\ntype SidebarMenuButtonProps = React.ComponentProps<typeof SidebarMenuButton>;\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean;\r\n showOnHover?: boolean;\r\n }\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-action\"\r\n className={cn(\r\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform hover:bg-gray-50-accent focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n // Increases the hit area of the button on mobile.\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n showOnHover && \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\r\ntype SidebarMenuActionProps = React.ComponentProps<typeof SidebarMenuAction>;\r\n\r\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"menu-badge\"\r\n className={cn(\r\n \"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none pointer-events-none\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\r\ntype SidebarMenuBadgeProps = React.ComponentProps<typeof SidebarMenuBadge>;\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n showIcon?: boolean;\r\n }\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n // Random width between 50 to 90%.\r\n const width = React.useMemo(() => {\r\n return `${Math.floor(Math.random() * 40) + 50}%`;\r\n }, []);\r\n\r\n return (\r\n <div ref={ref} data-sidebar=\"menu-skeleton\" className={cn(\"rounded-md h-8 flex gap-2 px-2 items-center\", className)} {...props}>\r\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\r\n <Skeleton\r\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\r\n data-sidebar=\"menu-skeleton-text\"\r\n style={\r\n {\r\n \"--skeleton-width\": width,\r\n } as React.CSSProperties\r\n }\r\n />\r\n </div>\r\n );\r\n});\r\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\r\ntype SidebarMenuSkeletonProps = React.ComponentProps<typeof SidebarMenuSkeleton>;\r\n\r\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n data-sidebar=\"menu-sub\"\r\n className={cn(\"flex min-w-0 translate-x-px flex-col gap-1\", \"group-data-[collapsible=icon]:hidden\", className)}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\r\ntype SidebarMenuSubProps = React.ComponentProps<typeof SidebarMenuSub>;\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ ...props }, ref) => <li ref={ref} {...props} />);\r\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\r\ntype SidebarMenuSubItemProps = React.ComponentProps<typeof SidebarMenuSubItem>;\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentProps<\"a\"> & {\r\n asChild?: boolean;\r\n size?: \"sm\" | \"md\";\r\n isActive?: boolean;\r\n }\r\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-sub-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(\r\n \"flex h-10 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-s-md ps-10 text-sm text-text-400 font-medium outline-none hover:bg-gray-50 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\",\r\n \"data-[active=true]:bg-gray-100 data-[active=true]:text-text\",\r\n size === \"sm\" && \"text-xs\",\r\n size === \"md\" && \"text-sm\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\r\ntype SidebarMenuSubButtonProps = React.ComponentProps<typeof SidebarMenuSubButton>;\r\n\r\nexport {\r\n Sidebar,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupAction,\r\n SidebarGroupContent,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarInset,\r\n SidebarMenu,\r\n SidebarMenuAction,\r\n SidebarMenuBadge,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n SidebarMenuSkeleton,\r\n SidebarMenuSub,\r\n SidebarMenuSubButton,\r\n SidebarMenuSubItem,\r\n SidebarProvider,\r\n SidebarRail,\r\n SidebarSeparator,\r\n SidebarTrigger,\r\n useSidebar,\r\n type SidebarProps,\r\n type SidebarContentProps,\r\n type SidebarFooterProps,\r\n type SidebarGroupProps,\r\n type SidebarGroupActionProps,\r\n type SidebarGroupContentProps,\r\n type SidebarGroupLabelProps,\r\n type SidebarHeaderProps,\r\n type SidebarInsetProps,\r\n type SidebarMenuProps,\r\n type SidebarMenuActionProps,\r\n type SidebarMenuBadgeProps,\r\n type SidebarMenuButtonProps,\r\n type SidebarMenuItemProps,\r\n type SidebarMenuSkeletonProps,\r\n type SidebarMenuSubProps,\r\n type SidebarMenuSubButtonProps,\r\n type SidebarMenuSubItemProps,\r\n type SidebarProviderProps,\r\n type SidebarRailProps,\r\n type SidebarSeparatorProps,\r\n type SidebarTriggerProps,\r\n};\r\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","width","widthIcon","widthMobile","Sheet","jsxs","SheetContent","VisuallyHidden","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","asChild","Slot","SidebarRail","SidebarInset","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","tv","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sidebar.es.js","sources":["../src/components/sidebar/Sidebar.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Slot } from \"@radix-ui/react-slot\";\r\nimport { VariantProps, tv } from \"tailwind-variants\";\r\nimport { VisuallyHidden } from \"@radix-ui/react-visually-hidden\";\r\n\r\nimport { cn } from \"../../lib/utils\";\r\nimport { Skeleton } from \"../skeleton/Skeleton\";\r\nimport { Separator } from \"../separator/Separator\";\r\nimport { useIsMobile } from \"../../lib/hooks/use-mobile\";\r\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../tooltip/Tooltip\";\r\nimport { Sheet, SheetContent, SheetDescription, SheetHeader, SheetTitle } from \"../sheet/Sheet\";\r\n\r\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\r\nconst SIDEBAR_WIDTH = \"16rem\";\r\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\r\nconst SIDEBAR_WIDTH_ICON = \"4rem\";\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\r\n\r\ntype SidebarContext = {\r\n state: \"expanded\" | \"collapsed\";\r\n open: boolean;\r\n setOpen: (open: boolean) => void;\r\n isMobile: boolean;\r\n toggleSidebar: () => void;\r\n};\r\n\r\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\r\n\r\nfunction useSidebar() {\r\n const context = React.useContext(SidebarContext);\r\n if (!context) {\r\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\r\n }\r\n\r\n return context;\r\n}\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n defaultOpen?: boolean;\r\n open?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n }\r\n>(({ defaultOpen = true, open: openProp, onOpenChange: setOpenProp, className, style, children, ...props }, ref) => {\r\n const isMobile = useIsMobile();\r\n\r\n // This is the internal state of the sidebar.\r\n // We use openProp and setOpenProp for control from outside the component.\r\n const [_open, _setOpen] = React.useState(defaultOpen);\r\n const open = openProp ?? _open;\r\n const setOpen = React.useCallback(\r\n (value: boolean | ((value: boolean) => boolean)) => {\r\n const openState = typeof value === \"function\" ? value(open) : value;\r\n if (setOpenProp) {\r\n setOpenProp(openState);\r\n } else {\r\n _setOpen(openState);\r\n }\r\n\r\n // This sets the cookie to keep the sidebar state.\r\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\r\n },\r\n [setOpenProp, open],\r\n );\r\n\r\n // Helper to toggle the sidebar.\r\n const toggleSidebar = React.useCallback(() => {\r\n return setOpen(open => !open);\r\n }, [setOpen]);\r\n\r\n // Adds a keyboard shortcut to toggle the sidebar.\r\n React.useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (event.key === SIDEBAR_KEYBOARD_SHORTCUT && (event.metaKey || event.ctrlKey)) {\r\n event.preventDefault();\r\n toggleSidebar();\r\n }\r\n };\r\n\r\n window.addEventListener(\"keydown\", handleKeyDown);\r\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\r\n }, [toggleSidebar]);\r\n\r\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\r\n // This makes it easier to style the sidebar with Tailwind classes.\r\n const state = open ? \"expanded\" : \"collapsed\";\r\n\r\n const contextValue = React.useMemo<SidebarContext>(\r\n () => ({\r\n state,\r\n open,\r\n setOpen,\r\n isMobile,\r\n toggleSidebar,\r\n }),\r\n [state, open, setOpen, isMobile, toggleSidebar],\r\n );\r\n\r\n return (\r\n <SidebarContext.Provider value={contextValue}>\r\n <TooltipProvider delayDuration={0}>\r\n <div\r\n style={{ ...style } as React.CSSProperties}\r\n className={cn(\"group/sidebar-wrapper flex h-full w-full has-[[data-variant=inset]]:bg-gray-50\", className)}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n </TooltipProvider>\r\n </SidebarContext.Provider>\r\n );\r\n});\r\nSidebarProvider.displayName = \"SidebarProvider\";\r\ntype SidebarProviderProps = React.ComponentProps<typeof SidebarProvider>;\r\n\r\nconst Sidebar = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n side?: \"left\" | \"right\";\r\n variant?: \"sidebar\" | \"floating\" | \"inset\";\r\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\r\n width?: string;\r\n widthIcon?: string;\r\n widthMobile?: string;\r\n }\r\n>(({ side = \"left\", variant = \"sidebar\", collapsible = \"offcanvas\", className, children, width, widthIcon, widthMobile, style, ...props }, ref) => {\r\n const { isMobile, state, open, setOpen } = useSidebar();\r\n\r\n if (collapsible === \"none\") {\r\n return (\r\n <div\r\n data-side={side}\r\n style={\r\n {\r\n ...(side === \"left\"\r\n ? {\r\n \"--sidebar-left-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-left-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }\r\n : {\r\n \"--sidebar-right-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-right-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }),\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n className={cn(\r\n \"flex h-full data-[side=left]:w-[--sidebar-left-width] data-[side=right]:w-[--sidebar-right-width] flex-col bg-gray-50\",\r\n className,\r\n )}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n if (isMobile) {\r\n return (\r\n <Sheet open={open} onOpenChange={setOpen} {...props}>\r\n <SheetContent\r\n data-sidebar=\"sidebar\"\r\n data-mobile=\"true\"\r\n data-side={side}\r\n className=\"data-[side=left]:w-[--sidebar-left-width] data-[side=right]:w-[--sidebar-right-width] bg-gray-50 p-0 [&>button]:hidden\"\r\n style={\r\n {\r\n ...(side === \"left\"\r\n ? {\r\n \"--sidebar-left-width\": widthMobile ?? SIDEBAR_WIDTH_MOBILE,\r\n }\r\n : {\r\n \"--sidebar-right-width\": widthMobile ?? SIDEBAR_WIDTH_MOBILE,\r\n }),\r\n } as React.CSSProperties\r\n }\r\n side={side}\r\n >\r\n <VisuallyHidden>\r\n <SheetHeader>\r\n <SheetTitle> </SheetTitle>\r\n <SheetDescription> </SheetDescription>\r\n </SheetHeader>\r\n </VisuallyHidden>\r\n <div className=\"flex h-full w-full flex-col\">{children}</div>\r\n </SheetContent>\r\n </Sheet>\r\n );\r\n }\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n className=\"group peer hidden md:block relative\"\r\n data-state={state}\r\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\r\n data-variant={variant}\r\n data-side={side}\r\n style={\r\n {\r\n ...(side === \"left\"\r\n ? {\r\n \"--sidebar-left-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-left-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }\r\n : {\r\n \"--sidebar-right-width\": width ?? SIDEBAR_WIDTH,\r\n \"--sidebar-right-width-icon\": widthIcon ?? SIDEBAR_WIDTH_ICON,\r\n }),\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n >\r\n {/* This is what handles the sidebar gap on desktop */}\r\n <div\r\n className={cn(\r\n \"duration-200 relative h-full group-data-[side=left]:w-[--sidebar-left-width] group-data-[side=right]:w-[--sidebar-right-width] bg-transparent transition-[width] ease-linear\",\r\n \"group-data-[side=left]:group-data-[collapsible=offcanvas]:w-0 group-data-[side=right]:group-data-[collapsible=offcanvas]:w-0\",\r\n \"group-data-[side=right]:rotate-180\",\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"group-data-[side=left]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-left-width-icon)_+_theme(spacing.4))] group-data-[side=right]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-right-width-icon)_+_theme(spacing.4))]\"\r\n : \"group-data-[side=left]:group-data-[collapsible=icon]:w-[--sidebar-left-width-icon] group-data-[side=right]:group-data-[collapsible=icon]:w-[--sidebar-right-width-icon]\",\r\n )}\r\n />\r\n <div\r\n className={cn(\r\n \"duration-200 absolute inset-y-0 z-10 hidden h-full group-data-[side=left]:w-[--sidebar-left-width] group-data-[side=right]:w-[--sidebar-right-width] transition-[left,right,width] ease-linear md:flex\",\r\n side === \"left\"\r\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-left-width)*-1)]\"\r\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-right-width)*-1)]\",\r\n // Adjust the padding for floating and inset variants.\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"p-2 group-data-[side=left]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-left-width-icon)_+_theme(spacing.4)_+2px)] group-data-[side=right]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-right-width-icon)_+_theme(spacing.4)_+2px)]\"\r\n : \"group-data-[side=left]:group-data-[collapsible=icon]:w-[--sidebar-left-width-icon] group-data-[side=right]:group-data-[collapsible=icon]:w-[--sidebar-right-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n <div\r\n data-sidebar=\"sidebar\"\r\n className=\"flex h-full w-full flex-col bg-gray-50 group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow\"\r\n >\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n});\r\nSidebar.displayName = \"Sidebar\";\r\ntype SidebarProps = React.ComponentProps<typeof Sidebar>;\r\n\r\nconst SidebarTrigger = React.forwardRef<React.ElementRef<\"button\">, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\r\n ({ className, onClick, asChild, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar();\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"trigger\"\r\n className={cn(\"h-7 w-7\", className)}\r\n onClick={event => {\r\n onClick?.(event);\r\n toggleSidebar();\r\n }}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nSidebarTrigger.displayName = \"SidebarTrigger\";\r\ntype SidebarTriggerProps = React.ComponentProps<typeof SidebarTrigger>;\r\n\r\nconst SidebarRail = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\">>(({ className, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar();\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n data-sidebar=\"rail\"\r\n aria-label=\"Toggle Sidebar\"\r\n tabIndex={-1}\r\n onClick={toggleSidebar}\r\n title=\"Toggle Sidebar\"\r\n className={cn(\r\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-gray-50-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\r\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\r\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\r\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-gray-50\",\r\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\r\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarRail.displayName = \"SidebarRail\";\r\ntype SidebarRailProps = React.ComponentProps<typeof SidebarRail>;\r\n\r\nconst SidebarInset = React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(({ className, ...props }, ref) => {\r\n return (\r\n <main\r\n ref={ref}\r\n className={cn(\r\n \"relative flex h-full flex-1 flex-col bg-background\",\r\n \"peer-data-[variant=inset]:min-h-[calc(100%-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\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarInset.displayName = \"SidebarInset\";\r\ntype SidebarInsetProps = React.ComponentProps<typeof SidebarInset>;\r\n\r\nconst SidebarHeader = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return <div ref={ref} data-sidebar=\"header\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\r\n});\r\nSidebarHeader.displayName = \"SidebarHeader\";\r\ntype SidebarHeaderProps = React.ComponentProps<typeof SidebarHeader>;\r\n\r\nconst SidebarFooter = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return <div ref={ref} data-sidebar=\"footer\" className={cn(\"flex flex-col gap-2 p-2\", className)} {...props} />;\r\n});\r\nSidebarFooter.displayName = \"SidebarFooter\";\r\ntype SidebarFooterProps = React.ComponentProps<typeof SidebarFooter>;\r\n\r\nconst SidebarSeparator = React.forwardRef<React.ElementRef<typeof Separator>, React.ComponentProps<typeof Separator>>(\r\n ({ className, ...props }, ref) => {\r\n return <Separator ref={ref} data-sidebar=\"separator\" className={cn(\"mx-2 w-auto bg-gray-50-border\", className)} {...props} />;\r\n },\r\n);\r\nSidebarSeparator.displayName = \"SidebarSeparator\";\r\ntype SidebarSeparatorProps = React.ComponentProps<typeof SidebarSeparator>;\r\n\r\nconst SidebarContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"content\"\r\n className={cn(\"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\", className)}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarContent.displayName = \"SidebarContent\";\r\ntype SidebarContentProps = React.ComponentProps<typeof SidebarContent>;\r\n\r\nconst SidebarGroup = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => {\r\n return <div ref={ref} data-sidebar=\"group\" className={cn(\"relative flex w-full min-w-0 flex-col py-2\", className)} {...props} />;\r\n});\r\nSidebarGroup.displayName = \"SidebarGroup\";\r\ntype SidebarGroupProps = React.ComponentProps<typeof SidebarGroup>;\r\n\r\nconst SidebarGroupLabel = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\"> & { asChild?: boolean }>(\r\n ({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"div\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-label\"\r\n className={cn(\r\n \"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-none transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\r\ntype SidebarGroupLabelProps = React.ComponentProps<typeof SidebarGroupLabel>;\r\n\r\nconst SidebarGroupAction = React.forwardRef<HTMLButtonElement, React.ComponentProps<\"button\"> & { asChild?: boolean }>(\r\n ({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-action\"\r\n className={cn(\r\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform hover:bg-gray-50-accent focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n // Increases the hit area of the button on mobile.\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n },\r\n);\r\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\r\ntype SidebarGroupActionProps = React.ComponentProps<typeof SidebarGroupAction>;\r\n\r\nconst SidebarGroupContent = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => (\r\n <div ref={ref} data-sidebar=\"group-content\" className={cn(\"w-full text-sm\", className)} {...props} />\r\n));\r\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\r\ntype SidebarGroupContentProps = React.ComponentProps<typeof SidebarGroupContent>;\r\n\r\nconst SidebarMenu = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\r\n <ul ref={ref} data-sidebar=\"menu\" className={cn(\"flex w-full min-w-0 flex-col gap-4\", className)} {...props} />\r\n));\r\nSidebarMenu.displayName = \"SidebarMenu\";\r\ntype SidebarMenuProps = React.ComponentProps<typeof SidebarMenu>;\r\n\r\nconst SidebarMenuItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ className, ...props }, ref) => (\r\n <li ref={ref} data-sidebar=\"menu-item\" className={cn(\"group/menu-item relative ps-2\", className)} {...props} />\r\n));\r\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\r\ntype SidebarMenuItemProps = React.ComponentProps<typeof SidebarMenuItem>;\r\n\r\nconst sidebarMenuButtonVariants = tv({\r\n base: [\r\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-s-md rounded-e-none p-2 text-left text-sm text-text-400 font-medium outline-none transition-[width,height,padding] hover:bg-gray-50 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\",\r\n \"data-[active=true]:bg-primary data-[active=true]:text-gray-0 data-[active=true]:font-bold group-data-[collapsible=icon]:size-10 group-data-[collapsible=icon]:w-14 group-data-[collapsible=icon]:p-2 group-data-[collapsible=icon]:pl-4 [&>span:last-child]:truncate\",\r\n \"[&>svg]:size-6 [&>svg]:shrink-0 [&>svg]:data-[active=true]:text-secondary group-data-[collapsible=icon]:[&>svg]:me-2\",\r\n \"data-[active=true]:before:[content:''] data-[active=true]:before:absolute data-[active=true]:before:start-0 data-[active=true]:before:h-10 data-[active=true]:before:w-1 data-[active=true]:before:bg-secondary data-[active=true]:before:rounded-e-md\",\r\n \"overflow-ellipsis whitespace-nowrap\",\r\n ].join(\" \"),\r\n variants: {\r\n variant: {\r\n default: \"hover:bg-gray-50\",\r\n outline: \"bg-background shadow-[0_0_0_1px_hsl(var(--gray--300))] hover:bg-gray-50 hover:shadow-[0_0_0_1px_hsl(var(--gray-400))]\",\r\n },\r\n size: {\r\n default: \"h-10 text-sm\",\r\n sm: \"h-7 text-xs\",\r\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n});\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean;\r\n isActive?: boolean;\r\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\r\n } & VariantProps<typeof sidebarMenuButtonVariants>\r\n>(({ asChild = false, isActive = false, variant = \"default\", size = \"default\", tooltip, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n const { isMobile, state } = useSidebar();\r\n\r\n const button = (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n );\r\n\r\n if (!tooltip) {\r\n return button;\r\n }\r\n\r\n if (typeof tooltip === \"string\") {\r\n tooltip = {\r\n children: tooltip,\r\n };\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{button}</TooltipTrigger>\r\n <TooltipContent side=\"right\" align=\"center\" hidden={state !== \"collapsed\" || isMobile} {...tooltip} />\r\n </Tooltip>\r\n );\r\n});\r\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\r\ntype SidebarMenuButtonProps = React.ComponentProps<typeof SidebarMenuButton>;\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean;\r\n showOnHover?: boolean;\r\n }\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-action\"\r\n className={cn(\r\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 outline-none transition-transform hover:bg-gray-50-accent focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n // Increases the hit area of the button on mobile.\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n showOnHover && \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 md:opacity-0\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\r\ntype SidebarMenuActionProps = React.ComponentProps<typeof SidebarMenuAction>;\r\n\r\nconst SidebarMenuBadge = React.forwardRef<HTMLDivElement, React.ComponentProps<\"div\">>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"menu-badge\"\r\n className={cn(\r\n \"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums select-none pointer-events-none\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\r\ntype SidebarMenuBadgeProps = React.ComponentProps<typeof SidebarMenuBadge>;\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n showIcon?: boolean;\r\n }\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n // Random width between 50 to 90%.\r\n const width = React.useMemo(() => {\r\n return `${Math.floor(Math.random() * 40) + 50}%`;\r\n }, []);\r\n\r\n return (\r\n <div ref={ref} data-sidebar=\"menu-skeleton\" className={cn(\"rounded-md h-8 flex gap-2 px-2 items-center\", className)} {...props}>\r\n {showIcon && <Skeleton className=\"size-4 rounded-md\" data-sidebar=\"menu-skeleton-icon\" />}\r\n <Skeleton\r\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\r\n data-sidebar=\"menu-skeleton-text\"\r\n style={\r\n {\r\n \"--skeleton-width\": width,\r\n } as React.CSSProperties\r\n }\r\n />\r\n </div>\r\n );\r\n});\r\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\r\ntype SidebarMenuSkeletonProps = React.ComponentProps<typeof SidebarMenuSkeleton>;\r\n\r\nconst SidebarMenuSub = React.forwardRef<HTMLUListElement, React.ComponentProps<\"ul\">>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n data-sidebar=\"menu-sub\"\r\n className={cn(\"flex min-w-0 translate-x-px flex-col gap-1\", \"group-data-[collapsible=icon]:hidden\", className)}\r\n {...props}\r\n />\r\n));\r\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\r\ntype SidebarMenuSubProps = React.ComponentProps<typeof SidebarMenuSub>;\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<HTMLLIElement, React.ComponentProps<\"li\">>(({ ...props }, ref) => <li ref={ref} {...props} />);\r\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\r\ntype SidebarMenuSubItemProps = React.ComponentProps<typeof SidebarMenuSubItem>;\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentProps<\"a\"> & {\r\n asChild?: boolean;\r\n size?: \"sm\" | \"md\";\r\n isActive?: boolean;\r\n }\r\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\";\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-sub-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(\r\n \"flex h-10 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-s-md ps-10 text-sm text-text-400 font-medium outline-none hover:bg-gray-50 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\",\r\n \"data-[active=true]:bg-gray-100 data-[active=true]:text-text\",\r\n size === \"sm\" && \"text-xs\",\r\n size === \"md\" && \"text-sm\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n});\r\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\r\ntype SidebarMenuSubButtonProps = React.ComponentProps<typeof SidebarMenuSubButton>;\r\n\r\nexport {\r\n Sidebar,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupAction,\r\n SidebarGroupContent,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarInset,\r\n SidebarMenu,\r\n SidebarMenuAction,\r\n SidebarMenuBadge,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n SidebarMenuSkeleton,\r\n SidebarMenuSub,\r\n SidebarMenuSubButton,\r\n SidebarMenuSubItem,\r\n SidebarProvider,\r\n SidebarRail,\r\n SidebarSeparator,\r\n SidebarTrigger,\r\n useSidebar,\r\n type SidebarProps,\r\n type SidebarContentProps,\r\n type SidebarFooterProps,\r\n type SidebarGroupProps,\r\n type SidebarGroupActionProps,\r\n type SidebarGroupContentProps,\r\n type SidebarGroupLabelProps,\r\n type SidebarHeaderProps,\r\n type SidebarInsetProps,\r\n type SidebarMenuProps,\r\n type SidebarMenuActionProps,\r\n type SidebarMenuBadgeProps,\r\n type SidebarMenuButtonProps,\r\n type SidebarMenuItemProps,\r\n type SidebarMenuSkeletonProps,\r\n type SidebarMenuSubProps,\r\n type SidebarMenuSubButtonProps,\r\n type SidebarMenuSubItemProps,\r\n type SidebarProviderProps,\r\n type SidebarRailProps,\r\n type SidebarSeparatorProps,\r\n type SidebarTriggerProps,\r\n};\r\n"],"names":["SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","React","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","isMobile","useIsMobile","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","handleKeyDown","event","state","contextValue","jsx","TooltipProvider","cn","Sidebar","side","variant","collapsible","width","widthIcon","widthMobile","Sheet","jsxs","SheetContent","VisuallyHidden","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","asChild","Slot","SidebarRail","SidebarInset","SidebarHeader","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","tv","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"],"mappings":"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"}
|
package/dist/skeleton.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.es.js","sources":["../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from \"../../lib/utils\";\r\n\r\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\r\n return <div className={cn(\"animate-pulse rounded-md bg-primary/10\", className)} {...props} />;\r\n}\r\nSkeleton.displayName = \"Skeleton\";\r\ntype SkeletonProps = React.ComponentProps<typeof Skeleton>;\r\n\r\nexport { Skeleton, type SkeletonProps };\r\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAEA,SAASA,EAAS,EAAE,WAAAC,GAAW,GAAGC,KAA+C;
|
|
1
|
+
{"version":3,"file":"skeleton.es.js","sources":["../src/components/skeleton/Skeleton.tsx"],"sourcesContent":["import { cn } from \"../../lib/utils\";\r\n\r\nfunction Skeleton({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) {\r\n return <div className={cn(\"animate-pulse rounded-md bg-primary/10\", className)} {...props} />;\r\n}\r\nSkeleton.displayName = \"Skeleton\";\r\ntype SkeletonProps = React.ComponentProps<typeof Skeleton>;\r\n\r\nexport { Skeleton, type SkeletonProps };\r\n"],"names":["Skeleton","className","props","jsx","cn"],"mappings":";;AAEA,SAASA,EAAS,EAAE,WAAAC,GAAW,GAAGC,KAA+C;AAC/E,SAAO,gBAAAC,EAAC,SAAI,WAAWC,EAAG,0CAA0CH,CAAS,GAAI,GAAGC,GAAO;AAC7F;AACAF,EAAS,cAAc;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startofweek.es.js","sources":["../node_modules/date-fns/startOfWeek.js"],"sourcesContent":["import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n"],"names":["startOfWeek","date","options","defaultOptions","getDefaultOptions","weekStartsOn","_date","toDate","day","diff"],"mappings":";;AAkCO,SAASA,EAAYC,GAAMC,GAAS;AACzC,QAAMC,IAAiBC,
|
|
1
|
+
{"version":3,"file":"startofweek.es.js","sources":["../node_modules/date-fns/startOfWeek.js"],"sourcesContent":["import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type, it is the type returned from the context function if it is passed, or inferred from the arguments.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date, options?.in);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n"],"names":["startOfWeek","date","options","defaultOptions","getDefaultOptions","weekStartsOn","_date","toDate","day","diff"],"mappings":";;AAkCO,SAASA,EAAYC,GAAMC,GAAS;AACzC,QAAMC,IAAiBC,EAAiB,GAClCC,IACJH,GAAS,gBACTA,GAAS,QAAQ,SAAS,gBAC1BC,EAAe,gBACfA,EAAe,QAAQ,SAAS,gBAChC,GAEIG,IAAQC,EAAON,GAAMC,GAAS,EAAE,GAChCM,IAAMF,EAAM,OAAM,GAClBG,KAAQD,IAAMH,IAAe,IAAI,KAAKG,IAAMH;AAElD,SAAAC,EAAM,QAAQA,EAAM,QAAO,IAAKG,CAAI,GACpCH,EAAM,SAAS,GAAG,GAAG,GAAG,CAAC,GAClBA;AACT;","x_google_ignoreList":[0]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startofweekyear.es.js","sources":["../node_modules/date-fns/startOfWeekYear.js"],"sourcesContent":["import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n"],"names":["startOfWeekYear","date","options","defaultOptions","getDefaultOptions","firstWeekContainsDate","year","getWeekYear","firstWeek","constructFrom","startOfWeek"],"mappings":";;;;AA8CO,SAASA,EAAgBC,GAAMC,GAAS;AAC7C,QAAMC,IAAiBC,
|
|
1
|
+
{"version":3,"file":"startofweekyear.es.js","sources":["../node_modules/date-fns/startOfWeekYear.js"],"sourcesContent":["import { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { getWeekYear } from \"./getWeekYear.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link startOfWeekYear} function options.\n */\n\n/**\n * @name startOfWeekYear\n * @category Week-Numbering Year Helpers\n * @summary Return the start of a local week-numbering year for the given date.\n *\n * @description\n * Return the start of a local week-numbering year.\n * The exact calculation depends on the values of\n * `options.weekStartsOn` (which is the index of the first day of the week)\n * and `options.firstWeekContainsDate` (which is the day of January, which is always in\n * the first week of the week-numbering year)\n *\n * Week numbering: https://en.wikipedia.org/wiki/Week#The_ISO_week_date_system\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n * @typeParam ResultDate - The result `Date` type.\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week-numbering year\n *\n * @example\n * // The start of an a week-numbering year for 2 July 2005 with default settings:\n * const result = startOfWeekYear(new Date(2005, 6, 2))\n * //=> Sun Dec 26 2004 00:00:00\n *\n * @example\n * // The start of a week-numbering year for 2 July 2005\n * // if Monday is the first day of week\n * // and 4 January is always in the first week of the year:\n * const result = startOfWeekYear(new Date(2005, 6, 2), {\n * weekStartsOn: 1,\n * firstWeekContainsDate: 4\n * })\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfWeekYear(date, options) {\n const defaultOptions = getDefaultOptions();\n const firstWeekContainsDate =\n options?.firstWeekContainsDate ??\n options?.locale?.options?.firstWeekContainsDate ??\n defaultOptions.firstWeekContainsDate ??\n defaultOptions.locale?.options?.firstWeekContainsDate ??\n 1;\n\n const year = getWeekYear(date, options);\n const firstWeek = constructFrom(options?.in || date, 0);\n firstWeek.setFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setHours(0, 0, 0, 0);\n const _date = startOfWeek(firstWeek, options);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeekYear;\n"],"names":["startOfWeekYear","date","options","defaultOptions","getDefaultOptions","firstWeekContainsDate","year","getWeekYear","firstWeek","constructFrom","startOfWeek"],"mappings":";;;;AA8CO,SAASA,EAAgBC,GAAMC,GAAS;AAC7C,QAAMC,IAAiBC,EAAiB,GAClCC,IACJH,GAAS,yBACTA,GAAS,QAAQ,SAAS,yBAC1BC,EAAe,yBACfA,EAAe,QAAQ,SAAS,yBAChC,GAEIG,IAAOC,EAAYN,GAAMC,CAAO,GAChCM,IAAYC,EAAcP,GAAS,MAAMD,GAAM,CAAC;AACtD,SAAAO,EAAU,YAAYF,GAAM,GAAGD,CAAqB,GACpDG,EAAU,SAAS,GAAG,GAAG,GAAG,CAAC,GACfE,EAAYF,GAAWN,CAAO;AAE9C;","x_google_ignoreList":[0]}
|