@arolariu/components 0.0.35 → 0.0.37
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/changelog.md +13 -0
- package/dist/cjs/components/ui/accordion.cjs +1 -1
- package/dist/cjs/components/ui/accordion.cjs.map +1 -1
- package/dist/cjs/components/ui/alert-dialog.cjs +1 -1
- package/dist/cjs/components/ui/alert-dialog.cjs.map +1 -1
- package/dist/cjs/components/ui/alert.cjs +1 -1
- package/dist/cjs/components/ui/alert.cjs.map +1 -1
- package/dist/cjs/components/ui/aspect-ratio.cjs.map +1 -1
- package/dist/cjs/components/ui/avatar.cjs.map +1 -1
- package/dist/cjs/components/ui/background-beams.cjs +210 -0
- package/dist/cjs/components/ui/background-beams.cjs.map +1 -0
- package/dist/cjs/components/ui/badge.cjs +1 -1
- package/dist/cjs/components/ui/badge.cjs.map +1 -1
- package/dist/cjs/components/ui/breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/ui/bubble-background.cjs +214 -0
- package/dist/cjs/components/ui/bubble-background.cjs.map +1 -0
- package/dist/cjs/components/ui/button.cjs +6 -6
- package/dist/cjs/components/ui/button.cjs.map +1 -1
- package/dist/cjs/components/ui/card.cjs +13 -3
- package/dist/cjs/components/ui/card.cjs.map +1 -1
- package/dist/cjs/components/ui/carousel.cjs.map +1 -1
- package/dist/cjs/components/ui/chart.cjs.map +1 -1
- package/dist/cjs/components/ui/checkbox.cjs +1 -1
- package/dist/cjs/components/ui/checkbox.cjs.map +1 -1
- package/dist/cjs/components/ui/collapsible.cjs +1 -1
- package/dist/cjs/components/ui/collapsible.cjs.map +1 -1
- package/dist/cjs/components/ui/command.cjs +2 -2
- package/dist/cjs/components/ui/command.cjs.map +1 -1
- package/dist/cjs/components/ui/context-menu.cjs +7 -7
- package/dist/cjs/components/ui/context-menu.cjs.map +1 -1
- package/dist/cjs/components/ui/counting-number.cjs +95 -0
- package/dist/cjs/components/ui/counting-number.cjs.map +1 -0
- package/dist/cjs/components/ui/dialog.cjs +1 -1
- package/dist/cjs/components/ui/dialog.cjs.map +1 -1
- package/dist/cjs/components/ui/dot-background.cjs +131 -0
- package/dist/cjs/components/ui/dot-background.cjs.map +1 -0
- package/dist/cjs/components/ui/drawer.cjs +3 -3
- package/dist/cjs/components/ui/drawer.cjs.map +1 -1
- package/dist/cjs/components/ui/dropdown-menu.cjs +7 -7
- package/dist/cjs/components/ui/dropdown-menu.cjs.map +1 -1
- package/dist/cjs/components/ui/fireworks-background.cjs +259 -0
- package/dist/cjs/components/ui/fireworks-background.cjs.map +1 -0
- package/dist/cjs/components/ui/flip-button.cjs +100 -0
- package/dist/cjs/components/ui/flip-button.cjs.map +1 -0
- package/dist/cjs/components/ui/form.cjs +2 -2
- package/dist/cjs/components/ui/form.cjs.map +1 -1
- package/dist/cjs/components/ui/gradient-background.cjs +60 -0
- package/dist/cjs/components/ui/gradient-background.cjs.map +1 -0
- package/dist/cjs/components/ui/gradient-text.cjs +83 -0
- package/dist/cjs/components/ui/gradient-text.cjs.map +1 -0
- package/dist/cjs/components/ui/highlight-text.cjs +74 -0
- package/dist/cjs/components/ui/highlight-text.cjs.map +1 -0
- package/dist/cjs/components/ui/hole-background.cjs +361 -0
- package/dist/cjs/components/ui/hole-background.cjs.map +1 -0
- package/dist/cjs/components/ui/hover-card.cjs +9 -6
- package/dist/cjs/components/ui/hover-card.cjs.map +1 -1
- package/dist/cjs/components/ui/input-otp.cjs +2 -3
- package/dist/cjs/components/ui/input-otp.cjs.map +1 -1
- package/dist/cjs/components/ui/input.cjs +1 -1
- package/dist/cjs/components/ui/input.cjs.map +1 -1
- package/dist/cjs/components/ui/label.cjs.map +1 -1
- package/dist/cjs/components/ui/menubar.cjs +9 -9
- package/dist/cjs/components/ui/menubar.cjs.map +1 -1
- package/dist/cjs/components/ui/navigation-menu.cjs +5 -5
- package/dist/cjs/components/ui/navigation-menu.cjs.map +1 -1
- package/dist/cjs/components/ui/pagination.cjs.map +1 -1
- package/dist/cjs/components/ui/popover.cjs +1 -1
- package/dist/cjs/components/ui/popover.cjs.map +1 -1
- package/dist/cjs/components/ui/progress.cjs.map +1 -1
- package/dist/cjs/components/ui/radio-group.cjs +1 -1
- package/dist/cjs/components/ui/radio-group.cjs.map +1 -1
- package/dist/cjs/components/ui/resizable.cjs.map +1 -1
- package/dist/cjs/components/ui/ripple-button.cjs +108 -0
- package/dist/cjs/components/ui/ripple-button.cjs.map +1 -0
- package/dist/cjs/components/ui/scratcher.cjs +179 -0
- package/dist/cjs/components/ui/scratcher.cjs.map +1 -0
- package/dist/cjs/components/ui/scroll-area.cjs +1 -1
- package/dist/cjs/components/ui/scroll-area.cjs.map +1 -1
- package/dist/cjs/components/ui/select.cjs +6 -5
- package/dist/cjs/components/ui/select.cjs.map +1 -1
- package/dist/cjs/components/ui/separator.cjs.map +1 -1
- package/dist/cjs/components/ui/sheet.cjs +1 -1
- package/dist/cjs/components/ui/sheet.cjs.map +1 -1
- package/dist/cjs/components/ui/sidebar.cjs +14 -11
- package/dist/cjs/components/ui/sidebar.cjs.map +1 -1
- package/dist/cjs/components/ui/skeleton.cjs +2 -1
- package/dist/cjs/components/ui/skeleton.cjs.map +1 -1
- package/dist/cjs/components/ui/slider.cjs +2 -2
- package/dist/cjs/components/ui/slider.cjs.map +1 -1
- package/dist/cjs/components/ui/sonner.cjs +5 -7
- package/dist/cjs/components/ui/sonner.cjs.map +1 -1
- package/dist/cjs/components/ui/switch.cjs +2 -2
- package/dist/cjs/components/ui/switch.cjs.map +1 -1
- package/dist/cjs/components/ui/table.cjs +2 -2
- package/dist/cjs/components/ui/table.cjs.map +1 -1
- package/dist/cjs/components/ui/tabs.cjs +3 -3
- package/dist/cjs/components/ui/tabs.cjs.map +1 -1
- package/dist/cjs/components/ui/textarea.cjs +1 -1
- package/dist/cjs/components/ui/textarea.cjs.map +1 -1
- package/dist/cjs/components/ui/toggle-group.cjs +2 -2
- package/dist/cjs/components/ui/toggle-group.cjs.map +1 -1
- package/dist/cjs/components/ui/toggle.cjs +2 -2
- package/dist/cjs/components/ui/toggle.cjs.map +1 -1
- package/dist/cjs/components/ui/tooltip.cjs +1 -1
- package/dist/cjs/components/ui/tooltip.cjs.map +1 -1
- package/dist/cjs/index.cjs +55 -4
- package/dist/cjs/index.css +1013 -258
- package/dist/esm/components/ui/accordion.js +1 -1
- package/dist/esm/components/ui/accordion.js.map +1 -1
- package/dist/esm/components/ui/alert-dialog.js +1 -1
- package/dist/esm/components/ui/alert-dialog.js.map +1 -1
- package/dist/esm/components/ui/alert.js +1 -1
- package/dist/esm/components/ui/alert.js.map +1 -1
- package/dist/esm/components/ui/aspect-ratio.js.map +1 -1
- package/dist/esm/components/ui/avatar.js.map +1 -1
- package/dist/esm/components/ui/background-beams.js +166 -0
- package/dist/esm/components/ui/background-beams.js.map +1 -0
- package/dist/esm/components/ui/badge.js +1 -1
- package/dist/esm/components/ui/badge.js.map +1 -1
- package/dist/esm/components/ui/breadcrumb.js.map +1 -1
- package/dist/esm/components/ui/bubble-background.js +180 -0
- package/dist/esm/components/ui/bubble-background.js.map +1 -0
- package/dist/esm/components/ui/button.js +6 -6
- package/dist/esm/components/ui/button.js.map +1 -1
- package/dist/esm/components/ui/card.js +11 -4
- package/dist/esm/components/ui/card.js.map +1 -1
- package/dist/esm/components/ui/carousel.js.map +1 -1
- package/dist/esm/components/ui/chart.js.map +1 -1
- package/dist/esm/components/ui/checkbox.js +1 -1
- package/dist/esm/components/ui/checkbox.js.map +1 -1
- package/dist/esm/components/ui/collapsible.js +1 -1
- package/dist/esm/components/ui/collapsible.js.map +1 -1
- package/dist/esm/components/ui/command.js +2 -2
- package/dist/esm/components/ui/command.js.map +1 -1
- package/dist/esm/components/ui/context-menu.js +7 -7
- package/dist/esm/components/ui/context-menu.js.map +1 -1
- package/dist/esm/components/ui/counting-number.js +61 -0
- package/dist/esm/components/ui/counting-number.js.map +1 -0
- package/dist/esm/components/ui/dialog.js +1 -1
- package/dist/esm/components/ui/dialog.js.map +1 -1
- package/dist/esm/components/ui/dot-background.js +97 -0
- package/dist/esm/components/ui/dot-background.js.map +1 -0
- package/dist/esm/components/ui/drawer.js +3 -3
- package/dist/esm/components/ui/drawer.js.map +1 -1
- package/dist/esm/components/ui/dropdown-menu.js +7 -7
- package/dist/esm/components/ui/dropdown-menu.js.map +1 -1
- package/dist/esm/components/ui/fireworks-background.js +225 -0
- package/dist/esm/components/ui/fireworks-background.js.map +1 -0
- package/dist/esm/components/ui/flip-button.js +66 -0
- package/dist/esm/components/ui/flip-button.js.map +1 -0
- package/dist/esm/components/ui/form.js +2 -2
- package/dist/esm/components/ui/form.js.map +1 -1
- package/dist/esm/components/ui/gradient-background.js +26 -0
- package/dist/esm/components/ui/gradient-background.js.map +1 -0
- package/dist/esm/components/ui/gradient-text.js +49 -0
- package/dist/esm/components/ui/gradient-text.js.map +1 -0
- package/dist/esm/components/ui/highlight-text.js +40 -0
- package/dist/esm/components/ui/highlight-text.js.map +1 -0
- package/dist/esm/components/ui/hole-background.js +327 -0
- package/dist/esm/components/ui/hole-background.js.map +1 -0
- package/dist/esm/components/ui/hover-card.js +9 -6
- package/dist/esm/components/ui/hover-card.js.map +1 -1
- package/dist/esm/components/ui/input-otp.js +2 -3
- package/dist/esm/components/ui/input-otp.js.map +1 -1
- package/dist/esm/components/ui/input.js +1 -1
- package/dist/esm/components/ui/input.js.map +1 -1
- package/dist/esm/components/ui/label.js.map +1 -1
- package/dist/esm/components/ui/menubar.js +9 -9
- package/dist/esm/components/ui/menubar.js.map +1 -1
- package/dist/esm/components/ui/navigation-menu.js +5 -5
- package/dist/esm/components/ui/navigation-menu.js.map +1 -1
- package/dist/esm/components/ui/pagination.js.map +1 -1
- package/dist/esm/components/ui/popover.js +1 -1
- package/dist/esm/components/ui/popover.js.map +1 -1
- package/dist/esm/components/ui/progress.js.map +1 -1
- package/dist/esm/components/ui/radio-group.js +1 -1
- package/dist/esm/components/ui/radio-group.js.map +1 -1
- package/dist/esm/components/ui/resizable.js.map +1 -1
- package/dist/esm/components/ui/ripple-button.js +74 -0
- package/dist/esm/components/ui/ripple-button.js.map +1 -0
- package/dist/esm/components/ui/scratcher.js +145 -0
- package/dist/esm/components/ui/scratcher.js.map +1 -0
- package/dist/esm/components/ui/scroll-area.js +1 -1
- package/dist/esm/components/ui/scroll-area.js.map +1 -1
- package/dist/esm/components/ui/select.js +6 -5
- package/dist/esm/components/ui/select.js.map +1 -1
- package/dist/esm/components/ui/separator.js.map +1 -1
- package/dist/esm/components/ui/sheet.js +1 -1
- package/dist/esm/components/ui/sheet.js.map +1 -1
- package/dist/esm/components/ui/sidebar.js +14 -11
- package/dist/esm/components/ui/sidebar.js.map +1 -1
- package/dist/esm/components/ui/skeleton.js +2 -1
- package/dist/esm/components/ui/skeleton.js.map +1 -1
- package/dist/esm/components/ui/slider.js +2 -2
- package/dist/esm/components/ui/slider.js.map +1 -1
- package/dist/esm/components/ui/sonner.js +5 -7
- package/dist/esm/components/ui/sonner.js.map +1 -1
- package/dist/esm/components/ui/switch.js +2 -2
- package/dist/esm/components/ui/switch.js.map +1 -1
- package/dist/esm/components/ui/table.js +2 -2
- package/dist/esm/components/ui/table.js.map +1 -1
- package/dist/esm/components/ui/tabs.js +3 -3
- package/dist/esm/components/ui/tabs.js.map +1 -1
- package/dist/esm/components/ui/textarea.js +1 -1
- package/dist/esm/components/ui/textarea.js.map +1 -1
- package/dist/esm/components/ui/toggle-group.js +2 -2
- package/dist/esm/components/ui/toggle-group.js.map +1 -1
- package/dist/esm/components/ui/toggle.js +2 -2
- package/dist/esm/components/ui/toggle.js.map +1 -1
- package/dist/esm/components/ui/tooltip.js +1 -1
- package/dist/esm/components/ui/tooltip.js.map +1 -1
- package/dist/esm/index.css +1013 -258
- package/dist/esm/index.js +26 -1
- package/dist/index.css +1013 -258
- package/dist/index.js +26 -1
- package/dist/types/components/ui/background-beams.d.ts +4 -0
- package/dist/types/components/ui/bubble-background.d.ts +16 -0
- package/dist/types/components/ui/card.d.ts +2 -1
- package/dist/types/components/ui/counting-number.d.ts +15 -0
- package/dist/types/components/ui/dot-background.d.ts +57 -0
- package/dist/types/components/ui/fireworks-background.d.ts +24 -0
- package/dist/types/components/ui/flip-button.d.ts +13 -0
- package/dist/types/components/ui/form.d.ts +1 -1
- package/dist/types/components/ui/gradient-background.d.ts +7 -0
- package/dist/types/components/ui/gradient-text.d.ts +10 -0
- package/dist/types/components/ui/highlight-text.d.ts +11 -0
- package/dist/types/components/ui/hole-background.d.ts +9 -0
- package/dist/types/components/ui/ripple-button.d.ts +10 -0
- package/dist/types/components/ui/scratcher.d.ts +12 -0
- package/dist/types/components/ui/select.d.ts +3 -1
- package/dist/types/components/ui/sidebar.d.ts +5 -6
- package/dist/types/index.d.ts +13 -1
- package/package.json +536 -461
- package/readme.md +10 -6
- package/src/components/ui/accordion.tsx +3 -2
- package/src/components/ui/alert-dialog.tsx +160 -160
- package/src/components/ui/alert.tsx +3 -2
- package/src/components/ui/aspect-ratio.tsx +12 -12
- package/src/components/ui/avatar.tsx +53 -52
- package/src/components/ui/background-beams.tsx +142 -0
- package/src/components/ui/badge.tsx +48 -47
- package/src/components/ui/breadcrumb.tsx +117 -116
- package/src/components/ui/bubble-background.tsx +187 -0
- package/src/components/ui/button.tsx +61 -60
- package/src/components/ui/card.tsx +97 -79
- package/src/components/ui/carousel.tsx +241 -240
- package/src/components/ui/chart.tsx +353 -352
- package/src/components/ui/checkbox.tsx +32 -31
- package/src/components/ui/collapsible.tsx +34 -34
- package/src/components/ui/command.tsx +177 -176
- package/src/components/ui/context-menu.tsx +255 -254
- package/src/components/ui/counting-number.tsx +108 -0
- package/src/components/ui/dialog.tsx +3 -2
- package/src/components/ui/dot-background.tsx +158 -0
- package/src/components/ui/drawer.tsx +138 -137
- package/src/components/ui/dropdown-menu.tsx +260 -259
- package/src/components/ui/fireworks-background.tsx +378 -0
- package/src/components/ui/flip-button.tsx +110 -0
- package/src/components/ui/form.tsx +174 -173
- package/src/components/ui/gradient-background.tsx +43 -0
- package/src/components/ui/gradient-text.tsx +65 -0
- package/src/components/ui/highlight-text.tsx +71 -0
- package/src/components/ui/hole-background.tsx +361 -0
- package/src/components/ui/hover-card.tsx +44 -41
- package/src/components/ui/input-otp.tsx +77 -77
- package/src/components/ui/input.tsx +23 -22
- package/src/components/ui/label.tsx +24 -23
- package/src/components/ui/menubar.tsx +279 -278
- package/src/components/ui/navigation-menu.tsx +171 -170
- package/src/components/ui/pagination.tsx +129 -128
- package/src/components/ui/popover.tsx +48 -47
- package/src/components/ui/progress.tsx +31 -30
- package/src/components/ui/radio-group.tsx +45 -44
- package/src/components/ui/resizable.tsx +56 -55
- package/src/components/ui/ripple-button.tsx +111 -0
- package/src/components/ui/scratcher.tsx +171 -0
- package/src/components/ui/scroll-area.tsx +58 -57
- package/src/components/ui/select.tsx +191 -183
- package/src/components/ui/separator.tsx +28 -27
- package/src/components/ui/sheet.tsx +145 -144
- package/src/components/ui/sidebar.tsx +729 -725
- package/src/components/ui/skeleton.tsx +19 -17
- package/src/components/ui/slider.tsx +63 -62
- package/src/components/ui/sonner.tsx +8 -12
- package/src/components/ui/switch.tsx +31 -30
- package/src/components/ui/table.tsx +119 -118
- package/src/components/ui/tabs.tsx +66 -65
- package/src/components/ui/textarea.tsx +20 -19
- package/src/components/ui/toggle-group.tsx +73 -72
- package/src/components/ui/toggle.tsx +47 -46
- package/src/components/ui/tooltip.tsx +61 -60
- package/src/index.css +75 -42
- package/src/index.ts +385 -330
|
@@ -69,7 +69,7 @@ function DropdownMenuContent({ className, sideOffset = 4, ...props }) {
|
|
|
69
69
|
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_dropdown_menu_namespaceObject.Content, {
|
|
70
70
|
"data-slot": "dropdown-menu-content",
|
|
71
71
|
sideOffset: sideOffset,
|
|
72
|
-
className: (0, utils_cjs_namespaceObject.cn)("bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 p-1 shadow-md dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
|
|
72
|
+
className: (0, utils_cjs_namespaceObject.cn)("bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-neutral-200 p-1 shadow-md dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
|
|
73
73
|
...props
|
|
74
74
|
})
|
|
75
75
|
});
|
|
@@ -85,14 +85,14 @@ function DropdownMenuItem({ className, inset, variant = "default", ...props }) {
|
|
|
85
85
|
"data-slot": "dropdown-menu-item",
|
|
86
86
|
"data-inset": inset,
|
|
87
87
|
"data-variant": variant,
|
|
88
|
-
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 data-[variant=destructive]:text-
|
|
88
|
+
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 data-[variant=destructive]:text-red-500 data-[variant=destructive]:focus:bg-red-500/10 dark:data-[variant=destructive]:focus:bg-red-500/20 data-[variant=destructive]:focus:text-red-500 data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-neutral-500 relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[variant=destructive]:text-red-900 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:dark:data-[variant=destructive]:focus:bg-red-900/20 dark:data-[variant=destructive]:focus:text-red-900 dark:[&_svg:not([class*='text-'])]:text-neutral-400", className),
|
|
89
89
|
...props
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
function DropdownMenuCheckboxItem({ className, children, checked, ...props }) {
|
|
93
93
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(react_dropdown_menu_namespaceObject.CheckboxItem, {
|
|
94
94
|
"data-slot": "dropdown-menu-checkbox-item",
|
|
95
|
-
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-
|
|
95
|
+
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50", className),
|
|
96
96
|
checked: checked,
|
|
97
97
|
...props,
|
|
98
98
|
children: [
|
|
@@ -117,7 +117,7 @@ function DropdownMenuRadioGroup({ ...props }) {
|
|
|
117
117
|
function DropdownMenuRadioItem({ className, children, ...props }) {
|
|
118
118
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(react_dropdown_menu_namespaceObject.RadioItem, {
|
|
119
119
|
"data-slot": "dropdown-menu-radio-item",
|
|
120
|
-
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-
|
|
120
|
+
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50", className),
|
|
121
121
|
...props,
|
|
122
122
|
children: [
|
|
123
123
|
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
@@ -136,7 +136,7 @@ function DropdownMenuLabel({ className, inset, ...props }) {
|
|
|
136
136
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_dropdown_menu_namespaceObject.Label, {
|
|
137
137
|
"data-slot": "dropdown-menu-label",
|
|
138
138
|
"data-inset": inset,
|
|
139
|
-
className: (0, utils_cjs_namespaceObject.cn)("px-2 py-1.5 text-sm font-medium data-inset:pl-8", className),
|
|
139
|
+
className: (0, utils_cjs_namespaceObject.cn)("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8", className),
|
|
140
140
|
...props
|
|
141
141
|
});
|
|
142
142
|
}
|
|
@@ -164,7 +164,7 @@ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
|
164
164
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(react_dropdown_menu_namespaceObject.SubTrigger, {
|
|
165
165
|
"data-slot": "dropdown-menu-sub-trigger",
|
|
166
166
|
"data-inset": inset,
|
|
167
|
-
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 flex cursor-default items-center rounded-
|
|
167
|
+
className: (0, utils_cjs_namespaceObject.cn)("focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50", className),
|
|
168
168
|
...props,
|
|
169
169
|
children: [
|
|
170
170
|
children,
|
|
@@ -177,7 +177,7 @@ function DropdownMenuSubTrigger({ className, inset, children, ...props }) {
|
|
|
177
177
|
function DropdownMenuSubContent({ className, ...props }) {
|
|
178
178
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_dropdown_menu_namespaceObject.SubContent, {
|
|
179
179
|
"data-slot": "dropdown-menu-sub-content",
|
|
180
|
-
className: (0, utils_cjs_namespaceObject.cn)("bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 p-1 shadow-lg dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
|
|
180
|
+
className: (0, utils_cjs_namespaceObject.cn)("bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border border-neutral-200 p-1 shadow-lg dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800", className),
|
|
181
181
|
...props
|
|
182
182
|
});
|
|
183
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\ui\\dropdown-menu.cjs","sources":["webpack://@arolariu/components/./src/components/ui/dropdown-menu.tsx"],"sourcesContent":["\r\n\r\nimport * as React from \"react\";\r\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\r\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\r\nimport { cn } from \"./../../lib/utils\";\r\n\r\nfunction DropdownMenu({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\r\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuPortal({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\r\n return (\r\n <DropdownMenuPrimitive.Trigger\r\n data-slot=\"dropdown-menu-trigger\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuContent({\r\n className,\r\n sideOffset = 4,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.Content\r\n data-slot=\"dropdown-menu-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 p-1 shadow-md dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n );\r\n}\r\n\r\nfunction DropdownMenuGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\r\n return (\r\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuItem({\r\n className,\r\n inset,\r\n variant = \"default\",\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\r\n inset?: boolean;\r\n variant?: \"default\" | \"destructive\";\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Item\r\n data-slot=\"dropdown-menu-item\"\r\n data-inset={inset}\r\n data-variant={variant}\r\n className={cn(\r\n \"focus:bg-neutral-100 focus:text-neutral-900 data-[variant=destructive]:text-neutral-50 data-[variant=destructive]:focus:bg-red-500/10 dark:data-[variant=destructive]:focus:bg-red-500/40 data-[variant=destructive]:focus:text-neutral-50 [svg]:*:data-[variant=destructive]:text-destructive-foreground! [&_svg:not([class*='text-'])]:text-neutral-500 relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[variant=destructive]:text-neutral-50 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:dark:data-[variant=destructive]:focus:bg-red-900/40 dark:data-[variant=destructive]:focus:text-neutral-50 dark:[&_svg:not([class*='text-'])]:text-neutral-400\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuCheckboxItem({\r\n className,\r\n children,\r\n checked,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem\r\n data-slot=\"dropdown-menu-checkbox-item\"\r\n className={cn(\r\n \"focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50\",\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CheckIcon className=\"size-4\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioGroup\r\n data-slot=\"dropdown-menu-radio-group\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioItem({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioItem\r\n data-slot=\"dropdown-menu-radio-item\"\r\n className={cn(\r\n \"focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CircleIcon className=\"size-2 fill-current\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.RadioItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuLabel({\r\n className,\r\n inset,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Label\r\n data-slot=\"dropdown-menu-label\"\r\n data-inset={inset}\r\n className={cn(\r\n \"px-2 py-1.5 text-sm font-medium data-inset:pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSeparator({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\r\n return (\r\n <DropdownMenuPrimitive.Separator\r\n data-slot=\"dropdown-menu-separator\"\r\n className={cn(\r\n \"bg-neutral-200 -mx-1 my-1 h-px dark:bg-neutral-800\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuShortcut({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"span\">) {\r\n return (\r\n <span\r\n data-slot=\"dropdown-menu-shortcut\"\r\n className={cn(\r\n \"text-neutral-500 ml-auto text-xs tracking-widest dark:text-neutral-400\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSub({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\r\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuSubTrigger({\r\n className,\r\n inset,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n inset?: boolean;\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.SubTrigger\r\n data-slot=\"dropdown-menu-sub-trigger\"\r\n data-inset={inset}\r\n className={cn(\r\n \"focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 flex cursor-default items-center rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-inset:pl-8 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRightIcon className=\"ml-auto size-4\" />\r\n </DropdownMenuPrimitive.SubTrigger>\r\n );\r\n}\r\n\r\nfunction DropdownMenuSubContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\r\n return (\r\n <DropdownMenuPrimitive.SubContent\r\n data-slot=\"dropdown-menu-sub-content\"\r\n className={cn(\r\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border border-neutral-200 p-1 shadow-lg dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuPortal,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuLabel,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioGroup,\r\n DropdownMenuRadioItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuSubContent,\r\n};\r\n"],"names":["DropdownMenu","props","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","cn","DropdownMenuGroup","DropdownMenuItem","inset","variant","DropdownMenuCheckboxItem","children","checked","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","CircleIcon","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components\\ui\\dropdown-menu.cjs","sources":["webpack://@arolariu/components/./src/components/ui/dropdown-menu.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction DropdownMenu({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\n}\n\nfunction DropdownMenuPortal({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\n return (\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\n );\n}\n\nfunction DropdownMenuTrigger({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border border-neutral-200 p-1 shadow-md dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className\n )}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n );\n}\n\nfunction DropdownMenuGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n );\n}\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n variant?: \"default\" | \"destructive\";\n}) {\n return (\n <DropdownMenuPrimitive.Item\n data-slot=\"dropdown-menu-item\"\n data-inset={inset}\n data-variant={variant}\n className={cn(\n \"focus:bg-neutral-100 focus:text-neutral-900 data-[variant=destructive]:text-red-500 data-[variant=destructive]:focus:bg-red-500/10 dark:data-[variant=destructive]:focus:bg-red-500/20 data-[variant=destructive]:focus:text-red-500 data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*='text-'])]:text-neutral-500 relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[variant=destructive]:text-red-900 dark:data-[variant=destructive]:focus:bg-red-900/10 dark:dark:data-[variant=destructive]:focus:bg-red-900/20 dark:data-[variant=destructive]:focus:text-red-900 dark:[&_svg:not([class*='text-'])]:text-neutral-400\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuCheckboxItem({\n className,\n children,\n checked,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n data-slot=\"dropdown-menu-checkbox-item\"\n className={cn(\n \"focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n );\n}\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n );\n}\n\nfunction DropdownMenuRadioItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\n return (\n <DropdownMenuPrimitive.RadioItem\n data-slot=\"dropdown-menu-radio-item\"\n className={cn(\n \"focus:bg-neutral-100 focus:text-neutral-900 relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 dark:focus:bg-neutral-800 dark:focus:text-neutral-50\",\n className\n )}\n {...props}\n >\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <CircleIcon className=\"size-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n );\n}\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.Label\n data-slot=\"dropdown-menu-label\"\n data-inset={inset}\n className={cn(\n \"px-2 py-1.5 text-sm font-medium data-[inset]:pl-8\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\n return (\n <DropdownMenuPrimitive.Separator\n data-slot=\"dropdown-menu-separator\"\n className={cn(\n \"bg-neutral-200 -mx-1 my-1 h-px dark:bg-neutral-800\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"dropdown-menu-shortcut\"\n className={cn(\n \"text-neutral-500 ml-auto text-xs tracking-widest dark:text-neutral-400\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction DropdownMenuSub({\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\n}\n\nfunction DropdownMenuSubTrigger({\n className,\n inset,\n children,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n}) {\n return (\n <DropdownMenuPrimitive.SubTrigger\n data-slot=\"dropdown-menu-sub-trigger\"\n data-inset={inset}\n className={cn(\n \"focus:bg-neutral-100 focus:text-neutral-900 data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-900 flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8 dark:focus:bg-neutral-800 dark:focus:text-neutral-50 dark:data-[state=open]:bg-neutral-800 dark:data-[state=open]:text-neutral-50\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRightIcon className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n );\n}\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\n return (\n <DropdownMenuPrimitive.SubContent\n data-slot=\"dropdown-menu-sub-content\"\n className={cn(\n \"bg-white text-neutral-950 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border border-neutral-200 p-1 shadow-lg dark:bg-neutral-950 dark:text-neutral-50 dark:border-neutral-800\",\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n DropdownMenu,\n DropdownMenuPortal,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuLabel,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubTrigger,\n DropdownMenuSubContent,\n};\n"],"names":["DropdownMenu","props","DropdownMenuPrimitive","DropdownMenuPortal","DropdownMenuTrigger","DropdownMenuContent","className","sideOffset","cn","DropdownMenuGroup","DropdownMenuItem","inset","variant","DropdownMenuCheckboxItem","children","checked","CheckIcon","DropdownMenuRadioGroup","DropdownMenuRadioItem","CircleIcon","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuSub","DropdownMenuSubTrigger","ChevronRightIcon","DropdownMenuSubContent"],"mappings":"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"}
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __webpack_require__ = {};
|
|
4
|
+
(()=>{
|
|
5
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
6
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: definition[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.r = (exports1)=>{
|
|
17
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
18
|
+
value: 'Module'
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
21
|
+
value: true
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
})();
|
|
25
|
+
var __webpack_exports__ = {};
|
|
26
|
+
__webpack_require__.r(__webpack_exports__);
|
|
27
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
28
|
+
FireworksBackground: ()=>FireworksBackground
|
|
29
|
+
});
|
|
30
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
31
|
+
const external_react_namespaceObject = require("react");
|
|
32
|
+
const utils_cjs_namespaceObject = require("../../lib/utils.cjs");
|
|
33
|
+
const rand = (min, max)=>Math.random() * (max - min) + min;
|
|
34
|
+
const randInt = (min, max)=>Math.floor(Math.random() * (max - min) + min);
|
|
35
|
+
const randColor = ()=>`hsl(${randInt(0, 360)}, 100%, 50%)`;
|
|
36
|
+
const createParticle = (x, y, color, speed, direction, gravity, friction, size)=>{
|
|
37
|
+
const vx = Math.cos(direction) * speed;
|
|
38
|
+
const vy = Math.sin(direction) * speed;
|
|
39
|
+
const alpha = 1;
|
|
40
|
+
const decay = rand(0.005, 0.02);
|
|
41
|
+
return {
|
|
42
|
+
x,
|
|
43
|
+
y,
|
|
44
|
+
color,
|
|
45
|
+
speed,
|
|
46
|
+
direction,
|
|
47
|
+
vx,
|
|
48
|
+
vy,
|
|
49
|
+
gravity,
|
|
50
|
+
friction,
|
|
51
|
+
alpha,
|
|
52
|
+
decay,
|
|
53
|
+
size,
|
|
54
|
+
update () {
|
|
55
|
+
this.vx *= this.friction;
|
|
56
|
+
this.vy *= this.friction;
|
|
57
|
+
this.vy += this.gravity;
|
|
58
|
+
this.x += this.vx;
|
|
59
|
+
this.y += this.vy;
|
|
60
|
+
this.alpha -= this.decay;
|
|
61
|
+
},
|
|
62
|
+
draw (ctx) {
|
|
63
|
+
ctx.save();
|
|
64
|
+
ctx.globalAlpha = this.alpha;
|
|
65
|
+
ctx.beginPath();
|
|
66
|
+
ctx.arc(this.x, this.y, this.size, 0, 2 * Math.PI);
|
|
67
|
+
ctx.fillStyle = this.color;
|
|
68
|
+
ctx.fill();
|
|
69
|
+
ctx.restore();
|
|
70
|
+
},
|
|
71
|
+
isAlive () {
|
|
72
|
+
return this.alpha > 0;
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
const createFirework = (x, y, targetY, color, speed, size, particleSpeed, particleSize, onExplode)=>{
|
|
77
|
+
const angle = -Math.PI / 2 + rand(-0.3, 0.3);
|
|
78
|
+
const vx = Math.cos(angle) * speed;
|
|
79
|
+
const vy = Math.sin(angle) * speed;
|
|
80
|
+
const trail = [];
|
|
81
|
+
const trailLength = randInt(10, 25);
|
|
82
|
+
return {
|
|
83
|
+
x,
|
|
84
|
+
y,
|
|
85
|
+
targetY,
|
|
86
|
+
color,
|
|
87
|
+
speed,
|
|
88
|
+
size,
|
|
89
|
+
angle,
|
|
90
|
+
vx,
|
|
91
|
+
vy,
|
|
92
|
+
trail,
|
|
93
|
+
trailLength,
|
|
94
|
+
exploded: false,
|
|
95
|
+
update () {
|
|
96
|
+
this.trail.push({
|
|
97
|
+
x: this.x,
|
|
98
|
+
y: this.y
|
|
99
|
+
});
|
|
100
|
+
if (this.trail.length > this.trailLength) this.trail.shift();
|
|
101
|
+
this.x += this.vx;
|
|
102
|
+
this.y += this.vy;
|
|
103
|
+
this.vy += 0.02;
|
|
104
|
+
if (this.vy >= 0 || this.y <= this.targetY) {
|
|
105
|
+
this.explode();
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
return true;
|
|
109
|
+
},
|
|
110
|
+
explode () {
|
|
111
|
+
const numParticles = randInt(50, 150);
|
|
112
|
+
const particles = [];
|
|
113
|
+
for(let i = 0; i < numParticles; i++){
|
|
114
|
+
const particleAngle = rand(0, 2 * Math.PI);
|
|
115
|
+
const localParticleSpeed = getValueByRange(particleSpeed);
|
|
116
|
+
const localParticleSize = getValueByRange(particleSize);
|
|
117
|
+
particles.push(createParticle(this.x, this.y, this.color, localParticleSpeed, particleAngle, 0.05, 0.98, localParticleSize));
|
|
118
|
+
}
|
|
119
|
+
onExplode(particles);
|
|
120
|
+
},
|
|
121
|
+
draw (ctx) {
|
|
122
|
+
ctx.save();
|
|
123
|
+
ctx.beginPath();
|
|
124
|
+
if (this.trail.length > 1) {
|
|
125
|
+
ctx.moveTo(this.trail[0].x, this.trail[0].y);
|
|
126
|
+
for (const point of this.trail)ctx.lineTo(point.x, point.y);
|
|
127
|
+
} else {
|
|
128
|
+
ctx.moveTo(this.x, this.y);
|
|
129
|
+
ctx.lineTo(this.x, this.y);
|
|
130
|
+
}
|
|
131
|
+
ctx.strokeStyle = this.color;
|
|
132
|
+
ctx.lineWidth = this.size;
|
|
133
|
+
ctx.lineCap = "round";
|
|
134
|
+
ctx.stroke();
|
|
135
|
+
ctx.restore();
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
const getValueByRange = (range)=>{
|
|
140
|
+
if ("number" == typeof range) return range;
|
|
141
|
+
return rand(range.min, range.max);
|
|
142
|
+
};
|
|
143
|
+
const getColor = (color)=>{
|
|
144
|
+
if (Array.isArray(color)) return color[randInt(0, color.length)];
|
|
145
|
+
return color ?? randColor();
|
|
146
|
+
};
|
|
147
|
+
const FireworksBackground = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ className, canvasProps, population = 1, color, fireworkSpeed = {
|
|
148
|
+
min: 4,
|
|
149
|
+
max: 8
|
|
150
|
+
}, fireworkSize = {
|
|
151
|
+
min: 2,
|
|
152
|
+
max: 5
|
|
153
|
+
}, particleSpeed = {
|
|
154
|
+
min: 2,
|
|
155
|
+
max: 7
|
|
156
|
+
}, particleSize = {
|
|
157
|
+
min: 1,
|
|
158
|
+
max: 5
|
|
159
|
+
}, ...props }, ref)=>{
|
|
160
|
+
const canvasRef = external_react_namespaceObject.useRef(null);
|
|
161
|
+
const containerRef = external_react_namespaceObject.useRef(null);
|
|
162
|
+
external_react_namespaceObject.useImperativeHandle(ref, ()=>containerRef.current);
|
|
163
|
+
external_react_namespaceObject.useEffect(()=>{
|
|
164
|
+
const canvas = canvasRef.current;
|
|
165
|
+
const container = containerRef.current;
|
|
166
|
+
if (!canvas || !container) return;
|
|
167
|
+
const ctx = canvas.getContext("2d");
|
|
168
|
+
if (!ctx) return;
|
|
169
|
+
let maxX = window.innerWidth;
|
|
170
|
+
let ratio = container.offsetHeight / container.offsetWidth;
|
|
171
|
+
let maxY = maxX * ratio;
|
|
172
|
+
canvas.width = maxX;
|
|
173
|
+
canvas.height = maxY;
|
|
174
|
+
const setCanvasSize = ()=>{
|
|
175
|
+
maxX = window.innerWidth;
|
|
176
|
+
ratio = container.offsetHeight / container.offsetWidth;
|
|
177
|
+
maxY = maxX * ratio;
|
|
178
|
+
canvas.width = maxX;
|
|
179
|
+
canvas.height = maxY;
|
|
180
|
+
};
|
|
181
|
+
window.addEventListener("resize", setCanvasSize);
|
|
182
|
+
const explosions = [];
|
|
183
|
+
const fireworks = [];
|
|
184
|
+
const handleExplosion = (particles)=>{
|
|
185
|
+
explosions.push(...particles);
|
|
186
|
+
};
|
|
187
|
+
const launchFirework = ()=>{
|
|
188
|
+
const x = rand(0.1 * maxX, 0.9 * maxX);
|
|
189
|
+
const y = maxY;
|
|
190
|
+
const targetY = rand(0.1 * maxY, 0.4 * maxY);
|
|
191
|
+
const fireworkColor = getColor(color);
|
|
192
|
+
const speed = getValueByRange(fireworkSpeed);
|
|
193
|
+
const size = getValueByRange(fireworkSize);
|
|
194
|
+
fireworks.push(createFirework(x, y, targetY, fireworkColor, speed, size, particleSpeed, particleSize, handleExplosion));
|
|
195
|
+
const timeout = rand(300, 800) / population;
|
|
196
|
+
setTimeout(launchFirework, timeout);
|
|
197
|
+
};
|
|
198
|
+
launchFirework();
|
|
199
|
+
let animationFrameId;
|
|
200
|
+
const animate = ()=>{
|
|
201
|
+
ctx.clearRect(0, 0, maxX, maxY);
|
|
202
|
+
for(let i = fireworks.length - 1; i >= 0; i--){
|
|
203
|
+
const firework = fireworks[i];
|
|
204
|
+
if (firework.update()) firework.draw(ctx);
|
|
205
|
+
else fireworks.splice(i, 1);
|
|
206
|
+
}
|
|
207
|
+
for(let i = explosions.length - 1; i >= 0; i--){
|
|
208
|
+
const particle = explosions[i];
|
|
209
|
+
particle.update();
|
|
210
|
+
if (particle.isAlive()) particle.draw(ctx);
|
|
211
|
+
else explosions.splice(i, 1);
|
|
212
|
+
}
|
|
213
|
+
animationFrameId = requestAnimationFrame(animate);
|
|
214
|
+
};
|
|
215
|
+
animate();
|
|
216
|
+
const handleClick = (event)=>{
|
|
217
|
+
const x = event.clientX;
|
|
218
|
+
const y = maxY;
|
|
219
|
+
const targetY = event.clientY;
|
|
220
|
+
const fireworkColor = getColor(color);
|
|
221
|
+
const speed = getValueByRange(fireworkSpeed);
|
|
222
|
+
const size = getValueByRange(fireworkSize);
|
|
223
|
+
fireworks.push(createFirework(x, y, targetY, fireworkColor, speed, size, particleSpeed, particleSize, handleExplosion));
|
|
224
|
+
};
|
|
225
|
+
container.addEventListener("click", handleClick);
|
|
226
|
+
return ()=>{
|
|
227
|
+
window.removeEventListener("resize", setCanvasSize);
|
|
228
|
+
container.removeEventListener("click", handleClick);
|
|
229
|
+
cancelAnimationFrame(animationFrameId);
|
|
230
|
+
};
|
|
231
|
+
}, [
|
|
232
|
+
population,
|
|
233
|
+
color,
|
|
234
|
+
fireworkSpeed,
|
|
235
|
+
fireworkSize,
|
|
236
|
+
particleSpeed,
|
|
237
|
+
particleSize
|
|
238
|
+
]);
|
|
239
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("div", {
|
|
240
|
+
ref: containerRef,
|
|
241
|
+
className: (0, utils_cjs_namespaceObject.cn)("relative size-full overflow-hidden", className),
|
|
242
|
+
...props,
|
|
243
|
+
children: /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("canvas", {
|
|
244
|
+
...canvasProps,
|
|
245
|
+
ref: canvasRef,
|
|
246
|
+
className: (0, utils_cjs_namespaceObject.cn)("absolute inset-0 size-full", canvasProps?.className)
|
|
247
|
+
})
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
FireworksBackground.displayName = "FireworksBackground";
|
|
251
|
+
exports.FireworksBackground = __webpack_exports__.FireworksBackground;
|
|
252
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
253
|
+
"FireworksBackground"
|
|
254
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
255
|
+
Object.defineProperty(exports, '__esModule', {
|
|
256
|
+
value: true
|
|
257
|
+
});
|
|
258
|
+
|
|
259
|
+
//# sourceMappingURL=fireworks-background.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components\\ui\\fireworks-background.cjs","sources":["webpack://@arolariu/components/./src/components/ui/fireworks-background.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst rand = (min: number, max: number): number =>\n Math.random() * (max - min) + min;\nconst randInt = (min: number, max: number): number =>\n Math.floor(Math.random() * (max - min) + min);\nconst randColor = (): string => `hsl(${randInt(0, 360)}, 100%, 50%)`;\n\ninterface ParticleType {\n x: number;\n y: number;\n color: string;\n speed: number;\n direction: number;\n vx: number;\n vy: number;\n gravity: number;\n friction: number;\n alpha: number;\n decay: number;\n size: number;\n update: () => void;\n draw: (ctx: CanvasRenderingContext2D) => void;\n isAlive: () => boolean;\n}\n\nconst createParticle = (\n x: number,\n y: number,\n color: string,\n speed: number,\n direction: number,\n gravity: number,\n friction: number,\n size: number\n): ParticleType => {\n const vx = Math.cos(direction) * speed;\n const vy = Math.sin(direction) * speed;\n const alpha = 1;\n const decay = rand(0.005, 0.02);\n\n return {\n x,\n y,\n color,\n speed,\n direction,\n vx,\n vy,\n gravity,\n friction,\n alpha,\n decay,\n size,\n update() {\n this.vx *= this.friction;\n this.vy *= this.friction;\n this.vy += this.gravity;\n this.x += this.vx;\n this.y += this.vy;\n this.alpha -= this.decay;\n },\n draw(ctx: CanvasRenderingContext2D) {\n ctx.save();\n ctx.globalAlpha = this.alpha;\n ctx.beginPath();\n ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2);\n ctx.fillStyle = this.color;\n ctx.fill();\n ctx.restore();\n },\n isAlive() {\n return this.alpha > 0;\n },\n };\n};\n\ninterface FireworkType {\n x: number;\n y: number;\n targetY: number;\n color: string;\n speed: number;\n size: number;\n angle: number;\n vx: number;\n vy: number;\n trail: { x: number; y: number }[];\n trailLength: number;\n exploded: boolean;\n update: () => boolean;\n explode: () => void;\n draw: (ctx: CanvasRenderingContext2D) => void;\n}\n\nconst createFirework = (\n x: number,\n y: number,\n targetY: number,\n color: string,\n speed: number,\n size: number,\n particleSpeed: { min: number; max: number } | number,\n particleSize: { min: number; max: number } | number,\n onExplode: (particles: ParticleType[]) => void\n): FireworkType => {\n const angle = -Math.PI / 2 + rand(-0.3, 0.3);\n const vx = Math.cos(angle) * speed;\n const vy = Math.sin(angle) * speed;\n const trail: { x: number; y: number }[] = [];\n const trailLength = randInt(10, 25);\n\n return {\n x,\n y,\n targetY,\n color,\n speed,\n size,\n angle,\n vx,\n vy,\n trail,\n trailLength,\n exploded: false,\n update() {\n this.trail.push({ x: this.x, y: this.y });\n if (this.trail.length > this.trailLength) {\n this.trail.shift();\n }\n this.x += this.vx;\n this.y += this.vy;\n this.vy += 0.02;\n if (this.vy >= 0 || this.y <= this.targetY) {\n this.explode();\n return false;\n }\n return true;\n },\n explode() {\n const numParticles = randInt(50, 150);\n const particles: ParticleType[] = [];\n for (let i = 0; i < numParticles; i++) {\n const particleAngle = rand(0, Math.PI * 2);\n const localParticleSpeed = getValueByRange(particleSpeed);\n const localParticleSize = getValueByRange(particleSize);\n particles.push(\n createParticle(\n this.x,\n this.y,\n this.color,\n localParticleSpeed,\n particleAngle,\n 0.05,\n 0.98,\n localParticleSize\n )\n );\n }\n onExplode(particles);\n },\n draw(ctx: CanvasRenderingContext2D) {\n ctx.save();\n ctx.beginPath();\n if (this.trail.length > 1) {\n ctx.moveTo(this.trail[0].x, this.trail[0].y);\n for (const point of this.trail) {\n ctx.lineTo(point.x, point.y);\n }\n } else {\n ctx.moveTo(this.x, this.y);\n ctx.lineTo(this.x, this.y);\n }\n ctx.strokeStyle = this.color;\n ctx.lineWidth = this.size;\n ctx.lineCap = \"round\";\n ctx.stroke();\n ctx.restore();\n },\n };\n};\n\nconst getValueByRange = (\n range: { min: number; max: number } | number\n): number => {\n if (typeof range === \"number\") {\n return range;\n }\n return rand(range.min, range.max);\n};\n\nconst getColor = (color: string | string[] | undefined): string => {\n if (Array.isArray(color)) {\n return color[randInt(0, color.length)];\n }\n return color ?? randColor();\n};\n\ninterface FireworksBackgroundProps\n extends Omit<React.HTMLAttributes<HTMLDivElement>, \"color\"> {\n canvasProps?: React.HTMLAttributes<HTMLCanvasElement>;\n population?: number;\n color?: string | string[];\n fireworkSpeed?: { min: number; max: number } | number;\n fireworkSize?: { min: number; max: number } | number;\n particleSpeed?: { min: number; max: number } | number;\n particleSize?: { min: number; max: number } | number;\n}\n\nconst FireworksBackground = React.forwardRef<\n HTMLDivElement,\n FireworksBackgroundProps\n>(\n (\n {\n className,\n canvasProps,\n population = 1,\n color,\n fireworkSpeed = { min: 4, max: 8 },\n fireworkSize = { min: 2, max: 5 },\n particleSpeed = { min: 2, max: 7 },\n particleSize = { min: 1, max: 5 },\n ...props\n },\n ref\n ) => {\n const canvasRef = React.useRef<HTMLCanvasElement>(null);\n const containerRef = React.useRef<HTMLDivElement>(null);\n React.useImperativeHandle(\n ref,\n () => containerRef.current as HTMLDivElement\n );\n\n React.useEffect(() => {\n const canvas = canvasRef.current;\n const container = containerRef.current;\n if (!canvas || !container) return;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx) return;\n\n let maxX = window.innerWidth;\n let ratio = container.offsetHeight / container.offsetWidth;\n let maxY = maxX * ratio;\n canvas.width = maxX;\n canvas.height = maxY;\n\n const setCanvasSize = () => {\n maxX = window.innerWidth;\n ratio = container.offsetHeight / container.offsetWidth;\n maxY = maxX * ratio;\n canvas.width = maxX;\n canvas.height = maxY;\n };\n window.addEventListener(\"resize\", setCanvasSize);\n\n const explosions: ParticleType[] = [];\n const fireworks: FireworkType[] = [];\n\n const handleExplosion = (particles: ParticleType[]) => {\n explosions.push(...particles);\n };\n\n const launchFirework = () => {\n const x = rand(maxX * 0.1, maxX * 0.9);\n const y = maxY;\n const targetY = rand(maxY * 0.1, maxY * 0.4);\n const fireworkColor = getColor(color);\n const speed = getValueByRange(fireworkSpeed);\n const size = getValueByRange(fireworkSize);\n fireworks.push(\n createFirework(\n x,\n y,\n targetY,\n fireworkColor,\n speed,\n size,\n particleSpeed,\n particleSize,\n handleExplosion\n )\n );\n const timeout = rand(300, 800) / population;\n setTimeout(launchFirework, timeout);\n };\n\n launchFirework();\n\n let animationFrameId: number;\n const animate = () => {\n ctx.clearRect(0, 0, maxX, maxY);\n\n for (let i = fireworks.length - 1; i >= 0; i--) {\n const firework = fireworks[i];\n if (!firework.update()) {\n fireworks.splice(i, 1);\n } else {\n firework.draw(ctx);\n }\n }\n\n for (let i = explosions.length - 1; i >= 0; i--) {\n const particle = explosions[i];\n particle.update();\n if (particle.isAlive()) {\n particle.draw(ctx);\n } else {\n explosions.splice(i, 1);\n }\n }\n\n animationFrameId = requestAnimationFrame(animate);\n };\n\n animate();\n\n const handleClick = (event: MouseEvent) => {\n const x = event.clientX;\n const y = maxY;\n const targetY = event.clientY;\n const fireworkColor = getColor(color);\n const speed = getValueByRange(fireworkSpeed);\n const size = getValueByRange(fireworkSize);\n fireworks.push(\n createFirework(\n x,\n y,\n targetY,\n fireworkColor,\n speed,\n size,\n particleSpeed,\n particleSize,\n handleExplosion\n )\n );\n };\n\n container.addEventListener(\"click\", handleClick);\n\n return () => {\n window.removeEventListener(\"resize\", setCanvasSize);\n container.removeEventListener(\"click\", handleClick);\n cancelAnimationFrame(animationFrameId);\n };\n }, [\n population,\n color,\n fireworkSpeed,\n fireworkSize,\n particleSpeed,\n particleSize,\n ]);\n\n return (\n <div\n ref={containerRef}\n className={cn(\"relative size-full overflow-hidden\", className)}\n {...props}\n >\n <canvas\n {...canvasProps}\n ref={canvasRef}\n className={cn(\"absolute inset-0 size-full\", canvasProps?.className)}\n />\n </div>\n );\n }\n);\n\nFireworksBackground.displayName = \"FireworksBackground\";\n\nexport { FireworksBackground, type FireworksBackgroundProps };\n"],"names":["rand","min","max","Math","randInt","randColor","createParticle","x","y","color","speed","direction","gravity","friction","size","vx","vy","alpha","decay","ctx","createFirework","targetY","particleSpeed","particleSize","onExplode","angle","trail","trailLength","numParticles","particles","i","particleAngle","localParticleSpeed","getValueByRange","localParticleSize","point","range","getColor","Array","FireworksBackground","React","className","canvasProps","population","fireworkSpeed","fireworkSize","props","ref","canvasRef","containerRef","canvas","container","maxX","window","ratio","maxY","setCanvasSize","explosions","fireworks","handleExplosion","launchFirework","fireworkColor","timeout","setTimeout","animationFrameId","animate","firework","particle","requestAnimationFrame","handleClick","event","cancelAnimationFrame","cn"],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __webpack_require__ = {};
|
|
4
|
+
(()=>{
|
|
5
|
+
__webpack_require__.d = (exports1, definition)=>{
|
|
6
|
+
for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: definition[key]
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
})();
|
|
12
|
+
(()=>{
|
|
13
|
+
__webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
|
|
14
|
+
})();
|
|
15
|
+
(()=>{
|
|
16
|
+
__webpack_require__.r = (exports1)=>{
|
|
17
|
+
if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
|
|
18
|
+
value: 'Module'
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports1, '__esModule', {
|
|
21
|
+
value: true
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
})();
|
|
25
|
+
var __webpack_exports__ = {};
|
|
26
|
+
__webpack_require__.r(__webpack_exports__);
|
|
27
|
+
__webpack_require__.d(__webpack_exports__, {
|
|
28
|
+
FlipButton: ()=>FlipButton
|
|
29
|
+
});
|
|
30
|
+
const jsx_runtime_namespaceObject = require("react/jsx-runtime");
|
|
31
|
+
const external_react_namespaceObject = require("react");
|
|
32
|
+
const react_namespaceObject = require("motion/react");
|
|
33
|
+
const utils_cjs_namespaceObject = require("../../lib/utils.cjs");
|
|
34
|
+
const defaultSpanClassName = "absolute inset-0 flex items-center justify-center rounded-lg";
|
|
35
|
+
const FlipButton = /*#__PURE__*/ external_react_namespaceObject.forwardRef(({ frontText, backText, transition = {
|
|
36
|
+
type: "spring",
|
|
37
|
+
stiffness: 280,
|
|
38
|
+
damping: 20
|
|
39
|
+
}, className, frontClassName, backClassName, from = "top", ...props }, ref)=>{
|
|
40
|
+
const isVertical = "top" === from || "bottom" === from;
|
|
41
|
+
const rotateAxis = isVertical ? "rotateX" : "rotateY";
|
|
42
|
+
const frontOffset = "top" === from || "left" === from ? "50%" : "-50%";
|
|
43
|
+
const backOffset = "top" === from || "left" === from ? "-50%" : "50%";
|
|
44
|
+
const buildVariant = (opacity, rotation, offset = null)=>({
|
|
45
|
+
opacity,
|
|
46
|
+
[rotateAxis]: rotation,
|
|
47
|
+
...isVertical && null !== offset ? {
|
|
48
|
+
y: offset
|
|
49
|
+
} : {},
|
|
50
|
+
...!isVertical && null !== offset ? {
|
|
51
|
+
x: offset
|
|
52
|
+
} : {}
|
|
53
|
+
});
|
|
54
|
+
const frontVariants = {
|
|
55
|
+
initial: buildVariant(1, 0, "0%"),
|
|
56
|
+
hover: buildVariant(0, 90, frontOffset)
|
|
57
|
+
};
|
|
58
|
+
const backVariants = {
|
|
59
|
+
initial: buildVariant(0, 90, backOffset),
|
|
60
|
+
hover: buildVariant(1, 0, "0%")
|
|
61
|
+
};
|
|
62
|
+
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsxs)(react_namespaceObject.motion.button, {
|
|
63
|
+
ref: ref,
|
|
64
|
+
initial: "initial",
|
|
65
|
+
whileHover: "hover",
|
|
66
|
+
whileTap: {
|
|
67
|
+
scale: 0.95
|
|
68
|
+
},
|
|
69
|
+
className: (0, utils_cjs_namespaceObject.cn)("relative inline-block h-10 px-4 py-2 text-sm font-medium cursor-pointer perspective-[1000px] focus:outline-none", className),
|
|
70
|
+
...props,
|
|
71
|
+
children: [
|
|
72
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.span, {
|
|
73
|
+
variants: frontVariants,
|
|
74
|
+
transition: transition,
|
|
75
|
+
className: (0, utils_cjs_namespaceObject.cn)(defaultSpanClassName, "bg-muted text-black dark:text-white", frontClassName),
|
|
76
|
+
children: frontText
|
|
77
|
+
}),
|
|
78
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(react_namespaceObject.motion.span, {
|
|
79
|
+
variants: backVariants,
|
|
80
|
+
transition: transition,
|
|
81
|
+
className: (0, utils_cjs_namespaceObject.cn)(defaultSpanClassName, "bg-primary text-primary-foreground", backClassName),
|
|
82
|
+
children: backText
|
|
83
|
+
}),
|
|
84
|
+
/*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("span", {
|
|
85
|
+
className: "invisible",
|
|
86
|
+
children: frontText
|
|
87
|
+
})
|
|
88
|
+
]
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
FlipButton.displayName = "FlipButton";
|
|
92
|
+
exports.FlipButton = __webpack_exports__.FlipButton;
|
|
93
|
+
for(var __webpack_i__ in __webpack_exports__)if (-1 === [
|
|
94
|
+
"FlipButton"
|
|
95
|
+
].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
|
|
96
|
+
Object.defineProperty(exports, '__esModule', {
|
|
97
|
+
value: true
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
//# sourceMappingURL=flip-button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"components\\ui\\flip-button.cjs","sources":["webpack://@arolariu/components/./src/components/ui/flip-button.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport {\n type HTMLMotionProps,\n type Transition,\n type Variant,\n motion,\n} from \"motion/react\";\n\nimport { cn } from \"@/lib/utils\";\n\ntype FlipDirection = \"top\" | \"bottom\" | \"left\" | \"righ\";\n\ninterface FlipButtonProps extends HTMLMotionProps<\"button\"> {\n frontText: string;\n backText: string;\n transition?: Transition;\n frontClassName?: string;\n backClassName?: string;\n from?: FlipDirection;\n}\n\nconst defaultSpanClassName =\n \"absolute inset-0 flex items-center justify-center rounded-lg\";\n\nconst FlipButton = React.forwardRef<HTMLButtonElement, FlipButtonProps>(\n (\n {\n frontText,\n backText,\n transition = { type: \"spring\", stiffness: 280, damping: 20 },\n className,\n frontClassName,\n backClassName,\n from = \"top\",\n ...props\n },\n ref\n ) => {\n const isVertical = from === \"top\" || from === \"bottom\";\n const rotateAxis = isVertical ? \"rotateX\" : \"rotateY\";\n\n const frontOffset = from === \"top\" || from === \"left\" ? \"50%\" : \"-50%\";\n const backOffset = from === \"top\" || from === \"left\" ? \"-50%\" : \"50%\";\n\n const buildVariant = (\n opacity: number,\n rotation: number,\n offset: string | null = null\n ): Variant => ({\n opacity,\n [rotateAxis]: rotation,\n ...(isVertical && offset !== null ? { y: offset } : {}),\n ...(!isVertical && offset !== null ? { x: offset } : {}),\n });\n\n const frontVariants = {\n initial: buildVariant(1, 0, \"0%\"),\n hover: buildVariant(0, 90, frontOffset),\n };\n\n const backVariants = {\n initial: buildVariant(0, 90, backOffset),\n hover: buildVariant(1, 0, \"0%\"),\n };\n\n return (\n <motion.button\n ref={ref}\n initial=\"initial\"\n whileHover=\"hover\"\n whileTap={{ scale: 0.95 }}\n className={cn(\n \"relative inline-block h-10 px-4 py-2 text-sm font-medium cursor-pointer perspective-[1000px] focus:outline-none\",\n className\n )}\n {...props}\n >\n <motion.span\n variants={frontVariants}\n transition={transition}\n className={cn(\n defaultSpanClassName,\n \"bg-muted text-black dark:text-white\",\n frontClassName\n )}\n >\n {frontText}\n </motion.span>\n <motion.span\n variants={backVariants}\n transition={transition}\n className={cn(\n defaultSpanClassName,\n \"bg-primary text-primary-foreground\",\n backClassName\n )}\n >\n {backText}\n </motion.span>\n <span className=\"invisible\">{frontText}</span>\n </motion.button>\n );\n }\n);\n\nFlipButton.displayName = \"FlipButton\";\n\nexport { FlipButton, type FlipButtonProps, type FlipDirection };\n"],"names":["defaultSpanClassName","FlipButton","React","frontText","backText","transition","className","frontClassName","backClassName","from","props","ref","isVertical","rotateAxis","frontOffset","backOffset","buildVariant","opacity","rotation","offset","frontVariants","backVariants","motion","cn"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,MAAMA,uBACJ;AAEF,MAAMC,aAAa,WAAbA,GAAaC,+BAAAA,UAAgB,CACjC,CACE,EACEC,SAAS,EACTC,QAAQ,EACRC,aAAa;IAAE,MAAM;IAAU,WAAW;IAAK,SAAS;AAAG,CAAC,EAC5DC,SAAS,EACTC,cAAc,EACdC,aAAa,EACbC,OAAO,KAAK,EACZ,GAAGC,OACJ,EACDC;IAEA,MAAMC,aAAaH,UAAAA,QAAkBA,aAAAA;IACrC,MAAMI,aAAaD,aAAa,YAAY;IAE5C,MAAME,cAAcL,UAAAA,QAAkBA,WAAAA,OAAkB,QAAQ;IAChE,MAAMM,aAAaN,UAAAA,QAAkBA,WAAAA,OAAkB,SAAS;IAEhE,MAAMO,eAAe,CACnBC,SACAC,UACAC,SAAwB,IAAI,GACf;YACbF;YACA,CAACJ,WAAW,EAAEK;YACd,GAAIN,cAAcO,SAAAA,SAAkB;gBAAE,GAAGA;YAAO,IAAI,CAAC,CAAC;YACtD,GAAI,CAACP,cAAcO,SAAAA,SAAkB;gBAAE,GAAGA;YAAO,IAAI,CAAC,CAAC;QACzD;IAEA,MAAMC,gBAAgB;QACpB,SAASJ,aAAa,GAAG,GAAG;QAC5B,OAAOA,aAAa,GAAG,IAAIF;IAC7B;IAEA,MAAMO,eAAe;QACnB,SAASL,aAAa,GAAG,IAAID;QAC7B,OAAOC,aAAa,GAAG,GAAG;IAC5B;IAEA,OACE,WADF,GACE,sCAACM,sBAAAA,MAAAA,CAAAA,MAAa;QACZ,KAAKX;QACL,SAAQ;QACR,YAAW;QACX,UAAU;YAAE,OAAO;QAAK;QACxB,WAAWY,IAAAA,0BAAAA,EAAAA,EACT,mHACAjB;QAED,GAAGI,KAAK;;0BAET,qCAACY,sBAAAA,MAAAA,CAAAA,IAAW;gBACV,UAAUF;gBACV,YAAYf;gBACZ,WAAWkB,IAAAA,0BAAAA,EAAAA,EACTvB,sBACA,uCACAO;0BAGDJ;;0BAEH,qCAACmB,sBAAAA,MAAAA,CAAAA,IAAW;gBACV,UAAUD;gBACV,YAAYhB;gBACZ,WAAWkB,IAAAA,0BAAAA,EAAAA,EACTvB,sBACA,sCACAQ;0BAGDJ;;0BAEH,qCAAC;gBAAK,WAAU;0BAAaD;;;;AAGnC;AAGFF,WAAW,WAAW,GAAG"}
|
|
@@ -88,7 +88,7 @@ function FormLabel({ className, ...props }) {
|
|
|
88
88
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_label_cjs_namespaceObject.Label, {
|
|
89
89
|
"data-slot": "form-label",
|
|
90
90
|
"data-error": !!error,
|
|
91
|
-
className: (0, utils_cjs_namespaceObject.cn)("data-[error=true]:text-
|
|
91
|
+
className: (0, utils_cjs_namespaceObject.cn)("data-[error=true]:text-red-500 dark:data-[error=true]:text-red-900", className),
|
|
92
92
|
htmlFor: formItemId,
|
|
93
93
|
...props
|
|
94
94
|
});
|
|
@@ -119,7 +119,7 @@ function FormMessage({ className, ...props }) {
|
|
|
119
119
|
return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)("p", {
|
|
120
120
|
"data-slot": "form-message",
|
|
121
121
|
id: formMessageId,
|
|
122
|
-
className: (0, utils_cjs_namespaceObject.cn)("text-
|
|
122
|
+
className: (0, utils_cjs_namespaceObject.cn)("text-red-500 text-sm dark:text-red-900", className),
|
|
123
123
|
...props,
|
|
124
124
|
children: body
|
|
125
125
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components\\ui\\form.cjs","sources":["webpack://@arolariu/components/./src/components/ui/form.tsx"],"sourcesContent":["\
|
|
1
|
+
{"version":3,"file":"components\\ui\\form.cjs","sources":["webpack://@arolariu/components/./src/components/ui/form.tsx"],"sourcesContent":["\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Label } from \"@/components/ui/label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState } = useFormContext();\n const formState = useFormState({ name: fieldContext.name });\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n );\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\n \"data-[error=true]:text-red-500 dark:data-[error=true]:text-red-900\",\n className\n )}\n htmlFor={formItemId}\n {...props}\n />\n );\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\n \"text-neutral-500 text-sm dark:text-neutral-400\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message ?? \"\") : props.children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-red-500 text-sm dark:text-red-900\", className)}\n {...props}\n >\n {body}\n </p>\n );\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n"],"names":["Form","FormProvider","FormFieldContext","React","FormField","props","Controller","useFormField","fieldContext","itemContext","FormItemContext","getFieldState","useFormContext","formState","useFormState","fieldState","Error","id","FormItem","className","cn","FormLabel","error","formItemId","Label","FormControl","formDescriptionId","formMessageId","Slot","FormDescription","FormMessage","body","String"],"mappings":"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"}
|