@egose/shadcn-theme 0.0.50 → 0.0.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{chunk-IPTLI5N5.mjs → chunk-2BKV4IJV.mjs} +4 -4
- package/chunk-2BKV4IJV.mjs.map +1 -0
- package/{chunk-2H5WIGQU.js → chunk-4FD63HEQ.js} +5 -5
- package/chunk-4FD63HEQ.js.map +1 -0
- package/chunk-4XC6EXHZ.mjs +112 -0
- package/chunk-4XC6EXHZ.mjs.map +1 -0
- package/{chunk-7TCN3MNY.js → chunk-5HD5BGK7.js} +1 -1
- package/chunk-5HD5BGK7.js.map +1 -0
- package/{chunk-WA2Z3OWJ.js → chunk-6KUUJF3I.js} +3 -3
- package/chunk-6KUUJF3I.js.map +1 -0
- package/{chunk-LPZRXLKK.mjs → chunk-ACE5WNTU.mjs} +6 -6
- package/chunk-ACE5WNTU.mjs.map +1 -0
- package/{chunk-NJDC3RMA.mjs → chunk-ARQYTBBZ.mjs} +1 -1
- package/chunk-ARQYTBBZ.mjs.map +1 -0
- package/chunk-CE4PBEIL.js +88 -0
- package/chunk-CE4PBEIL.js.map +1 -0
- package/{chunk-MWA2HHI7.mjs → chunk-CPGH6LBC.mjs} +1 -1
- package/chunk-CPGH6LBC.mjs.map +1 -0
- package/{chunk-2WDZS5E5.mjs → chunk-CTYAFVU5.mjs} +2 -2
- package/chunk-CTYAFVU5.mjs.map +1 -0
- package/{chunk-N4QVNSAY.js → chunk-DGYAXPSD.js} +1 -1
- package/chunk-DGYAXPSD.js.map +1 -0
- package/{chunk-V5IL3OBF.mjs → chunk-DMATER3M.mjs} +1 -1
- package/chunk-DMATER3M.mjs.map +1 -0
- package/chunk-DTJ43DCW.mjs +87 -0
- package/chunk-DTJ43DCW.mjs.map +1 -0
- package/{chunk-U3HF6HPN.js → chunk-DYUS5722.js} +1 -1
- package/chunk-DYUS5722.js.map +1 -0
- package/{chunk-R3RMWOGE.mjs → chunk-EJQJ3BCF.mjs} +1 -1
- package/chunk-EJQJ3BCF.mjs.map +1 -0
- package/{chunk-LVFEXEXE.mjs → chunk-FMYITAWN.mjs} +1 -1
- package/chunk-FMYITAWN.mjs.map +1 -0
- package/{chunk-PSQGNWKT.js → chunk-GI222XFX.js} +1 -1
- package/chunk-GI222XFX.js.map +1 -0
- package/chunk-I64GW5SA.js +113 -0
- package/chunk-I64GW5SA.js.map +1 -0
- package/{chunk-ALDDTRY5.js → chunk-I6AFNWVY.js} +1 -1
- package/chunk-I6AFNWVY.js.map +1 -0
- package/{chunk-YT6UTIPP.js → chunk-IQYZKNJZ.js} +3 -3
- package/chunk-IQYZKNJZ.js.map +1 -0
- package/chunk-JW7N7IR5.mjs +120 -0
- package/chunk-JW7N7IR5.mjs.map +1 -0
- package/{chunk-4QOQOMZB.mjs → chunk-LXILG667.mjs} +1 -1
- package/chunk-LXILG667.mjs.map +1 -0
- package/{chunk-DMO25T5J.mjs → chunk-NTYWTGYX.mjs} +1 -1
- package/chunk-NTYWTGYX.mjs.map +1 -0
- package/{chunk-3YDM2NYL.js → chunk-NVBZVKIT.js} +1 -1
- package/chunk-NVBZVKIT.js.map +1 -0
- package/{chunk-5RW6O56P.mjs → chunk-OXCN3BD6.mjs} +1 -1
- package/chunk-OXCN3BD6.mjs.map +1 -0
- package/{chunk-E77FKWFS.js → chunk-PCR4GC74.js} +1 -1
- package/chunk-PCR4GC74.js.map +1 -0
- package/{chunk-273TIMKM.js → chunk-PS3LNHTA.js} +1 -1
- package/chunk-PS3LNHTA.js.map +1 -0
- package/{chunk-UQTHHSJN.mjs → chunk-R4SF7CSA.mjs} +1 -1
- package/chunk-R4SF7CSA.mjs.map +1 -0
- package/chunk-RMDDLEPA.js +121 -0
- package/chunk-RMDDLEPA.js.map +1 -0
- package/{chunk-FQG3C7OR.js → chunk-XJ7GBFHV.js} +1 -1
- package/chunk-XJ7GBFHV.js.map +1 -0
- package/{chunk-5UUXFHU3.mjs → chunk-YQZZ6RRI.mjs} +1 -1
- package/chunk-YQZZ6RRI.mjs.map +1 -0
- package/{chunk-XCHWNZWB.js → chunk-YWWFTM23.js} +1 -1
- package/chunk-YWWFTM23.js.map +1 -0
- package/components/form/checkbox.js +2 -2
- package/components/form/checkbox.mjs +1 -1
- package/components/form/date-picker.js +3 -3
- package/components/form/date-picker.mjs +2 -2
- package/components/form/date-range-picker.js +2 -2
- package/components/form/date-range-picker.js.map +1 -1
- package/components/form/date-range-picker.mjs +3 -3
- package/components/form/date-range-picker.mjs.map +1 -1
- package/components/form/hook-checkbox.js +2 -2
- package/components/form/hook-checkbox.js.map +1 -1
- package/components/form/hook-checkbox.mjs +1 -1
- package/components/form/hook-checkbox.mjs.map +1 -1
- package/components/form/hook-date-picker.js +3 -3
- package/components/form/hook-date-picker.js.map +1 -1
- package/components/form/hook-date-picker.mjs +2 -2
- package/components/form/hook-date-picker.mjs.map +1 -1
- package/components/form/hook-native-select.js +2 -2
- package/components/form/hook-native-select.js.map +1 -1
- package/components/form/hook-native-select.mjs +1 -1
- package/components/form/hook-native-select.mjs.map +1 -1
- package/components/form/hook-searchable-select.d.mts +12 -0
- package/components/form/hook-searchable-select.d.ts +12 -0
- package/components/form/hook-searchable-select.js +74 -0
- package/components/form/hook-searchable-select.js.map +1 -0
- package/components/form/hook-searchable-select.mjs +73 -0
- package/components/form/hook-searchable-select.mjs.map +1 -0
- package/components/form/hook-select.js +2 -2
- package/components/form/hook-select.js.map +1 -1
- package/components/form/hook-select.mjs +1 -1
- package/components/form/hook-select.mjs.map +1 -1
- package/components/form/hook-text-input.js +2 -2
- package/components/form/hook-text-input.js.map +1 -1
- package/components/form/hook-text-input.mjs +1 -1
- package/components/form/hook-text-input.mjs.map +1 -1
- package/components/form/hook-textarea.js +2 -2
- package/components/form/hook-textarea.js.map +1 -1
- package/components/form/hook-textarea.mjs +1 -1
- package/components/form/hook-textarea.mjs.map +1 -1
- package/components/form/hook-time-input.js +3 -3
- package/components/form/hook-time-input.js.map +1 -1
- package/components/form/hook-time-input.mjs +2 -2
- package/components/form/hook-time-input.mjs.map +1 -1
- package/components/form/native-select.js +2 -2
- package/components/form/native-select.mjs +1 -1
- package/components/form/searchable-select.d.mts +26 -0
- package/components/form/searchable-select.d.ts +26 -0
- package/components/form/searchable-select.js +17 -0
- package/components/form/searchable-select.js.map +1 -0
- package/components/form/searchable-select.mjs +16 -0
- package/components/form/searchable-select.mjs.map +1 -0
- package/components/form/select.js +2 -2
- package/components/form/select.mjs +1 -1
- package/components/form/text-input.js +2 -2
- package/components/form/text-input.mjs +1 -1
- package/components/form/textarea.js +2 -2
- package/components/form/textarea.mjs +1 -1
- package/components/form/time-input.js +3 -3
- package/components/form/time-input.mjs +2 -2
- package/components/ui/badge.js +5 -113
- package/components/ui/badge.js.map +1 -1
- package/components/ui/badge.mjs +5 -113
- package/components/ui/badge.mjs.map +1 -1
- package/components/ui/command.d.mts +7 -7
- package/components/ui/command.d.ts +7 -7
- package/components/ui/command.js +26 -111
- package/components/ui/command.js.map +1 -1
- package/components/ui/command.mjs +13 -98
- package/components/ui/command.mjs.map +1 -1
- package/components/ui/extension/file-input.d.mts +10 -0
- package/components/ui/extension/file-input.d.ts +10 -0
- package/components/ui/extension/file-input.js +28 -0
- package/components/ui/extension/file-input.js.map +1 -0
- package/components/ui/extension/file-input.mjs +27 -0
- package/components/ui/extension/file-input.mjs.map +1 -0
- package/components/ui/extension/multi-select.d.mts +53 -0
- package/components/ui/extension/multi-select.d.ts +53 -0
- package/components/ui/extension/multi-select.js +312 -0
- package/components/ui/extension/multi-select.js.map +1 -0
- package/components/ui/extension/multi-select.mjs +311 -0
- package/components/ui/extension/multi-select.mjs.map +1 -0
- package/components/ui/resizable.d.mts +1 -1
- package/components/ui/resizable.d.ts +1 -1
- package/components/ui/toaster.js +2 -2
- package/components/ui/toaster.mjs +1 -1
- package/components/widgets/dialog-manager/index.js +3 -3
- package/components/widgets/dialog-manager/index.js.map +1 -1
- package/components/widgets/dialog-manager/index.mjs +2 -2
- package/components/widgets/dialog-manager/provider.js +2 -2
- package/components/widgets/dialog-manager/provider.mjs +1 -1
- package/hooks/use-toast.js +2 -2
- package/hooks/use-toast.mjs +1 -1
- package/layouts/sidebar1/LinkWrapper.js.map +1 -1
- package/layouts/sidebar1/LinkWrapper.mjs.map +1 -1
- package/layouts/sidebar1/app-sidebar.js +5 -5
- package/layouts/sidebar1/app-sidebar.mjs +4 -4
- package/layouts/sidebar1/context-switcher.js +2 -2
- package/layouts/sidebar1/context-switcher.mjs +1 -1
- package/layouts/sidebar1/index.js +7 -7
- package/layouts/sidebar1/index.js.map +1 -1
- package/layouts/sidebar1/index.mjs +6 -6
- package/layouts/sidebar1/nav-menus.js +2 -2
- package/layouts/sidebar1/nav-menus.mjs +1 -1
- package/layouts/sidebar1/nav-user.js +2 -2
- package/layouts/sidebar1/nav-user.mjs +1 -1
- package/layouts/simple/index.d.mts +19 -15
- package/layouts/simple/index.d.ts +19 -15
- package/layouts/simple/index.js +14 -14
- package/layouts/simple/index.js.map +1 -1
- package/layouts/simple/index.mjs +14 -14
- package/layouts/simple/index.mjs.map +1 -1
- package/package.json +1 -1
- package/chunk-273TIMKM.js.map +0 -1
- package/chunk-2H5WIGQU.js.map +0 -1
- package/chunk-2WDZS5E5.mjs.map +0 -1
- package/chunk-3YDM2NYL.js.map +0 -1
- package/chunk-4QOQOMZB.mjs.map +0 -1
- package/chunk-5RW6O56P.mjs.map +0 -1
- package/chunk-5UUXFHU3.mjs.map +0 -1
- package/chunk-7TCN3MNY.js.map +0 -1
- package/chunk-ALDDTRY5.js.map +0 -1
- package/chunk-DMO25T5J.mjs.map +0 -1
- package/chunk-E77FKWFS.js.map +0 -1
- package/chunk-FQG3C7OR.js.map +0 -1
- package/chunk-IPTLI5N5.mjs.map +0 -1
- package/chunk-LPZRXLKK.mjs.map +0 -1
- package/chunk-LVFEXEXE.mjs.map +0 -1
- package/chunk-MWA2HHI7.mjs.map +0 -1
- package/chunk-N4QVNSAY.js.map +0 -1
- package/chunk-NJDC3RMA.mjs.map +0 -1
- package/chunk-PSQGNWKT.js.map +0 -1
- package/chunk-R3RMWOGE.mjs.map +0 -1
- package/chunk-U3HF6HPN.js.map +0 -1
- package/chunk-UQTHHSJN.mjs.map +0 -1
- package/chunk-V5IL3OBF.mjs.map +0 -1
- package/chunk-WA2Z3OWJ.js.map +0 -1
- package/chunk-XCHWNZWB.js.map +0 -1
- package/chunk-YT6UTIPP.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../layouts/simple/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n className?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n classNames?: {\n nav?: string;\n link?: string;\n };\n };\n right?: {\n menus: MenuItem[];\n classNames?: {\n nav?: string;\n link?: string;\n };\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n classNames?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n classNames?: {\n header?: string;\n content?: string;\n contentBottom?: string;\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', logo?.className)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', left?.classNames?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n left?.classNames?.nav,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n left?.classNames?.nav,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', right?.classNames?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n right?.classNames?.nav,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n right?.classNames?.nav,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.contentBottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n footer?.classNames?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', footer?.classNames?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n footer?.classNames?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n footer?.classNames?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["_a","_b"]}
|
|
1
|
+
{"version":3,"sources":["../../../layouts/simple/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useState, useMemo, useEffect } from 'react';\nimport { Menu } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport { UserMenus } from './user-menu';\nimport { MobileMenu } from './mobile-menu';\nimport type { MenuItem, UserMenuSection } from './types';\n\ninterface LayoutProps {\n logo?: {\n src?: string;\n link?: string;\n };\n user?: {\n menuSections: UserMenuSection[];\n trigger?: React.ReactNode;\n };\n left?: {\n menus: MenuItem[];\n };\n right?: {\n menus: MenuItem[];\n };\n sidebar?: {\n title: string;\n content: React.ReactNode;\n };\n footer?: {\n menus: MenuItem[];\n content?: string;\n };\n classNames?: {\n header?: {\n wrapper: string;\n logo?: string;\n left?: {\n nav?: string;\n link?: string;\n };\n right?: {\n nav?: string;\n link?: string;\n };\n };\n content?: {\n wrapper?: string;\n bottom?: string;\n };\n footer?: {\n wrapper?: string;\n nav?: string;\n link?: string;\n };\n };\n loading?: boolean;\n children?: React.ReactNode;\n aslink: React.ElementType;\n}\n\nexport default function SimpleLayout(props: LayoutProps) {\n const { logo, user, left, right, sidebar, footer, classNames, loading, children, aslink } = props;\n\n const [mobileMenuOpen, setMobileMenuOpen] = useState(false);\n const [isMobile, setIsMobile] = useState(false);\n\n const LinkComponent = aslink ?? 'button';\n\n useEffect(() => {\n const handleResize = () => {\n setIsMobile(window.innerWidth < 768);\n };\n handleResize();\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => setMobileMenuOpen(!mobileMenuOpen);\n\n const leftMenus = left?.menus ?? [];\n const rightMenus = right?.menus ?? [];\n const topMenus = [...leftMenus, ...rightMenus];\n const userMenuSections = user?.menuSections ?? [];\n const footerMenus = footer?.menus ?? [];\n\n return (\n <div className=\"flex flex-col min-h-screen\">\n {/* Header */}\n <header\n className={cn(\n 'px-4 py-2 flex items-center justify-between bg-gray-100 border-b border-gray-300',\n classNames?.header,\n )}\n >\n <div className=\"flex items-center space-x-4\">\n {sidebar && (\n <button\n className=\"bg-transparent border-gray-400 hover:border-gray-500\"\n onClick={() => {\n /* open sidebar */\n }}\n >\n {/* icon */}\n </button>\n )}\n {logo && (\n <div className={cn('_logo')}>\n <LinkComponent to={logo.link ?? '/'} href={logo.link ?? '/'}>\n <img src={logo.src} alt=\"Logo\" className={cn('h-10', classNames?.header?.logo)} />\n </LinkComponent>\n </div>\n )}\n\n {/* Left Menus */}\n <nav className={cn('flex space-x-4 items-center', classNames?.header?.left?.nav)}>\n {leftMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.left?.link,\n item.className,\n item.title || !isMobile ? 'inline-block' : 'hidden',\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n </div>\n\n {/* Right menus */}\n <nav className={cn('hidden md:flex space-x-4 items-center', classNames?.header?.right?.nav)}>\n {rightMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-left text-secondary visited:text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.header?.right?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n {userMenuSections.length > 0 && (\n <UserMenus sections={userMenuSections} trigger={user?.trigger} aslink={aslink} />\n )}\n </nav>\n\n {/* Mobile menu button */}\n <button onClick={toggleMobileMenu} className=\"md:hidden p-2 text-gray-700 hover:text-primary cursor-pointer\">\n <Menu className=\"\" />\n </button>\n </header>\n\n {/* Mobile menu */}\n {isMobile && mobileMenuOpen && (\n <div className=\"w-full\">\n <MobileMenu sections={userMenuSections} aslink={aslink} onClick={toggleMobileMenu} />\n </div>\n )}\n\n {/* Main content */}\n <main className={cn('p-4 flex flex-col flex-1', classNames?.content)}>\n {!loading && <div className=\"flex items-center justify-center h-full\">{children}</div>}\n <div className={cn('flex-1', classNames?.content?.bottom)}></div>\n </main>\n\n {/* Footer */}\n {footer && (\n <footer\n className={cn(\n 'px-4 py-4 bg-gray-100 border-t border-gray-300 text-sm text-gray-600',\n classNames?.footer?.wrapper,\n )}\n >\n <nav className={cn('flex flex-wrap justify-center space-x-4', classNames?.footer?.nav)}>\n {footerMenus.map((item) =>\n item.link ? (\n <LinkComponent\n key={item.label}\n to={item.link}\n href={item.link}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </LinkComponent>\n ) : (\n <button\n key={item.label}\n onClick={item.action}\n className={cn(\n 'text-secondary hover:text-primary cursor-pointer no-underline',\n classNames?.footer?.link,\n item.className,\n )}\n >\n {item.label}\n </button>\n ),\n )}\n </nav>\n <div className=\"mt-2 text-center\">{footer?.content}</div>\n </footer>\n )}\n </div>\n );\n}\n"],"mappings":"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","names":["_a","_b","_c","_d"]}
|
package/package.json
CHANGED
package/chunk-273TIMKM.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-273TIMKM.js","../components/widgets/dialog-manager/provider.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACA;ACDA,2EAAuB;AACvB;AAWA,IAAI,SAAA,EAAW,CAAA;AAER,SAAS,cAAA,CAAe,EAAE,SAAS,CAAA,EAAkC;AAC1E,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,EAAA,EAAI,6BAAA,CAAyB,CAAC,CAAA;AAExD,EAAA,MAAM,WAAA,EAAa,gCAAA,CAAmB,SAAA,EAAuC,IAAA,EAAA,GAAwB;AACnG,IAAA,OAAO,IAAI,OAAA,CAAW,CAAC,OAAA,EAAA,GAAY;AACjC,MAAA,MAAM,GAAA,EAAK,EAAE,QAAA;AACb,MAAA,UAAA,CAAW,CAAC,IAAA,EAAA,GAAS,CAAC,GAAG,IAAA,EAAM,EAAE,EAAA,EAAI,SAAA,EAAW,IAAA,EAAM,QAAQ,CAAC,CAAC,CAAA;AAAA,IAClE,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,MAAM,YAAA,EAAc,gCAAA,CAAa,EAAA,EAAY,MAAA,EAAA,GAAgB;AAC3D,IAAA,UAAA,CAAW,CAAC,IAAA,EAAA,GAAS;AACnB,MAAA,MAAM,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAA,IAAO,EAAE,CAAA;AAC1C,MAAA,GAAA,CAAI,KAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA;AAC/B,MAAA,OAAO,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAA,IAAO,EAAE,CAAA;AAAA,IACvC,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,CAAC,CAAA;AAEL,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,8BAAA,CAAc,QAAA,EAAd,EAAuB,KAAA,EAAO,EAAE,WAAW,EAAA,CAAA,EACzC,QAAA,EACA,OAAA,CAAQ,GAAA,CAAI,CAAC,EAAE,EAAA,EAAI,SAAA,EAAW,KAAK,CAAA,EAAA,mBAClC,KAAA,CAAA,aAAA,CAAC,SAAA,EAAA,EAAU,GAAA,EAAK,EAAA,EAAI,IAAA,EAAM,IAAA,EAAM,IAAA,EAAY,OAAA,EAAS,CAAC,MAAA,EAAA,GAAgB,WAAA,CAAY,EAAA,EAAI,MAAM,EAAA,CAAG,CAChG,CACH,CAAA;AAEJ;ADlBA;AACA;AACE;AACF,wCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-273TIMKM.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\nimport { DialogContext } from './context';\nimport { TypedDialogComponent } from './types';\n\ntype DialogEntry = {\n id: number;\n Component: TypedDialogComponent<any, any>;\n args: any;\n resolve: (value: any) => void;\n};\n\nlet dialogId = 0;\n\nexport function DialogProvider({ children }: { children: React.ReactNode }) {\n const [dialogs, setDialogs] = useState<DialogEntry[]>([]);\n\n const openDialog = useCallback(<A, R>(Component: TypedDialogComponent<A, R>, args: A): Promise<R> => {\n return new Promise<R>((resolve) => {\n const id = ++dialogId;\n setDialogs((prev) => [...prev, { id, Component, args, resolve }]);\n });\n }, []);\n\n const handleClose = useCallback((id: number, result: any) => {\n setDialogs((prev) => {\n const entry = prev.find((d) => d.id === id);\n if (entry) entry.resolve(result);\n return prev.filter((d) => d.id !== id);\n });\n }, []);\n\n return (\n <DialogContext.Provider value={{ openDialog }}>\n {children}\n {dialogs.map(({ id, Component, args }) => (\n <Component key={id} open={true} args={args} onClose={(result: any) => handleClose(id, result)} />\n ))}\n </DialogContext.Provider>\n );\n}\n"]}
|
package/chunk-2H5WIGQU.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2H5WIGQU.js","../layouts/sidebar1/app-sidebar.tsx"],"names":["_a"],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACF,sDAA4B;AAC5B;AACA;ACrBA,2EAAuB;AAoBhB,SAAS,UAAA,CAAW,EAAA,EAKxB;AALwB,EAAA,IACtB,MAAA,EAAA,wCAAA,EADsB,EACtB,CAAA,CAAA,CAAA;AAxBL,EAAA,IAAA,EAAA;AA6BE,EAAA,MAAkCA,IAAAA,EAAA,KAAA,EAA1B,EAAA,IAAA,EAAM,OA7BhB,EAAA,EA6BoCA,GAAAA,EAAT,KAAA,EAAA,wCAAA,GAASA,EAAT,CAAjB,MAAA,EAAM,QAAA,CAAA,CAAA;AAEd,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,wBAAA,EAAA,6CAAA,EAAQ,WAAA,EAAY,OAAA,CAAA,EAAW,IAAA,CAAA,kBAC9B,KAAA,CAAA,aAAA,CAAC,8BAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,EAAgB,KAAA,EAAO,IAAA,CAAK,SAAA,CAAU,CACzC,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,yBAAA,EAAA,EAAS,KAAA,EAAO,IAAA,CAAK,KAAA,EAAO,OAAA,CAAgB,CAC/C,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,8BAAA,EAAA,IAAA,EACE,IAAA,CAAK,KAAA,kBACJ,KAAA,CAAA,aAAA,CAAC,wBAAA,EAAA,EAAQ,IAAA,EAAM,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,IAAA,CAAK,SAAA,EAAW,MAAA,EAAgB,QAAA,EAAA,CAAU,GAAA,EAAA,IAAA,CAAK,MAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAa,OAAA,CAAQ,EAAA,kBAEhG,KAAA,CAAA,aAAA;AAAA,IAAC,uBAAA;AAAA,IAAA;AAAA,MACC,OAAA,EAAQ,SAAA;AAAA,MACR,OAAA,EAAS,CAAA,EAAA,GAAM;AA7C3B,QAAA,IAAAA,GAAAA;AA8Cc,QAAA,GAAA,CAAA,CAAIA,IAAAA,EAAA,IAAA,CAAK,MAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAAA,GAAAA,CAAa,KAAA,EAAO;AACtB,UAAA,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,CAAA;AAAA,QACpB;AAAA,MACF;AAAA,IAAA,CAAA;AAAA,IACD;AAAA,EAED,CAEJ,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAY,CACf,CAAA;AAEJ;ADdA;AACA;AACE;AACF,gCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-2H5WIGQU.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { NavMenus } from './nav-menus';\nimport { NavUser, INavUser, INavUserMenuItem } from './nav-user';\nimport { ContextSwitcher, INavContext } from './context-switcher';\nimport { INavMenu } from './nav-menus';\nimport { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarRail } from '../../components/ui/sidebar';\nimport { Button } from '../../components/ui/button';\nimport { cn } from '../../lib/utils';\n\nexport interface ISidebarData {\n user?: INavUser;\n contexts: INavContext[];\n menus: INavMenu[];\n userMenus: INavUserMenuItem[];\n events?: {\n login?: () => void;\n logout?: (user: INavUser) => void;\n };\n}\n\nexport function AppSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar> & {\n data: ISidebarData;\n aslink: React.ElementType;\n}) {\n const { data, aslink, ...rest } = props;\n\n return (\n <Sidebar collapsible=\"icon\" {...rest}>\n <SidebarHeader>\n <ContextSwitcher items={data.contexts} />\n </SidebarHeader>\n <SidebarContent>\n <NavMenus menus={data.menus} aslink={aslink} />\n </SidebarContent>\n <SidebarFooter>\n {data.user ? (\n <NavUser user={data.user} menus={data.userMenus} aslink={aslink} onLogout={data.events?.logout} />\n ) : (\n <Button\n variant=\"primary\"\n onClick={() => {\n if (data.events?.login) {\n data.events.login();\n }\n }}\n >\n Sign in\n </Button>\n )}\n </SidebarFooter>\n <SidebarRail />\n </Sidebar>\n );\n}\n"]}
|
package/chunk-2WDZS5E5.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/time-input.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../lib/number';\n\nexport interface FormTimeInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n value?: number;\n onChange?: (value: number) => void;\n}\n\nexport function FormTimeInput({ value: parentValue = 0, onChange, ...rest }: FormTimeInputProps) {\n const [value, setValue] = useState<string>(String(parentValue));\n\n useEffect(() => {\n setValue(String(parentValue ?? ''));\n }, [parentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n };\n\n const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = convertToHours(e.target.value);\n const numericValue = Number(newValue);\n\n setValue(newValue);\n onChange?.(numericValue);\n };\n\n const displayText = convertFromHours(value);\n const displayWhole = convertToWholeFromHours(value);\n const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n return <FormTextInput {...rest} value={value} onChange={handleChange} onBlur={handleBlur} title={title} />;\n}\n"],"mappings":";;;;;;;;;;;;;;;AAGA,OAAO,SAAS,UAAU,iBAA8B;AAUjD,SAAS,cAAc,IAAmE;AAAnE,eAAE,SAAO,cAAc,GAAG,SAbxD,IAa8B,IAAuC,iBAAvC,IAAuC,CAArC,SAAwB;AACtD,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAiB,OAAO,WAAW,CAAC;AAE9D,YAAU,MAAM;AACd,aAAS,OAAO,oCAAe,EAAE,CAAC;AAAA,EACpC,GAAG,CAAC,WAAW,CAAC;AAEhB,QAAM,eAAe,CAAC,MAAqC;AACzD,aAAS,EAAE,OAAO,KAAK;AAAA,EACzB;AAEA,QAAM,aAAa,CAAC,MAAqC;AACvD,UAAM,WAAW,eAAe,EAAE,OAAO,KAAK;AAC9C,UAAM,eAAe,OAAO,QAAQ;AAEpC,aAAS,QAAQ;AACjB,yCAAW;AAAA,EACb;AAEA,QAAM,cAAc,iBAAiB,KAAK;AAC1C,QAAM,eAAe,wBAAwB,KAAK;AAClD,QAAM,QAAQ,gBAAgB,eAAe,GAAG,WAAW,KAAK,YAAY,MAAM;AAElF,SAAO,oCAAC,gDAAkB,OAAlB,EAAwB,OAAc,UAAU,cAAc,QAAQ,YAAY,QAAc;AAC1G;","names":[]}
|
package/chunk-3YDM2NYL.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3YDM2NYL.js","../components/form/textarea.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACZA,4EAAsD;AACtD,4GAAwB;AACxB,wGAAuB;AAOvB,IAAM,WAAA,EAAa,EAAA;AAcZ,SAAS,YAAA,CAAa,EAAA,EAUP;AAVO,EAAA,IAAA,GAAA,EAAA,EAAA,EAC3B;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,CAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EAlChB,EAAA,EA0B6B,EAAA,EASxB,KAAA,EAAA,wCAAA,EATwB,EASxB;AAAA,IARH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,GAAA,EAAK,iCAAA,IAAe,CAAA;AAC7B,EAAA,MAAM,KAAA,EAAO,2BAAA,IAAgC,CAAA;AAE7C,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAC/C,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EAC/C,KACH,CAAA,kBAEF,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,EAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,IAAA,CAAA,EARL;AAAA,MAYC,GAAA,EAAK,CAAC,EAAA,EAAA,GAAO;AACX,QAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,QAAA,CAAC,IAAA,EAAM,UAAA,CAAW,GAAG,CAAA,CAAE,OAAA,CAAQ,CAAC,EAAA,EAAA,GAAO;AACrC,UAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAA;AAET,UAAA,GAAA,CAAI,kCAAA,EAAc,CAAA,EAAG;AACnB,YAAA,EAAA,CAAG,EAAE,CAAA;AAAA,UACP,EAAA,KAAO;AACL,YAAA,EAAA,CAAG,QAAA,EAAU,EAAA;AAAA,UACf;AAAA,QACF,CAAC,CAAA;AAAA,MACH,CAAA;AAAA,MACA,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADTA;AACA;AACE;AACF,oCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-3YDM2NYL.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('textarea', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
|
package/chunk-4QOQOMZB.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/text-input.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React, { InputHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Input\n type={type}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAGA,OAAO,WAAoC;AAC3C,OAAO,gBAAgB;AAOvB,IAAM,aAAa;AAcZ,SAAS,cAAc,IAUP;AAVO,eAC5B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EAjChB,IAyB8B,IASzB,iBATyB,IASzB;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,OARL;AAAA,MASC,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}
|
package/chunk-5RW6O56P.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/widgets/dialog-manager/provider.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { useState, useCallback } from 'react';\nimport { DialogContext } from './context';\nimport { TypedDialogComponent } from './types';\n\ntype DialogEntry = {\n id: number;\n Component: TypedDialogComponent<any, any>;\n args: any;\n resolve: (value: any) => void;\n};\n\nlet dialogId = 0;\n\nexport function DialogProvider({ children }: { children: React.ReactNode }) {\n const [dialogs, setDialogs] = useState<DialogEntry[]>([]);\n\n const openDialog = useCallback(<A, R>(Component: TypedDialogComponent<A, R>, args: A): Promise<R> => {\n return new Promise<R>((resolve) => {\n const id = ++dialogId;\n setDialogs((prev) => [...prev, { id, Component, args, resolve }]);\n });\n }, []);\n\n const handleClose = useCallback((id: number, result: any) => {\n setDialogs((prev) => {\n const entry = prev.find((d) => d.id === id);\n if (entry) entry.resolve(result);\n return prev.filter((d) => d.id !== id);\n });\n }, []);\n\n return (\n <DialogContext.Provider value={{ openDialog }}>\n {children}\n {dialogs.map(({ id, Component, args }) => (\n <Component key={id} open={true} args={args} onClose={(result: any) => handleClose(id, result)} />\n ))}\n </DialogContext.Provider>\n );\n}\n"],"mappings":";;;;;AAGA,YAAY,WAAW;AACvB,SAAS,UAAU,mBAAmB;AAWtC,IAAI,WAAW;AAER,SAAS,eAAe,EAAE,SAAS,GAAkC;AAC1E,QAAM,CAAC,SAAS,UAAU,IAAI,SAAwB,CAAC,CAAC;AAExD,QAAM,aAAa,YAAY,CAAO,WAAuC,SAAwB;AACnG,WAAO,IAAI,QAAW,CAAC,YAAY;AACjC,YAAM,KAAK,EAAE;AACb,iBAAW,CAAC,SAAS,CAAC,GAAG,MAAM,EAAE,IAAI,WAAW,MAAM,QAAQ,CAAC,CAAC;AAAA,IAClE,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,cAAc,YAAY,CAAC,IAAY,WAAgB;AAC3D,eAAW,CAAC,SAAS;AACnB,YAAM,QAAQ,KAAK,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE;AAC1C,UAAI,MAAO,OAAM,QAAQ,MAAM;AAC/B,aAAO,KAAK,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AAAA,IACvC,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,SACE,oCAAC,cAAc,UAAd,EAAuB,OAAO,EAAE,WAAW,KACzC,UACA,QAAQ,IAAI,CAAC,EAAE,IAAI,WAAW,KAAK,MAClC,oCAAC,aAAU,KAAK,IAAI,MAAM,MAAM,MAAY,SAAS,CAAC,WAAgB,YAAY,IAAI,MAAM,GAAG,CAChG,CACH;AAEJ;","names":[]}
|
package/chunk-5UUXFHU3.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../hooks/use-toast.ts"],"sourcesContent":["\"use client\";\n'use client';\n\n// Inspired by react-hot-toast library\nimport * as React from 'react';\n\nimport type { ToastActionElement, ToastProps } from '../components/ui/toast';\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST',\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST'];\n toast: ToasterToast;\n }\n | {\n type: ActionType['UPDATE_TOAST'];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType['DISMISS_TOAST'];\n toastId?: ToasterToast['id'];\n }\n | {\n type: ActionType['REMOVE_TOAST'];\n toastId?: ToasterToast['id'];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'ADD_TOAST':\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case 'UPDATE_TOAST':\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n };\n\n case 'DISMISS_TOAST': {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, 'id'>;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id },\n });\n\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\n };\n}\n\nexport { useToast, toast };\n"],"mappings":"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","names":["toast","props"]}
|
package/chunk-7TCN3MNY.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-7TCN3MNY.js","../layouts/sidebar1/nav-user.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;AClBA,2EAAuB;AACvB,2CAAwD;AA0BjD,SAAS,OAAA,CAAQ;AAAA,EACtB,IAAA;AAAA,EACA,MAAA,EAAQ,CAAC,CAAA;AAAA,EACT,MAAA,EAAQ,aAAA;AAAA,EACR;AACF,CAAA,EAKG;AACD,EAAA,MAAM,EAAE,SAAS,EAAA,EAAI,yCAAA,CAAW;AAEhC,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,6BAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,oCAAA,EAAA,EAAoB,OAAA,EAAO,KAAA,CAAA,kBAC1B,KAAA,CAAA,aAAA;AAAA,IAAC,kCAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAK,IAAA;AAAA,MACL,SAAA,EAAU;AAAA,IAAA,CAAA;AAAA,oBAEV,KAAA,CAAA,aAAA,CAAC,uBAAA,EAAA,EAAO,SAAA,EAAU,qBAAA,CAAA,kBAChB,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,EAAY,GAAA,EAAK,IAAA,CAAK,MAAA,EAAQ,GAAA,EAAK,IAAA,CAAK,KAAA,CAAM,CAAA,kBAC/C,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,EAAe,SAAA,EAAU,aAAA,CAAA,EAAa,IAAE,CAC3C,CAAA;AAAA,oBACA,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAAA,CAAA,kBACb,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,CAAA,EAA0B,IAAA,CAAK,IAAK,CAAA,kBACpD,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,CAAA,EAAoB,IAAA,CAAK,KAAM,CACjD,CAAA;AAAA,oBACA,KAAA,CAAA,aAAA,CAAC,2BAAA,EAAA,EAAe,SAAA,EAAU,iBAAA,CAAiB;AAAA,EAC7C,CACF,CAAA,kBACA,KAAA,CAAA,aAAA;AAAA,IAAC,oCAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAU,sEAAA;AAAA,MACV,IAAA,EAAM,SAAA,EAAW,SAAA,EAAW,OAAA;AAAA,MAC5B,KAAA,EAAM,KAAA;AAAA,MACN,UAAA,EAAY;AAAA,IAAA,CAAA;AAAA,oBAEZ,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,SAAA,EAAU,kBAAA,CAAA,kBAC3B,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,wDAAA,CAAA,kBACb,KAAA,CAAA,aAAA,CAAC,uBAAA,EAAA,EAAO,SAAA,EAAU,qBAAA,CAAA,kBAChB,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,EAAY,GAAA,EAAK,IAAA,CAAK,MAAA,EAAQ,GAAA,EAAK,IAAA,CAAK,KAAA,CAAM,CAAA,kBAC/C,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,EAAe,SAAA,EAAU,aAAA,CAAA,EAAa,IAAE,CAC3C,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8CAAA,CAAA,kBACb,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yBAAA,CAAA,EAA0B,IAAA,CAAK,IAAK,CAAA,kBACpD,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,mBAAA,CAAA,EAAoB,IAAA,CAAK,KAAM,CACjD,CACF,CACF,CAAA;AAAA,IAEC,KAAA,CAAM,OAAA,EAAS,EAAA,mBAAK,KAAA,CAAA,aAAA,CAAC,sCAAA,EAAA,IAAsB,CAAA;AAAA,oBAC5C,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,IAAA,EACE,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACnB,MAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,IAAA,CAAK,IAAA,EAAM,cAAA,EAAgB,QAAA;AAEzD,MAAA,uBACE,KAAA,CAAA,aAAA;AAAA,QAAC,IAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,IAAA,CAAK,KAAA;AAAA,UACV,EAAA,EAAI,IAAA,CAAK,GAAA;AAAA,UACT,IAAA,EAAM,IAAA,CAAK,GAAA;AAAA,UACX,OAAA,EAAS,CAAA,EAAA,GAAG;AA5FhC,YAAA,IAAA,EAAA;AA4FmC,YAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,IAAA,CAAK,KAAA,CAAA;AAAA,UAAA,CAAA;AAAA,UACnC,SAAA,EAAU;AAAA,QAAA,CAAA;AAAA,wBAEV,KAAA,CAAA,aAAA,CAAC,iCAAA,EAAA,IAAA,EACE,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,EACxB,IAAA,CAAK,KACR;AAAA,MACF,CAAA;AAAA,IAEJ,CAAC,CACH,CAAA;AAAA,IAEC,SAAA,mBACC,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,kBACE,KAAA,CAAA,aAAA,CAAC,sCAAA,EAAA,IAAsB,CAAA,kBACvB,KAAA,CAAA,aAAA,CAAC,iCAAA,EAAA,EAAiB,OAAA,EAAS,CAAA,EAAA,GAAM,QAAA,CAAS,IAAI,EAAA,CAAA,kBAC5C,KAAA,CAAA,aAAA,CAAC,mBAAA,EAAA,IAAO,CAAA,EAAE,SAEZ,CACF;AAAA,EAEJ,CACF,CACF,CACF,CAAA;AAEJ;ADhDA;AACA;AACE;AACF,0BAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-7TCN3MNY.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { ChevronsUpDown, LogOut, type LucideIcon } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\n\nexport interface INavUser {\n name: string;\n email: string;\n avatar: string;\n}\n\nexport interface INavUserMenuItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n onClick?: (title: string) => void;\n}\n\nexport function NavUser({\n user,\n menus = [],\n aslink: LinkComponent,\n onLogout,\n}: {\n user: INavUser;\n menus: INavUserMenuItem[];\n aslink?: React.ElementType;\n onLogout?: (user: INavUser) => void;\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n\n {menus.length > 0 && <DropdownMenuSeparator />}\n <DropdownMenuGroup>\n {menus.map((menu) => {\n const Comp = LinkComponent && menu.url ? LinkComponent : 'button';\n\n return (\n <Comp\n key={menu.title}\n to={menu.url}\n href={menu.url}\n onClick={() => menu.onClick?.(menu.title)}\n className=\"block w-full\"\n >\n <DropdownMenuItem>\n {menu.icon && <menu.icon />}\n {menu.title}\n </DropdownMenuItem>\n </Comp>\n );\n })}\n </DropdownMenuGroup>\n\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => onLogout(user)}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"]}
|
package/chunk-ALDDTRY5.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-ALDDTRY5.js","../hooks/use-toast.ts"],"names":["toast","props"],"mappings":"AAAA;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACFA,2EAAuB;AAIvB,IAAM,YAAA,EAAc,CAAA;AACpB,IAAM,mBAAA,EAAqB,GAAA;AAgB3B,IAAI,MAAA,EAAQ,CAAA;AAEZ,SAAS,KAAA,CAAA,EAAQ;AACf,EAAA,MAAA,EAAA,CAAS,MAAA,EAAQ,CAAA,EAAA,EAAK,MAAA,CAAO,gBAAA;AAC7B,EAAA,OAAO,KAAA,CAAM,QAAA,CAAS,CAAA;AACxB;AA0BA,IAAM,cAAA,kBAAgB,IAAI,GAAA,CAA2C,CAAA;AAErE,IAAM,iBAAA,EAAmB,CAAC,OAAA,EAAA,GAAoB;AAC5C,EAAA,GAAA,CAAI,aAAA,CAAc,GAAA,CAAI,OAAO,CAAA,EAAG;AAC9B,IAAA,MAAA;AAAA,EACF;AAEA,EAAA,MAAM,QAAA,EAAU,UAAA,CAAW,CAAA,EAAA,GAAM;AAC/B,IAAA,aAAA,CAAc,MAAA,CAAO,OAAO,CAAA;AAC5B,IAAA,QAAA,CAAS;AAAA,MACP,IAAA,EAAM,cAAA;AAAA,MACN;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,kBAAkB,CAAA;AAErB,EAAA,aAAA,CAAc,GAAA,CAAI,OAAA,EAAS,OAAO,CAAA;AACpC,CAAA;AAEO,IAAM,QAAA,EAAU,CAAC,KAAA,EAAc,MAAA,EAAA,GAA0B;AAC9D,EAAA,OAAA,CAAQ,MAAA,CAAO,IAAA,EAAM;AAAA,IACnB,KAAK,WAAA;AACH,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,CAAC,MAAA,CAAO,KAAA,EAAO,GAAG,KAAA,CAAM,MAAM,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,WAAW;AAAA,MAC9D,CAAA,CAAA;AAAA,IAEF,KAAK,cAAA;AACH,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA,CAAI,CAAC,CAAA,EAAA,GAAO,CAAA,CAAE,GAAA,IAAO,MAAA,CAAO,KAAA,CAAM,GAAA,EAAK,6CAAA,6CAAA,CAAA,CAAA,EAAK,CAAA,CAAA,EAAM,MAAA,CAAO,KAAA,EAAA,EAAU,CAAE;AAAA,MAC5F,CAAA,CAAA;AAAA,IAEF,KAAK,eAAA,EAAiB;AACpB,MAAA,MAAM,EAAE,QAAQ,EAAA,EAAI,MAAA;AAIpB,MAAA,GAAA,CAAI,OAAA,EAAS;AACX,QAAA,gBAAA,CAAiB,OAAO,CAAA;AAAA,MAC1B,EAAA,KAAO;AACL,QAAA,KAAA,CAAM,MAAA,CAAO,OAAA,CAAQ,CAACA,MAAAA,EAAAA,GAAU;AAC9B,UAAA,gBAAA,CAAiBA,MAAAA,CAAM,EAAE,CAAA;AAAA,QAC3B,CAAC,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,GAAA;AAAA,UAAI,CAAC,CAAA,EAAA,GACxB,CAAA,CAAE,GAAA,IAAO,QAAA,GAAW,QAAA,IAAY,KAAA,EAAA,EAC5B,4CAAA,6CAAA,CAAA,CAAA,EACK,CAAA,CAAA,EADL;AAAA,YAEE,IAAA,EAAM;AAAA,UACR,CAAA,EAAA,EACA;AAAA,QACN;AAAA,MACF,CAAA,CAAA;AAAA,IACF;AAAA,IACA,KAAK,cAAA;AACH,MAAA,GAAA,CAAI,MAAA,CAAO,QAAA,IAAY,KAAA,CAAA,EAAW;AAChC,QAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,UAEL,MAAA,EAAQ,CAAC;AAAA,QACX,CAAA,CAAA;AAAA,MACF;AACA,MAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,QAEL,MAAA,EAAQ,KAAA,CAAM,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA,EAAA,GAAM,CAAA,CAAE,GAAA,IAAO,MAAA,CAAO,OAAO;AAAA,MAC5D,CAAA,CAAA;AAAA,EACJ;AACF,CAAA;AAEA,IAAM,UAAA,EAA2C,CAAC,CAAA;AAElD,IAAI,YAAA,EAAqB,EAAE,MAAA,EAAQ,CAAC,EAAE,CAAA;AAEtC,SAAS,QAAA,CAAS,MAAA,EAAgB;AAChC,EAAA,YAAA,EAAc,OAAA,CAAQ,WAAA,EAAa,MAAM,CAAA;AACzC,EAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,QAAA,EAAA,GAAa;AAC9B,IAAA,QAAA,CAAS,WAAW,CAAA;AAAA,EACtB,CAAC,CAAA;AACH;AAIA,SAAS,KAAA,CAAM,EAAA,EAAqB;AAArB,EAAA,IAAK,MAAA,EAAA,wCAAA,EAAL,EAAK,CAAA,CAAA,CAAA;AAClB,EAAA,MAAM,GAAA,EAAK,KAAA,CAAM,CAAA;AAEjB,EAAA,MAAM,OAAA,EAAS,CAACC,MAAAA,EAAAA,GACd,QAAA,CAAS;AAAA,IACP,IAAA,EAAM,cAAA;AAAA,IACN,KAAA,EAAO,4CAAA,6CAAA,CAAA,CAAA,EAAKA,MAAAA,CAAAA,EAAL,EAAY,GAAG,CAAA;AAAA,EACxB,CAAC,CAAA;AAEH,EAAA,MAAM,QAAA,EAAU,CAAA,EAAA,GAAM,QAAA,CAAS,EAAE,IAAA,EAAM,eAAA,EAAiB,OAAA,EAAS,GAAG,CAAC,CAAA;AAErE,EAAA,QAAA,CAAS;AAAA,IACP,IAAA,EAAM,WAAA;AAAA,IACN,KAAA,EAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,MAEL,EAAA;AAAA,MACA,IAAA,EAAM,IAAA;AAAA,MACN,YAAA,EAAc,CAAC,IAAA,EAAA,GAAS;AACtB,QAAA,GAAA,CAAI,CAAC,IAAA,EAAM,OAAA,CAAQ,CAAA;AAAA,MACrB;AAAA,IACF,CAAA;AAAA,EACF,CAAC,CAAA;AAED,EAAA,OAAO;AAAA,IACL,EAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,EACF,CAAA;AACF;AAEA,SAAS,QAAA,CAAA,EAAW;AAClB,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAU,KAAA,CAAA,QAAA,CAAgB,WAAW,CAAA;AAE3D,EAAM,KAAA,CAAA,SAAA,CAAU,CAAA,EAAA,GAAM;AACpB,IAAA,SAAA,CAAU,IAAA,CAAK,QAAQ,CAAA;AACvB,IAAA,OAAO,CAAA,EAAA,GAAM;AACX,MAAA,MAAM,MAAA,EAAQ,SAAA,CAAU,OAAA,CAAQ,QAAQ,CAAA;AACxC,MAAA,GAAA,CAAI,MAAA,EAAQ,CAAA,CAAA,EAAI;AACd,QAAA,SAAA,CAAU,MAAA,CAAO,KAAA,EAAO,CAAC,CAAA;AAAA,MAC3B;AAAA,IACF,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,KAAK,CAAC,CAAA;AAEV,EAAA,OAAO,4CAAA,6CAAA,CAAA,CAAA,EACF,KAAA,CAAA,EADE;AAAA,IAEL,KAAA;AAAA,IACA,OAAA,EAAS,CAAC,OAAA,EAAA,GAAqB,QAAA,CAAS,EAAE,IAAA,EAAM,eAAA,EAAiB,QAAQ,CAAC;AAAA,EAC5E,CAAA,CAAA;AACF;ADzEA;AACA;AACE;AACA;AACA;AACF,8EAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-ALDDTRY5.js","sourcesContent":[null,"\"use client\";\n'use client';\n\n// Inspired by react-hot-toast library\nimport * as React from 'react';\n\nimport type { ToastActionElement, ToastProps } from '../components/ui/toast';\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST',\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType['ADD_TOAST'];\n toast: ToasterToast;\n }\n | {\n type: ActionType['UPDATE_TOAST'];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType['DISMISS_TOAST'];\n toastId?: ToasterToast['id'];\n }\n | {\n type: ActionType['REMOVE_TOAST'];\n toastId?: ToasterToast['id'];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: 'REMOVE_TOAST',\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case 'ADD_TOAST':\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case 'UPDATE_TOAST':\n return {\n ...state,\n toasts: state.toasts.map((t) => (t.id === action.toast.id ? { ...t, ...action.toast } : t)),\n };\n\n case 'DISMISS_TOAST': {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t,\n ),\n };\n }\n case 'REMOVE_TOAST':\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, 'id'>;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: 'UPDATE_TOAST',\n toast: { ...props, id },\n });\n\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id });\n\n dispatch({\n type: 'ADD_TOAST',\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\n };\n}\n\nexport { useToast, toast };\n"]}
|
package/chunk-DMO25T5J.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../layouts/sidebar1/context-switcher.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { ChevronsUpDown, Plus } from 'lucide-react';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\nimport { cn } from '../../lib/utils';\n\nexport interface INavContext {\n name: string;\n logo: React.ElementType;\n text: string;\n className?: string;\n}\n\nexport function ContextSwitcher({\n items,\n title = 'Contexts',\n newContextText = 'Add context',\n}: {\n items: INavContext[];\n title?: string;\n newContextText?: string;\n}) {\n const { isMobile } = useSidebar();\n const [activeContext, setActiveContext] = React.useState(items[0]);\n\n React.useEffect(() => {\n if (!items || items.length === 0) return;\n setActiveContext((prev) => {\n const stillExists = items.find((item) => item.name === prev?.name);\n return stillExists ?? items[0];\n });\n }, [items]);\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <div\n className={cn(\n 'flex aspect-square size-8 items-center justify-center rounded-lg bg-dark text-dark-foreground',\n activeContext.className,\n )}\n >\n <activeContext.logo className=\"size-4\" />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{activeContext.name}</span>\n <span className=\"truncate text-xs\">{activeContext.text}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n align=\"start\"\n side={isMobile ? 'bottom' : 'right'}\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"text-xs text-muted-foreground\">{title}</DropdownMenuLabel>\n {items.map((item, index) => (\n <DropdownMenuItem key={item.name} onClick={() => setActiveContext(item)} className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-sm border\">\n <item.logo className=\"size-4 shrink-0\" />\n </div>\n {item.name}\n <DropdownMenuShortcut>⌘{index + 1}</DropdownMenuShortcut>\n </DropdownMenuItem>\n ))}\n <DropdownMenuSeparator />\n <DropdownMenuItem className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-md border bg-background\">\n <Plus className=\"size-4\" />\n </div>\n <div className=\"font-medium text-muted-foreground\">{newContextText}</div>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAGA,YAAY,WAAW;AACvB,SAAS,gBAAgB,YAAY;AAoB9B,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA,QAAQ;AAAA,EACR,iBAAiB;AACnB,GAIG;AACD,QAAM,EAAE,SAAS,IAAI,WAAW;AAChC,QAAM,CAAC,eAAe,gBAAgB,IAAU,eAAS,MAAM,CAAC,CAAC;AAEjE,EAAM,gBAAU,MAAM;AACpB,QAAI,CAAC,SAAS,MAAM,WAAW,EAAG;AAClC,qBAAiB,CAAC,SAAS;AACzB,YAAM,cAAc,MAAM,KAAK,CAAC,SAAS,KAAK,UAAS,6BAAM,KAAI;AACjE,aAAO,oCAAe,MAAM,CAAC;AAAA,IAC/B,CAAC;AAAA,EACH,GAAG,CAAC,KAAK,CAAC;AAEV,SACE,oCAAC,mBACC,oCAAC,uBACC,oCAAC,oBACC,oCAAC,uBAAoB,SAAO,QAC1B;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA;AAAA,IAEV;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UACA,cAAc;AAAA,QAChB;AAAA;AAAA,MAEA,oCAAC,cAAc,MAAd,EAAmB,WAAU,UAAS;AAAA,IACzC;AAAA,IACA,oCAAC,SAAI,WAAU,iDACb,oCAAC,UAAK,WAAU,4BAA0B,cAAc,IAAK,GAC7D,oCAAC,UAAK,WAAU,sBAAoB,cAAc,IAAK,CACzD;AAAA,IACA,oCAAC,kBAAe,WAAU,WAAU;AAAA,EACtC,CACF,GACA;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,OAAM;AAAA,MACN,MAAM,WAAW,WAAW;AAAA,MAC5B,YAAY;AAAA;AAAA,IAEZ,oCAAC,qBAAkB,WAAU,mCAAiC,KAAM;AAAA,IACnE,MAAM,IAAI,CAAC,MAAM,UAChB,oCAAC,oBAAiB,KAAK,KAAK,MAAM,SAAS,MAAM,iBAAiB,IAAI,GAAG,WAAU,eACjF,oCAAC,SAAI,WAAU,+DACb,oCAAC,KAAK,MAAL,EAAU,WAAU,mBAAkB,CACzC,GACC,KAAK,MACN,oCAAC,4BAAqB,UAAE,QAAQ,CAAE,CACpC,CACD;AAAA,IACD,oCAAC,2BAAsB;AAAA,IACvB,oCAAC,oBAAiB,WAAU,eAC1B,oCAAC,SAAI,WAAU,6EACb,oCAAC,QAAK,WAAU,UAAS,CAC3B,GACA,oCAAC,SAAI,WAAU,uCAAqC,cAAe,CACrE;AAAA,EACF,CACF,CACF,CACF;AAEJ;","names":[]}
|
package/chunk-E77FKWFS.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-E77FKWFS.js","../layouts/sidebar1/nav-menus.tsx"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACdA,2EAAuB;AACvB,2CAA6B;AA+B7B,SAAS,eAAA,CAAgB,EAAE,IAAA,EAAM,EAAA,EAAI,cAAc,CAAA,EAAkD;AACnG,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,yCAAA,CAAW;AACrC,EAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,IAAA,CAAK,IAAA,EAAM,cAAA,EAAgB,QAAA;AAEzD,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,OAAA,EAAO,IAAA,EAAC,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,OAAA,EAAS,IAAA,CAAK,KAAA,EAAO,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,KAAK,EAAA,CAAA,kBACzG,KAAA,CAAA,aAAA,CAAC,IAAA,EAAA,EAAK,EAAA,EAAI,IAAA,CAAK,GAAA,EAAK,IAAA,EAAM,IAAA,CAAK,GAAA,EAAK,OAAA,EAAS,CAAA,EAAA,GAAG;AA1CxD,IAAA,IAAA,EAAA;AA0C2D,IAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,IAAA,CAAK,KAAA,CAAA;AAAA,EAAA,EAAA,CAAA,EACpE,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,IAAA,CAAK,KAAM,CACpB,CACF,CACF,CAAA;AAEJ;AAEA,SAAS,sBAAA,CAAuB,EAAE,IAAA,EAAM,EAAA,EAAI,cAAc,CAAA,EAA+C;AACvG,EAAA,MAAM,EAAE,cAAc,EAAA,EAAI,yCAAA,CAAW;AACrC,EAAA,GAAA,CAAI,CAAC,IAAA,CAAK,QAAA,EAAU,OAAO,IAAA;AAE3B,EAAA,uBACE,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,EAAY,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,OAAA,EAAO,IAAA,EAAC,WAAA,EAAa,IAAA,CAAK,QAAA,EAAU,SAAA,EAAU,oBAAA,CAAA,kBAC1E,KAAA,CAAA,aAAA,CAAC,gCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,EAAmB,OAAA,EAAO,KAAA,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,EAAkB,OAAA,EAAS,IAAA,CAAK,MAAA,CAAA,EAC9B,IAAA,CAAK,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,IAAA,CAAK,IAAA,EAAL,IAAU,CAAA,kBACzB,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,IAAA,CAAK,KAAM,CAAA,kBAClB,KAAA,CAAA,aAAA,CAAC,yBAAA,EAAA,EAAa,SAAA,EAAU,0FAAA,CAA0F,CACpH,CACF,CAAA,kBACA,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,IAAA,kBACC,KAAA,CAAA,aAAA,CAAC,+BAAA,EAAA,IAAA,EACE,IAAA,CAAK,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAA,GAAY;AAC9B,IAAA,MAAM,KAAA,EAAO,cAAA,GAAiB,OAAA,CAAQ,IAAA,EAAM,cAAA,EAAgB,QAAA;AAE5D,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,mCAAA,EAAA,EAAmB,GAAA,EAAK,OAAA,CAAQ,MAAA,CAAA,kBAC/B,KAAA,CAAA,aAAA,CAAC,qCAAA,EAAA,EAAqB,OAAA,EAAO,IAAA,EAAC,QAAA,EAAU,OAAA,CAAQ,QAAA,EAAU,OAAA,EAAS,CAAA,EAAA,GAAM,aAAA,CAAc,KAAK,EAAA,CAAA,kBAC1F,KAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,OAAA,CAAQ,GAAA;AAAA,QACZ,IAAA,EAAM,OAAA,CAAQ,GAAA;AAAA,QACd,OAAA,EAAS,CAAA,EAAA,GAAG;AA5ElC,UAAA,IAAA,EAAA;AA4EqC,UAAA,OAAA,CAAA,GAAA,EAAA,IAAA,CAAK,OAAA,EAAA,GAAL,KAAA,EAAA,KAAA,EAAA,EAAA,EAAA,CAAA,IAAA,CAAA,IAAA,EAAe,OAAA,CAAQ,KAAA,CAAA;AAAA,QAAA,CAAA;AAAA,QACtC,SAAA,EAAU;AAAA,MAAA,CAAA;AAAA,MAET,OAAA,CAAQ,KAAA,mBAAQ,KAAA,CAAA,aAAA,CAAC,OAAA,CAAQ,IAAA,EAAR,IAAa,CAAA;AAAA,sBAC/B,KAAA,CAAA,aAAA,CAAC,MAAA,EAAA,IAAA,EAAM,OAAA,CAAQ,KAAM;AAAA,IACvB,CACF,CACF,CAAA;AAAA,EAEJ,CAAC,CACH,CACF,CACF,CACF,CAAA;AAEJ;AAEO,SAAS,QAAA,CAAS,EAAE,KAAA,EAAO,OAAO,CAAA,EAAqD;AAC5F,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAA,GAAS;AACzB,IAAA,uBACE,KAAA,CAAA,aAAA,CAAC,6BAAA,EAAA,EAAa,GAAA,EAAK,IAAA,CAAK,MAAA,CAAA,kBACtB,KAAA,CAAA,aAAA,CAAC,kCAAA,EAAA,IAAA,EAAmB,IAAA,CAAK,KAAM,CAAA,kBAC/B,KAAA,CAAA,aAAA,CAAC,4BAAA,EAAA,IAAA,EACE,IAAA,CAAK,KAAA,CAAM,GAAA;AAAA,MAAI,CAAC,IAAA,EAAA,GACf,IAAA,CAAK,SAAA,GAAY,IAAA,CAAK,QAAA,CAAS,OAAA,EAAS,EAAA,kBACtC,KAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAuB,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,IAAA,EAAY,EAAA,EAAI,OAAA,CAAQ,EAAA,kBAEjE,KAAA,CAAA,aAAA,CAAC,eAAA,EAAA,EAAgB,GAAA,EAAK,IAAA,CAAK,KAAA,EAAO,IAAA,EAAY,EAAA,EAAI,OAAA,CAAQ;AAAA,IAE9D,CACF,CACF,CAAA;AAAA,EAEJ,CAAC,CAAA;AACH;ADtDA;AACA;AACE;AACF,4BAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-E77FKWFS.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from '../../components/ui/sidebar';\nimport { useSidebar } from '../../components/ui/sidebar';\n\nexport interface IMenuSubItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n isActive?: boolean;\n onClick?: (title: string) => void;\n}\n\nexport interface IMenuItem extends IMenuSubItem {\n subItems?: IMenuSubItem[];\n}\n\nexport interface INavMenu {\n title: string;\n items: IMenuItem[];\n}\n\nfunction SidebarMenuLink({ item, as: LinkComponent }: { item: IMenuSubItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n const Comp = LinkComponent && item.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={item.isActive} tooltip={item.title} onClick={() => setOpenMobile(false)}>\n <Comp to={item.url} href={item.url} onClick={() => item.onClick?.(item.title)}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n </Comp>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n}\n\nfunction SidebarMenuCollapsible({ item, as: LinkComponent }: { item: IMenuItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n if (!item.subItems) return null;\n\n return (\n <Collapsible key={item.title} asChild defaultOpen={item.isActive} className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton tooltip={item.title}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n <ChevronRight className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.subItems.map((subItem) => {\n const Comp = LinkComponent && subItem.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuSubItem key={subItem.title}>\n <SidebarMenuSubButton asChild isActive={subItem.isActive} onClick={() => setOpenMobile(false)}>\n <Comp\n to={subItem.url}\n href={subItem.url}\n onClick={() => item.onClick?.(subItem.title)}\n className=\"block w-full\"\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.title}</span>\n </Comp>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n );\n}\n\nexport function NavMenus({ menus, aslink }: { menus: INavMenu[]; aslink: React.ElementType }) {\n return menus.map((menu) => {\n return (\n <SidebarGroup key={menu.title}>\n <SidebarGroupLabel>{menu.title}</SidebarGroupLabel>\n <SidebarMenu>\n {menu.items.map((item) =>\n item.subItems && item.subItems.length > 0 ? (\n <SidebarMenuCollapsible key={item.title} item={item} as={aslink} />\n ) : (\n <SidebarMenuLink key={item.title} item={item} as={aslink} />\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n });\n}\n"]}
|
package/chunk-FQG3C7OR.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FQG3C7OR.js","../components/form/select.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-FQG3C7OR.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from '../ui/select';\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormSelectProps {\n id?: string;\n name: string;\n label?: string;\n placeholder?: string;\n data: SelectOption[] | string[];\n defaultValue?: string;\n value?: string;\n onChange: (value?: string) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n required?: boolean;\n disabled?: boolean;\n}\n\nexport function FormSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n ...rest\n}: FormSelectProps) {\n let _options: SelectOption[] = [];\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_select', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Select onValueChange={onChange} defaultValue={defaultValue ?? value ?? ''} value={value}>\n <SelectTrigger className=\"\">\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent className={cn(classNames?.input)}>\n {_options.map((option, index) => {\n return (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"]}
|
package/chunk-IPTLI5N5.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/date-picker.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isUndefined from 'lodash-es/isUndefined';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nfunction getStartOfDay(date: Date) {\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n return startOfDay;\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: Date | string;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n initialValue,\n value,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const [date, setDate] = useState<Date | undefined>(undefined);\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (!initialized) {\n const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(new Date());\n\n setDate(dt);\n setInitialized(true);\n }\n }, [initialized, initialValue]);\n\n useEffect(() => {\n if (_isUndefined(value)) {\n if (!_isUndefined(date)) {\n setDate(undefined);\n }\n } else {\n const dt = _isString(value) ? new Date(value) : value;\n if (!isEqualDate(date, dt)) {\n setDate(getStartOfDay(dt));\n }\n }\n }, [value]);\n\n useEffect(() => {\n if (initialized) {\n onChange(date);\n }\n }, [date, initialized]);\n\n if (!id) id = _kebabCase(name);\n\n const display = !initialized ? <span></span> : date ? <>{formatDate(date)}</> : <span>Pick a date</span>;\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={date ? 'secondary' : 'muted'}\n appearance=\"outline\"\n className={cn('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {display}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={(newdate) => {\n if (!isEqualDate(date, newdate)) {\n setDate(newdate);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,SAAS,WAAW,gBAAgB;AAC3C,SAAkB,cAAuB;AACzC,SAAS,oBAAoB;AAC7B,OAAO,gBAAgB;AAEvB,OAAO,kBAAkB;AACzB,OAAO,eAAe;AAStB,SAAS,WAAW,MAAY;AAC9B,SAAO,OAAO,MAAM,WAAW;AACjC;AAEA,SAAS,cAAc,MAAY;AACjC,QAAM,aAAa,IAAI,KAAK,KAAK,YAAY,GAAG,KAAK,SAAS,GAAG,KAAK,QAAQ,CAAC;AAC/E,SAAO;AACT;AAkBO,SAAS,eAAe;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAwB;AACtB,QAAM,CAAC,MAAM,OAAO,IAAI,SAA2B,MAAS;AAC5D,QAAM,CAAC,aAAa,cAAc,IAAI,SAAS,KAAK;AAEpD,YAAU,MAAM;AACd,QAAI,CAAC,aAAa;AAChB,YAAM,KAAK,eAAe,cAAc,IAAI,KAAK,YAAY,CAAC,IAAI,cAAc,oBAAI,KAAK,CAAC;AAE1F,cAAQ,EAAE;AACV,qBAAe,IAAI;AAAA,IACrB;AAAA,EACF,GAAG,CAAC,aAAa,YAAY,CAAC;AAE9B,YAAU,MAAM;AACd,QAAI,aAAa,KAAK,GAAG;AACvB,UAAI,CAAC,aAAa,IAAI,GAAG;AACvB,gBAAQ,MAAS;AAAA,MACnB;AAAA,IACF,OAAO;AACL,YAAM,KAAK,UAAU,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI;AAChD,UAAI,CAAC,YAAY,MAAM,EAAE,GAAG;AAC1B,gBAAQ,cAAc,EAAE,CAAC;AAAA,MAC3B;AAAA,IACF;AAAA,EACF,GAAG,CAAC,KAAK,CAAC;AAEV,YAAU,MAAM;AACd,QAAI,aAAa;AACf,eAAS,IAAI;AAAA,IACf;AAAA,EACF,GAAG,CAAC,MAAM,WAAW,CAAC;AAEtB,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,QAAM,UAAU,CAAC,cAAc,oCAAC,YAAK,IAAU,OAAO,0DAAG,WAAW,IAAI,CAAE,IAAM,oCAAC,cAAK,aAAW;AAEjG,SACE,oCAAC,SAAI,WAAW,GAAG,eAAe,yCAAY,OAAO,KAClD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF,oCAAC,SAAI,WAAW,GAAG,YAAY,KAC7B,oCAAC,eACC,oCAAC,kBAAe,SAAO,QACrB;AAAA,IAAC;AAAA;AAAA,MACC,SAAS,OAAO,cAAc;AAAA,MAC9B,YAAW;AAAA,MACX,WAAW,GAAG,qDAAqD,yCAAY,MAAM;AAAA;AAAA,IAErF,oCAAC,kBAAa;AAAA,IACb;AAAA,EACH,CACF,GACA,oCAAC,kBAAe,WAAU,cAAa,OAAM,WAC3C;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAc;AAAA,MACd,UAAU;AAAA,MACV,UAAU,CAAC,YAAY;AACrB,YAAI,CAAC,YAAY,MAAM,OAAO,GAAG;AAC/B,kBAAQ,OAAO;AAAA,QACjB;AAAA,MACF;AAAA;AAAA,EACF,CACF,CACF,CACF,CACF;AAEJ;","names":[]}
|
package/chunk-LPZRXLKK.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../layouts/sidebar1/app-sidebar.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { NavMenus } from './nav-menus';\nimport { NavUser, INavUser, INavUserMenuItem } from './nav-user';\nimport { ContextSwitcher, INavContext } from './context-switcher';\nimport { INavMenu } from './nav-menus';\nimport { Sidebar, SidebarContent, SidebarFooter, SidebarHeader, SidebarRail } from '../../components/ui/sidebar';\nimport { Button } from '../../components/ui/button';\nimport { cn } from '../../lib/utils';\n\nexport interface ISidebarData {\n user?: INavUser;\n contexts: INavContext[];\n menus: INavMenu[];\n userMenus: INavUserMenuItem[];\n events?: {\n login?: () => void;\n logout?: (user: INavUser) => void;\n };\n}\n\nexport function AppSidebar({\n ...props\n}: React.ComponentProps<typeof Sidebar> & {\n data: ISidebarData;\n aslink: React.ElementType;\n}) {\n const { data, aslink, ...rest } = props;\n\n return (\n <Sidebar collapsible=\"icon\" {...rest}>\n <SidebarHeader>\n <ContextSwitcher items={data.contexts} />\n </SidebarHeader>\n <SidebarContent>\n <NavMenus menus={data.menus} aslink={aslink} />\n </SidebarContent>\n <SidebarFooter>\n {data.user ? (\n <NavUser user={data.user} menus={data.userMenus} aslink={aslink} onLogout={data.events?.logout} />\n ) : (\n <Button\n variant=\"primary\"\n onClick={() => {\n if (data.events?.login) {\n data.events.login();\n }\n }}\n >\n Sign in\n </Button>\n )}\n </SidebarFooter>\n <SidebarRail />\n </Sidebar>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAGA,YAAY,WAAW;AAoBhB,SAAS,WAAW,IAKxB;AALwB,MACtB,kBADsB,IACtB;AAxBL;AA6BE,QAAkCA,MAAA,OAA1B,QAAM,OA7BhB,IA6BoCA,KAAT,iBAASA,KAAT,CAAjB,QAAM;AAEd,SACE,oCAAC,0BAAQ,aAAY,UAAW,OAC9B,oCAAC,qBACC,oCAAC,mBAAgB,OAAO,KAAK,UAAU,CACzC,GACA,oCAAC,sBACC,oCAAC,YAAS,OAAO,KAAK,OAAO,QAAgB,CAC/C,GACA,oCAAC,qBACE,KAAK,OACJ,oCAAC,WAAQ,MAAM,KAAK,MAAM,OAAO,KAAK,WAAW,QAAgB,WAAU,UAAK,WAAL,mBAAa,QAAQ,IAEhG;AAAA,IAAC;AAAA;AAAA,MACC,SAAQ;AAAA,MACR,SAAS,MAAM;AA7C3B,YAAAA;AA8Cc,aAAIA,MAAA,KAAK,WAAL,gBAAAA,IAAa,OAAO;AACtB,eAAK,OAAO,MAAM;AAAA,QACpB;AAAA,MACF;AAAA;AAAA,IACD;AAAA,EAED,CAEJ,GACA,oCAAC,iBAAY,CACf;AAEJ;","names":["_a"]}
|
package/chunk-LVFEXEXE.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/native-select.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React, { SelectHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\n\ntype NativeSelectProps = SelectHTMLAttributes<HTMLSelectElement>;\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormNativeSelectProps extends NativeSelectProps {\n id?: string;\n name: string;\n label: string;\n selectProps: NativeSelectProps;\n data: SelectOption[] | string[];\n defaultValue?: string;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormNativeSelect({\n id,\n name,\n label,\n selectProps,\n data,\n defaultValue,\n classNames,\n required,\n disabled,\n ...rest\n}: FormNativeSelectProps) {\n let _options: SelectOption[] = [];\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_native-select', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <select\n {...selectProps}\n id={id}\n name={name}\n autoComplete={id}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n classNames?.input ?? '',\n )}\n required={required}\n disabled={disabled}\n defaultValue={defaultValue}\n {...rest}\n >\n {_options.map((option, index) => {\n return (\n <option\n key={option.value}\n value={option.value}\n // Unfortunately, the selected prop is not properly set at the nested component level.\n // use `defaultValue` in select element.\n // selected={defaultValue ? defaultValue === option.value : index === 0}\n >\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAGA,OAAO,WAAqC;AAC5C,OAAO,gBAAgB;AACvB,OAAO,eAAe;AAWtB,SAAS,oBAAoB,OAAiB;AAC5C,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WAAO,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EACpC,CAAC;AACH;AAgBO,SAAS,iBAAiB,IAWP;AAXO,eAC/B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EA7CF,IAoCiC,IAU5B,iBAV4B,IAU5B;AAAA,IATH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AA7CF,MAAAA;AAgDE,MAAI,WAA2B,CAAC;AAChC,MAAI,KAAK,SAAS,GAAG;AACnB,QAAI,UAAU,KAAK,CAAC,CAAC,GAAG;AACtB,iBAAW,oBAAoB,IAAgB;AAAA,IACjD,OAAO;AACL,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,kBAAkB,yCAAY,OAAO,KACrD,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF;AAAA,IAAC;AAAA,oDACK,cADL;AAAA,MAEC;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,SACAA,MAAA,yCAAY,UAAZ,OAAAA,MAAqB;AAAA,MACvB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACI;AAAA,IAEH,SAAS,IAAI,CAAC,QAAQ,UAAU;AAC/B,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,OAAO;AAAA,UACZ,OAAO,OAAO;AAAA;AAAA,QAKb,OAAO;AAAA,MACV;AAAA,IAEJ,CAAC;AAAA,EACH,CACF;AAEJ;","names":["_a"]}
|
package/chunk-MWA2HHI7.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/select.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectTrigger, SelectValue } from '../ui/select';\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormSelectProps {\n id?: string;\n name: string;\n label?: string;\n placeholder?: string;\n data: SelectOption[] | string[];\n defaultValue?: string;\n value?: string;\n onChange: (value?: string) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n required?: boolean;\n disabled?: boolean;\n}\n\nexport function FormSelect({\n id,\n name,\n label,\n placeholder = '',\n data,\n defaultValue,\n value,\n onChange,\n classNames,\n required,\n disabled,\n ...rest\n}: FormSelectProps) {\n let _options: SelectOption[] = [];\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_select', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <Select onValueChange={onChange} defaultValue={defaultValue ?? value ?? ''} value={value}>\n <SelectTrigger className=\"\">\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent className={cn(classNames?.input)}>\n {_options.map((option, index) => {\n return (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n );\n })}\n </SelectContent>\n </Select>\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAGA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AACvB,OAAO,eAAe;AAUtB,SAAS,oBAAoB,OAAiB;AAC5C,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WAAO,EAAE,OAAO,MAAM,OAAO,KAAK;AAAA,EACpC,CAAC;AACH;AAoBO,SAAS,WAAW,IAaP;AAbO,eACzB;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAlDF,IAuC2B,IAYtB,iBAZsB,IAYtB;AAAA,IAXH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAlDF,MAAAA;AAqDE,MAAI,WAA2B,CAAC;AAChC,MAAI,KAAK,SAAS,GAAG;AACnB,QAAI,UAAU,KAAK,CAAC,CAAC,GAAG;AACtB,iBAAW,oBAAoB,IAAgB;AAAA,IACjD,OAAO;AACL,iBAAW;AAAA,IACb;AAAA,EACF;AAEA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAE7B,SACE,oCAAC,SAAI,WAAW,GAAG,WAAW,yCAAY,OAAO,KAC9C,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAGF,oCAAC,UAAO,eAAe,UAAU,eAAcA,MAAA,sCAAgB,UAAhB,OAAAA,MAAyB,IAAI,SAC1E,oCAAC,iBAAc,WAAU,MACvB,oCAAC,eAAY,aAA0B,CACzC,GACA,oCAAC,iBAAc,WAAW,GAAG,yCAAY,KAAK,KAC3C,SAAS,IAAI,CAAC,QAAQ,UAAU;AAC/B,WACE,oCAAC,cAAW,KAAK,OAAO,OAAO,OAAO,OAAO,SAC1C,OAAO,KACV;AAAA,EAEJ,CAAC,CACH,CACF,CACF;AAEJ;","names":["_a"]}
|
package/chunk-N4QVNSAY.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-N4QVNSAY.js","../components/form/text-input.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACZA,4EAA2C;AAC3C,wGAAuB;AAOvB,IAAM,WAAA,EAAa,EAAA;AAcZ,SAAS,aAAA,CAAc,EAAA,EAUP;AAVO,EAAA,IAAA,GAAA,EAAA,EAAA,EAC5B;AAAA,IAAA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP,UAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA,EAAa,CAAC;AAAA,EAjChB,EAAA,EAyB8B,EAAA,EASzB,KAAA,EAAA,wCAAA,EATyB,EASzB;AAAA,IARH,IAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,YAAA;AAAA,IACA,UAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,EAAA,CAAA,CAAA;AAGA,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,GAAA,EAAK,iCAAA,IAAe,CAAA;AAE7B,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,aAAG,EAAe,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,EAClD,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,EAAA,EAAI,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EAC/C,KACH,CAAA,kBAEF,eAAA,CAAA,aAAA;AAAA,IAAC,sBAAA;AAAA,IAAA,4CAAA,6CAAA,6CAAA;AAAA,MACC,IAAA;AAAA,MACA,EAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,YAAA,EAAa;AAAA,IAAA,CAAA,EACT,UAAA,CAAA,EACA,IAAA,CAAA,EARL;AAAA,MASC,SAAA,EAAW,iCAAA,UAAG,EAAY,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAK;AAAA,IAAA,CAAA;AAAA,EAC7C,CACF,CAAA;AAEJ;ADJA;AACA;AACE;AACF,sCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-N4QVNSAY.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React, { InputHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Input } from '../ui/input';\n\ninterface InputProps extends InputHTMLAttributes<HTMLInputElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextInputProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextInput({\n id,\n name,\n label,\n type = 'text',\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextInputProps) {\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_text-input', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Input\n type={type}\n id={id}\n name={name}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"]}
|
package/chunk-NJDC3RMA.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/checkbox.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Checkbox } from '../ui/checkbox';\n\nexport interface FormCheckboxProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n checkbox?: string;\n };\n}\n\nexport function FormCheckbox({\n id,\n name,\n label,\n required,\n disabled,\n checked,\n onCheckedChange,\n classNames,\n}: FormCheckboxProps) {\n const checkboxId = id || _kebabCase(name);\n\n return (\n <div className={cn('flex items-center gap-3', classNames?.wrapper)}>\n <Checkbox\n id={checkboxId}\n name={name}\n disabled={disabled}\n required={required}\n checked={checked}\n onCheckedChange={onCheckedChange}\n className={cn(classNames?.checkbox)}\n />\n {label && (\n <Label htmlFor={checkboxId} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;AAGA,OAAO,WAAW;AAClB,OAAO,gBAAgB;AAoBhB,SAAS,aAAa;AAAA,EAC3B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsB;AACpB,QAAM,aAAa,MAAM,WAAW,IAAI;AAExC,SACE,oCAAC,SAAI,WAAW,GAAG,2BAA2B,yCAAY,OAAO,KAC/D;AAAA,IAAC;AAAA;AAAA,MACC,IAAI;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,WAAW,GAAG,yCAAY,QAAQ;AAAA;AAAA,EACpC,GACC,SACC,oCAAC,SAAM,SAAS,YAAY,WAAW,yCAAY,OAAO,YACvD,KACH,CAEJ;AAEJ;","names":[]}
|
package/chunk-PSQGNWKT.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-PSQGNWKT.js","../components/form/checkbox.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACE;AACF,sDAA4B;AAC5B;AACA;ACPA,4EAAkB;AAClB,wGAAuB;AAoBhB,SAAS,YAAA,CAAa;AAAA,EAC3B,EAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,WAAA,EAAa,GAAA,GAAM,iCAAA,IAAe,CAAA;AAExC,EAAA,uBACE,eAAA,CAAA,aAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,iCAAA,yBAAG,EAA2B,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,OAAO,EAAA,CAAA,kBAC/D,eAAA,CAAA,aAAA;AAAA,IAAC,yBAAA;AAAA,IAAA;AAAA,MACC,EAAA,EAAI,UAAA;AAAA,MACJ,IAAA;AAAA,MACA,QAAA;AAAA,MACA,QAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAA,EAAW,iCAAA,WAAG,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,QAAQ;AAAA,IAAA;AAAA,EACpC,CAAA,EACC,MAAA,mBACC,eAAA,CAAA,aAAA,CAAC,sBAAA,EAAA,EAAM,OAAA,EAAS,UAAA,EAAY,SAAA,EAAW,WAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,UAAA,CAAY,KAAA,EAAO,SAAA,CAAA,EACvD,KACH,CAEJ,CAAA;AAEJ;ADjBA;AACA;AACE;AACF,oCAAC","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-PSQGNWKT.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Checkbox } from '../ui/checkbox';\n\nexport interface FormCheckboxProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n checked?: boolean;\n onCheckedChange?: (checked: boolean) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n checkbox?: string;\n };\n}\n\nexport function FormCheckbox({\n id,\n name,\n label,\n required,\n disabled,\n checked,\n onCheckedChange,\n classNames,\n}: FormCheckboxProps) {\n const checkboxId = id || _kebabCase(name);\n\n return (\n <div className={cn('flex items-center gap-3', classNames?.wrapper)}>\n <Checkbox\n id={checkboxId}\n name={name}\n disabled={disabled}\n required={required}\n checked={checked}\n onCheckedChange={onCheckedChange}\n className={cn(classNames?.checkbox)}\n />\n {label && (\n <Label htmlFor={checkboxId} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n </div>\n );\n}\n"]}
|
package/chunk-R3RMWOGE.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../layouts/sidebar1/nav-menus.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { ChevronRight } from 'lucide-react';\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from '../../components/ui/collapsible';\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from '../../components/ui/sidebar';\nimport { useSidebar } from '../../components/ui/sidebar';\n\nexport interface IMenuSubItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n isActive?: boolean;\n onClick?: (title: string) => void;\n}\n\nexport interface IMenuItem extends IMenuSubItem {\n subItems?: IMenuSubItem[];\n}\n\nexport interface INavMenu {\n title: string;\n items: IMenuItem[];\n}\n\nfunction SidebarMenuLink({ item, as: LinkComponent }: { item: IMenuSubItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n const Comp = LinkComponent && item.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuItem>\n <SidebarMenuButton asChild isActive={item.isActive} tooltip={item.title} onClick={() => setOpenMobile(false)}>\n <Comp to={item.url} href={item.url} onClick={() => item.onClick?.(item.title)}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n </Comp>\n </SidebarMenuButton>\n </SidebarMenuItem>\n );\n}\n\nfunction SidebarMenuCollapsible({ item, as: LinkComponent }: { item: IMenuItem; as: React.ElementType }) {\n const { setOpenMobile } = useSidebar();\n if (!item.subItems) return null;\n\n return (\n <Collapsible key={item.title} asChild defaultOpen={item.isActive} className=\"group/collapsible\">\n <SidebarMenuItem>\n <CollapsibleTrigger asChild>\n <SidebarMenuButton tooltip={item.title}>\n {item.icon && <item.icon />}\n <span>{item.title}</span>\n <ChevronRight className=\"ml-auto transition-transform duration-200 group-data-[state=open]/collapsible:rotate-90\" />\n </SidebarMenuButton>\n </CollapsibleTrigger>\n <CollapsibleContent>\n <SidebarMenuSub>\n {item.subItems.map((subItem) => {\n const Comp = LinkComponent && subItem.url ? LinkComponent : 'button';\n\n return (\n <SidebarMenuSubItem key={subItem.title}>\n <SidebarMenuSubButton asChild isActive={subItem.isActive} onClick={() => setOpenMobile(false)}>\n <Comp\n to={subItem.url}\n href={subItem.url}\n onClick={() => item.onClick?.(subItem.title)}\n className=\"block w-full\"\n >\n {subItem.icon && <subItem.icon />}\n <span>{subItem.title}</span>\n </Comp>\n </SidebarMenuSubButton>\n </SidebarMenuSubItem>\n );\n })}\n </SidebarMenuSub>\n </CollapsibleContent>\n </SidebarMenuItem>\n </Collapsible>\n );\n}\n\nexport function NavMenus({ menus, aslink }: { menus: INavMenu[]; aslink: React.ElementType }) {\n return menus.map((menu) => {\n return (\n <SidebarGroup key={menu.title}>\n <SidebarGroupLabel>{menu.title}</SidebarGroupLabel>\n <SidebarMenu>\n {menu.items.map((item) =>\n item.subItems && item.subItems.length > 0 ? (\n <SidebarMenuCollapsible key={item.title} item={item} as={aslink} />\n ) : (\n <SidebarMenuLink key={item.title} item={item} as={aslink} />\n ),\n )}\n </SidebarMenu>\n </SidebarGroup>\n );\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAGA,YAAY,WAAW;AACvB,SAAS,oBAAoB;AA+B7B,SAAS,gBAAgB,EAAE,MAAM,IAAI,cAAc,GAAkD;AACnG,QAAM,EAAE,cAAc,IAAI,WAAW;AACrC,QAAM,OAAO,iBAAiB,KAAK,MAAM,gBAAgB;AAEzD,SACE,oCAAC,uBACC,oCAAC,qBAAkB,SAAO,MAAC,UAAU,KAAK,UAAU,SAAS,KAAK,OAAO,SAAS,MAAM,cAAc,KAAK,KACzG,oCAAC,QAAK,IAAI,KAAK,KAAK,MAAM,KAAK,KAAK,SAAS,MAAG;AA1CxD;AA0C2D,sBAAK,YAAL,8BAAe,KAAK;AAAA,OACpE,KAAK,QAAQ,oCAAC,KAAK,MAAL,IAAU,GACzB,oCAAC,cAAM,KAAK,KAAM,CACpB,CACF,CACF;AAEJ;AAEA,SAAS,uBAAuB,EAAE,MAAM,IAAI,cAAc,GAA+C;AACvG,QAAM,EAAE,cAAc,IAAI,WAAW;AACrC,MAAI,CAAC,KAAK,SAAU,QAAO;AAE3B,SACE,oCAAC,eAAY,KAAK,KAAK,OAAO,SAAO,MAAC,aAAa,KAAK,UAAU,WAAU,uBAC1E,oCAAC,uBACC,oCAAC,sBAAmB,SAAO,QACzB,oCAAC,qBAAkB,SAAS,KAAK,SAC9B,KAAK,QAAQ,oCAAC,KAAK,MAAL,IAAU,GACzB,oCAAC,cAAM,KAAK,KAAM,GAClB,oCAAC,gBAAa,WAAU,2FAA0F,CACpH,CACF,GACA,oCAAC,0BACC,oCAAC,sBACE,KAAK,SAAS,IAAI,CAAC,YAAY;AAC9B,UAAM,OAAO,iBAAiB,QAAQ,MAAM,gBAAgB;AAE5D,WACE,oCAAC,sBAAmB,KAAK,QAAQ,SAC/B,oCAAC,wBAAqB,SAAO,MAAC,UAAU,QAAQ,UAAU,SAAS,MAAM,cAAc,KAAK,KAC1F;AAAA,MAAC;AAAA;AAAA,QACC,IAAI,QAAQ;AAAA,QACZ,MAAM,QAAQ;AAAA,QACd,SAAS,MAAG;AA5ElC;AA4EqC,4BAAK,YAAL,8BAAe,QAAQ;AAAA;AAAA,QACtC,WAAU;AAAA;AAAA,MAET,QAAQ,QAAQ,oCAAC,QAAQ,MAAR,IAAa;AAAA,MAC/B,oCAAC,cAAM,QAAQ,KAAM;AAAA,IACvB,CACF,CACF;AAAA,EAEJ,CAAC,CACH,CACF,CACF,CACF;AAEJ;AAEO,SAAS,SAAS,EAAE,OAAO,OAAO,GAAqD;AAC5F,SAAO,MAAM,IAAI,CAAC,SAAS;AACzB,WACE,oCAAC,gBAAa,KAAK,KAAK,SACtB,oCAAC,yBAAmB,KAAK,KAAM,GAC/B,oCAAC,mBACE,KAAK,MAAM;AAAA,MAAI,CAAC,SACf,KAAK,YAAY,KAAK,SAAS,SAAS,IACtC,oCAAC,0BAAuB,KAAK,KAAK,OAAO,MAAY,IAAI,QAAQ,IAEjE,oCAAC,mBAAgB,KAAK,KAAK,OAAO,MAAY,IAAI,QAAQ;AAAA,IAE9D,CACF,CACF;AAAA,EAEJ,CAAC;AACH;","names":[]}
|
package/chunk-U3HF6HPN.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-U3HF6HPN.js","../layouts/sidebar1/context-switcher.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-U3HF6HPN.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { ChevronsUpDown, Plus } from 'lucide-react';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\nimport { cn } from '../../lib/utils';\n\nexport interface INavContext {\n name: string;\n logo: React.ElementType;\n text: string;\n className?: string;\n}\n\nexport function ContextSwitcher({\n items,\n title = 'Contexts',\n newContextText = 'Add context',\n}: {\n items: INavContext[];\n title?: string;\n newContextText?: string;\n}) {\n const { isMobile } = useSidebar();\n const [activeContext, setActiveContext] = React.useState(items[0]);\n\n React.useEffect(() => {\n if (!items || items.length === 0) return;\n setActiveContext((prev) => {\n const stillExists = items.find((item) => item.name === prev?.name);\n return stillExists ?? items[0];\n });\n }, [items]);\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <div\n className={cn(\n 'flex aspect-square size-8 items-center justify-center rounded-lg bg-dark text-dark-foreground',\n activeContext.className,\n )}\n >\n <activeContext.logo className=\"size-4\" />\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{activeContext.name}</span>\n <span className=\"truncate text-xs\">{activeContext.text}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n align=\"start\"\n side={isMobile ? 'bottom' : 'right'}\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"text-xs text-muted-foreground\">{title}</DropdownMenuLabel>\n {items.map((item, index) => (\n <DropdownMenuItem key={item.name} onClick={() => setActiveContext(item)} className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-sm border\">\n <item.logo className=\"size-4 shrink-0\" />\n </div>\n {item.name}\n <DropdownMenuShortcut>⌘{index + 1}</DropdownMenuShortcut>\n </DropdownMenuItem>\n ))}\n <DropdownMenuSeparator />\n <DropdownMenuItem className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-md border bg-background\">\n <Plus className=\"size-4\" />\n </div>\n <div className=\"font-medium text-muted-foreground\">{newContextText}</div>\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"]}
|
package/chunk-UQTHHSJN.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/form/textarea.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport React, { TextareaHTMLAttributes, useRef } from 'react';\nimport _isFunction from 'lodash-es/isFunction';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\nimport { Textarea } from '../ui/textarea';\n\ninterface InputProps extends TextareaHTMLAttributes<HTMLTextAreaElement> {}\n\nconst inputClass = '';\n\nexport interface FormTextareaProps extends InputProps {\n id?: string;\n name: string;\n label?: string;\n inputProps?: InputProps & { ref?: any };\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormTextarea({\n id,\n name,\n label,\n rows = 5,\n classNames,\n required,\n disabled,\n inputProps = {},\n ...rest\n}: FormTextareaProps) {\n if (!id) id = _kebabCase(name);\n const _ref = useRef<HTMLTextAreaElement>(null);\n\n return (\n <div className={cn('textarea', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <Textarea\n id={id}\n name={name}\n rows={rows}\n required={required}\n disabled={disabled}\n autoComplete=\"off\"\n {...inputProps}\n {...rest}\n // Required to bind three potential refs:\n // 1. From the inputProps ex) react-hook-form.\n // 2. From the this component instance itself.\n ref={(el) => {\n if (!el) return;\n\n [_ref, inputProps.ref].forEach((rf) => {\n if (!rf) return;\n\n if (_isFunction(rf)) {\n rf(el);\n } else {\n rf.current = el;\n }\n });\n }}\n className={cn(inputClass, classNames?.input)}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAGA,OAAO,SAAiC,cAAc;AACtD,OAAO,iBAAiB;AACxB,OAAO,gBAAgB;AAOvB,IAAM,aAAa;AAcZ,SAAS,aAAa,IAUP;AAVO,eAC3B;AAAA;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA,aAAa,CAAC;AAAA,EAlChB,IA0B6B,IASxB,iBATwB,IASxB;AAAA,IARH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,MAAI,CAAC,GAAI,MAAK,WAAW,IAAI;AAC7B,QAAM,OAAO,OAA4B,IAAI;AAE7C,SACE,oCAAC,SAAI,WAAW,GAAG,YAAY,yCAAY,OAAO,KAC/C,SACC,oCAAC,SAAM,SAAS,IAAI,WAAW,yCAAY,OAAO,YAC/C,KACH,GAEF;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,cAAa;AAAA,OACT,aACA,OARL;AAAA,MAYC,KAAK,CAAC,OAAO;AACX,YAAI,CAAC,GAAI;AAET,SAAC,MAAM,WAAW,GAAG,EAAE,QAAQ,CAAC,OAAO;AACrC,cAAI,CAAC,GAAI;AAET,cAAI,YAAY,EAAE,GAAG;AACnB,eAAG,EAAE;AAAA,UACP,OAAO;AACL,eAAG,UAAU;AAAA,UACf;AAAA,QACF,CAAC;AAAA,MACH;AAAA,MACA,WAAW,GAAG,YAAY,yCAAY,KAAK;AAAA;AAAA,EAC7C,CACF;AAEJ;","names":[]}
|
package/chunk-V5IL3OBF.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../layouts/sidebar1/nav-user.tsx"],"sourcesContent":["\"use client\";\n'use client';\n\nimport * as React from 'react';\nimport { ChevronsUpDown, LogOut, type LucideIcon } from 'lucide-react';\nimport { Avatar, AvatarFallback, AvatarImage } from '../../components/ui/avatar';\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from '../../components/ui/dropdown-menu';\nimport { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '../../components/ui/sidebar';\n\nexport interface INavUser {\n name: string;\n email: string;\n avatar: string;\n}\n\nexport interface INavUserMenuItem {\n title: string;\n url?: string;\n icon?: React.ElementType;\n onClick?: (title: string) => void;\n}\n\nexport function NavUser({\n user,\n menus = [],\n aslink: LinkComponent,\n onLogout,\n}: {\n user: INavUser;\n menus: INavUserMenuItem[];\n aslink?: React.ElementType;\n onLogout?: (user: INavUser) => void;\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg bg-white\"\n side={isMobile ? 'bottom' : 'right'}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user.avatar} alt={user.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user.name}</span>\n <span className=\"truncate text-xs\">{user.email}</span>\n </div>\n </div>\n </DropdownMenuLabel>\n\n {menus.length > 0 && <DropdownMenuSeparator />}\n <DropdownMenuGroup>\n {menus.map((menu) => {\n const Comp = LinkComponent && menu.url ? LinkComponent : 'button';\n\n return (\n <Comp\n key={menu.title}\n to={menu.url}\n href={menu.url}\n onClick={() => menu.onClick?.(menu.title)}\n className=\"block w-full\"\n >\n <DropdownMenuItem>\n {menu.icon && <menu.icon />}\n {menu.title}\n </DropdownMenuItem>\n </Comp>\n );\n })}\n </DropdownMenuGroup>\n\n {onLogout && (\n <>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => onLogout(user)}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,YAAY,WAAW;AACvB,SAAS,gBAAgB,cAA+B;AA0BjD,SAAS,QAAQ;AAAA,EACtB;AAAA,EACA,QAAQ,CAAC;AAAA,EACT,QAAQ;AAAA,EACR;AACF,GAKG;AACD,QAAM,EAAE,SAAS,IAAI,WAAW;AAEhC,SACE,oCAAC,mBACC,oCAAC,uBACC,oCAAC,oBACC,oCAAC,uBAAoB,SAAO,QAC1B;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,WAAU;AAAA;AAAA,IAEV,oCAAC,UAAO,WAAU,wBAChB,oCAAC,eAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM,GAC/C,oCAAC,kBAAe,WAAU,gBAAa,IAAE,CAC3C;AAAA,IACA,oCAAC,SAAI,WAAU,iDACb,oCAAC,UAAK,WAAU,4BAA0B,KAAK,IAAK,GACpD,oCAAC,UAAK,WAAU,sBAAoB,KAAK,KAAM,CACjD;AAAA,IACA,oCAAC,kBAAe,WAAU,kBAAiB;AAAA,EAC7C,CACF,GACA;AAAA,IAAC;AAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAM,WAAW,WAAW;AAAA,MAC5B,OAAM;AAAA,MACN,YAAY;AAAA;AAAA,IAEZ,oCAAC,qBAAkB,WAAU,qBAC3B,oCAAC,SAAI,WAAU,2DACb,oCAAC,UAAO,WAAU,wBAChB,oCAAC,eAAY,KAAK,KAAK,QAAQ,KAAK,KAAK,MAAM,GAC/C,oCAAC,kBAAe,WAAU,gBAAa,IAAE,CAC3C,GACA,oCAAC,SAAI,WAAU,iDACb,oCAAC,UAAK,WAAU,4BAA0B,KAAK,IAAK,GACpD,oCAAC,UAAK,WAAU,sBAAoB,KAAK,KAAM,CACjD,CACF,CACF;AAAA,IAEC,MAAM,SAAS,KAAK,oCAAC,2BAAsB;AAAA,IAC5C,oCAAC,yBACE,MAAM,IAAI,CAAC,SAAS;AACnB,YAAM,OAAO,iBAAiB,KAAK,MAAM,gBAAgB;AAEzD,aACE;AAAA,QAAC;AAAA;AAAA,UACC,KAAK,KAAK;AAAA,UACV,IAAI,KAAK;AAAA,UACT,MAAM,KAAK;AAAA,UACX,SAAS,MAAG;AA5FhC;AA4FmC,8BAAK,YAAL,8BAAe,KAAK;AAAA;AAAA,UACnC,WAAU;AAAA;AAAA,QAEV,oCAAC,wBACE,KAAK,QAAQ,oCAAC,KAAK,MAAL,IAAU,GACxB,KAAK,KACR;AAAA,MACF;AAAA,IAEJ,CAAC,CACH;AAAA,IAEC,YACC,0DACE,oCAAC,2BAAsB,GACvB,oCAAC,oBAAiB,SAAS,MAAM,SAAS,IAAI,KAC5C,oCAAC,YAAO,GAAE,SAEZ,CACF;AAAA,EAEJ,CACF,CACF,CACF;AAEJ;","names":[]}
|
package/chunk-WA2Z3OWJ.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-WA2Z3OWJ.js","../components/form/time-input.tsx"],"names":[],"mappings":"AAAA;AACE;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACE;AACA;AACA;AACF,sDAA4B;AAC5B;AACA;ACXA,4EAAwD;AAUjD,SAAS,aAAA,CAAc,EAAA,EAAmE;AAAnE,EAAA,IAAA,GAAA,EAAA,EAAA,EAAE,EAAA,KAAA,EAAO,YAAA,EAAc,CAAA,EAAG,SAbxD,EAAA,EAa8B,EAAA,EAAuC,KAAA,EAAA,wCAAA,EAAvC,EAAuC,CAArC,OAAA,EAAwB,UAAA,CAAA,CAAA;AACtD,EAAA,MAAM,CAAC,KAAA,EAAO,QAAQ,EAAA,EAAI,6BAAA,MAAiB,CAAO,WAAW,CAAC,CAAA;AAE9D,EAAA,8BAAA,CAAU,EAAA,GAAM;AACd,IAAA,QAAA,CAAS,MAAA,CAAO,YAAA,GAAA,KAAA,EAAA,YAAA,EAAe,EAAE,CAAC,CAAA;AAAA,EACpC,CAAA,EAAG,CAAC,WAAW,CAAC,CAAA;AAEhB,EAAA,MAAM,aAAA,EAAe,CAAC,CAAA,EAAA,GAAqC;AACzD,IAAA,QAAA,CAAS,CAAA,CAAE,MAAA,CAAO,KAAK,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,WAAA,EAAa,CAAC,CAAA,EAAA,GAAqC;AACvD,IAAA,MAAM,SAAA,EAAW,6CAAA,CAAe,CAAE,MAAA,CAAO,KAAK,CAAA;AAC9C,IAAA,MAAM,aAAA,EAAe,MAAA,CAAO,QAAQ,CAAA;AAEpC,IAAA,QAAA,CAAS,QAAQ,CAAA;AACjB,IAAA,SAAA,GAAA,KAAA,EAAA,KAAA,EAAA,EAAA,QAAA,CAAW,YAAA,CAAA;AAAA,EACb,CAAA;AAEA,EAAA,MAAM,YAAA,EAAc,+CAAA,KAAsB,CAAA;AAC1C,EAAA,MAAM,aAAA,EAAe,sDAAA,KAA6B,CAAA;AAClD,EAAA,MAAM,MAAA,EAAQ,YAAA,IAAgB,aAAA,EAAe,CAAA,EAAA;AAErC,EAAA;AACV;ADDgD;AACA;AACA;AACA","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-WA2Z3OWJ.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React, { useState, useEffect, ChangeEvent } from 'react';\nimport { FormTextInput } from './text-input';\nimport type { FormTextInputProps } from './text-input';\nimport { convertToHours, convertFromHours, convertToWholeFromHours } from '../../lib/number';\n\nexport interface FormTimeInputProps extends Omit<FormTextInputProps, 'onChange' | 'value'> {\n value?: number;\n onChange?: (value: number) => void;\n}\n\nexport function FormTimeInput({ value: parentValue = 0, onChange, ...rest }: FormTimeInputProps) {\n const [value, setValue] = useState<string>(String(parentValue));\n\n useEffect(() => {\n setValue(String(parentValue ?? ''));\n }, [parentValue]);\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n };\n\n const handleBlur = (e: ChangeEvent<HTMLInputElement>) => {\n const newValue = convertToHours(e.target.value);\n const numericValue = Number(newValue);\n\n setValue(newValue);\n onChange?.(numericValue);\n };\n\n const displayText = convertFromHours(value);\n const displayWhole = convertToWholeFromHours(value);\n const title = displayText !== displayWhole ? `${displayText} (${displayWhole})` : displayText;\n\n return <FormTextInput {...rest} value={value} onChange={handleChange} onBlur={handleBlur} title={title} />;\n}\n"]}
|
package/chunk-XCHWNZWB.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-XCHWNZWB.js","../components/form/native-select.tsx"],"names":["_a"],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-XCHWNZWB.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React, { SelectHTMLAttributes } from 'react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isString from 'lodash-es/isString';\nimport { cn } from '../../lib/utils';\nimport { Label } from '../ui/label';\n\ntype NativeSelectProps = SelectHTMLAttributes<HTMLSelectElement>;\n\nexport interface SelectOption {\n label: string;\n value: string;\n}\n\nfunction listToSelectOptions(items: string[]) {\n return items.map((item) => {\n return { label: item, value: item };\n });\n}\n\nexport interface FormNativeSelectProps extends NativeSelectProps {\n id?: string;\n name: string;\n label: string;\n selectProps: NativeSelectProps;\n data: SelectOption[] | string[];\n defaultValue?: string;\n classNames?: {\n wrapper?: string;\n label?: string;\n input?: string;\n };\n}\n\nexport function FormNativeSelect({\n id,\n name,\n label,\n selectProps,\n data,\n defaultValue,\n classNames,\n required,\n disabled,\n ...rest\n}: FormNativeSelectProps) {\n let _options: SelectOption[] = [];\n if (data.length > 0) {\n if (_isString(data[0])) {\n _options = listToSelectOptions(data as string[]);\n } else {\n _options = data as SelectOption[];\n }\n }\n\n if (!id) id = _kebabCase(name);\n\n return (\n <div className={cn('_native-select', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n\n <select\n {...selectProps}\n id={id}\n name={name}\n autoComplete={id}\n className={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n classNames?.input ?? '',\n )}\n required={required}\n disabled={disabled}\n defaultValue={defaultValue}\n {...rest}\n >\n {_options.map((option, index) => {\n return (\n <option\n key={option.value}\n value={option.value}\n // Unfortunately, the selected prop is not properly set at the nested component level.\n // use `defaultValue` in select element.\n // selected={defaultValue ? defaultValue === option.value : index === 0}\n >\n {option.label}\n </option>\n );\n })}\n </select>\n </div>\n );\n}\n"]}
|
package/chunk-YT6UTIPP.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-YT6UTIPP.js","../components/form/date-picker.tsx"],"names":[],"mappings":"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","file":"/home/jahn/projects/shadcn-theme/packages/react/dist/chunk-YT6UTIPP.js","sourcesContent":[null,"\"use client\";\n'use client';\n\nimport React, { useEffect, useState } from 'react';\nimport { addDays, format, isEqual } from 'date-fns';\nimport { CalendarIcon } from 'lucide-react';\nimport _kebabCase from 'lodash-es/kebabCase';\nimport _isNil from 'lodash-es/isNil';\nimport _isUndefined from 'lodash-es/isUndefined';\nimport _isString from 'lodash-es/isString';\n\nimport { isEqualDate } from '../../lib/date';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../ui/button';\nimport { Label } from '../ui/label';\nimport { Calendar } from '../ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../ui/popover';\n\nfunction formatDate(date: Date) {\n return format(date, 'LLL dd, y');\n}\n\nfunction getStartOfDay(date: Date) {\n const startOfDay = new Date(date.getFullYear(), date.getMonth(), date.getDate());\n return startOfDay;\n}\n\nexport interface FormDatePickerProps {\n id?: string;\n name: string;\n label?: string;\n required?: boolean;\n disabled?: boolean;\n initialValue?: Date | string;\n value?: Date | string;\n onChange: (value?: Date) => void;\n classNames?: {\n wrapper?: string;\n label?: string;\n button?: string;\n };\n}\n\nexport function FormDatePicker({\n id,\n name,\n label,\n required = false,\n disabled = false,\n initialValue,\n value,\n onChange,\n classNames,\n}: FormDatePickerProps) {\n const [date, setDate] = useState<Date | undefined>(undefined);\n const [initialized, setInitialized] = useState(false);\n\n useEffect(() => {\n if (!initialized) {\n const dt = initialValue ? getStartOfDay(new Date(initialValue)) : getStartOfDay(new Date());\n\n setDate(dt);\n setInitialized(true);\n }\n }, [initialized, initialValue]);\n\n useEffect(() => {\n if (_isUndefined(value)) {\n if (!_isUndefined(date)) {\n setDate(undefined);\n }\n } else {\n const dt = _isString(value) ? new Date(value) : value;\n if (!isEqualDate(date, dt)) {\n setDate(getStartOfDay(dt));\n }\n }\n }, [value]);\n\n useEffect(() => {\n if (initialized) {\n onChange(date);\n }\n }, [date, initialized]);\n\n if (!id) id = _kebabCase(name);\n\n const display = !initialized ? <span></span> : date ? <>{formatDate(date)}</> : <span>Pick a date</span>;\n\n return (\n <div className={cn('date-picker', classNames?.wrapper)}>\n {label && (\n <Label htmlFor={id} className={classNames?.label} required={required}>\n {label}\n </Label>\n )}\n <div className={cn('grid gap-2')}>\n <Popover>\n <PopoverTrigger asChild>\n <Button\n variant={date ? 'secondary' : 'muted'}\n appearance=\"outline\"\n className={cn('min-w-[145px] justify-start text-left font-normal', classNames?.button)}\n >\n <CalendarIcon />\n {display}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"single\"\n defaultMonth={date}\n selected={date}\n onSelect={(newdate) => {\n if (!isEqualDate(date, newdate)) {\n setDate(newdate);\n }\n }}\n />\n </PopoverContent>\n </Popover>\n </div>\n </div>\n );\n}\n"]}
|