@ginia/ui 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/domain/resume/resume-editor/resume-editor.cjs +13 -5
- package/dist/components/domain/resume/resume-editor/resume-editor.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/resume-editor.d.cts +1 -1
- package/dist/components/domain/resume/resume-editor/resume-editor.d.ts +1 -1
- package/dist/components/domain/resume/resume-editor/resume-editor.js +19 -6
- package/dist/components/domain/resume/resume-editor/resume-editor.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.cjs +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.js +1 -1
- package/dist/components/domain/resume/resume-editor/sections/academic-info.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/activities.cjs +25 -11
- package/dist/components/domain/resume/resume-editor/sections/activities.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/activities.js +25 -11
- package/dist/components/domain/resume/resume-editor/sections/activities.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/certifications.cjs +27 -12
- package/dist/components/domain/resume/resume-editor/sections/certifications.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/certifications.js +27 -12
- package/dist/components/domain/resume/resume-editor/sections/certifications.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/education.cjs +25 -11
- package/dist/components/domain/resume/resume-editor/sections/education.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/education.js +25 -11
- package/dist/components/domain/resume/resume-editor/sections/education.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/experience.cjs +25 -11
- package/dist/components/domain/resume/resume-editor/sections/experience.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/experience.js +25 -11
- package/dist/components/domain/resume/resume-editor/sections/experience.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.cjs +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.js +1 -1
- package/dist/components/domain/resume/resume-editor/sections/personal-info.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/preferences.cjs +2 -2
- package/dist/components/domain/resume/resume-editor/sections/preferences.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/preferences.js +2 -2
- package/dist/components/domain/resume/resume-editor/sections/preferences.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/requirements.cjs +19 -11
- package/dist/components/domain/resume/resume-editor/sections/requirements.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/requirements.js +29 -12
- package/dist/components/domain/resume/resume-editor/sections/requirements.js.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/skills.cjs +30 -10
- package/dist/components/domain/resume/resume-editor/sections/skills.cjs.map +1 -1
- package/dist/components/domain/resume/resume-editor/sections/skills.js +30 -10
- package/dist/components/domain/resume/resume-editor/sections/skills.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/resume-preview.cjs +27 -11
- package/dist/components/domain/resume/resume-preview/resume-preview.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/resume-preview.js +27 -11
- package/dist/components/domain/resume/resume-preview/resume-preview.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.cjs +31 -15
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.js +31 -15
- package/dist/components/domain/resume/resume-preview/sections/contact-skills.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.cjs +131 -73
- package/dist/components/domain/resume/resume-preview/sections/experience-education.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.d.cts +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.d.ts +1 -1
- package/dist/components/domain/resume/resume-preview/sections/experience-education.js +131 -73
- package/dist/components/domain/resume/resume-preview/sections/experience-education.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.cjs +2 -2
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.js +2 -2
- package/dist/components/domain/resume/resume-preview/sections/footer-preview.js.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/header-preview.cjs +7 -7
- package/dist/components/domain/resume/resume-preview/sections/header-preview.cjs.map +1 -1
- package/dist/components/domain/resume/resume-preview/sections/header-preview.js +7 -7
- package/dist/components/domain/resume/resume-preview/sections/header-preview.js.map +1 -1
- package/dist/components/domain/resume/resume.cjs +46 -29
- package/dist/components/domain/resume/resume.cjs.map +1 -1
- package/dist/components/domain/resume/resume.js +46 -29
- package/dist/components/domain/resume/resume.js.map +1 -1
- package/dist/components/ui/accordion/accordion.cjs +1 -3
- package/dist/components/ui/accordion/accordion.cjs.map +1 -1
- package/dist/components/ui/accordion/accordion.js +1 -3
- package/dist/components/ui/accordion/accordion.js.map +1 -1
- package/dist/components/ui/alert/alert.cjs +12 -25
- package/dist/components/ui/alert/alert.cjs.map +1 -1
- package/dist/components/ui/alert/alert.js +12 -25
- package/dist/components/ui/alert/alert.js.map +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog.cjs +12 -46
- package/dist/components/ui/alert-dialog/alert-dialog.cjs.map +1 -1
- package/dist/components/ui/alert-dialog/alert-dialog.js +12 -46
- package/dist/components/ui/alert-dialog/alert-dialog.js.map +1 -1
- package/dist/components/ui/autocomplete/autocomplete.cjs +12 -12
- package/dist/components/ui/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/components/ui/autocomplete/autocomplete.js +12 -12
- package/dist/components/ui/autocomplete/autocomplete.js.map +1 -1
- package/dist/components/ui/avatar/avatar.cjs +1 -4
- package/dist/components/ui/avatar/avatar.cjs.map +1 -1
- package/dist/components/ui/avatar/avatar.js +1 -4
- package/dist/components/ui/avatar/avatar.js.map +1 -1
- package/dist/components/ui/badge/badge.cjs +1 -8
- package/dist/components/ui/badge/badge.cjs.map +1 -1
- package/dist/components/ui/badge/badge.js +1 -8
- package/dist/components/ui/badge/badge.js.map +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb.cjs +6 -19
- package/dist/components/ui/breadcrumb/breadcrumb.cjs.map +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb.js +6 -19
- package/dist/components/ui/breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/ui/button/button.cjs.map +1 -1
- package/dist/components/ui/button/button.js.map +1 -1
- package/dist/components/ui/calendar/calendar.cjs +1 -6
- package/dist/components/ui/calendar/calendar.cjs.map +1 -1
- package/dist/components/ui/calendar/calendar.js +1 -6
- package/dist/components/ui/calendar/calendar.js.map +1 -1
- package/dist/components/ui/card/card.cjs +7 -17
- package/dist/components/ui/card/card.cjs.map +1 -1
- package/dist/components/ui/card/card.js +7 -17
- package/dist/components/ui/card/card.js.map +1 -1
- package/dist/components/ui/carousel/carousel.cjs +4 -11
- package/dist/components/ui/carousel/carousel.cjs.map +1 -1
- package/dist/components/ui/carousel/carousel.js +4 -11
- package/dist/components/ui/carousel/carousel.js.map +1 -1
- package/dist/components/ui/checkbox/checkbox.cjs +1 -7
- package/dist/components/ui/checkbox/checkbox.cjs.map +1 -1
- package/dist/components/ui/checkbox/checkbox.js +1 -7
- package/dist/components/ui/checkbox/checkbox.js.map +1 -1
- package/dist/components/ui/collapsible/collapsible.cjs.map +1 -1
- package/dist/components/ui/collapsible/collapsible.js.map +1 -1
- package/dist/components/ui/combobox/combobox.cjs +1 -3
- package/dist/components/ui/combobox/combobox.cjs.map +1 -1
- package/dist/components/ui/combobox/combobox.js +1 -3
- package/dist/components/ui/combobox/combobox.js.map +1 -1
- package/dist/components/ui/command/command.cjs +7 -24
- package/dist/components/ui/command/command.cjs.map +1 -1
- package/dist/components/ui/command/command.js +7 -24
- package/dist/components/ui/command/command.js.map +1 -1
- package/dist/components/ui/context-menu/context-menu.cjs +4 -18
- package/dist/components/ui/context-menu/context-menu.cjs.map +1 -1
- package/dist/components/ui/context-menu/context-menu.js +4 -18
- package/dist/components/ui/context-menu/context-menu.js.map +1 -1
- package/dist/components/ui/date-picker/date-picker.cjs +21 -57
- package/dist/components/ui/date-picker/date-picker.cjs.map +1 -1
- package/dist/components/ui/date-picker/date-picker.js +22 -62
- package/dist/components/ui/date-picker/date-picker.js.map +1 -1
- package/dist/components/ui/dialog/dialog.cjs +12 -29
- package/dist/components/ui/dialog/dialog.cjs.map +1 -1
- package/dist/components/ui/dialog/dialog.js +12 -29
- package/dist/components/ui/dialog/dialog.js.map +1 -1
- package/dist/components/ui/drawer/drawer.cjs +9 -23
- package/dist/components/ui/drawer/drawer.cjs.map +1 -1
- package/dist/components/ui/drawer/drawer.js +9 -23
- package/dist/components/ui/drawer/drawer.js.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.cjs +3 -16
- package/dist/components/ui/dropdown-menu/dropdown-menu.cjs.map +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu.js +3 -16
- package/dist/components/ui/dropdown-menu/dropdown-menu.js.map +1 -1
- package/dist/components/ui/form/form.cjs +7 -24
- package/dist/components/ui/form/form.cjs.map +1 -1
- package/dist/components/ui/form/form.js +7 -24
- package/dist/components/ui/form/form.js.map +1 -1
- package/dist/components/ui/hover-card/hover-card.cjs +2 -6
- package/dist/components/ui/hover-card/hover-card.cjs.map +1 -1
- package/dist/components/ui/hover-card/hover-card.js +2 -6
- package/dist/components/ui/hover-card/hover-card.js.map +1 -1
- package/dist/components/ui/icon/icon.cjs +1 -1
- package/dist/components/ui/icon/icon.cjs.map +1 -1
- package/dist/components/ui/icon/icon.js +1 -1
- package/dist/components/ui/icon/icon.js.map +1 -1
- package/dist/components/ui/input/input.cjs +1 -1
- package/dist/components/ui/input/input.cjs.map +1 -1
- package/dist/components/ui/input/input.js +1 -1
- package/dist/components/ui/input/input.js.map +1 -1
- package/dist/components/ui/input-field/input-field.cjs +1 -1
- package/dist/components/ui/input-field/input-field.cjs.map +1 -1
- package/dist/components/ui/input-field/input-field.js +1 -1
- package/dist/components/ui/input-field/input-field.js.map +1 -1
- package/dist/components/ui/input-otp/input-otp.cjs +5 -15
- package/dist/components/ui/input-otp/input-otp.cjs.map +1 -1
- package/dist/components/ui/input-otp/input-otp.js +5 -15
- package/dist/components/ui/input-otp/input-otp.js.map +1 -1
- package/dist/components/ui/label/label.cjs +2 -5
- package/dist/components/ui/label/label.cjs.map +1 -1
- package/dist/components/ui/label/label.js +2 -5
- package/dist/components/ui/label/label.js.map +1 -1
- package/dist/components/ui/loading-state/loading-state.cjs +3 -8
- package/dist/components/ui/loading-state/loading-state.cjs.map +1 -1
- package/dist/components/ui/loading-state/loading-state.d.cts +1 -1
- package/dist/components/ui/loading-state/loading-state.d.ts +1 -1
- package/dist/components/ui/loading-state/loading-state.js +3 -8
- package/dist/components/ui/loading-state/loading-state.js.map +1 -1
- package/dist/components/ui/menubar/menubar.cjs +5 -21
- package/dist/components/ui/menubar/menubar.cjs.map +1 -1
- package/dist/components/ui/menubar/menubar.js +5 -21
- package/dist/components/ui/menubar/menubar.js.map +1 -1
- package/dist/components/ui/month-year-picker/month-year-picker.cjs +5 -23
- package/dist/components/ui/month-year-picker/month-year-picker.cjs.map +1 -1
- package/dist/components/ui/month-year-picker/month-year-picker.js +6 -28
- package/dist/components/ui/month-year-picker/month-year-picker.js.map +1 -1
- package/dist/components/ui/multi-select/multi-select.cjs +12 -29
- package/dist/components/ui/multi-select/multi-select.cjs.map +1 -1
- package/dist/components/ui/multi-select/multi-select.js +12 -29
- package/dist/components/ui/multi-select/multi-select.js.map +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu.cjs +7 -13
- package/dist/components/ui/navigation-menu/navigation-menu.cjs.map +1 -1
- package/dist/components/ui/navigation-menu/navigation-menu.js +7 -13
- package/dist/components/ui/navigation-menu/navigation-menu.js.map +1 -1
- package/dist/components/ui/pagination/pagination.cjs +4 -18
- package/dist/components/ui/pagination/pagination.cjs.map +1 -1
- package/dist/components/ui/pagination/pagination.js +4 -18
- package/dist/components/ui/pagination/pagination.js.map +1 -1
- package/dist/components/ui/popover/popover.cjs.map +1 -1
- package/dist/components/ui/popover/popover.js.map +1 -1
- package/dist/components/ui/progress/progress.cjs +2 -2
- package/dist/components/ui/progress/progress.cjs.map +1 -1
- package/dist/components/ui/progress/progress.js +2 -2
- package/dist/components/ui/progress/progress.js.map +1 -1
- package/dist/components/ui/radio-group/radio-group.cjs +1 -8
- package/dist/components/ui/radio-group/radio-group.cjs.map +1 -1
- package/dist/components/ui/radio-group/radio-group.js +1 -8
- package/dist/components/ui/radio-group/radio-group.js.map +1 -1
- package/dist/components/ui/resizable/resizable.cjs +3 -6
- package/dist/components/ui/resizable/resizable.cjs.map +1 -1
- package/dist/components/ui/resizable/resizable.js +4 -11
- package/dist/components/ui/resizable/resizable.js.map +1 -1
- package/dist/components/ui/rich-text-editor/rich-text-editor.cjs +25 -37
- package/dist/components/ui/rich-text-editor/rich-text-editor.cjs.map +1 -1
- package/dist/components/ui/rich-text-editor/rich-text-editor.js +25 -37
- package/dist/components/ui/rich-text-editor/rich-text-editor.js.map +1 -1
- package/dist/components/ui/scroll-area/scroll-area.cjs.map +1 -1
- package/dist/components/ui/scroll-area/scroll-area.js.map +1 -1
- package/dist/components/ui/section-loader/section-loader.cjs +4 -15
- package/dist/components/ui/section-loader/section-loader.cjs.map +1 -1
- package/dist/components/ui/section-loader/section-loader.js +4 -15
- package/dist/components/ui/section-loader/section-loader.js.map +1 -1
- package/dist/components/ui/select/select.cjs +11 -29
- package/dist/components/ui/select/select.cjs.map +1 -1
- package/dist/components/ui/select/select.js +11 -29
- package/dist/components/ui/select/select.js.map +1 -1
- package/dist/components/ui/separator/separator.cjs +14 -16
- package/dist/components/ui/separator/separator.cjs.map +1 -1
- package/dist/components/ui/separator/separator.js +14 -16
- package/dist/components/ui/separator/separator.js.map +1 -1
- package/dist/components/ui/sheet/sheet.cjs +10 -24
- package/dist/components/ui/sheet/sheet.cjs.map +1 -1
- package/dist/components/ui/sheet/sheet.js +10 -24
- package/dist/components/ui/sheet/sheet.js.map +1 -1
- package/dist/components/ui/skeleton/skeleton.cjs +2 -11
- package/dist/components/ui/skeleton/skeleton.cjs.map +1 -1
- package/dist/components/ui/skeleton/skeleton.js +2 -11
- package/dist/components/ui/skeleton/skeleton.js.map +1 -1
- package/dist/components/ui/slider/slider.cjs +1 -4
- package/dist/components/ui/slider/slider.cjs.map +1 -1
- package/dist/components/ui/slider/slider.js +1 -4
- package/dist/components/ui/slider/slider.js.map +1 -1
- package/dist/components/ui/sonner/sonner.cjs.map +1 -1
- package/dist/components/ui/sonner/sonner.js.map +1 -1
- package/dist/components/ui/spinner/spinner.cjs +1 -1
- package/dist/components/ui/spinner/spinner.cjs.map +1 -1
- package/dist/components/ui/spinner/spinner.js +1 -1
- package/dist/components/ui/spinner/spinner.js.map +1 -1
- package/dist/components/ui/switch/switch.cjs.map +1 -1
- package/dist/components/ui/switch/switch.js.map +1 -1
- package/dist/components/ui/table/table.cjs +6 -28
- package/dist/components/ui/table/table.cjs.map +1 -1
- package/dist/components/ui/table/table.js +6 -28
- package/dist/components/ui/table/table.js.map +1 -1
- package/dist/components/ui/tabs/tabs.cjs.map +1 -1
- package/dist/components/ui/tabs/tabs.js.map +1 -1
- package/dist/components/ui/textarea/textarea.cjs +1 -4
- package/dist/components/ui/textarea/textarea.cjs.map +1 -1
- package/dist/components/ui/textarea/textarea.js +1 -4
- package/dist/components/ui/textarea/textarea.js.map +1 -1
- package/dist/components/ui/toast/toast.cjs +3 -12
- package/dist/components/ui/toast/toast.cjs.map +1 -1
- package/dist/components/ui/toast/toast.js +3 -12
- package/dist/components/ui/toast/toast.js.map +1 -1
- package/dist/components/ui/toggle/toggle.cjs.map +1 -1
- package/dist/components/ui/toggle/toggle.js.map +1 -1
- package/dist/components/ui/toggle-group/toggle-group.cjs +1 -4
- package/dist/components/ui/toggle-group/toggle-group.cjs.map +1 -1
- package/dist/components/ui/toggle-group/toggle-group.js +1 -4
- package/dist/components/ui/toggle-group/toggle-group.js.map +1 -1
- package/dist/components/ui/tooltip/tooltip.cjs.map +1 -1
- package/dist/components/ui/tooltip/tooltip.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/month-year-picker/month-year-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { format } from \"date-fns\";\nimport { es } from \"date-fns/locale\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/month-year-picker/month-year-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { format } from \"date-fns\";\nimport { es } from \"date-fns/locale\";\nimport { Calendar as CalendarIcon, ChevronLeft, ChevronRight } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\n\nexport interface MonthYearPickerProps {\n value?: Date;\n onChange?: (date: Date | undefined) => void;\n placeholder?: string;\n disabled?: boolean;\n className?: string;\n}\n\nconst monthNames = [\n \"Enero\",\n \"Febrero\",\n \"Marzo\",\n \"Abril\",\n \"Mayo\",\n \"Junio\",\n \"Julio\",\n \"Agosto\",\n \"Septiembre\",\n \"Octubre\",\n \"Noviembre\",\n \"Diciembre\",\n];\n\nfunction MonthYearPicker({\n value,\n onChange,\n placeholder = \"Seleccionar mes y año\",\n disabled = false,\n className,\n}: MonthYearPickerProps) {\n const [open, setOpen] = React.useState(false);\n const [currentYear, setCurrentYear] = React.useState(() => {\n return value ? value.getFullYear() : new Date().getFullYear();\n });\n\n React.useEffect(() => {\n if (value) {\n setCurrentYear(value.getFullYear());\n }\n }, [value]);\n\n const handleMonthSelect = (monthIndex: number) => {\n const selectedDate = new Date(currentYear, monthIndex, 1);\n onChange?.(selectedDate);\n setOpen(false);\n };\n\n const goToPreviousYear = () => {\n setCurrentYear((prev) => prev - 1);\n };\n\n const goToNextYear = () => {\n setCurrentYear((prev) => prev + 1);\n };\n\n const isSelected = (monthIndex: number) => {\n if (!value) return false;\n return value.getFullYear() === currentYear && value.getMonth() === monthIndex;\n };\n\n const isCurrentMonth = (monthIndex: number) => {\n const now = new Date();\n return now.getFullYear() === currentYear && now.getMonth() === monthIndex;\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n data-slot=\"month-year-picker\"\n className={cn(\n \"w-full justify-start text-left font-normal\",\n !value && \"text-muted-foreground\",\n className,\n )}\n disabled={disabled}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {value ? format(value, \"MMMM yyyy\", { locale: es }) : placeholder}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <div className=\"p-3\">\n <div className=\"mb-4 flex items-center justify-between\">\n <Button variant=\"outline\" size=\"sm\" onClick={goToPreviousYear} className=\"h-7 w-7 p-0\">\n <ChevronLeft className=\"h-4 w-4\" />\n </Button>\n <div className=\"text-sm font-medium\">{currentYear}</div>\n <Button variant=\"outline\" size=\"sm\" onClick={goToNextYear} className=\"h-7 w-7 p-0\">\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className=\"grid grid-cols-3 gap-2\">\n {monthNames.map((month, index) => (\n <Button\n key={index}\n variant=\"ghost\"\n size=\"sm\"\n className={cn(\n \"h-9 px-3 text-sm font-normal\",\n isSelected(index) &&\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground\",\n isCurrentMonth(index) && !isSelected(index) && \"bg-accent text-accent-foreground\",\n \"hover:bg-muted\",\n )}\n onClick={() => handleMonthSelect(index)}\n >\n {month}\n </Button>\n ))}\n </div>\n </div>\n </PopoverContent>\n </Popover>\n );\n}\n\nexport { MonthYearPicker };\n"],"mappings":"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","names":[]}
|
|
@@ -50,9 +50,7 @@ function MultiSelect({
|
|
|
50
50
|
maxDisplay = 3
|
|
51
51
|
}) {
|
|
52
52
|
const [open, setOpen] = React.useState(false);
|
|
53
|
-
const selectedOptions = options.filter(
|
|
54
|
-
(option) => value.includes(option.value)
|
|
55
|
-
);
|
|
53
|
+
const selectedOptions = options.filter((option) => value.includes(option.value));
|
|
56
54
|
const handleSelect = (optionValue) => {
|
|
57
55
|
const newValue = value.includes(optionValue) ? value.filter((v) => v !== optionValue) : [...value, optionValue];
|
|
58
56
|
onValueChange(newValue);
|
|
@@ -74,7 +72,7 @@ function MultiSelect({
|
|
|
74
72
|
import_badge.Badge,
|
|
75
73
|
{
|
|
76
74
|
variant: option.variant || "secondary",
|
|
77
|
-
className: "
|
|
75
|
+
className: "h-auto px-2 py-0.5 text-xs",
|
|
78
76
|
children: [
|
|
79
77
|
option.label,
|
|
80
78
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
@@ -107,21 +105,15 @@ function MultiSelect({
|
|
|
107
105
|
"aria-expanded": open,
|
|
108
106
|
"data-slot": "multi-select",
|
|
109
107
|
className: (0, import_utils.cn)(
|
|
110
|
-
"
|
|
108
|
+
"h-auto min-h-[2.5rem] w-full justify-between py-2 hover:bg-muted hover:text-foreground",
|
|
111
109
|
selectedOptions.length === 0 && "text-muted-foreground",
|
|
112
110
|
className
|
|
113
111
|
),
|
|
114
112
|
disabled,
|
|
115
113
|
children: [
|
|
116
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1 text-left
|
|
117
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "flex items-center gap-1
|
|
118
|
-
selectedOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
119
|
-
import_lucide_react.X,
|
|
120
|
-
{
|
|
121
|
-
className: "h-4 w-4 shrink-0 opacity-50 hover:opacity-100",
|
|
122
|
-
onClick: handleClear
|
|
123
|
-
}
|
|
124
|
-
),
|
|
114
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "flex-1 overflow-hidden text-left", children: displayText() }),
|
|
115
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "ml-2 flex items-center gap-1", children: [
|
|
116
|
+
selectedOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.X, { className: "h-4 w-4 shrink-0 opacity-50 hover:opacity-100", onClick: handleClear }),
|
|
125
117
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_lucide_react.ChevronDown, { className: "h-4 w-4 shrink-0 opacity-50" })
|
|
126
118
|
] })
|
|
127
119
|
]
|
|
@@ -132,7 +124,7 @@ function MultiSelect({
|
|
|
132
124
|
"div",
|
|
133
125
|
{
|
|
134
126
|
className: (0, import_utils.cn)(
|
|
135
|
-
"flex items-center space-x-2 rounded-sm px-2 py-1.5 text-sm
|
|
127
|
+
"flex cursor-pointer items-center space-x-2 rounded-sm px-2 py-1.5 text-sm transition-colors hover:bg-muted",
|
|
136
128
|
value.includes(option.value) && "bg-muted/50 font-medium"
|
|
137
129
|
),
|
|
138
130
|
onClick: () => handleSelect(option.value),
|
|
@@ -149,20 +141,11 @@ function MultiSelect({
|
|
|
149
141
|
},
|
|
150
142
|
option.value
|
|
151
143
|
)) }) }),
|
|
152
|
-
selectedOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "border-t p-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
onClick: handleClear,
|
|
158
|
-
className: "w-full text-xs",
|
|
159
|
-
children: [
|
|
160
|
-
"Clear all (",
|
|
161
|
-
selectedOptions.length,
|
|
162
|
-
")"
|
|
163
|
-
]
|
|
164
|
-
}
|
|
165
|
-
) })
|
|
144
|
+
selectedOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "border-t p-2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_button.Button, { variant: "ghost", size: "sm", onClick: handleClear, className: "w-full text-xs", children: [
|
|
145
|
+
"Clear all (",
|
|
146
|
+
selectedOptions.length,
|
|
147
|
+
")"
|
|
148
|
+
] }) })
|
|
166
149
|
] })
|
|
167
150
|
] });
|
|
168
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport { Badge } from \"../badge\";\nimport { Checkbox } from \"../checkbox\";\n\nexport interface MultiSelectOption {\n value: string;\n label: string;\n variant?: \"default\" | \"secondary\" | \"destructive\" | \"outline\";\n}\n\ninterface MultiSelectProps {\n options: MultiSelectOption[];\n value: string[];\n onValueChange: (value: string[]) => void;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n maxDisplay?: number;\n}\n\nfunction MultiSelect({\n options,\n value,\n onValueChange,\n placeholder = \"Select options...\",\n className,\n disabled = false,\n maxDisplay = 3,\n}: MultiSelectProps) {\n const [open, setOpen] = React.useState(false);\n\n const selectedOptions = options.filter((option)
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport { Badge } from \"../badge\";\nimport { Checkbox } from \"../checkbox\";\n\nexport interface MultiSelectOption {\n value: string;\n label: string;\n variant?: \"default\" | \"secondary\" | \"destructive\" | \"outline\";\n}\n\ninterface MultiSelectProps {\n options: MultiSelectOption[];\n value: string[];\n onValueChange: (value: string[]) => void;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n maxDisplay?: number;\n}\n\nfunction MultiSelect({\n options,\n value,\n onValueChange,\n placeholder = \"Select options...\",\n className,\n disabled = false,\n maxDisplay = 3,\n}: MultiSelectProps) {\n const [open, setOpen] = React.useState(false);\n\n const selectedOptions = options.filter((option) => value.includes(option.value));\n\n const handleSelect = (optionValue: string) => {\n const newValue = value.includes(optionValue)\n ? value.filter((v) => v !== optionValue)\n : [...value, optionValue];\n onValueChange(newValue);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n onValueChange([]);\n };\n\n const handleRemoveItem = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onValueChange(value.filter((v) => v !== optionValue));\n };\n\n const displayText = () => {\n if (selectedOptions.length === 0) {\n return placeholder;\n }\n\n if (selectedOptions.length <= maxDisplay) {\n return (\n <div className=\"flex flex-wrap gap-1\">\n {selectedOptions.map((option) => (\n <Badge\n key={option.value}\n variant={option.variant || \"secondary\"}\n className=\"h-auto px-2 py-0.5 text-xs\"\n >\n {option.label}\n <X\n className=\"ml-1 h-3 w-3 cursor-pointer hover:text-destructive\"\n onClick={(e) => handleRemoveItem(option.value, e)}\n />\n </Badge>\n ))}\n </div>\n );\n }\n\n return (\n <div className=\"flex items-center gap-1\">\n <Badge variant=\"secondary\" className=\"text-xs\">\n {selectedOptions[0].label}\n </Badge>\n <span className=\"text-sm text-muted-foreground\">+{selectedOptions.length - 1} more</span>\n </div>\n );\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n data-slot=\"multi-select\"\n className={cn(\n \"h-auto min-h-[2.5rem] w-full justify-between py-2 hover:bg-muted hover:text-foreground\",\n selectedOptions.length === 0 && \"text-muted-foreground\",\n className,\n )}\n disabled={disabled}\n >\n <div className=\"flex-1 overflow-hidden text-left\">{displayText()}</div>\n <div className=\"ml-2 flex items-center gap-1\">\n {selectedOptions.length > 0 && (\n <X className=\"h-4 w-4 shrink-0 opacity-50 hover:opacity-100\" onClick={handleClear} />\n )}\n <ChevronDown className=\"h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\" align=\"start\">\n <div className=\"max-h-60 overflow-auto\">\n {options.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n No options available\n </div>\n ) : (\n <div className=\"p-1\">\n {options.map((option) => (\n <div\n key={option.value}\n className={cn(\n \"flex cursor-pointer items-center space-x-2 rounded-sm px-2 py-1.5 text-sm transition-colors hover:bg-muted\",\n value.includes(option.value) && \"bg-muted/50 font-medium\",\n )}\n onClick={() => handleSelect(option.value)}\n >\n <Checkbox\n checked={value.includes(option.value)}\n className=\"pointer-events-none text-primary\"\n />\n <span>{option.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n {selectedOptions.length > 0 && (\n <div className=\"border-t p-2\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear} className=\"w-full text-xs\">\n Clear all ({selectedOptions.length})\n </Button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport { MultiSelect };\nexport type { MultiSelectProps };\n"],"mappings":"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","names":[]}
|
|
@@ -17,9 +17,7 @@ function MultiSelect({
|
|
|
17
17
|
maxDisplay = 3
|
|
18
18
|
}) {
|
|
19
19
|
const [open, setOpen] = React.useState(false);
|
|
20
|
-
const selectedOptions = options.filter(
|
|
21
|
-
(option) => value.includes(option.value)
|
|
22
|
-
);
|
|
20
|
+
const selectedOptions = options.filter((option) => value.includes(option.value));
|
|
23
21
|
const handleSelect = (optionValue) => {
|
|
24
22
|
const newValue = value.includes(optionValue) ? value.filter((v) => v !== optionValue) : [...value, optionValue];
|
|
25
23
|
onValueChange(newValue);
|
|
@@ -41,7 +39,7 @@ function MultiSelect({
|
|
|
41
39
|
Badge,
|
|
42
40
|
{
|
|
43
41
|
variant: option.variant || "secondary",
|
|
44
|
-
className: "
|
|
42
|
+
className: "h-auto px-2 py-0.5 text-xs",
|
|
45
43
|
children: [
|
|
46
44
|
option.label,
|
|
47
45
|
/* @__PURE__ */ jsx(
|
|
@@ -74,21 +72,15 @@ function MultiSelect({
|
|
|
74
72
|
"aria-expanded": open,
|
|
75
73
|
"data-slot": "multi-select",
|
|
76
74
|
className: cn(
|
|
77
|
-
"
|
|
75
|
+
"h-auto min-h-[2.5rem] w-full justify-between py-2 hover:bg-muted hover:text-foreground",
|
|
78
76
|
selectedOptions.length === 0 && "text-muted-foreground",
|
|
79
77
|
className
|
|
80
78
|
),
|
|
81
79
|
disabled,
|
|
82
80
|
children: [
|
|
83
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 text-left
|
|
84
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1
|
|
85
|
-
selectedOptions.length > 0 && /* @__PURE__ */ jsx(
|
|
86
|
-
X,
|
|
87
|
-
{
|
|
88
|
-
className: "h-4 w-4 shrink-0 opacity-50 hover:opacity-100",
|
|
89
|
-
onClick: handleClear
|
|
90
|
-
}
|
|
91
|
-
),
|
|
81
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden text-left", children: displayText() }),
|
|
82
|
+
/* @__PURE__ */ jsxs("div", { className: "ml-2 flex items-center gap-1", children: [
|
|
83
|
+
selectedOptions.length > 0 && /* @__PURE__ */ jsx(X, { className: "h-4 w-4 shrink-0 opacity-50 hover:opacity-100", onClick: handleClear }),
|
|
92
84
|
/* @__PURE__ */ jsx(ChevronDown, { className: "h-4 w-4 shrink-0 opacity-50" })
|
|
93
85
|
] })
|
|
94
86
|
]
|
|
@@ -99,7 +91,7 @@ function MultiSelect({
|
|
|
99
91
|
"div",
|
|
100
92
|
{
|
|
101
93
|
className: cn(
|
|
102
|
-
"flex items-center space-x-2 rounded-sm px-2 py-1.5 text-sm
|
|
94
|
+
"flex cursor-pointer items-center space-x-2 rounded-sm px-2 py-1.5 text-sm transition-colors hover:bg-muted",
|
|
103
95
|
value.includes(option.value) && "bg-muted/50 font-medium"
|
|
104
96
|
),
|
|
105
97
|
onClick: () => handleSelect(option.value),
|
|
@@ -116,20 +108,11 @@ function MultiSelect({
|
|
|
116
108
|
},
|
|
117
109
|
option.value
|
|
118
110
|
)) }) }),
|
|
119
|
-
selectedOptions.length > 0 && /* @__PURE__ */ jsx("div", { className: "border-t p-2", children: /* @__PURE__ */ jsxs(
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
onClick: handleClear,
|
|
125
|
-
className: "w-full text-xs",
|
|
126
|
-
children: [
|
|
127
|
-
"Clear all (",
|
|
128
|
-
selectedOptions.length,
|
|
129
|
-
")"
|
|
130
|
-
]
|
|
131
|
-
}
|
|
132
|
-
) })
|
|
111
|
+
selectedOptions.length > 0 && /* @__PURE__ */ jsx("div", { className: "border-t p-2", children: /* @__PURE__ */ jsxs(Button, { variant: "ghost", size: "sm", onClick: handleClear, className: "w-full text-xs", children: [
|
|
112
|
+
"Clear all (",
|
|
113
|
+
selectedOptions.length,
|
|
114
|
+
")"
|
|
115
|
+
] }) })
|
|
133
116
|
] })
|
|
134
117
|
] });
|
|
135
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport { Badge } from \"../badge\";\nimport { Checkbox } from \"../checkbox\";\n\nexport interface MultiSelectOption {\n value: string;\n label: string;\n variant?: \"default\" | \"secondary\" | \"destructive\" | \"outline\";\n}\n\ninterface MultiSelectProps {\n options: MultiSelectOption[];\n value: string[];\n onValueChange: (value: string[]) => void;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n maxDisplay?: number;\n}\n\nfunction MultiSelect({\n options,\n value,\n onValueChange,\n placeholder = \"Select options...\",\n className,\n disabled = false,\n maxDisplay = 3,\n}: MultiSelectProps) {\n const [open, setOpen] = React.useState(false);\n\n const selectedOptions = options.filter((option)
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/multi-select/multi-select.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronDown, X } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport { Badge } from \"../badge\";\nimport { Checkbox } from \"../checkbox\";\n\nexport interface MultiSelectOption {\n value: string;\n label: string;\n variant?: \"default\" | \"secondary\" | \"destructive\" | \"outline\";\n}\n\ninterface MultiSelectProps {\n options: MultiSelectOption[];\n value: string[];\n onValueChange: (value: string[]) => void;\n placeholder?: string;\n className?: string;\n disabled?: boolean;\n maxDisplay?: number;\n}\n\nfunction MultiSelect({\n options,\n value,\n onValueChange,\n placeholder = \"Select options...\",\n className,\n disabled = false,\n maxDisplay = 3,\n}: MultiSelectProps) {\n const [open, setOpen] = React.useState(false);\n\n const selectedOptions = options.filter((option) => value.includes(option.value));\n\n const handleSelect = (optionValue: string) => {\n const newValue = value.includes(optionValue)\n ? value.filter((v) => v !== optionValue)\n : [...value, optionValue];\n onValueChange(newValue);\n };\n\n const handleClear = (e: React.MouseEvent) => {\n e.stopPropagation();\n onValueChange([]);\n };\n\n const handleRemoveItem = (optionValue: string, e: React.MouseEvent) => {\n e.stopPropagation();\n onValueChange(value.filter((v) => v !== optionValue));\n };\n\n const displayText = () => {\n if (selectedOptions.length === 0) {\n return placeholder;\n }\n\n if (selectedOptions.length <= maxDisplay) {\n return (\n <div className=\"flex flex-wrap gap-1\">\n {selectedOptions.map((option) => (\n <Badge\n key={option.value}\n variant={option.variant || \"secondary\"}\n className=\"h-auto px-2 py-0.5 text-xs\"\n >\n {option.label}\n <X\n className=\"ml-1 h-3 w-3 cursor-pointer hover:text-destructive\"\n onClick={(e) => handleRemoveItem(option.value, e)}\n />\n </Badge>\n ))}\n </div>\n );\n }\n\n return (\n <div className=\"flex items-center gap-1\">\n <Badge variant=\"secondary\" className=\"text-xs\">\n {selectedOptions[0].label}\n </Badge>\n <span className=\"text-sm text-muted-foreground\">+{selectedOptions.length - 1} more</span>\n </div>\n );\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n data-slot=\"multi-select\"\n className={cn(\n \"h-auto min-h-[2.5rem] w-full justify-between py-2 hover:bg-muted hover:text-foreground\",\n selectedOptions.length === 0 && \"text-muted-foreground\",\n className,\n )}\n disabled={disabled}\n >\n <div className=\"flex-1 overflow-hidden text-left\">{displayText()}</div>\n <div className=\"ml-2 flex items-center gap-1\">\n {selectedOptions.length > 0 && (\n <X className=\"h-4 w-4 shrink-0 opacity-50 hover:opacity-100\" onClick={handleClear} />\n )}\n <ChevronDown className=\"h-4 w-4 shrink-0 opacity-50\" />\n </div>\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-full p-0\" align=\"start\">\n <div className=\"max-h-60 overflow-auto\">\n {options.length === 0 ? (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n No options available\n </div>\n ) : (\n <div className=\"p-1\">\n {options.map((option) => (\n <div\n key={option.value}\n className={cn(\n \"flex cursor-pointer items-center space-x-2 rounded-sm px-2 py-1.5 text-sm transition-colors hover:bg-muted\",\n value.includes(option.value) && \"bg-muted/50 font-medium\",\n )}\n onClick={() => handleSelect(option.value)}\n >\n <Checkbox\n checked={value.includes(option.value)}\n className=\"pointer-events-none text-primary\"\n />\n <span>{option.label}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n {selectedOptions.length > 0 && (\n <div className=\"border-t p-2\">\n <Button variant=\"ghost\" size=\"sm\" onClick={handleClear} className=\"w-full text-xs\">\n Clear all ({selectedOptions.length})\n </Button>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n\nexport { MultiSelect };\nexport type { MultiSelectProps };\n"],"mappings":"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","names":[]}
|
|
@@ -55,10 +55,7 @@ function NavigationMenu({
|
|
|
55
55
|
NavigationMenuPrimitive.Root,
|
|
56
56
|
{
|
|
57
57
|
"data-slot": "navigation-menu",
|
|
58
|
-
className: (0, import_utils.cn)(
|
|
59
|
-
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
60
|
-
className
|
|
61
|
-
),
|
|
58
|
+
className: (0, import_utils.cn)("relative z-10 flex max-w-max flex-1 items-center justify-center", className),
|
|
62
59
|
...props,
|
|
63
60
|
children: [
|
|
64
61
|
children,
|
|
@@ -75,10 +72,7 @@ function NavigationMenuList({
|
|
|
75
72
|
NavigationMenuPrimitive.List,
|
|
76
73
|
{
|
|
77
74
|
"data-slot": "navigation-menu-list",
|
|
78
|
-
className: (0, import_utils.cn)(
|
|
79
|
-
"group flex flex-1 list-none items-center justify-center gap-1",
|
|
80
|
-
className
|
|
81
|
-
),
|
|
75
|
+
className: (0, import_utils.cn)("group flex flex-1 list-none items-center justify-center gap-1", className),
|
|
82
76
|
...props
|
|
83
77
|
}
|
|
84
78
|
);
|
|
@@ -133,7 +127,7 @@ function NavigationMenuContent({
|
|
|
133
127
|
{
|
|
134
128
|
"data-slot": "navigation-menu-content",
|
|
135
129
|
className: (0, import_utils.cn)(
|
|
136
|
-
"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52
|
|
130
|
+
"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",
|
|
137
131
|
className
|
|
138
132
|
),
|
|
139
133
|
...props
|
|
@@ -144,12 +138,12 @@ function NavigationMenuViewport({
|
|
|
144
138
|
className,
|
|
145
139
|
...props
|
|
146
140
|
}) {
|
|
147
|
-
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute top-full
|
|
141
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
148
142
|
NavigationMenuPrimitive.Viewport,
|
|
149
143
|
{
|
|
150
144
|
"data-slot": "navigation-menu-viewport",
|
|
151
145
|
className: (0, import_utils.cn)(
|
|
152
|
-
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90
|
|
146
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
153
147
|
className
|
|
154
148
|
),
|
|
155
149
|
...props
|
|
@@ -178,11 +172,11 @@ function NavigationMenuIndicator({
|
|
|
178
172
|
{
|
|
179
173
|
"data-slot": "navigation-menu-indicator",
|
|
180
174
|
className: (0, import_utils.cn)(
|
|
181
|
-
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in
|
|
175
|
+
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
182
176
|
className
|
|
183
177
|
),
|
|
184
178
|
...props,
|
|
185
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "
|
|
179
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
186
180
|
}
|
|
187
181
|
);
|
|
188
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/navigation-menu/navigation-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nfunction NavigationMenu({\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/navigation-menu/navigation-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground outline-none focus-visible:ring-2 focus-visible:ring-ring/20 focus-visible:ring-offset-2\",\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBI;AAfJ,8BAAyC;AACzC,sCAAoB;AACpB,0BAAgC;AAEhC,mBAAmB;AAEnB,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW,iBAAG,mEAAmE,SAAS;AAAA,MACzF,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,YAAY,4CAAC,0BAAuB;AAAA;AAAA;AAAA,EACvC;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW,iBAAG,iEAAiE,SAAS;AAAA,MACvF,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW,iBAAG,YAAY,SAAS;AAAA,MAClC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,MAAM,iCAA6B;AAAA,EACjC;AACF;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW,iBAAG,2BAA2B,GAAG,SAAS,SAAS;AAAA,MAC7D,GAAG;AAAA,MAEH;AAAA;AAAA,QAAU;AAAA,QACX;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE,4CAAC,SAAI,WAAU,gDACb;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW,iBAAG,SAAS;AAAA,MACtB,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,wBAAwB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,GAAmE;AACjE,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,eAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,sDAAC,SAAI,WAAU,yEAAwE;AAAA;AAAA,EACzF;AAEJ;","names":[]}
|
|
@@ -14,10 +14,7 @@ function NavigationMenu({
|
|
|
14
14
|
NavigationMenuPrimitive.Root,
|
|
15
15
|
{
|
|
16
16
|
"data-slot": "navigation-menu",
|
|
17
|
-
className: cn(
|
|
18
|
-
"relative z-10 flex max-w-max flex-1 items-center justify-center",
|
|
19
|
-
className
|
|
20
|
-
),
|
|
17
|
+
className: cn("relative z-10 flex max-w-max flex-1 items-center justify-center", className),
|
|
21
18
|
...props,
|
|
22
19
|
children: [
|
|
23
20
|
children,
|
|
@@ -34,10 +31,7 @@ function NavigationMenuList({
|
|
|
34
31
|
NavigationMenuPrimitive.List,
|
|
35
32
|
{
|
|
36
33
|
"data-slot": "navigation-menu-list",
|
|
37
|
-
className: cn(
|
|
38
|
-
"group flex flex-1 list-none items-center justify-center gap-1",
|
|
39
|
-
className
|
|
40
|
-
),
|
|
34
|
+
className: cn("group flex flex-1 list-none items-center justify-center gap-1", className),
|
|
41
35
|
...props
|
|
42
36
|
}
|
|
43
37
|
);
|
|
@@ -92,7 +86,7 @@ function NavigationMenuContent({
|
|
|
92
86
|
{
|
|
93
87
|
"data-slot": "navigation-menu-content",
|
|
94
88
|
className: cn(
|
|
95
|
-
"data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52
|
|
89
|
+
"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto",
|
|
96
90
|
className
|
|
97
91
|
),
|
|
98
92
|
...props
|
|
@@ -103,12 +97,12 @@ function NavigationMenuViewport({
|
|
|
103
97
|
className,
|
|
104
98
|
...props
|
|
105
99
|
}) {
|
|
106
|
-
return /* @__PURE__ */ jsx("div", { className: "absolute top-full
|
|
100
|
+
return /* @__PURE__ */ jsx("div", { className: "absolute left-0 top-full flex justify-center", children: /* @__PURE__ */ jsx(
|
|
107
101
|
NavigationMenuPrimitive.Viewport,
|
|
108
102
|
{
|
|
109
103
|
"data-slot": "navigation-menu-viewport",
|
|
110
104
|
className: cn(
|
|
111
|
-
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90
|
|
105
|
+
"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
|
|
112
106
|
className
|
|
113
107
|
),
|
|
114
108
|
...props
|
|
@@ -137,11 +131,11 @@ function NavigationMenuIndicator({
|
|
|
137
131
|
{
|
|
138
132
|
"data-slot": "navigation-menu-indicator",
|
|
139
133
|
className: cn(
|
|
140
|
-
"data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in
|
|
134
|
+
"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in",
|
|
141
135
|
className
|
|
142
136
|
),
|
|
143
137
|
...props,
|
|
144
|
-
children: /* @__PURE__ */ jsx("div", { className: "
|
|
138
|
+
children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
|
|
145
139
|
}
|
|
146
140
|
);
|
|
147
141
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/navigation-menu/navigation-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nfunction NavigationMenu({\n
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/navigation-menu/navigation-menu.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport * as NavigationMenuPrimitive from \"@radix-ui/react-navigation-menu\";\nimport { cva } from \"class-variance-authority\";\nimport { ChevronDownIcon } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n className={cn(\"relative z-10 flex max-w-max flex-1 items-center justify-center\", className)}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\"group flex flex-1 list-none items-center justify-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n );\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-transparent px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground outline-none focus-visible:ring-2 focus-visible:ring-ring/20 focus-visible:ring-offset-2\",\n);\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-px ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className=\"absolute left-0 top-full flex justify-center\">\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className,\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in\",\n className,\n )}\n {...props}\n >\n <div className=\"relative top-[60%] size-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n};\n"],"mappings":";AAkBI,SAMe,KANf;AAfJ,YAAY,6BAA6B;AACzC,SAAS,WAAW;AACpB,SAAS,uBAAuB;AAEhC,SAAS,UAAU;AAEnB,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,mEAAmE,SAAS;AAAA,MACzF,GAAG;AAAA,MAEH;AAAA;AAAA,QACA,YAAY,oBAAC,0BAAuB;AAAA;AAAA;AAAA,EACvC;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,iEAAiE,SAAS;AAAA,MACvF,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,YAAY,SAAS;AAAA,MAClC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,MAAM,6BAA6B;AAAA,EACjC;AACF;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,2BAA2B,GAAG,SAAS,SAAS;AAAA,MAC7D,GAAG;AAAA,MAEH;AAAA;AAAA,QAAU;AAAA,QACX;AAAA,UAAC;AAAA;AAAA,YACC,WAAU;AAAA,YACV,eAAY;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE,oBAAC,SAAI,WAAU,gDACb;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAA8D;AAC5D,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,SAAS;AAAA,MACtB,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,wBAAwB;AAAA,EAC/B;AAAA,EACA,GAAG;AACL,GAAmE;AACjE,SACE;AAAA,IAAC,wBAAwB;AAAA,IAAxB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,8BAAC,SAAI,WAAU,yEAAwE;AAAA;AAAA,EACzF;AAEJ;","names":[]}
|
|
@@ -44,10 +44,7 @@ function Pagination({ className, ...props }) {
|
|
|
44
44
|
}
|
|
45
45
|
);
|
|
46
46
|
}
|
|
47
|
-
function PaginationContent({
|
|
48
|
-
className,
|
|
49
|
-
...props
|
|
50
|
-
}) {
|
|
47
|
+
function PaginationContent({ className, ...props }) {
|
|
51
48
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
52
49
|
"ul",
|
|
53
50
|
{
|
|
@@ -57,18 +54,10 @@ function PaginationContent({
|
|
|
57
54
|
}
|
|
58
55
|
);
|
|
59
56
|
}
|
|
60
|
-
function PaginationItem({
|
|
61
|
-
className,
|
|
62
|
-
...props
|
|
63
|
-
}) {
|
|
57
|
+
function PaginationItem({ className, ...props }) {
|
|
64
58
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("li", { "data-slot": "pagination-item", className: (0, import_utils.cn)("", className), ...props });
|
|
65
59
|
}
|
|
66
|
-
function PaginationLink({
|
|
67
|
-
className,
|
|
68
|
-
isActive,
|
|
69
|
-
size = "icon",
|
|
70
|
-
...props
|
|
71
|
-
}) {
|
|
60
|
+
function PaginationLink({ className, isActive, size = "icon", ...props }) {
|
|
72
61
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
73
62
|
"a",
|
|
74
63
|
{
|
|
@@ -117,10 +106,7 @@ function PaginationNext({
|
|
|
117
106
|
}
|
|
118
107
|
);
|
|
119
108
|
}
|
|
120
|
-
function PaginationEllipsis({
|
|
121
|
-
className,
|
|
122
|
-
...props
|
|
123
|
-
}) {
|
|
109
|
+
function PaginationEllipsis({ className, ...props }) {
|
|
124
110
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
125
111
|
"span",
|
|
126
112
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/ui/pagination/pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button, buttonVariants } from \"../button\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/ui/pagination/pagination.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronLeft, ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Button, buttonVariants } from \"../button\";\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationContent({ className, ...props }: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n );\n}\n\nfunction PaginationItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" className={cn(\"\", className)} {...props} />;\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean;\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">;\n\nfunction PaginationLink({ className, isActive, size = \"icon\", ...props }: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n className={cn(buttonVariants({ variant: isActive ? \"default\" : \"ghost\", size }), className)}\n {...props}\n />\n );\n}\n\nfunction PaginationPrevious({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size={size}\n className={cn(\"gap-1 pl-2.5\", className)}\n {...props}\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span>Previous</span>\n </PaginationLink>\n );\n}\n\nfunction PaginationNext({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size={size}\n className={cn(\"gap-1 pr-2.5\", className)}\n {...props}\n >\n <span>Next</span>\n <ChevronRight className=\"h-4 w-4\" />\n </PaginationLink>\n );\n}\n\nfunction PaginationEllipsis({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n );\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAUI;AAPJ,0BAA0D;AAE1D,mBAAmB;AACnB,oBAAuC;AAEvC,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,aAAU;AAAA,MACV,eAAW,iBAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC9E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,eAAW,iBAAG,oCAAoC,SAAS;AAAA,MAC1D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe,EAAE,WAAW,GAAG,MAAM,GAA+B;AAC3E,SAAO,4CAAC,QAAG,aAAU,mBAAkB,eAAW,iBAAG,IAAI,SAAS,GAAI,GAAG,OAAO;AAClF;AAOA,SAAS,eAAe,EAAE,WAAW,UAAU,OAAO,QAAQ,GAAG,MAAM,GAAwB;AAC7F,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAc,WAAW,SAAS;AAAA,MAClC,aAAU;AAAA,MACV,eAAW,qBAAG,8BAAe,EAAE,SAAS,WAAW,YAAY,SAAS,KAAK,CAAC,GAAG,SAAS;AAAA,MACzF,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAgD;AAC9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX;AAAA,MACA,eAAW,iBAAG,gBAAgB,SAAS;AAAA,MACtC,GAAG;AAAA,MAEJ;AAAA,oDAAC,mCAAY,WAAU,WAAU;AAAA,QACjC,4CAAC,UAAK,sBAAQ;AAAA;AAAA;AAAA,EAChB;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAgD;AAC9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX;AAAA,MACA,eAAW,iBAAG,gBAAgB,SAAS;AAAA,MACtC,GAAG;AAAA,MAEJ;AAAA,oDAAC,UAAK,kBAAI;AAAA,QACV,4CAAC,oCAAa,WAAU,WAAU;AAAA;AAAA;AAAA,EACpC;AAEJ;AAEA,SAAS,mBAAmB,EAAE,WAAW,GAAG,MAAM,GAAiC;AACjF,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,MACX,aAAU;AAAA,MACV,eAAW,iBAAG,4CAA4C,SAAS;AAAA,MAClE,GAAG;AAAA,MAEJ;AAAA,oDAAC,sCAAe,WAAU,WAAU;AAAA,QACpC,4CAAC,UAAK,WAAU,WAAU,wBAAU;AAAA;AAAA;AAAA,EACtC;AAEJ;","names":[]}
|