@slashclick/ui 0.1.15 → 0.1.16
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/README.md +108 -108
- package/dist/components/auth/providers.cjs.map +1 -1
- package/dist/components/auth/providers.js.map +1 -1
- package/dist/components/card/back-button.cjs.map +1 -1
- package/dist/components/card/back-button.js.map +1 -1
- package/dist/components/card/card-wrapper.cjs.map +1 -1
- package/dist/components/card/card-wrapper.js.map +1 -1
- package/dist/components/card/header.cjs.map +1 -1
- package/dist/components/card/header.js.map +1 -1
- package/dist/components/combobox/ComboList.cjs.map +1 -1
- package/dist/components/combobox/ComboList.js.map +1 -1
- package/dist/components/combobox/index.cjs.map +1 -1
- package/dist/components/combobox/index.js.map +1 -1
- package/dist/components/dashboard/account-select.cjs.map +1 -1
- package/dist/components/dashboard/account-select.js.map +1 -1
- package/dist/components/dashboard/account-switcher.cjs.map +1 -1
- package/dist/components/dashboard/account-switcher.js.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.js.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.js.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.styles.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/EntityList.styles.js.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.js.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/SectionHeader.styles.js.map +1 -1
- package/dist/components/dashboard/sidebar/index.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/index.js.map +1 -1
- package/dist/components/dashboard/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/sidebar.js.map +1 -1
- package/dist/components/dashboard/sidebar/tabs.cjs.map +1 -1
- package/dist/components/dashboard/sidebar/tabs.js.map +1 -1
- package/dist/components/dashboard/sidebar/types.cjs.map +1 -1
- package/dist/components/dashboard/sidebar-nav.cjs.map +1 -1
- package/dist/components/dashboard/sidebar-nav.js.map +1 -1
- package/dist/components/dashboard/utils/build-nav.cjs.map +1 -1
- package/dist/components/dashboard/utils/build-nav.js.map +1 -1
- package/dist/components/dashboard/with-dashboard.cjs.map +1 -1
- package/dist/components/dashboard/with-dashboard.js.map +1 -1
- package/dist/components/detail/DetailLayout.styles.cjs.map +1 -1
- package/dist/components/detail/DetailLayout.styles.js.map +1 -1
- package/dist/components/detail/index.cjs.map +1 -1
- package/dist/components/detail/index.js.map +1 -1
- package/dist/components/flowbite/card-images.cjs.map +1 -1
- package/dist/components/flowbite/card-images.js.map +1 -1
- package/dist/components/flowbite/gallery.cjs.map +1 -1
- package/dist/components/flowbite/gallery.js.map +1 -1
- package/dist/components/flowbite/masonry.cjs.map +1 -1
- package/dist/components/flowbite/masonry.js.map +1 -1
- package/dist/components/flowbite/search-hero.cjs.map +1 -1
- package/dist/components/flowbite/search-hero.js.map +1 -1
- package/dist/components/generic/copyright.cjs.map +1 -1
- package/dist/components/generic/copyright.js.map +1 -1
- package/dist/components/generic/icons.cjs.map +1 -1
- package/dist/components/generic/icons.js.map +1 -1
- package/dist/components/generic/link.cjs.map +1 -1
- package/dist/components/generic/link.js.map +1 -1
- package/dist/components/header/header.cjs +16 -5
- package/dist/components/header/header.cjs.map +1 -1
- package/dist/components/header/header.d.ts +1 -1
- package/dist/components/header/header.d.ts.map +1 -1
- package/dist/components/header/header.js +6 -5
- package/dist/components/header/header.js.map +1 -1
- package/dist/components/header/internal/main-nav.cjs.map +1 -1
- package/dist/components/header/internal/main-nav.js.map +1 -1
- package/dist/components/header/internal/mobile-nav.cjs.map +1 -1
- package/dist/components/header/internal/mobile-nav.js.map +1 -1
- package/dist/components/header/internal/mode-toggle.cjs.map +1 -1
- package/dist/components/header/internal/mode-toggle.js.map +1 -1
- package/dist/components/header/internal/site-header.cjs.map +1 -1
- package/dist/components/header/internal/site-header.js.map +1 -1
- package/dist/components/header/langbutton/langbutton.cjs.map +1 -1
- package/dist/components/header/langbutton/langbutton.js.map +1 -1
- package/dist/components/header/userbutton/user-dropdown.cjs.map +1 -1
- package/dist/components/header/userbutton/user-dropdown.js.map +1 -1
- package/dist/components/header/userbutton/userbutton.cjs.map +1 -1
- package/dist/components/header/userbutton/userbutton.js.map +1 -1
- package/dist/components/hooks/use-page-nav.cjs.map +1 -1
- package/dist/components/hooks/use-page-nav.js.map +1 -1
- package/dist/components/hooks/use-user-entities.cjs.map +1 -1
- package/dist/components/hooks/use-user-entities.js.map +1 -1
- package/dist/components/icons/apple.cjs.map +1 -1
- package/dist/components/icons/apple.js.map +1 -1
- package/dist/components/icons/facebook.cjs.map +1 -1
- package/dist/components/icons/facebook.js.map +1 -1
- package/dist/components/icons/github.cjs.map +1 -1
- package/dist/components/icons/github.js.map +1 -1
- package/dist/components/icons/google.cjs.map +1 -1
- package/dist/components/icons/google.js.map +1 -1
- package/dist/components/icons/logo.cjs.map +1 -1
- package/dist/components/icons/logo.js.map +1 -1
- package/dist/components/lightbox/GallerySection.cjs.map +1 -1
- package/dist/components/lightbox/GallerySection.js.map +1 -1
- package/dist/components/lightbox/ImageLightbox.cjs.map +1 -1
- package/dist/components/lightbox/ImageLightbox.js.map +1 -1
- package/dist/components/lightbox/ImageLightbox.types.cjs.map +1 -1
- package/dist/components/lightbox/index.cjs.map +1 -1
- package/dist/components/lightbox/index.js.map +1 -1
- package/dist/components/lightbox/useEntityLightbox.cjs.map +1 -1
- package/dist/components/lightbox/useEntityLightbox.js.map +1 -1
- package/dist/components/lightbox/useLightbox.cjs.map +1 -1
- package/dist/components/lightbox/useLightbox.js.map +1 -1
- package/dist/components/search/search.cjs.map +1 -1
- package/dist/components/search/search.js.map +1 -1
- package/dist/components/tailwind/contact.cjs.map +1 -1
- package/dist/components/tailwind/contact.js.map +1 -1
- package/dist/components/tailwind/content-page.cjs.map +1 -1
- package/dist/components/tailwind/content-page.js.map +1 -1
- package/dist/components/tailwind/feature.cjs.map +1 -1
- package/dist/components/tailwind/feature.js.map +1 -1
- package/dist/components/tailwind/featurelist.cjs.map +1 -1
- package/dist/components/tailwind/featurelist.js.map +1 -1
- package/dist/components/tailwind/footer.cjs.map +1 -1
- package/dist/components/tailwind/footer.js.map +1 -1
- package/dist/components/tailwind/hero.cjs.map +1 -1
- package/dist/components/tailwind/hero.js.map +1 -1
- package/dist/components/tailwind/pricing.cjs.map +1 -1
- package/dist/components/tailwind/pricing.js.map +1 -1
- package/dist/components/tailwind/privacy.cjs.map +1 -1
- package/dist/components/tailwind/privacy.js.map +1 -1
- package/dist/components/tailwind/providerIcons.cjs.map +1 -1
- package/dist/components/tailwind/providerIcons.js.map +1 -1
- package/dist/components/ui/avatar.cjs.map +1 -1
- package/dist/components/ui/avatar.js.map +1 -1
- package/dist/components/ui/breadcrumb.cjs.map +1 -1
- package/dist/components/ui/breadcrumb.js.map +1 -1
- package/dist/components/ui/button.cjs.map +1 -1
- package/dist/components/ui/button.js.map +1 -1
- package/dist/components/ui/card.cjs.map +1 -1
- package/dist/components/ui/card.js.map +1 -1
- package/dist/components/ui/checkbox.cjs.map +1 -1
- package/dist/components/ui/checkbox.js.map +1 -1
- package/dist/components/ui/command.cjs.map +1 -1
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/command.js.map +1 -1
- package/dist/components/ui/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog.js.map +1 -1
- package/dist/components/ui/drawer.cjs.map +1 -1
- package/dist/components/ui/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/input.cjs.map +1 -1
- package/dist/components/ui/input.js.map +1 -1
- package/dist/components/ui/label.cjs.map +1 -1
- package/dist/components/ui/label.js.map +1 -1
- package/dist/components/ui/menubar.cjs.map +1 -1
- package/dist/components/ui/menubar.js.map +1 -1
- package/dist/components/ui/navigation-menu.cjs.map +1 -1
- package/dist/components/ui/navigation-menu.js.map +1 -1
- package/dist/components/ui/popover.cjs.map +1 -1
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/resizable.cjs.map +1 -1
- package/dist/components/ui/resizable.js.map +1 -1
- package/dist/components/ui/scroll-area.cjs.map +1 -1
- package/dist/components/ui/scroll-area.js.map +1 -1
- package/dist/components/ui/select.cjs.map +1 -1
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/sheet.cjs.map +1 -1
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/skeleton.cjs.map +1 -1
- package/dist/components/ui/skeleton.js.map +1 -1
- package/dist/components/ui/spinner.cjs.map +1 -1
- package/dist/components/ui/spinner.js.map +1 -1
- package/dist/components/ui/switch.cjs.map +1 -1
- package/dist/components/ui/switch.js.map +1 -1
- package/dist/components/ui/tabs.cjs.map +1 -1
- package/dist/components/ui/tabs.js.map +1 -1
- package/dist/components/ui/textarea.cjs.map +1 -1
- package/dist/components/ui/textarea.js.map +1 -1
- package/dist/components/ui/toast.cjs.map +1 -1
- package/dist/components/ui/toast.js.map +1 -1
- package/dist/components/ui/toaster.cjs.map +1 -1
- package/dist/components/ui/toaster.js.map +1 -1
- package/dist/components/ui/tooltip.cjs.map +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/use-toast.cjs.map +1 -1
- package/dist/components/ui/use-toast.js.map +1 -1
- package/dist/components/upgrade-prompt/UpgradePrompt.cjs.map +1 -1
- package/dist/components/upgrade-prompt/UpgradePrompt.js.map +1 -1
- package/dist/components/upgrade-prompt/index.cjs.map +1 -1
- package/dist/components/upgrade-prompt/index.js.map +1 -1
- package/dist/hooks/useRecaptcha.cjs.map +1 -1
- package/dist/hooks/useRecaptcha.js.map +1 -1
- package/dist/lib/utils.cjs.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/types/nav.cjs.map +1 -1
- package/dist/types/sitemap.cjs.map +1 -1
- package/dist/types/unist.cjs.map +1 -1
- package/package.json +14 -7
- package/styles/theme.css +52 -52
- package/dist/lib/utils.d.cjs +0 -17
- package/dist/lib/utils.d.cjs.map +0 -1
- package/dist/lib/utils.d.js +0 -1
- package/dist/lib/utils.d.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/toast.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as ToastPrimitives from '@radix-ui/react-toast'\nimport { X } from 'lucide-react'\nimport { cn } from '../../lib/utils'\n\nconst ToastProvider = ToastPrimitives.Provider\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',\n className,\n )}\n {...props}\n />\n))\nToastViewport.displayName = ToastPrimitives.Viewport.displayName\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & {\n variant?: 'default' | 'destructive'\n }\n>(({ className, variant = 'default', ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none',\n variant === 'default' &&\n 'border-gray-200 bg-white text-gray-950 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50',\n variant === 'destructive' &&\n 'destructive group border-red-500 bg-red-500 text-gray-50 dark:border-red-900 dark:bg-red-900',\n className,\n )}\n {...props}\n />\n )\n})\nToast.displayName = ToastPrimitives.Root.displayName\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-white transition-colors hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-gray-100/40 group-[.destructive]:hover:border-red-500/30 group-[.destructive]:hover:bg-red-500 group-[.destructive]:hover:text-gray-50 group-[.destructive]:focus:ring-red-500 dark:ring-offset-gray-950 dark:hover:bg-gray-800 dark:focus:ring-gray-300 dark:group-[.destructive]:border-gray-800/40 dark:group-[.destructive]:hover:border-red-900/30 dark:group-[.destructive]:hover:bg-red-900 dark:group-[.destructive]:hover:text-gray-50 dark:group-[.destructive]:focus:ring-red-900',\n className,\n )}\n {...props}\n />\n))\nToastAction.displayName = ToastPrimitives.Action.displayName\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n 'absolute right-2 top-2 rounded-md p-1 text-gray-950/50 opacity-0 transition-opacity hover:text-gray-950 focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600 dark:text-gray-50/50 dark:hover:text-gray-50',\n className,\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n))\nToastClose.displayName = ToastPrimitives.Close.displayName\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn('text-sm font-semibold', className)}\n {...props}\n />\n))\nToastTitle.displayName = ToastPrimitives.Title.displayName\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn('text-sm opacity-90', className)}\n {...props}\n />\n))\nToastDescription.displayName = ToastPrimitives.Description.displayName\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaE;AAXF,YAAY,WAAW;AACvB,YAAY,qBAAqB;AACjC,SAAS,SAAS;AAClB,SAAS,UAAU;AAEnB,MAAM,gBAAgB,gBAAgB;AAEtC,MAAM,gBAAgB,MAAM,WAG1B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAZL,IAYG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,cAAc,cAAc,gBAAgB,SAAS;AAErD,MAAM,QAAQ,MAAM,WAKlB,CAAC,IAA8C,QAAQ;AAAtD,eAAE,aAAW,UAAU,UA7B1B,IA6BG,IAAqC,kBAArC,IAAqC,CAAnC,aAAW;AACd,SACE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,YAAY,aACV;AAAA,QACF,YAAY,iBACV;AAAA,QACF;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAEJ,CAAC;AACD,MAAM,cAAc,gBAAgB,KAAK;AAEzC,MAAM,cAAc,MAAM,WAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAlDL,IAkDG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,YAAY,cAAc,gBAAgB,OAAO;AAEjD,MAAM,aAAa,MAAM,WAGvB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAjEL,IAiEG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,eAAY;AAAA,OACR,QAPL;AAAA,MASC,8BAAC,KAAE,WAAU,WAAU;AAAA;AAAA,EACzB;AAAA,CACD;AACD,WAAW,cAAc,gBAAgB,MAAM;AAE/C,MAAM,aAAa,MAAM,WAGvB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAnFL,IAmFG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,yBAAyB,SAAS;AAAA,OAC5C;AAAA,EACN;AAAA,CACD;AACD,WAAW,cAAc,gBAAgB,MAAM;AAE/C,MAAM,mBAAmB,MAAM,WAG7B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA/FL,IA+FG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,sBAAsB,SAAS;AAAA,OACzC;AAAA,EACN;AAAA,CACD;AACD,iBAAiB,cAAc,gBAAgB,YAAY;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/toast.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as ToastPrimitives from '@radix-ui/react-toast'\r\nimport { X } from 'lucide-react'\r\nimport { cn } from '../../lib/utils'\r\n\r\nconst ToastProvider = ToastPrimitives.Provider\r\n\r\nconst ToastViewport = React.forwardRef<\r\n React.ElementRef<typeof ToastPrimitives.Viewport>,\r\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\r\n>(({ className, ...props }, ref) => (\r\n <ToastPrimitives.Viewport\r\n ref={ref}\r\n className={cn(\r\n 'fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n))\r\nToastViewport.displayName = ToastPrimitives.Viewport.displayName\r\n\r\nconst Toast = React.forwardRef<\r\n React.ElementRef<typeof ToastPrimitives.Root>,\r\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> & {\r\n variant?: 'default' | 'destructive'\r\n }\r\n>(({ className, variant = 'default', ...props }, ref) => {\r\n return (\r\n <ToastPrimitives.Root\r\n ref={ref}\r\n className={cn(\r\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none',\r\n variant === 'default' &&\r\n 'border-gray-200 bg-white text-gray-950 dark:border-gray-800 dark:bg-gray-950 dark:text-gray-50',\r\n variant === 'destructive' &&\r\n 'destructive group border-red-500 bg-red-500 text-gray-50 dark:border-red-900 dark:bg-red-900',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nToast.displayName = ToastPrimitives.Root.displayName\r\n\r\nconst ToastAction = React.forwardRef<\r\n React.ElementRef<typeof ToastPrimitives.Action>,\r\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\r\n>(({ className, ...props }, ref) => (\r\n <ToastPrimitives.Action\r\n ref={ref}\r\n className={cn(\r\n 'inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-white transition-colors hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-gray-950 focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-gray-100/40 group-[.destructive]:hover:border-red-500/30 group-[.destructive]:hover:bg-red-500 group-[.destructive]:hover:text-gray-50 group-[.destructive]:focus:ring-red-500 dark:ring-offset-gray-950 dark:hover:bg-gray-800 dark:focus:ring-gray-300 dark:group-[.destructive]:border-gray-800/40 dark:group-[.destructive]:hover:border-red-900/30 dark:group-[.destructive]:hover:bg-red-900 dark:group-[.destructive]:hover:text-gray-50 dark:group-[.destructive]:focus:ring-red-900',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n))\r\nToastAction.displayName = ToastPrimitives.Action.displayName\r\n\r\nconst ToastClose = React.forwardRef<\r\n React.ElementRef<typeof ToastPrimitives.Close>,\r\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\r\n>(({ className, ...props }, ref) => (\r\n <ToastPrimitives.Close\r\n ref={ref}\r\n className={cn(\r\n 'absolute right-2 top-2 rounded-md p-1 text-gray-950/50 opacity-0 transition-opacity hover:text-gray-950 focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600 dark:text-gray-50/50 dark:hover:text-gray-50',\r\n className,\r\n )}\r\n toast-close=\"\"\r\n {...props}\r\n >\r\n <X className=\"h-4 w-4\" />\r\n </ToastPrimitives.Close>\r\n))\r\nToastClose.displayName = ToastPrimitives.Close.displayName\r\n\r\nconst ToastTitle = React.forwardRef<\r\n React.ElementRef<typeof ToastPrimitives.Title>,\r\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\r\n>(({ className, ...props }, ref) => (\r\n <ToastPrimitives.Title\r\n ref={ref}\r\n className={cn('text-sm font-semibold', className)}\r\n {...props}\r\n />\r\n))\r\nToastTitle.displayName = ToastPrimitives.Title.displayName\r\n\r\nconst ToastDescription = React.forwardRef<\r\n React.ElementRef<typeof ToastPrimitives.Description>,\r\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\r\n>(({ className, ...props }, ref) => (\r\n <ToastPrimitives.Description\r\n ref={ref}\r\n className={cn('text-sm opacity-90', className)}\r\n {...props}\r\n />\r\n))\r\nToastDescription.displayName = ToastPrimitives.Description.displayName\r\n\r\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>\r\n\r\ntype ToastActionElement = React.ReactElement<typeof ToastAction>\r\n\r\nexport {\r\n type ToastProps,\r\n type ToastActionElement,\r\n ToastProvider,\r\n ToastViewport,\r\n Toast,\r\n ToastTitle,\r\n ToastDescription,\r\n ToastClose,\r\n ToastAction,\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaE;AAXF,YAAY,WAAW;AACvB,YAAY,qBAAqB;AACjC,SAAS,SAAS;AAClB,SAAS,UAAU;AAEnB,MAAM,gBAAgB,gBAAgB;AAEtC,MAAM,gBAAgB,MAAM,WAG1B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAZL,IAYG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,cAAc,cAAc,gBAAgB,SAAS;AAErD,MAAM,QAAQ,MAAM,WAKlB,CAAC,IAA8C,QAAQ;AAAtD,eAAE,aAAW,UAAU,UA7B1B,IA6BG,IAAqC,kBAArC,IAAqC,CAAnC,aAAW;AACd,SACE;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,YAAY,aACV;AAAA,QACF,YAAY,iBACV;AAAA,QACF;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAEJ,CAAC;AACD,MAAM,cAAc,gBAAgB,KAAK;AAEzC,MAAM,cAAc,MAAM,WAGxB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAlDL,IAkDG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI;AAAA,EACN;AAAA,CACD;AACD,YAAY,cAAc,gBAAgB,OAAO;AAEjD,MAAM,aAAa,MAAM,WAGvB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAjEL,IAiEG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACA,eAAY;AAAA,OACR,QAPL;AAAA,MASC,8BAAC,KAAE,WAAU,WAAU;AAAA;AAAA,EACzB;AAAA,CACD;AACD,WAAW,cAAc,gBAAgB,MAAM;AAE/C,MAAM,aAAa,MAAM,WAGvB,CAAC,IAAyB,QAAK;AAA9B,eAAE,YAnFL,IAmFG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,yBAAyB,SAAS;AAAA,OAC5C;AAAA,EACN;AAAA,CACD;AACD,WAAW,cAAc,gBAAgB,MAAM;AAE/C,MAAM,mBAAmB,MAAM,WAG7B,CAAC,IAAyB,QAAK;AAA9B,eAAE,YA/FL,IA+FG,IAAgB,kBAAhB,IAAgB,CAAd;AACH;AAAA,IAAC,gBAAgB;AAAA,IAAhB;AAAA,MACC;AAAA,MACA,WAAW,GAAG,sBAAsB,SAAS;AAAA,OACzC;AAAA,EACN;AAAA,CACD;AACD,iBAAiB,cAAc,gBAAgB,YAAY;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/toaster.tsx"],"sourcesContent":["'use client'\n\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from './toast'\nimport { useToast } from './use-toast'\n\nexport function Toaster() {\n const { toasts } = useToast()\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n </Toast>\n )\n })}\n <ToastViewport />\n </ToastProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBY;AAlBZ,mBAOO;AACP,uBAAyB;AAElB,SAAS,UAAU;AACxB,QAAM,EAAE,OAAO,QAAI,2BAAS;AAE5B,SACE,6CAAC,8BACE;AAAA,WAAO,IAAI,SAAU,IAA8C;AAA9C,mBAAE,MAAI,OAAO,aAAa,OAjBtD,IAiB4B,IAAqC,kBAArC,IAAqC,CAAnC,MAAI,SAAO,eAAa;AAC9C,aACE,6CAAC,qDAAmB,QAAnB,EACC;AAAA,qDAAC,SAAI,WAAU,cACZ;AAAA,mBAAS,4CAAC,2BAAY,iBAAM;AAAA,UAC5B,eACC,4CAAC,iCAAkB,uBAAY;AAAA,WAEnC;AAAA,QACC;AAAA,QACD,4CAAC,2BAAW;AAAA,YARF,EASZ;AAAA,IAEJ,CAAC;AAAA,IACD,4CAAC,8BAAc;AAAA,KACjB;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/toaster.tsx"],"sourcesContent":["'use client'\r\n\r\nimport {\r\n Toast,\r\n ToastClose,\r\n ToastDescription,\r\n ToastProvider,\r\n ToastTitle,\r\n ToastViewport,\r\n} from './toast'\r\nimport { useToast } from './use-toast'\r\n\r\nexport function Toaster() {\r\n const { toasts } = useToast()\r\n\r\n return (\r\n <ToastProvider>\r\n {toasts.map(function ({ id, title, description, action, ...props }) {\r\n return (\r\n <Toast key={id} {...props}>\r\n <div className=\"grid gap-1\">\r\n {title && <ToastTitle>{title}</ToastTitle>}\r\n {description && (\r\n <ToastDescription>{description}</ToastDescription>\r\n )}\r\n </div>\r\n {action}\r\n <ToastClose />\r\n </Toast>\r\n )\r\n })}\r\n <ToastViewport />\r\n </ToastProvider>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAoBY;AAlBZ,mBAOO;AACP,uBAAyB;AAElB,SAAS,UAAU;AACxB,QAAM,EAAE,OAAO,QAAI,2BAAS;AAE5B,SACE,6CAAC,8BACE;AAAA,WAAO,IAAI,SAAU,IAA8C;AAA9C,mBAAE,MAAI,OAAO,aAAa,OAjBtD,IAiB4B,IAAqC,kBAArC,IAAqC,CAAnC,MAAI,SAAO,eAAa;AAC9C,aACE,6CAAC,qDAAmB,QAAnB,EACC;AAAA,qDAAC,SAAI,WAAU,cACZ;AAAA,mBAAS,4CAAC,2BAAY,iBAAM;AAAA,UAC5B,eACC,4CAAC,iCAAkB,uBAAY;AAAA,WAEnC;AAAA,QACC;AAAA,QACD,4CAAC,2BAAW;AAAA,YARF,EASZ;AAAA,IAEJ,CAAC;AAAA,IACD,4CAAC,8BAAc;AAAA,KACjB;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/toaster.tsx"],"sourcesContent":["'use client'\n\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from './toast'\nimport { useToast } from './use-toast'\n\nexport function Toaster() {\n const { toasts } = useToast()\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n </Toast>\n )\n })}\n <ToastViewport />\n </ToastProvider>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBY,SACY,KADZ;AAlBZ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AAElB,SAAS,UAAU;AACxB,QAAM,EAAE,OAAO,IAAI,SAAS;AAE5B,SACE,qBAAC,iBACE;AAAA,WAAO,IAAI,SAAU,IAA8C;AAA9C,mBAAE,MAAI,OAAO,aAAa,OAjBtD,IAiB4B,IAAqC,kBAArC,IAAqC,CAAnC,MAAI,SAAO,eAAa;AAC9C,aACE,qBAAC,wCAAmB,QAAnB,EACC;AAAA,6BAAC,SAAI,WAAU,cACZ;AAAA,mBAAS,oBAAC,cAAY,iBAAM;AAAA,UAC5B,eACC,oBAAC,oBAAkB,uBAAY;AAAA,WAEnC;AAAA,QACC;AAAA,QACD,oBAAC,cAAW;AAAA,YARF,EASZ;AAAA,IAEJ,CAAC;AAAA,IACD,oBAAC,iBAAc;AAAA,KACjB;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/toaster.tsx"],"sourcesContent":["'use client'\r\n\r\nimport {\r\n Toast,\r\n ToastClose,\r\n ToastDescription,\r\n ToastProvider,\r\n ToastTitle,\r\n ToastViewport,\r\n} from './toast'\r\nimport { useToast } from './use-toast'\r\n\r\nexport function Toaster() {\r\n const { toasts } = useToast()\r\n\r\n return (\r\n <ToastProvider>\r\n {toasts.map(function ({ id, title, description, action, ...props }) {\r\n return (\r\n <Toast key={id} {...props}>\r\n <div className=\"grid gap-1\">\r\n {title && <ToastTitle>{title}</ToastTitle>}\r\n {description && (\r\n <ToastDescription>{description}</ToastDescription>\r\n )}\r\n </div>\r\n {action}\r\n <ToastClose />\r\n </Toast>\r\n )\r\n })}\r\n <ToastViewport />\r\n </ToastProvider>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBY,SACY,KADZ;AAlBZ;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,gBAAgB;AAElB,SAAS,UAAU;AACxB,QAAM,EAAE,OAAO,IAAI,SAAS;AAE5B,SACE,qBAAC,iBACE;AAAA,WAAO,IAAI,SAAU,IAA8C;AAA9C,mBAAE,MAAI,OAAO,aAAa,OAjBtD,IAiB4B,IAAqC,kBAArC,IAAqC,CAAnC,MAAI,SAAO,eAAa;AAC9C,aACE,qBAAC,wCAAmB,QAAnB,EACC;AAAA,6BAAC,SAAI,WAAU,cACZ;AAAA,mBAAS,oBAAC,cAAY,iBAAM;AAAA,UAC5B,eACC,oBAAC,oBAAkB,uBAAY;AAAA,WAEnC;AAAA,QACC;AAAA,QACD,oBAAC,cAAW;AAAA,YARF,EASZ;AAAA,IAEJ,CAAC;AAAA,IACD,oBAAC,iBAAc;AAAA,KACjB;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/tooltip.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '../../lib/utils'\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 4,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-w-sm rounded-md px-3 py-1.5 text-xs',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYI;AATJ,uBAAkC;AAElC,mBAAmB;AAEnB,SAAS,gBAAgB,IAGkC;AAHlC,eACvB;AAAA,oBAAgB;AAAA,EARlB,IAOyB,IAEpB,kBAFoB,IAEpB;AAAA,IADH;AAAA;AAGA,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,OACI;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ,IAEsC;AAFtC,MACZ,kBADY,IACZ;AAEH,SACE,4CAAC,mBACC,sDAAC,iBAAiB,MAAjB,iBAAsB,aAAU,aAAc,MAAO,GACxD;AAEJ;AAEA,SAAS,eAAe,IAEkC;AAFlC,MACnB,kBADmB,IACnB;AAEH,SAAO,4CAAC,iBAAiB,SAAjB,iBAAyB,aAAU,qBAAsB,MAAO;AAC1E;AAEA,SAAS,eAAe,IAKkC;AALlC,eACtB;AAAA;AAAA,IACA,aAAa;AAAA,IACb;AAAA,EAvCF,IAoCwB,IAInB,kBAJmB,IAInB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE,4CAAC,iBAAiB,QAAjB,EACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI,QAPL;AAAA,MASE;AAAA;AAAA,QACD,4CAAC,iBAAiB,OAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACnI,GACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/tooltip.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\r\n\r\nimport { cn } from '../../lib/utils'\r\n\r\nfunction TooltipProvider({\r\n delayDuration = 0,\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\r\n return (\r\n <TooltipPrimitive.Provider\r\n data-slot=\"tooltip-provider\"\r\n delayDuration={delayDuration}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction Tooltip({\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\r\n return (\r\n <TooltipProvider>\r\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\r\n </TooltipProvider>\r\n )\r\n}\r\n\r\nfunction TooltipTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\r\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\r\n}\r\n\r\nfunction TooltipContent({\r\n className,\r\n sideOffset = 4,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\r\n return (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content\r\n data-slot=\"tooltip-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-w-sm rounded-md px-3 py-1.5 text-xs',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Portal>\r\n )\r\n}\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYI;AATJ,uBAAkC;AAElC,mBAAmB;AAEnB,SAAS,gBAAgB,IAGkC;AAHlC,eACvB;AAAA,oBAAgB;AAAA,EARlB,IAOyB,IAEpB,kBAFoB,IAEpB;AAAA,IADH;AAAA;AAGA,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,OACI;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ,IAEsC;AAFtC,MACZ,kBADY,IACZ;AAEH,SACE,4CAAC,mBACC,sDAAC,iBAAiB,MAAjB,iBAAsB,aAAU,aAAc,MAAO,GACxD;AAEJ;AAEA,SAAS,eAAe,IAEkC;AAFlC,MACnB,kBADmB,IACnB;AAEH,SAAO,4CAAC,iBAAiB,SAAjB,iBAAyB,aAAU,qBAAsB,MAAO;AAC1E;AAEA,SAAS,eAAe,IAKkC;AALlC,eACtB;AAAA;AAAA,IACA,aAAa;AAAA,IACb;AAAA,EAvCF,IAoCwB,IAInB,kBAJmB,IAInB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE,4CAAC,iBAAiB,QAAjB,EACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI,QAPL;AAAA,MASE;AAAA;AAAA,QACD,4CAAC,iBAAiB,OAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACnI,GACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/tooltip.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\n\nimport { cn } from '../../lib/utils'\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 4,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-w-sm rounded-md px-3 py-1.5 text-xs',\n className,\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYI,cAgCE,YAhCF;AATJ,YAAY,sBAAsB;AAElC,SAAS,UAAU;AAEnB,SAAS,gBAAgB,IAGkC;AAHlC,eACvB;AAAA,oBAAgB;AAAA,EARlB,IAOyB,IAEpB,kBAFoB,IAEpB;AAAA,IADH;AAAA;AAGA,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,OACI;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ,IAEsC;AAFtC,MACZ,kBADY,IACZ;AAEH,SACE,oBAAC,mBACC,8BAAC,iBAAiB,MAAjB,iBAAsB,aAAU,aAAc,MAAO,GACxD;AAEJ;AAEA,SAAS,eAAe,IAEkC;AAFlC,MACnB,kBADmB,IACnB;AAEH,SAAO,oBAAC,iBAAiB,SAAjB,iBAAyB,aAAU,qBAAsB,MAAO;AAC1E;AAEA,SAAS,eAAe,IAKkC;AALlC,eACtB;AAAA;AAAA,IACA,aAAa;AAAA,IACb;AAAA,EAvCF,IAoCwB,IAInB,kBAJmB,IAInB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE,oBAAC,iBAAiB,QAAjB,EACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI,QAPL;AAAA,MASE;AAAA;AAAA,QACD,oBAAC,iBAAiB,OAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACnI,GACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/tooltip.tsx"],"sourcesContent":["'use client'\r\n\r\nimport * as React from 'react'\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip'\r\n\r\nimport { cn } from '../../lib/utils'\r\n\r\nfunction TooltipProvider({\r\n delayDuration = 0,\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\r\n return (\r\n <TooltipPrimitive.Provider\r\n data-slot=\"tooltip-provider\"\r\n delayDuration={delayDuration}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction Tooltip({\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\r\n return (\r\n <TooltipProvider>\r\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\r\n </TooltipProvider>\r\n )\r\n}\r\n\r\nfunction TooltipTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\r\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\r\n}\r\n\r\nfunction TooltipContent({\r\n className,\r\n sideOffset = 4,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\r\n return (\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content\r\n data-slot=\"tooltip-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'bg-primary text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-w-sm rounded-md px-3 py-1.5 text-xs',\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <TooltipPrimitive.Arrow className=\"bg-primary fill-primary z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Portal>\r\n )\r\n}\r\n\r\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYI,cAgCE,YAhCF;AATJ,YAAY,sBAAsB;AAElC,SAAS,UAAU;AAEnB,SAAS,gBAAgB,IAGkC;AAHlC,eACvB;AAAA,oBAAgB;AAAA,EARlB,IAOyB,IAEpB,kBAFoB,IAEpB;AAAA,IADH;AAAA;AAGA,SACE;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,OACI;AAAA,EACN;AAEJ;AAEA,SAAS,QAAQ,IAEsC;AAFtC,MACZ,kBADY,IACZ;AAEH,SACE,oBAAC,mBACC,8BAAC,iBAAiB,MAAjB,iBAAsB,aAAU,aAAc,MAAO,GACxD;AAEJ;AAEA,SAAS,eAAe,IAEkC;AAFlC,MACnB,kBADmB,IACnB;AAEH,SAAO,oBAAC,iBAAiB,SAAjB,iBAAyB,aAAU,qBAAsB,MAAO;AAC1E;AAEA,SAAS,eAAe,IAKkC;AALlC,eACtB;AAAA;AAAA,IACA,aAAa;AAAA,IACb;AAAA,EAvCF,IAoCwB,IAInB,kBAJmB,IAInB;AAAA,IAHH;AAAA,IACA;AAAA,IACA;AAAA;AAGA,SACE,oBAAC,iBAAiB,QAAjB,EACC;AAAA,IAAC,iBAAiB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,OACI,QAPL;AAAA,MASE;AAAA;AAAA,QACD,oBAAC,iBAAiB,OAAjB,EAAuB,WAAU,gGAA+F;AAAA;AAAA;AAAA,EACnI,GACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/use-toast.ts"],"sourcesContent":["import * as React from 'react'\n\nimport type { ToastActionElement, ToastProps } from './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) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n }\n\n case 'DISMISS_TOAST': {\n const { toastId } = action\n\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 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"]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/use-toast.ts"],"sourcesContent":["import * as React from 'react'\r\n\r\nimport type { ToastActionElement, ToastProps } from './toast'\r\n\r\nconst TOAST_LIMIT = 1\r\nconst TOAST_REMOVE_DELAY = 1000000\r\n\r\ntype ToasterToast = ToastProps & {\r\n id: string\r\n title?: React.ReactNode\r\n description?: React.ReactNode\r\n action?: ToastActionElement\r\n}\r\n\r\nconst actionTypes = {\r\n ADD_TOAST: 'ADD_TOAST',\r\n UPDATE_TOAST: 'UPDATE_TOAST',\r\n DISMISS_TOAST: 'DISMISS_TOAST',\r\n REMOVE_TOAST: 'REMOVE_TOAST',\r\n} as const\r\n\r\nlet count = 0\r\n\r\nfunction genId() {\r\n count = (count + 1) % Number.MAX_SAFE_INTEGER\r\n return count.toString()\r\n}\r\n\r\ntype ActionType = typeof actionTypes\r\n\r\ntype Action =\r\n | {\r\n type: ActionType['ADD_TOAST']\r\n toast: ToasterToast\r\n }\r\n | {\r\n type: ActionType['UPDATE_TOAST']\r\n toast: Partial<ToasterToast>\r\n }\r\n | {\r\n type: ActionType['DISMISS_TOAST']\r\n toastId?: ToasterToast['id']\r\n }\r\n | {\r\n type: ActionType['REMOVE_TOAST']\r\n toastId?: ToasterToast['id']\r\n }\r\n\r\ninterface State {\r\n toasts: ToasterToast[]\r\n}\r\n\r\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\r\n\r\nconst addToRemoveQueue = (toastId: string) => {\r\n if (toastTimeouts.has(toastId)) {\r\n return\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n toastTimeouts.delete(toastId)\r\n dispatch({\r\n type: 'REMOVE_TOAST',\r\n toastId: toastId,\r\n })\r\n }, TOAST_REMOVE_DELAY)\r\n\r\n toastTimeouts.set(toastId, timeout)\r\n}\r\n\r\nexport const reducer = (state: State, action: Action): State => {\r\n switch (action.type) {\r\n case 'ADD_TOAST':\r\n return {\r\n ...state,\r\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\r\n }\r\n\r\n case 'UPDATE_TOAST':\r\n return {\r\n ...state,\r\n toasts: state.toasts.map((t) =>\r\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\r\n ),\r\n }\r\n\r\n case 'DISMISS_TOAST': {\r\n const { toastId } = action\r\n\r\n if (toastId) {\r\n addToRemoveQueue(toastId)\r\n } else {\r\n state.toasts.forEach((toast) => {\r\n addToRemoveQueue(toast.id)\r\n })\r\n }\r\n\r\n return {\r\n ...state,\r\n toasts: state.toasts.map((t) =>\r\n t.id === toastId || toastId === undefined\r\n ? {\r\n ...t,\r\n open: false,\r\n }\r\n : t,\r\n ),\r\n }\r\n }\r\n case 'REMOVE_TOAST':\r\n if (action.toastId === undefined) {\r\n return {\r\n ...state,\r\n toasts: [],\r\n }\r\n }\r\n return {\r\n ...state,\r\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\r\n }\r\n }\r\n}\r\n\r\nconst listeners: Array<(state: State) => void> = []\r\n\r\nlet memoryState: State = { toasts: [] }\r\n\r\nfunction dispatch(action: Action) {\r\n memoryState = reducer(memoryState, action)\r\n listeners.forEach((listener) => {\r\n listener(memoryState)\r\n })\r\n}\r\n\r\ntype Toast = Omit<ToasterToast, 'id'>\r\n\r\nfunction toast({ ...props }: Toast) {\r\n const id = genId()\r\n\r\n const update = (props: ToasterToast) =>\r\n dispatch({\r\n type: 'UPDATE_TOAST',\r\n toast: { ...props, id },\r\n })\r\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id })\r\n\r\n dispatch({\r\n type: 'ADD_TOAST',\r\n toast: {\r\n ...props,\r\n id,\r\n open: true,\r\n onOpenChange: (open) => {\r\n if (!open) dismiss()\r\n },\r\n },\r\n })\r\n\r\n return {\r\n id: id,\r\n dismiss,\r\n update,\r\n }\r\n}\r\n\r\nfunction useToast() {\r\n const [state, setState] = React.useState<State>(memoryState)\r\n\r\n React.useEffect(() => {\r\n listeners.push(setState)\r\n return () => {\r\n const index = listeners.indexOf(setState)\r\n if (index > -1) {\r\n listeners.splice(index, 1)\r\n }\r\n }\r\n }, [state])\r\n\r\n return {\r\n ...state,\r\n toast,\r\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\r\n }\r\n}\r\n\r\nexport { useToast, toast }\r\n"],"mappings":"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","names":["toast","props"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/ui/use-toast.ts"],"sourcesContent":["import * as React from 'react'\n\nimport type { ToastActionElement, ToastProps } from './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) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\n ),\n }\n\n case 'DISMISS_TOAST': {\n const { toastId } = action\n\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 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"]}
|
|
1
|
+
{"version":3,"sources":["../../../components/ui/use-toast.ts"],"sourcesContent":["import * as React from 'react'\r\n\r\nimport type { ToastActionElement, ToastProps } from './toast'\r\n\r\nconst TOAST_LIMIT = 1\r\nconst TOAST_REMOVE_DELAY = 1000000\r\n\r\ntype ToasterToast = ToastProps & {\r\n id: string\r\n title?: React.ReactNode\r\n description?: React.ReactNode\r\n action?: ToastActionElement\r\n}\r\n\r\nconst actionTypes = {\r\n ADD_TOAST: 'ADD_TOAST',\r\n UPDATE_TOAST: 'UPDATE_TOAST',\r\n DISMISS_TOAST: 'DISMISS_TOAST',\r\n REMOVE_TOAST: 'REMOVE_TOAST',\r\n} as const\r\n\r\nlet count = 0\r\n\r\nfunction genId() {\r\n count = (count + 1) % Number.MAX_SAFE_INTEGER\r\n return count.toString()\r\n}\r\n\r\ntype ActionType = typeof actionTypes\r\n\r\ntype Action =\r\n | {\r\n type: ActionType['ADD_TOAST']\r\n toast: ToasterToast\r\n }\r\n | {\r\n type: ActionType['UPDATE_TOAST']\r\n toast: Partial<ToasterToast>\r\n }\r\n | {\r\n type: ActionType['DISMISS_TOAST']\r\n toastId?: ToasterToast['id']\r\n }\r\n | {\r\n type: ActionType['REMOVE_TOAST']\r\n toastId?: ToasterToast['id']\r\n }\r\n\r\ninterface State {\r\n toasts: ToasterToast[]\r\n}\r\n\r\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>()\r\n\r\nconst addToRemoveQueue = (toastId: string) => {\r\n if (toastTimeouts.has(toastId)) {\r\n return\r\n }\r\n\r\n const timeout = setTimeout(() => {\r\n toastTimeouts.delete(toastId)\r\n dispatch({\r\n type: 'REMOVE_TOAST',\r\n toastId: toastId,\r\n })\r\n }, TOAST_REMOVE_DELAY)\r\n\r\n toastTimeouts.set(toastId, timeout)\r\n}\r\n\r\nexport const reducer = (state: State, action: Action): State => {\r\n switch (action.type) {\r\n case 'ADD_TOAST':\r\n return {\r\n ...state,\r\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\r\n }\r\n\r\n case 'UPDATE_TOAST':\r\n return {\r\n ...state,\r\n toasts: state.toasts.map((t) =>\r\n t.id === action.toast.id ? { ...t, ...action.toast } : t,\r\n ),\r\n }\r\n\r\n case 'DISMISS_TOAST': {\r\n const { toastId } = action\r\n\r\n if (toastId) {\r\n addToRemoveQueue(toastId)\r\n } else {\r\n state.toasts.forEach((toast) => {\r\n addToRemoveQueue(toast.id)\r\n })\r\n }\r\n\r\n return {\r\n ...state,\r\n toasts: state.toasts.map((t) =>\r\n t.id === toastId || toastId === undefined\r\n ? {\r\n ...t,\r\n open: false,\r\n }\r\n : t,\r\n ),\r\n }\r\n }\r\n case 'REMOVE_TOAST':\r\n if (action.toastId === undefined) {\r\n return {\r\n ...state,\r\n toasts: [],\r\n }\r\n }\r\n return {\r\n ...state,\r\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\r\n }\r\n }\r\n}\r\n\r\nconst listeners: Array<(state: State) => void> = []\r\n\r\nlet memoryState: State = { toasts: [] }\r\n\r\nfunction dispatch(action: Action) {\r\n memoryState = reducer(memoryState, action)\r\n listeners.forEach((listener) => {\r\n listener(memoryState)\r\n })\r\n}\r\n\r\ntype Toast = Omit<ToasterToast, 'id'>\r\n\r\nfunction toast({ ...props }: Toast) {\r\n const id = genId()\r\n\r\n const update = (props: ToasterToast) =>\r\n dispatch({\r\n type: 'UPDATE_TOAST',\r\n toast: { ...props, id },\r\n })\r\n const dismiss = () => dispatch({ type: 'DISMISS_TOAST', toastId: id })\r\n\r\n dispatch({\r\n type: 'ADD_TOAST',\r\n toast: {\r\n ...props,\r\n id,\r\n open: true,\r\n onOpenChange: (open) => {\r\n if (!open) dismiss()\r\n },\r\n },\r\n })\r\n\r\n return {\r\n id: id,\r\n dismiss,\r\n update,\r\n }\r\n}\r\n\r\nfunction useToast() {\r\n const [state, setState] = React.useState<State>(memoryState)\r\n\r\n React.useEffect(() => {\r\n listeners.push(setState)\r\n return () => {\r\n const index = listeners.indexOf(setState)\r\n if (index > -1) {\r\n listeners.splice(index, 1)\r\n }\r\n }\r\n }, [state])\r\n\r\n return {\r\n ...state,\r\n toast,\r\n dismiss: (toastId?: string) => dispatch({ type: 'DISMISS_TOAST', toastId }),\r\n }\r\n}\r\n\r\nexport { useToast, toast }\r\n"],"mappings":"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","names":["toast","props"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/upgrade-prompt/UpgradePrompt.tsx"],"sourcesContent":["'use client'\nimport Link from 'next/link'\nimport { Zap } from 'lucide-react'\n\nexport interface UpgradePromptProps {\n entityType: string\n count: number\n limit: number\n upgradeHref?: string\n}\n\n/**\n * Inline banner shown when a preview user has reached an entity limit.\n * Prompts them to upgrade to a paid subscription.\n */\nexport function UpgradePrompt({\n entityType,\n count,\n limit,\n upgradeHref = '/about/pricing',\n}: UpgradePromptProps) {\n return (\n <div className=\"mt-2 flex items-center gap-3 rounded-lg border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm\">\n <Zap\n className=\"h-4 w-4 flex-shrink-0 text-amber-400\"\n aria-hidden=\"true\"\n />\n <span className=\"text-amber-200\">\n Preview limit reached: {count}/{limit} {entityType}.{' '}\n <Link\n href={upgradeHref}\n className=\"font-semibold text-amber-400 underline underline-offset-2 hover:text-amber-300\"\n >\n Upgrade to Pro\n </Link>{' '}\n to create unlimited {entityType}.\n </span>\n </div>\n )\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBM;AAtBN,kBAAiB;AACjB,0BAAoB;AAab,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAuB;AACrB,SACE,6CAAC,SAAI,WAAU,wGACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA;AAAA,IACd;AAAA,IACA,6CAAC,UAAK,WAAU,kBAAiB;AAAA;AAAA,MACP;AAAA,MAAM;AAAA,MAAE;AAAA,MAAM;AAAA,MAAE;AAAA,MAAW;AAAA,MAAE;AAAA,MACrD;AAAA,QAAC,YAAAA;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAAQ;AAAA,MAAI;AAAA,MACS;AAAA,MAAW;AAAA,OAClC;AAAA,KACF;AAEJ;","names":["Link"]}
|
|
1
|
+
{"version":3,"sources":["../../../components/upgrade-prompt/UpgradePrompt.tsx"],"sourcesContent":["'use client'\r\nimport Link from 'next/link'\r\nimport { Zap } from 'lucide-react'\r\n\r\nexport interface UpgradePromptProps {\r\n entityType: string\r\n count: number\r\n limit: number\r\n upgradeHref?: string\r\n}\r\n\r\n/**\r\n * Inline banner shown when a preview user has reached an entity limit.\r\n * Prompts them to upgrade to a paid subscription.\r\n */\r\nexport function UpgradePrompt({\r\n entityType,\r\n count,\r\n limit,\r\n upgradeHref = '/about/pricing',\r\n}: UpgradePromptProps) {\r\n return (\r\n <div className=\"mt-2 flex items-center gap-3 rounded-lg border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm\">\r\n <Zap\r\n className=\"h-4 w-4 flex-shrink-0 text-amber-400\"\r\n aria-hidden=\"true\"\r\n />\r\n <span className=\"text-amber-200\">\r\n Preview limit reached: {count}/{limit} {entityType}.{' '}\r\n <Link\r\n href={upgradeHref}\r\n className=\"font-semibold text-amber-400 underline underline-offset-2 hover:text-amber-300\"\r\n >\r\n Upgrade to Pro\r\n </Link>{' '}\r\n to create unlimited {entityType}.\r\n </span>\r\n </div>\r\n )\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBM;AAtBN,kBAAiB;AACjB,0BAAoB;AAab,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAuB;AACrB,SACE,6CAAC,SAAI,WAAU,wGACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA;AAAA,IACd;AAAA,IACA,6CAAC,UAAK,WAAU,kBAAiB;AAAA;AAAA,MACP;AAAA,MAAM;AAAA,MAAE;AAAA,MAAM;AAAA,MAAE;AAAA,MAAW;AAAA,MAAE;AAAA,MACrD;AAAA,QAAC,YAAAA;AAAA,QAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAAQ;AAAA,MAAI;AAAA,MACS;AAAA,MAAW;AAAA,OAClC;AAAA,KACF;AAEJ;","names":["Link"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/upgrade-prompt/UpgradePrompt.tsx"],"sourcesContent":["'use client'\nimport Link from 'next/link'\nimport { Zap } from 'lucide-react'\n\nexport interface UpgradePromptProps {\n entityType: string\n count: number\n limit: number\n upgradeHref?: string\n}\n\n/**\n * Inline banner shown when a preview user has reached an entity limit.\n * Prompts them to upgrade to a paid subscription.\n */\nexport function UpgradePrompt({\n entityType,\n count,\n limit,\n upgradeHref = '/about/pricing',\n}: UpgradePromptProps) {\n return (\n <div className=\"mt-2 flex items-center gap-3 rounded-lg border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm\">\n <Zap\n className=\"h-4 w-4 flex-shrink-0 text-amber-400\"\n aria-hidden=\"true\"\n />\n <span className=\"text-amber-200\">\n Preview limit reached: {count}/{limit} {entityType}.{' '}\n <Link\n href={upgradeHref}\n className=\"font-semibold text-amber-400 underline underline-offset-2 hover:text-amber-300\"\n >\n Upgrade to Pro\n </Link>{' '}\n to create unlimited {entityType}.\n </span>\n </div>\n )\n}\n"],"mappings":";AAuBM,cAIA,YAJA;AAtBN,OAAO,UAAU;AACjB,SAAS,WAAW;AAab,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAuB;AACrB,SACE,qBAAC,SAAI,WAAU,wGACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA;AAAA,IACd;AAAA,IACA,qBAAC,UAAK,WAAU,kBAAiB;AAAA;AAAA,MACP;AAAA,MAAM;AAAA,MAAE;AAAA,MAAM;AAAA,MAAE;AAAA,MAAW;AAAA,MAAE;AAAA,MACrD;AAAA,QAAC;AAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAAQ;AAAA,MAAI;AAAA,MACS;AAAA,MAAW;AAAA,OAClC;AAAA,KACF;AAEJ;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/upgrade-prompt/UpgradePrompt.tsx"],"sourcesContent":["'use client'\r\nimport Link from 'next/link'\r\nimport { Zap } from 'lucide-react'\r\n\r\nexport interface UpgradePromptProps {\r\n entityType: string\r\n count: number\r\n limit: number\r\n upgradeHref?: string\r\n}\r\n\r\n/**\r\n * Inline banner shown when a preview user has reached an entity limit.\r\n * Prompts them to upgrade to a paid subscription.\r\n */\r\nexport function UpgradePrompt({\r\n entityType,\r\n count,\r\n limit,\r\n upgradeHref = '/about/pricing',\r\n}: UpgradePromptProps) {\r\n return (\r\n <div className=\"mt-2 flex items-center gap-3 rounded-lg border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm\">\r\n <Zap\r\n className=\"h-4 w-4 flex-shrink-0 text-amber-400\"\r\n aria-hidden=\"true\"\r\n />\r\n <span className=\"text-amber-200\">\r\n Preview limit reached: {count}/{limit} {entityType}.{' '}\r\n <Link\r\n href={upgradeHref}\r\n className=\"font-semibold text-amber-400 underline underline-offset-2 hover:text-amber-300\"\r\n >\r\n Upgrade to Pro\r\n </Link>{' '}\r\n to create unlimited {entityType}.\r\n </span>\r\n </div>\r\n )\r\n}\r\n"],"mappings":";AAuBM,cAIA,YAJA;AAtBN,OAAO,UAAU;AACjB,SAAS,WAAW;AAab,SAAS,cAAc;AAAA,EAC5B;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAChB,GAAuB;AACrB,SACE,qBAAC,SAAI,WAAU,wGACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,eAAY;AAAA;AAAA,IACd;AAAA,IACA,qBAAC,UAAK,WAAU,kBAAiB;AAAA;AAAA,MACP;AAAA,MAAM;AAAA,MAAE;AAAA,MAAM;AAAA,MAAE;AAAA,MAAW;AAAA,MAAE;AAAA,MACrD;AAAA,QAAC;AAAA;AAAA,UACC,MAAM;AAAA,UACN,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAAQ;AAAA,MAAI;AAAA,MACS;AAAA,MAAW;AAAA,OAClC;AAAA,KACF;AAEJ;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/upgrade-prompt/index.ts"],"sourcesContent":["export { UpgradePrompt } from './UpgradePrompt'\nexport type { UpgradePromptProps } from './UpgradePrompt'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/upgrade-prompt/index.ts"],"sourcesContent":["export { UpgradePrompt } from './UpgradePrompt'\r\nexport type { UpgradePromptProps } from './UpgradePrompt'\r\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../components/upgrade-prompt/index.ts"],"sourcesContent":["export { UpgradePrompt } from './UpgradePrompt'\nexport type { UpgradePromptProps } from './UpgradePrompt'\n"],"mappings":"AAAA,SAAS,qBAAqB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../components/upgrade-prompt/index.ts"],"sourcesContent":["export { UpgradePrompt } from './UpgradePrompt'\r\nexport type { UpgradePromptProps } from './UpgradePrompt'\r\n"],"mappings":"AAAA,SAAS,qBAAqB;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../hooks/useRecaptcha.ts"],"sourcesContent":["'use client'\n\nimport { useCallback, useEffect, useRef } from 'react'\n\ndeclare global {\n interface Window {\n grecaptcha: {\n enterprise: {\n ready: (callback: () => void) => void\n execute: (\n siteKey: string,\n options: { action: string },\n ) => Promise<string>\n }\n }\n }\n}\n\nexport function useRecaptcha() {\n const siteKey = process.env.NEXT_PUBLIC_GOOGLE_RECAPTCHA_KEY ?? ''\n const loadedRef = useRef(false)\n\n useEffect(() => {\n if (!siteKey || loadedRef.current) return\n if (document.querySelector('script[src*=\"recaptcha/enterprise.js\"]')) {\n loadedRef.current = true\n return\n }\n\n const script = document.createElement('script')\n script.src = `https://www.google.com/recaptcha/enterprise.js?render=${siteKey}`\n script.async = true\n script.onload = () => {\n loadedRef.current = true\n }\n document.head.appendChild(script)\n }, [siteKey])\n\n const executeRecaptcha = useCallback(\n async (action: string): Promise<string | null> => {\n if (\n !siteKey ||\n typeof window === 'undefined' ||\n !window.grecaptcha?.enterprise\n ) {\n return null\n }\n\n return new Promise((resolve) => {\n window.grecaptcha.enterprise.ready(async () => {\n try {\n const token = await window.grecaptcha.enterprise.execute(siteKey, {\n action,\n })\n resolve(token)\n } catch {\n resolve(null)\n }\n })\n })\n },\n [siteKey],\n )\n\n return { executeRecaptcha }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA+C;AAgBxC,SAAS,eAAe;AAlB/B;AAmBE,QAAM,WAAU,aAAQ,IAAI,qCAAZ,YAAgD;AAChE,QAAM,gBAAY,qBAAO,KAAK;AAE9B,8BAAU,MAAM;AACd,QAAI,CAAC,WAAW,UAAU,QAAS;AACnC,QAAI,SAAS,cAAc,wCAAwC,GAAG;AACpE,gBAAU,UAAU;AACpB;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,MAAM,yDAAyD,OAAO;AAC7E,WAAO,QAAQ;AACf,WAAO,SAAS,MAAM;AACpB,gBAAU,UAAU;AAAA,IACtB;AACA,aAAS,KAAK,YAAY,MAAM;AAAA,EAClC,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,uBAAmB;AAAA,IACvB,CAAO,WAA2C;AAvCtD,UAAAA;AAwCM,UACE,CAAC,WACD,OAAO,WAAW,eAClB,GAACA,MAAA,OAAO,eAAP,gBAAAA,IAAmB,aACpB;AACA,eAAO;AAAA,MACT;AAEA,aAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAO,WAAW,WAAW,MAAM,MAAY;AAC7C,cAAI;AACF,kBAAM,QAAQ,MAAM,OAAO,WAAW,WAAW,QAAQ,SAAS;AAAA,cAChE;AAAA,YACF,CAAC;AACD,oBAAQ,KAAK;AAAA,UACf,SAAQ;AACN,oBAAQ,IAAI;AAAA,UACd;AAAA,QACF,EAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO,EAAE,iBAAiB;AAC5B;","names":["_a"]}
|
|
1
|
+
{"version":3,"sources":["../../hooks/useRecaptcha.ts"],"sourcesContent":["'use client'\r\n\r\nimport { useCallback, useEffect, useRef } from 'react'\r\n\r\ndeclare global {\r\n interface Window {\r\n grecaptcha: {\r\n enterprise: {\r\n ready: (callback: () => void) => void\r\n execute: (\r\n siteKey: string,\r\n options: { action: string },\r\n ) => Promise<string>\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function useRecaptcha() {\r\n const siteKey = process.env.NEXT_PUBLIC_GOOGLE_RECAPTCHA_KEY ?? ''\r\n const loadedRef = useRef(false)\r\n\r\n useEffect(() => {\r\n if (!siteKey || loadedRef.current) return\r\n if (document.querySelector('script[src*=\"recaptcha/enterprise.js\"]')) {\r\n loadedRef.current = true\r\n return\r\n }\r\n\r\n const script = document.createElement('script')\r\n script.src = `https://www.google.com/recaptcha/enterprise.js?render=${siteKey}`\r\n script.async = true\r\n script.onload = () => {\r\n loadedRef.current = true\r\n }\r\n document.head.appendChild(script)\r\n }, [siteKey])\r\n\r\n const executeRecaptcha = useCallback(\r\n async (action: string): Promise<string | null> => {\r\n if (\r\n !siteKey ||\r\n typeof window === 'undefined' ||\r\n !window.grecaptcha?.enterprise\r\n ) {\r\n return null\r\n }\r\n\r\n return new Promise((resolve) => {\r\n window.grecaptcha.enterprise.ready(async () => {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute(siteKey, {\r\n action,\r\n })\r\n resolve(token)\r\n } catch {\r\n resolve(null)\r\n }\r\n })\r\n })\r\n },\r\n [siteKey],\r\n )\r\n\r\n return { executeRecaptcha }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAA+C;AAgBxC,SAAS,eAAe;AAlB/B;AAmBE,QAAM,WAAU,aAAQ,IAAI,qCAAZ,YAAgD;AAChE,QAAM,gBAAY,qBAAO,KAAK;AAE9B,8BAAU,MAAM;AACd,QAAI,CAAC,WAAW,UAAU,QAAS;AACnC,QAAI,SAAS,cAAc,wCAAwC,GAAG;AACpE,gBAAU,UAAU;AACpB;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,MAAM,yDAAyD,OAAO;AAC7E,WAAO,QAAQ;AACf,WAAO,SAAS,MAAM;AACpB,gBAAU,UAAU;AAAA,IACtB;AACA,aAAS,KAAK,YAAY,MAAM;AAAA,EAClC,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,uBAAmB;AAAA,IACvB,CAAO,WAA2C;AAvCtD,UAAAA;AAwCM,UACE,CAAC,WACD,OAAO,WAAW,eAClB,GAACA,MAAA,OAAO,eAAP,gBAAAA,IAAmB,aACpB;AACA,eAAO;AAAA,MACT;AAEA,aAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAO,WAAW,WAAW,MAAM,MAAY;AAC7C,cAAI;AACF,kBAAM,QAAQ,MAAM,OAAO,WAAW,WAAW,QAAQ,SAAS;AAAA,cAChE;AAAA,YACF,CAAC;AACD,oBAAQ,KAAK;AAAA,UACf,SAAQ;AACN,oBAAQ,IAAI;AAAA,UACd;AAAA,QACF,EAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO,EAAE,iBAAiB;AAC5B;","names":["_a"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../hooks/useRecaptcha.ts"],"sourcesContent":["'use client'\n\nimport { useCallback, useEffect, useRef } from 'react'\n\ndeclare global {\n interface Window {\n grecaptcha: {\n enterprise: {\n ready: (callback: () => void) => void\n execute: (\n siteKey: string,\n options: { action: string },\n ) => Promise<string>\n }\n }\n }\n}\n\nexport function useRecaptcha() {\n const siteKey = process.env.NEXT_PUBLIC_GOOGLE_RECAPTCHA_KEY ?? ''\n const loadedRef = useRef(false)\n\n useEffect(() => {\n if (!siteKey || loadedRef.current) return\n if (document.querySelector('script[src*=\"recaptcha/enterprise.js\"]')) {\n loadedRef.current = true\n return\n }\n\n const script = document.createElement('script')\n script.src = `https://www.google.com/recaptcha/enterprise.js?render=${siteKey}`\n script.async = true\n script.onload = () => {\n loadedRef.current = true\n }\n document.head.appendChild(script)\n }, [siteKey])\n\n const executeRecaptcha = useCallback(\n async (action: string): Promise<string | null> => {\n if (\n !siteKey ||\n typeof window === 'undefined' ||\n !window.grecaptcha?.enterprise\n ) {\n return null\n }\n\n return new Promise((resolve) => {\n window.grecaptcha.enterprise.ready(async () => {\n try {\n const token = await window.grecaptcha.enterprise.execute(siteKey, {\n action,\n })\n resolve(token)\n } catch {\n resolve(null)\n }\n })\n })\n },\n [siteKey],\n )\n\n return { executeRecaptcha }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,aAAa,WAAW,cAAc;AAgBxC,SAAS,eAAe;AAlB/B;AAmBE,QAAM,WAAU,aAAQ,IAAI,qCAAZ,YAAgD;AAChE,QAAM,YAAY,OAAO,KAAK;AAE9B,YAAU,MAAM;AACd,QAAI,CAAC,WAAW,UAAU,QAAS;AACnC,QAAI,SAAS,cAAc,wCAAwC,GAAG;AACpE,gBAAU,UAAU;AACpB;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,MAAM,yDAAyD,OAAO;AAC7E,WAAO,QAAQ;AACf,WAAO,SAAS,MAAM;AACpB,gBAAU,UAAU;AAAA,IACtB;AACA,aAAS,KAAK,YAAY,MAAM;AAAA,EAClC,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,mBAAmB;AAAA,IACvB,CAAO,WAA2C;AAvCtD,UAAAA;AAwCM,UACE,CAAC,WACD,OAAO,WAAW,eAClB,GAACA,MAAA,OAAO,eAAP,gBAAAA,IAAmB,aACpB;AACA,eAAO;AAAA,MACT;AAEA,aAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAO,WAAW,WAAW,MAAM,MAAY;AAC7C,cAAI;AACF,kBAAM,QAAQ,MAAM,OAAO,WAAW,WAAW,QAAQ,SAAS;AAAA,cAChE;AAAA,YACF,CAAC;AACD,oBAAQ,KAAK;AAAA,UACf,SAAQ;AACN,oBAAQ,IAAI;AAAA,UACd;AAAA,QACF,EAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO,EAAE,iBAAiB;AAC5B;","names":["_a"]}
|
|
1
|
+
{"version":3,"sources":["../../hooks/useRecaptcha.ts"],"sourcesContent":["'use client'\r\n\r\nimport { useCallback, useEffect, useRef } from 'react'\r\n\r\ndeclare global {\r\n interface Window {\r\n grecaptcha: {\r\n enterprise: {\r\n ready: (callback: () => void) => void\r\n execute: (\r\n siteKey: string,\r\n options: { action: string },\r\n ) => Promise<string>\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function useRecaptcha() {\r\n const siteKey = process.env.NEXT_PUBLIC_GOOGLE_RECAPTCHA_KEY ?? ''\r\n const loadedRef = useRef(false)\r\n\r\n useEffect(() => {\r\n if (!siteKey || loadedRef.current) return\r\n if (document.querySelector('script[src*=\"recaptcha/enterprise.js\"]')) {\r\n loadedRef.current = true\r\n return\r\n }\r\n\r\n const script = document.createElement('script')\r\n script.src = `https://www.google.com/recaptcha/enterprise.js?render=${siteKey}`\r\n script.async = true\r\n script.onload = () => {\r\n loadedRef.current = true\r\n }\r\n document.head.appendChild(script)\r\n }, [siteKey])\r\n\r\n const executeRecaptcha = useCallback(\r\n async (action: string): Promise<string | null> => {\r\n if (\r\n !siteKey ||\r\n typeof window === 'undefined' ||\r\n !window.grecaptcha?.enterprise\r\n ) {\r\n return null\r\n }\r\n\r\n return new Promise((resolve) => {\r\n window.grecaptcha.enterprise.ready(async () => {\r\n try {\r\n const token = await window.grecaptcha.enterprise.execute(siteKey, {\r\n action,\r\n })\r\n resolve(token)\r\n } catch {\r\n resolve(null)\r\n }\r\n })\r\n })\r\n },\r\n [siteKey],\r\n )\r\n\r\n return { executeRecaptcha }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,aAAa,WAAW,cAAc;AAgBxC,SAAS,eAAe;AAlB/B;AAmBE,QAAM,WAAU,aAAQ,IAAI,qCAAZ,YAAgD;AAChE,QAAM,YAAY,OAAO,KAAK;AAE9B,YAAU,MAAM;AACd,QAAI,CAAC,WAAW,UAAU,QAAS;AACnC,QAAI,SAAS,cAAc,wCAAwC,GAAG;AACpE,gBAAU,UAAU;AACpB;AAAA,IACF;AAEA,UAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,WAAO,MAAM,yDAAyD,OAAO;AAC7E,WAAO,QAAQ;AACf,WAAO,SAAS,MAAM;AACpB,gBAAU,UAAU;AAAA,IACtB;AACA,aAAS,KAAK,YAAY,MAAM;AAAA,EAClC,GAAG,CAAC,OAAO,CAAC;AAEZ,QAAM,mBAAmB;AAAA,IACvB,CAAO,WAA2C;AAvCtD,UAAAA;AAwCM,UACE,CAAC,WACD,OAAO,WAAW,eAClB,GAACA,MAAA,OAAO,eAAP,gBAAAA,IAAmB,aACpB;AACA,eAAO;AAAA,MACT;AAEA,aAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,eAAO,WAAW,WAAW,MAAM,MAAY;AAC7C,cAAI;AACF,kBAAM,QAAQ,MAAM,OAAO,WAAW,WAAW,QAAQ,SAAS;AAAA,cAChE;AAAA,YACF,CAAC;AACD,oBAAQ,KAAK;AAAA,UACf,SAAQ;AACN,oBAAQ,IAAI;AAAA,UACd;AAAA,QACF,EAAC;AAAA,MACH,CAAC;AAAA,IACH;AAAA,IACA,CAAC,OAAO;AAAA,EACV;AAEA,SAAO,EAAE,iBAAiB;AAC5B;","names":["_a"]}
|
package/dist/lib/utils.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function formatDate(input: string | number): string {\n const date = new Date(input)\n return date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n })\n}\n\nexport function absoluteUrl(path: string) {\n return `${process.env.NEXT_PUBLIC_APP_URL}${path}`\n}"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;AAEO,SAAS,WAAW,OAAgC;AACzD,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,SAAO,KAAK,mBAAmB,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR,CAAC;AACH;AAEO,SAAS,YAAY,MAAc;AACxC,SAAO,GAAG,QAAQ,IAAI,mBAAmB,GAAG,IAAI;AAClD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n\r\nexport function formatDate(input: string | number): string {\r\n const date = new Date(input)\r\n return date.toLocaleDateString(\"en-US\", {\r\n month: \"long\",\r\n day: \"numeric\",\r\n year: \"numeric\",\r\n })\r\n}\r\n\r\nexport function absoluteUrl(path: string) {\r\n return `${process.env.NEXT_PUBLIC_APP_URL}${path}`\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;AAEO,SAAS,WAAW,OAAgC;AACzD,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,SAAO,KAAK,mBAAmB,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR,CAAC;AACH;AAEO,SAAS,YAAY,MAAc;AACxC,SAAO,GAAG,QAAQ,IAAI,mBAAmB,GAAG,IAAI;AAClD;","names":[]}
|
package/dist/lib/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function formatDate(input: string | number): string {\n const date = new Date(input)\n return date.toLocaleDateString(\"en-US\", {\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n })\n}\n\nexport function absoluteUrl(path: string) {\n return `${process.env.NEXT_PUBLIC_APP_URL}${path}`\n}"],"mappings":"AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;AAEO,SAAS,WAAW,OAAgC;AACzD,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,SAAO,KAAK,mBAAmB,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR,CAAC;AACH;AAEO,SAAS,YAAY,MAAc;AACxC,SAAO,GAAG,QAAQ,IAAI,mBAAmB,GAAG,IAAI;AAClD;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../lib/utils.ts"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx'\r\nimport { twMerge } from 'tailwind-merge'\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}\r\n\r\nexport function formatDate(input: string | number): string {\r\n const date = new Date(input)\r\n return date.toLocaleDateString(\"en-US\", {\r\n month: \"long\",\r\n day: \"numeric\",\r\n year: \"numeric\",\r\n })\r\n}\r\n\r\nexport function absoluteUrl(path: string) {\r\n return `${process.env.NEXT_PUBLIC_APP_URL}${path}`\r\n}"],"mappings":"AAAA,SAA0B,YAAY;AACtC,SAAS,eAAe;AAEjB,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;AAEO,SAAS,WAAW,OAAgC;AACzD,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,SAAO,KAAK,mBAAmB,SAAS;AAAA,IACtC,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR,CAAC;AACH;AAEO,SAAS,YAAY,MAAc;AACxC,SAAO,GAAG,QAAQ,IAAI,mBAAmB,GAAG,IAAI;AAClD;","names":[]}
|