@uselets/ui 1.16.0 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/accordion-BCo2odjy.js +2 -0
- package/dist/accordion-BCo2odjy.js.map +1 -0
- package/dist/accordion-DtSr3uiA.d.ts +15 -0
- package/dist/alert-CJRgRQVF.js +2 -0
- package/dist/alert-CJRgRQVF.js.map +1 -0
- package/dist/alert-dialog-B_nAiD4Y.js +2 -0
- package/dist/alert-dialog-B_nAiD4Y.js.map +1 -0
- package/dist/alert-dialog-Bf41-OnT.d.ts +34 -0
- package/dist/alert-eivgSC_S.d.ts +18 -0
- package/dist/anchor-DCOyn0Xa.d.ts +15 -0
- package/dist/anchor-srhmShjN.js +2 -0
- package/dist/anchor-srhmShjN.js.map +1 -0
- package/dist/area-chart-DdDy8Vm3.js +2 -0
- package/dist/area-chart-DdDy8Vm3.js.map +1 -0
- package/dist/area-chart-F_4ZL20j.d.ts +40 -0
- package/dist/avatar-2ZS3Tx76.d.ts +21 -0
- package/dist/avatar-CFUwrOwG.js +2 -0
- package/dist/avatar-CFUwrOwG.js.map +1 -0
- package/dist/badge-BqpQcDFd.d.ts +16 -0
- package/dist/badge-Cuq_DqRS.js +2 -0
- package/dist/badge-Cuq_DqRS.js.map +1 -0
- package/dist/badge-DEgLmZYC.js +2 -0
- package/dist/badge-DEgLmZYC.js.map +1 -0
- package/dist/badge-gkezuSZY.d.ts +19 -0
- package/dist/bar-chart-DIgSnh_j.js +2 -0
- package/dist/bar-chart-DIgSnh_j.js.map +1 -0
- package/dist/bar-chart-DRrrfMQR.d.ts +42 -0
- package/dist/breadcrumb-CqNDAI8V.js +2 -0
- package/dist/breadcrumb-CqNDAI8V.js.map +1 -0
- package/dist/breadcrumb-DZFS9htN.d.ts +22 -0
- package/dist/button-BNGy28pv.d.ts +17 -0
- package/dist/button-CQbH5Glc.d.ts +19 -0
- package/dist/button-DGewx2nE.js +2 -0
- package/dist/button-DGewx2nE.js.map +1 -0
- package/dist/button-group-DRgqsyjS.d.ts +18 -0
- package/dist/button-group-WJ5LeouK.js +2 -0
- package/dist/button-group-WJ5LeouK.js.map +1 -0
- package/dist/button-oI3hbOgp.js +2 -0
- package/dist/button-oI3hbOgp.js.map +1 -0
- package/dist/calendar-C1GgjzIA.d.ts +17 -0
- package/dist/calendar-CW1kGXom.js +2 -0
- package/dist/calendar-CW1kGXom.js.map +1 -0
- package/dist/card-Bx6iiocl.js +2 -0
- package/dist/card-Bx6iiocl.js.map +1 -0
- package/dist/card-pWjtkTKw.d.ts +22 -0
- package/dist/carousel-C6e4eRJD.d.ts +43 -0
- package/dist/carousel-D0OTImO7.js +2 -0
- package/dist/carousel-D0OTImO7.js.map +1 -0
- package/dist/center-CFQDr205.d.ts +13 -0
- package/dist/center-Dl1rnq7S.js +2 -0
- package/dist/center-Dl1rnq7S.js.map +1 -0
- package/dist/chart-Ci4V8B8v.js +8 -0
- package/dist/chart-Ci4V8B8v.js.map +1 -0
- package/dist/checkbox-DPvW_m7k.js +2 -0
- package/dist/checkbox-DPvW_m7k.js.map +1 -0
- package/dist/checkbox-y0XBdH4a.d.ts +21 -0
- package/dist/code-A6JERAsm.js +2 -0
- package/dist/code-A6JERAsm.js.map +1 -0
- package/dist/code-Cqoacc61.d.ts +8 -0
- package/dist/collapsible-BH8BqfTd.js +2 -0
- package/dist/collapsible-BH8BqfTd.js.map +1 -0
- package/dist/collapsible-CLSCZ630.d.ts +12 -0
- package/dist/color-DJvQFSl5.d.ts +19 -0
- package/dist/color-Don4qaht.js +2 -0
- package/dist/color-Don4qaht.js.map +1 -0
- package/dist/combobox-DkCRXUxd.d.ts +51 -0
- package/dist/combobox-fNAIovsN.js +2 -0
- package/dist/combobox-fNAIovsN.js.map +1 -0
- package/dist/command-0wTb46Ym.js +2 -0
- package/dist/command-0wTb46Ym.js.map +1 -0
- package/dist/command-D4pNOx0J.d.ts +31 -0
- package/dist/components/accordion.d.ts +2 -15
- package/dist/components/accordion.js +1 -2
- package/dist/components/accordion.spec.d.ts +1 -0
- package/dist/components/accordion.spec.js +2 -0
- package/dist/components/accordion.spec.js.map +1 -0
- package/dist/components/alert-dialog.d.ts +2 -34
- package/dist/components/alert-dialog.js +1 -2
- package/dist/components/alert-dialog.spec.d.ts +1 -0
- package/dist/components/alert-dialog.spec.js +2 -0
- package/dist/components/alert-dialog.spec.js.map +1 -0
- package/dist/components/alert.d.ts +2 -18
- package/dist/components/alert.js +1 -2
- package/dist/components/alert.spec.d.ts +1 -0
- package/dist/components/alert.spec.js +2 -0
- package/dist/components/alert.spec.js.map +1 -0
- package/dist/components/anchor.d.ts +2 -15
- package/dist/components/anchor.js +1 -2
- package/dist/components/anchor.spec.d.ts +1 -0
- package/dist/components/anchor.spec.js +2 -0
- package/dist/components/anchor.spec.js.map +1 -0
- package/dist/components/area-chart.d.ts +2 -40
- package/dist/components/area-chart.js +1 -2
- package/dist/components/area-chart.spec.d.ts +1 -0
- package/dist/components/area-chart.spec.js +2 -0
- package/dist/components/area-chart.spec.js.map +1 -0
- package/dist/components/avatar.d.ts +2 -21
- package/dist/components/avatar.js +1 -2
- package/dist/components/avatar.spec.d.ts +1 -0
- package/dist/components/avatar.spec.js +2 -0
- package/dist/components/avatar.spec.js.map +1 -0
- package/dist/components/badge.d.ts +2 -16
- package/dist/components/badge.js +1 -2
- package/dist/components/badge.spec.d.ts +1 -0
- package/dist/components/badge.spec.js +2 -0
- package/dist/components/badge.spec.js.map +1 -0
- package/dist/components/bar-chart.d.ts +2 -42
- package/dist/components/bar-chart.js +1 -2
- package/dist/components/bar-chart.spec.d.ts +1 -0
- package/dist/components/bar-chart.spec.js +2 -0
- package/dist/components/bar-chart.spec.js.map +1 -0
- package/dist/components/breadcrumb.d.ts +2 -22
- package/dist/components/breadcrumb.js +1 -2
- package/dist/components/breadcrumb.spec.d.ts +1 -0
- package/dist/components/breadcrumb.spec.js +2 -0
- package/dist/components/breadcrumb.spec.js.map +1 -0
- package/dist/components/button-group.d.ts +2 -18
- package/dist/components/button-group.js +1 -2
- package/dist/components/button-group.spec.d.ts +1 -0
- package/dist/components/button-group.spec.js +2 -0
- package/dist/components/button-group.spec.js.map +1 -0
- package/dist/components/button.d.ts +2 -17
- package/dist/components/button.js +1 -2
- package/dist/components/button.spec.d.ts +1 -0
- package/dist/components/button.spec.js +2 -0
- package/dist/components/button.spec.js.map +1 -0
- package/dist/components/calendar.d.ts +2 -17
- package/dist/components/calendar.js +1 -2
- package/dist/components/calendar.spec.d.ts +1 -0
- package/dist/components/calendar.spec.js +2 -0
- package/dist/components/calendar.spec.js.map +1 -0
- package/dist/components/card.d.ts +2 -22
- package/dist/components/card.js +1 -2
- package/dist/components/card.spec.d.ts +1 -0
- package/dist/components/card.spec.js +2 -0
- package/dist/components/card.spec.js.map +1 -0
- package/dist/components/carousel.d.ts +2 -43
- package/dist/components/carousel.js +1 -2
- package/dist/components/carousel.spec.js +1 -93
- package/dist/components/carousel.spec.js.map +1 -1
- package/dist/components/center.d.ts +2 -13
- package/dist/components/center.js +1 -2
- package/dist/components/center.spec.d.ts +1 -0
- package/dist/components/center.spec.js +2 -0
- package/dist/components/center.spec.js.map +1 -0
- package/dist/components/chart.js +1 -8
- package/dist/components/chart.spec.d.ts +1 -0
- package/dist/components/chart.spec.js +2 -0
- package/dist/components/chart.spec.js.map +1 -0
- package/dist/components/checkbox.d.ts +2 -21
- package/dist/components/checkbox.js +1 -2
- package/dist/components/checkbox.spec.d.ts +1 -0
- package/dist/components/checkbox.spec.js +2 -0
- package/dist/components/checkbox.spec.js.map +1 -0
- package/dist/components/code.d.ts +2 -8
- package/dist/components/code.js +1 -2
- package/dist/components/code.spec.d.ts +1 -0
- package/dist/components/code.spec.js +2 -0
- package/dist/components/code.spec.js.map +1 -0
- package/dist/components/collapsible.d.ts +2 -12
- package/dist/components/collapsible.js +1 -2
- package/dist/components/collapsible.spec.d.ts +1 -0
- package/dist/components/collapsible.spec.js +2 -0
- package/dist/components/collapsible.spec.js.map +1 -0
- package/dist/components/combobox.d.ts +2 -51
- package/dist/components/combobox.js +1 -2
- package/dist/components/combobox.spec.d.ts +1 -0
- package/dist/components/combobox.spec.js +2 -0
- package/dist/components/combobox.spec.js.map +1 -0
- package/dist/components/command.d.ts +2 -31
- package/dist/components/command.js +1 -2
- package/dist/components/command.spec.d.ts +1 -0
- package/dist/components/command.spec.js +2 -0
- package/dist/components/command.spec.js.map +1 -0
- package/dist/components/container.d.ts +2 -12
- package/dist/components/container.js +1 -2
- package/dist/components/container.spec.d.ts +1 -0
- package/dist/components/container.spec.js +2 -0
- package/dist/components/container.spec.js.map +1 -0
- package/dist/components/data-table.d.ts +2 -111
- package/dist/components/data-table.js +1 -2
- package/dist/components/data-table.spec.d.ts +1 -0
- package/dist/components/data-table.spec.js +2 -0
- package/dist/components/data-table.spec.js.map +1 -0
- package/dist/components/date-range-picker.d.ts +3 -55
- package/dist/components/date-range-picker.js +1 -2
- package/dist/components/date-range-picker.spec.d.ts +1 -0
- package/dist/components/date-range-picker.spec.js +2 -0
- package/dist/components/date-range-picker.spec.js.map +1 -0
- package/dist/components/dialog.d.ts +2 -42
- package/dist/components/dialog.js +1 -2
- package/dist/components/dialog.spec.d.ts +1 -0
- package/dist/components/dialog.spec.js +2 -0
- package/dist/components/dialog.spec.js.map +1 -0
- package/dist/components/donut-chart.d.ts +2 -13
- package/dist/components/donut-chart.js +1 -2
- package/dist/components/donut-chart.spec.d.ts +1 -0
- package/dist/components/donut-chart.spec.js +2 -0
- package/dist/components/donut-chart.spec.js.map +1 -0
- package/dist/components/drawer.d.ts +2 -43
- package/dist/components/drawer.js +1 -2
- package/dist/components/drawer.spec.d.ts +1 -0
- package/dist/components/drawer.spec.js +2 -0
- package/dist/components/drawer.spec.js.map +1 -0
- package/dist/components/dropdown-menu.d.ts +2 -48
- package/dist/components/dropdown-menu.js +1 -2
- package/dist/components/dropdown-menu.spec.d.ts +1 -0
- package/dist/components/dropdown-menu.spec.js +2 -0
- package/dist/components/dropdown-menu.spec.js.map +1 -0
- package/dist/components/dropzone.d.ts +2 -102
- package/dist/components/dropzone.js +1 -2
- package/dist/components/dropzone.spec.d.ts +1 -0
- package/dist/components/dropzone.spec.js +2 -0
- package/dist/components/dropzone.spec.js.map +1 -0
- package/dist/components/empty.d.ts +2 -21
- package/dist/components/empty.js +1 -2
- package/dist/components/empty.spec.d.ts +1 -0
- package/dist/components/empty.spec.js +2 -0
- package/dist/components/empty.spec.js.map +1 -0
- package/dist/components/field.d.ts +2 -39
- package/dist/components/field.js +1 -2
- package/dist/components/field.spec.js +1 -1
- package/dist/components/field.spec.js.map +1 -1
- package/dist/components/flex.d.ts +2 -16
- package/dist/components/flex.js +1 -2
- package/dist/components/flex.spec.d.ts +1 -0
- package/dist/components/flex.spec.js +2 -0
- package/dist/components/flex.spec.js.map +1 -0
- package/dist/components/grid.d.ts +2 -20
- package/dist/components/grid.js +1 -2
- package/dist/components/grid.spec.d.ts +1 -0
- package/dist/components/grid.spec.js +2 -0
- package/dist/components/grid.spec.js.map +1 -0
- package/dist/components/group.d.ts +2 -15
- package/dist/components/group.js +1 -2
- package/dist/components/group.spec.d.ts +1 -0
- package/dist/components/group.spec.js +2 -0
- package/dist/components/group.spec.js.map +1 -0
- package/dist/components/heading.d.ts +2 -14
- package/dist/components/heading.js +1 -2
- package/dist/components/heading.spec.d.ts +1 -0
- package/dist/components/heading.spec.js +2 -0
- package/dist/components/heading.spec.js.map +1 -0
- package/dist/components/hover-card.d.ts +2 -13
- package/dist/components/hover-card.js +1 -2
- package/dist/components/hover-card.spec.d.ts +1 -0
- package/dist/components/hover-card.spec.js +2 -0
- package/dist/components/hover-card.spec.js.map +1 -0
- package/dist/components/input-group.d.ts +2 -26
- package/dist/components/input-group.js +1 -2
- package/dist/components/input-group.spec.d.ts +1 -0
- package/dist/components/input-group.spec.js +2 -0
- package/dist/components/input-group.spec.js.map +1 -0
- package/dist/components/input-otp.d.ts +2 -19
- package/dist/components/input-otp.js +1 -2
- package/dist/components/input-otp.spec.d.ts +1 -0
- package/dist/components/input-otp.spec.js +2 -0
- package/dist/components/input-otp.spec.js.map +1 -0
- package/dist/components/input.d.ts +2 -8
- package/dist/components/input.js +1 -2
- package/dist/components/input.spec.d.ts +1 -0
- package/dist/components/input.spec.js +2 -0
- package/dist/components/input.spec.js.map +1 -0
- package/dist/components/kbd.d.ts +2 -10
- package/dist/components/kbd.js +1 -2
- package/dist/components/kbd.spec.d.ts +1 -0
- package/dist/components/kbd.spec.js +2 -0
- package/dist/components/kbd.spec.js.map +1 -0
- package/dist/components/label.d.ts +2 -9
- package/dist/components/label.js +1 -2
- package/dist/components/label.spec.d.ts +1 -0
- package/dist/components/label.spec.js +2 -0
- package/dist/components/label.spec.js.map +1 -0
- package/dist/components/list.d.ts +2 -25
- package/dist/components/list.js +1 -2
- package/dist/components/list.spec.d.ts +1 -0
- package/dist/components/list.spec.js +2 -0
- package/dist/components/list.spec.js.map +1 -0
- package/dist/components/logo.d.ts +2 -0
- package/dist/components/logo.js +1 -0
- package/dist/components/logo.spec.d.ts +1 -0
- package/dist/components/logo.spec.js +2 -0
- package/dist/components/logo.spec.js.map +1 -0
- package/dist/components/marker.d.ts +2 -18
- package/dist/components/marker.js +1 -2
- package/dist/components/marker.spec.d.ts +1 -0
- package/dist/components/marker.spec.js +2 -0
- package/dist/components/marker.spec.js.map +1 -0
- package/dist/components/mask-input.d.ts +2 -16
- package/dist/components/mask-input.js +1 -2
- package/dist/components/mask-input.spec.d.ts +1 -0
- package/dist/components/mask-input.spec.js +2 -0
- package/dist/components/mask-input.spec.js.map +1 -0
- package/dist/components/native-select.d.ts +2 -14
- package/dist/components/native-select.js +1 -2
- package/dist/components/native-select.spec.d.ts +1 -0
- package/dist/components/native-select.spec.js +2 -0
- package/dist/components/native-select.spec.js.map +1 -0
- package/dist/components/navigation-menu.d.ts +2 -26
- package/dist/components/navigation-menu.js +1 -2
- package/dist/components/navigation-menu.spec.d.ts +1 -0
- package/dist/components/navigation-menu.spec.js +2 -0
- package/dist/components/navigation-menu.spec.js.map +1 -0
- package/dist/components/number-field.d.ts +2 -35
- package/dist/components/number-field.js +1 -2
- package/dist/components/number-field.spec.d.ts +1 -0
- package/dist/components/number-field.spec.js +2 -0
- package/dist/components/number-field.spec.js.map +1 -0
- package/dist/components/pagination.d.ts +2 -27
- package/dist/components/pagination.js +1 -2
- package/dist/components/pagination.spec.d.ts +1 -0
- package/dist/components/pagination.spec.js +2 -0
- package/dist/components/pagination.spec.js.map +1 -0
- package/dist/components/phone-input.d.ts +2 -13
- package/dist/components/phone-input.js +1 -2
- package/dist/components/phone-input.spec.d.ts +1 -0
- package/dist/components/phone-input.spec.js +2 -0
- package/dist/components/phone-input.spec.js.map +1 -0
- package/dist/components/pie-chart.d.ts +2 -42
- package/dist/components/pie-chart.js +1 -2
- package/dist/components/pie-chart.spec.d.ts +1 -0
- package/dist/components/pie-chart.spec.js +2 -0
- package/dist/components/pie-chart.spec.js.map +1 -0
- package/dist/components/popover.d.ts +2 -21
- package/dist/components/popover.js +1 -2
- package/dist/components/popover.spec.d.ts +1 -0
- package/dist/components/popover.spec.js +2 -0
- package/dist/components/popover.spec.js.map +1 -0
- package/dist/components/progress.d.ts +2 -14
- package/dist/components/progress.js +1 -2
- package/dist/components/progress.spec.d.ts +1 -0
- package/dist/components/progress.spec.js +2 -0
- package/dist/components/progress.spec.js.map +1 -0
- package/dist/components/radio-group.d.ts +2 -25
- package/dist/components/radio-group.js +1 -2
- package/dist/components/radio-group.spec.d.ts +1 -0
- package/dist/components/radio-group.spec.js +2 -0
- package/dist/components/radio-group.spec.js.map +1 -0
- package/dist/components/resizable.d.ts +2 -14
- package/dist/components/resizable.js +1 -2
- package/dist/components/resizable.spec.d.ts +1 -0
- package/dist/components/resizable.spec.js +2 -0
- package/dist/components/resizable.spec.js.map +1 -0
- package/dist/components/ring-progress.d.ts +2 -17
- package/dist/components/ring-progress.js +1 -2
- package/dist/components/ring-progress.spec.d.ts +1 -0
- package/dist/components/ring-progress.spec.js +2 -0
- package/dist/components/ring-progress.spec.js.map +1 -0
- package/dist/components/scroll-area.d.ts +2 -11
- package/dist/components/scroll-area.js +1 -2
- package/dist/components/scroll-area.spec.d.ts +1 -0
- package/dist/components/scroll-area.spec.js +2 -0
- package/dist/components/scroll-area.spec.js.map +1 -0
- package/dist/components/select.d.ts +2 -29
- package/dist/components/select.js +1 -2
- package/dist/components/select.spec.d.ts +1 -0
- package/dist/components/select.spec.js +2 -0
- package/dist/components/select.spec.js.map +1 -0
- package/dist/components/separator.d.ts +2 -9
- package/dist/components/separator.js +1 -2
- package/dist/components/separator.spec.d.ts +1 -0
- package/dist/components/separator.spec.js +2 -0
- package/dist/components/separator.spec.js.map +1 -0
- package/dist/components/sidebar.d.ts +2 -96
- package/dist/components/sidebar.js +1 -2
- package/dist/components/sidebar.spec.d.ts +1 -0
- package/dist/components/sidebar.spec.js +2 -0
- package/dist/components/sidebar.spec.js.map +1 -0
- package/dist/components/simple-grid.d.ts +2 -14
- package/dist/components/simple-grid.js +1 -2
- package/dist/components/simple-grid.spec.d.ts +1 -0
- package/dist/components/simple-grid.spec.js +2 -0
- package/dist/components/simple-grid.spec.js.map +1 -0
- package/dist/components/skeleton.d.ts +2 -10
- package/dist/components/skeleton.js +1 -2
- package/dist/components/skeleton.spec.js +1 -1
- package/dist/components/skeleton.spec.js.map +1 -1
- package/dist/components/slider.d.ts +2 -9
- package/dist/components/slider.js +1 -2
- package/dist/components/slider.spec.d.ts +1 -0
- package/dist/components/slider.spec.js +2 -0
- package/dist/components/slider.spec.js.map +1 -0
- package/dist/components/sonner.d.ts +2 -8
- package/dist/components/sonner.js +1 -2
- package/dist/components/sonner.spec.d.ts +1 -0
- package/dist/components/sonner.spec.js +2 -0
- package/dist/components/sonner.spec.js.map +1 -0
- package/dist/components/spinner.d.ts +2 -12
- package/dist/components/spinner.js +1 -2
- package/dist/components/spinner.spec.d.ts +1 -0
- package/dist/components/spinner.spec.js +2 -0
- package/dist/components/spinner.spec.js.map +1 -0
- package/dist/components/stack.d.ts +2 -14
- package/dist/components/stack.js +1 -2
- package/dist/components/stack.spec.d.ts +1 -0
- package/dist/components/stack.spec.js +2 -0
- package/dist/components/stack.spec.js.map +1 -0
- package/dist/components/stepper.d.ts +2 -71
- package/dist/components/stepper.js +1 -2
- package/dist/components/stepper.spec.d.ts +1 -0
- package/dist/components/stepper.spec.js +2 -0
- package/dist/components/stepper.spec.js.map +1 -0
- package/dist/components/switch.d.ts +2 -17
- package/dist/components/switch.js +1 -2
- package/dist/components/switch.spec.d.ts +1 -0
- package/dist/components/switch.spec.js +2 -0
- package/dist/components/switch.spec.js.map +1 -0
- package/dist/components/table.d.ts +2 -33
- package/dist/components/table.js +1 -2
- package/dist/components/table.spec.d.ts +1 -0
- package/dist/components/table.spec.js +2 -0
- package/dist/components/table.spec.js.map +1 -0
- package/dist/components/tabs.d.ts +2 -21
- package/dist/components/tabs.js +1 -2
- package/dist/components/tabs.spec.d.ts +1 -0
- package/dist/components/tabs.spec.js +2 -0
- package/dist/components/tabs.spec.js.map +1 -0
- package/dist/components/text.d.ts +2 -14
- package/dist/components/text.js +1 -2
- package/dist/components/text.spec.d.ts +1 -0
- package/dist/components/text.spec.js +2 -0
- package/dist/components/text.spec.js.map +1 -0
- package/dist/components/textarea.d.ts +2 -8
- package/dist/components/textarea.js +1 -2
- package/dist/components/textarea.spec.d.ts +1 -0
- package/dist/components/textarea.spec.js +2 -0
- package/dist/components/textarea.spec.js.map +1 -0
- package/dist/components/theme.d.ts +2 -22
- package/dist/components/theme.js +1 -2
- package/dist/components/theme.spec.d.ts +1 -0
- package/dist/components/theme.spec.js +2 -0
- package/dist/components/theme.spec.js.map +1 -0
- package/dist/components/timeline.d.ts +2 -61
- package/dist/components/timeline.js +1 -2
- package/dist/components/timeline.spec.d.ts +1 -0
- package/dist/components/timeline.spec.js +2 -0
- package/dist/components/timeline.spec.js.map +1 -0
- package/dist/components/toggle-group.d.ts +2 -16
- package/dist/components/toggle-group.js +1 -2
- package/dist/components/toggle-group.spec.d.ts +1 -0
- package/dist/components/toggle-group.spec.js +2 -0
- package/dist/components/toggle-group.spec.js.map +1 -0
- package/dist/components/toggle.d.ts +2 -15
- package/dist/components/toggle.js +1 -2
- package/dist/components/toggle.spec.d.ts +1 -0
- package/dist/components/toggle.spec.js +2 -0
- package/dist/components/toggle.spec.js.map +1 -0
- package/dist/components/tooltip.d.ts +2 -21
- package/dist/components/tooltip.js +1 -2
- package/dist/components/tooltip.spec.d.ts +1 -0
- package/dist/components/tooltip.spec.js +2 -0
- package/dist/components/tooltip.spec.js.map +1 -0
- package/dist/components/unstyled-button.d.ts +2 -10
- package/dist/components/unstyled-button.js +1 -2
- package/dist/components/unstyled-button.spec.d.ts +1 -0
- package/dist/components/unstyled-button.spec.js +2 -0
- package/dist/components/unstyled-button.spec.js.map +1 -0
- package/dist/components/visibility.d.ts +2 -17
- package/dist/components/visibility.js +1 -2
- package/dist/components/visibility.spec.d.ts +1 -0
- package/dist/components/visibility.spec.js +2 -0
- package/dist/components/visibility.spec.js.map +1 -0
- package/dist/compose-refs-DUtp7lGn.js +2 -0
- package/dist/compose-refs-DUtp7lGn.js.map +1 -0
- package/dist/compose-refs-GP3zdokU.d.ts +8 -0
- package/dist/container-B8-lt-oX.d.ts +12 -0
- package/dist/container-CikeKdez.js +2 -0
- package/dist/container-CikeKdez.js.map +1 -0
- package/dist/data-table-BT75MSO9.d.ts +111 -0
- package/dist/data-table-DcyKClKz.js +2 -0
- package/dist/data-table-DcyKClKz.js.map +1 -0
- package/dist/date-range-picker-BngvCWcR.d.ts +55 -0
- package/dist/date-range-picker-CJVpTZdT.js +2 -0
- package/dist/date-range-picker-CJVpTZdT.js.map +1 -0
- package/dist/dialog-B7I4Ky1i.js +2 -0
- package/dist/dialog-B7I4Ky1i.js.map +1 -0
- package/dist/dialog-Ej7pnact.d.ts +42 -0
- package/dist/donut-chart-BDJR8TXh.d.ts +13 -0
- package/dist/donut-chart-BHU4kDE6.js +2 -0
- package/dist/donut-chart-BHU4kDE6.js.map +1 -0
- package/dist/drawer-BO4mP6y1.js +2 -0
- package/dist/drawer-BO4mP6y1.js.map +1 -0
- package/dist/drawer-DUfJzrKE.d.ts +43 -0
- package/dist/dropdown-menu-CVDIf0Rd.d.ts +48 -0
- package/dist/dropdown-menu-zRuQQS5S.js +2 -0
- package/dist/dropdown-menu-zRuQQS5S.js.map +1 -0
- package/dist/dropzone-43h3L9Ko.d.ts +102 -0
- package/dist/dropzone-BLZkZThJ.js +2 -0
- package/dist/dropzone-BLZkZThJ.js.map +1 -0
- package/dist/empty-BhKsDYZ5.js +2 -0
- package/dist/empty-BhKsDYZ5.js.map +1 -0
- package/dist/empty-D8ZiTCVK.d.ts +21 -0
- package/dist/field-C209yHO9.d.ts +39 -0
- package/dist/field-DzR-XrO7.js +2 -0
- package/dist/field-DzR-XrO7.js.map +1 -0
- package/dist/flex-BC4Diiy4.js +2 -0
- package/dist/flex-BC4Diiy4.js.map +1 -0
- package/dist/flex-aJXipTAz.d.ts +16 -0
- package/dist/grid-B3He1bGe.js +2 -0
- package/dist/grid-B3He1bGe.js.map +1 -0
- package/dist/grid-D_aEANA7.d.ts +20 -0
- package/dist/group-B6n_lMc4.js +2 -0
- package/dist/group-B6n_lMc4.js.map +1 -0
- package/dist/group-DBtx8eSe.d.ts +15 -0
- package/dist/heading-BTXl4JfI.d.ts +14 -0
- package/dist/heading-DaxKLVRm.js +2 -0
- package/dist/heading-DaxKLVRm.js.map +1 -0
- package/dist/hooks/use-breakpoint-value.d.ts +2 -8
- package/dist/hooks/use-breakpoint-value.js +1 -2
- package/dist/hooks/use-breakpoint-value.spec.js +34 -1
- package/dist/hooks/use-breakpoint-value.spec.js.map +1 -1
- package/dist/hooks/use-breakpoint.d.ts +2 -8
- package/dist/hooks/use-breakpoint.js +1 -2
- package/dist/hooks/use-breakpoint.spec.js +1 -1
- package/dist/hooks/use-breakpoint.spec.js.map +1 -1
- package/dist/hooks/use-disclosure.d.ts +2 -22
- package/dist/hooks/use-disclosure.js +1 -2
- package/dist/hooks/use-disclosure.spec.js +1 -1
- package/dist/hooks/use-disclosure.spec.js.map +1 -1
- package/dist/hooks/use-document-visibility.d.ts +2 -6
- package/dist/hooks/use-document-visibility.js +1 -2
- package/dist/hooks/use-document-visibility.spec.js +1 -1
- package/dist/hooks/use-document-visibility.spec.js.map +1 -1
- package/dist/hooks/use-hotkeys.spec.js +1 -1
- package/dist/hooks/use-idle.d.ts +2 -13
- package/dist/hooks/use-idle.js +1 -2
- package/dist/hooks/use-idle.spec.js +1 -1
- package/dist/hooks/use-idle.spec.js.map +1 -1
- package/dist/hooks/use-interval.d.ts +2 -24
- package/dist/hooks/use-interval.js +1 -2
- package/dist/hooks/use-interval.spec.js +1 -1
- package/dist/hooks/use-local-storage.d.ts +2 -16
- package/dist/hooks/use-local-storage.js +1 -2
- package/dist/hooks/use-local-storage.spec.js +1 -1
- package/dist/hooks/use-local-storage.spec.js.map +1 -1
- package/dist/hooks/use-mask.d.ts +2 -8
- package/dist/hooks/use-mask.js +1 -2
- package/dist/hooks/use-mask.spec.d.ts +1 -0
- package/dist/hooks/use-mask.spec.js +2 -0
- package/dist/hooks/use-mask.spec.js.map +1 -0
- package/dist/hooks/use-mobile.d.ts +2 -6
- package/dist/hooks/use-mobile.js +1 -2
- package/dist/hooks/use-mobile.spec.js +1 -1
- package/dist/hover-card-C3yz2zQi.d.ts +13 -0
- package/dist/hover-card-Dc8yLsm-.js +2 -0
- package/dist/hover-card-Dc8yLsm-.js.map +1 -0
- package/dist/index.d.ts +94 -93
- package/dist/index.js +1 -1
- package/dist/input-CI3RPXz0.d.ts +8 -0
- package/dist/input-Cmjl8YdK.js +2 -0
- package/dist/input-Cmjl8YdK.js.map +1 -0
- package/dist/input-group-CBn36aMg.d.ts +26 -0
- package/dist/input-group-DsO2W3Lw.js +2 -0
- package/dist/input-group-DsO2W3Lw.js.map +1 -0
- package/dist/input-otp-CzfRHf2V.js +2 -0
- package/dist/input-otp-CzfRHf2V.js.map +1 -0
- package/dist/input-otp-gIEkdiIC.d.ts +19 -0
- package/dist/kbd-BTl3AgkY.js +2 -0
- package/dist/kbd-BTl3AgkY.js.map +1 -0
- package/dist/kbd-DELCQBD0.d.ts +10 -0
- package/dist/label-BQDEej_c.js +2 -0
- package/dist/label-BQDEej_c.js.map +1 -0
- package/dist/label-KZl6I5Ey.d.ts +9 -0
- package/dist/lib/badge.d.ts +2 -19
- package/dist/lib/badge.js +1 -2
- package/dist/lib/badge.spec.d.ts +1 -0
- package/dist/lib/badge.spec.js +2 -0
- package/dist/lib/badge.spec.js.map +1 -0
- package/dist/lib/button.d.ts +2 -19
- package/dist/lib/button.js +1 -2
- package/dist/lib/button.spec.d.ts +1 -0
- package/dist/lib/button.spec.js +2 -0
- package/dist/lib/button.spec.js.map +1 -0
- package/dist/lib/color.d.ts +2 -19
- package/dist/lib/color.js +1 -2
- package/dist/lib/color.spec.d.ts +1 -0
- package/dist/lib/color.spec.js +2 -0
- package/dist/lib/color.spec.js.map +1 -0
- package/dist/lib/compose-refs.d.ts +2 -8
- package/dist/lib/compose-refs.js +1 -2
- package/dist/lib/compose-refs.spec.d.ts +1 -0
- package/dist/lib/compose-refs.spec.js +2 -0
- package/dist/lib/compose-refs.spec.js.map +1 -0
- package/dist/lib/progress.d.ts +2 -19
- package/dist/lib/progress.js +1 -2
- package/dist/lib/progress.spec.d.ts +1 -0
- package/dist/lib/progress.spec.js +2 -0
- package/dist/lib/progress.spec.js.map +1 -0
- package/dist/lib/utils.d.ts +2 -8
- package/dist/lib/utils.js +1 -2
- package/dist/lib/utils.spec.d.ts +1 -0
- package/dist/lib/utils.spec.js +2 -0
- package/dist/lib/utils.spec.js.map +1 -0
- package/dist/list-BbCg-ndB.js +2 -0
- package/dist/list-BbCg-ndB.js.map +1 -0
- package/dist/list-DMa2j1rk.d.ts +25 -0
- package/dist/logo-B0v9bNJH.js +2 -0
- package/dist/logo-B0v9bNJH.js.map +1 -0
- package/dist/logo-Buo7sqqn.d.ts +69 -0
- package/dist/marker-4_EnMIHk.js +2 -0
- package/dist/marker-4_EnMIHk.js.map +1 -0
- package/dist/marker-C4wLa1c0.d.ts +18 -0
- package/dist/mask-input-B4R5K1h6.d.ts +16 -0
- package/dist/mask-input-ssK7U_Pl.js +2 -0
- package/dist/mask-input-ssK7U_Pl.js.map +1 -0
- package/dist/native-select-BVmdMkHY.d.ts +14 -0
- package/dist/native-select-DZW3Y7nq.js +2 -0
- package/dist/native-select-DZW3Y7nq.js.map +1 -0
- package/dist/navigation-menu-B6drNL1-.js +2 -0
- package/dist/navigation-menu-B6drNL1-.js.map +1 -0
- package/dist/navigation-menu-siQVRMUF.d.ts +26 -0
- package/dist/number-field-IdgO_BUa.d.ts +35 -0
- package/dist/number-field-rEMfZa6A.js +2 -0
- package/dist/number-field-rEMfZa6A.js.map +1 -0
- package/dist/pagination-BZ3xMXsy.d.ts +27 -0
- package/dist/pagination-gnUKddCN.js +2 -0
- package/dist/pagination-gnUKddCN.js.map +1 -0
- package/dist/phone-input-By5lNF03.d.ts +13 -0
- package/dist/phone-input-D72tVPWH.js +2 -0
- package/dist/phone-input-D72tVPWH.js.map +1 -0
- package/dist/pie-chart-CvG27kFN.d.ts +42 -0
- package/dist/pie-chart-S4nMKbsW.js +2 -0
- package/dist/pie-chart-S4nMKbsW.js.map +1 -0
- package/dist/popover-BtX3tX8M.js +2 -0
- package/dist/popover-BtX3tX8M.js.map +1 -0
- package/dist/popover-DchAqyKn.d.ts +21 -0
- package/dist/progress-DeXRCHUw.d.ts +19 -0
- package/dist/progress-QvpY7tiy.js +2 -0
- package/dist/progress-QvpY7tiy.js.map +1 -0
- package/dist/progress-icFwrvnE.js +2 -0
- package/dist/progress-icFwrvnE.js.map +1 -0
- package/dist/progress-mEAw9ZhK.d.ts +14 -0
- package/dist/radio-group-BNbepK_U.d.ts +25 -0
- package/dist/radio-group-DM8n0XPS.js +2 -0
- package/dist/radio-group-DM8n0XPS.js.map +1 -0
- package/dist/{react.esm-D5AipFQb.js → react.esm-BkhVXJ8s.js} +2 -2
- package/dist/{react.esm-D5AipFQb.js.map → react.esm-BkhVXJ8s.js.map} +1 -1
- package/dist/resizable-DMQG3xF_.d.ts +14 -0
- package/dist/resizable-Dbg7r7nF.js +2 -0
- package/dist/resizable-Dbg7r7nF.js.map +1 -0
- package/dist/ring-progress-65ccdTQQ.d.ts +17 -0
- package/dist/ring-progress-Bfqq_HHA.js +2 -0
- package/dist/ring-progress-Bfqq_HHA.js.map +1 -0
- package/dist/scroll-area-DFcj5q66.d.ts +11 -0
- package/dist/scroll-area-DKS4QPHg.js +2 -0
- package/dist/scroll-area-DKS4QPHg.js.map +1 -0
- package/dist/select-BoYp-Xyc.d.ts +29 -0
- package/dist/select-C3QYNv4t.js +2 -0
- package/dist/select-C3QYNv4t.js.map +1 -0
- package/dist/separator-BsRLiqWE.d.ts +9 -0
- package/dist/separator-CCMmbXL0.js +2 -0
- package/dist/separator-CCMmbXL0.js.map +1 -0
- package/dist/sidebar-B5bEgDy5.js +2 -0
- package/dist/sidebar-B5bEgDy5.js.map +1 -0
- package/dist/sidebar-D7HQlj5O.d.ts +96 -0
- package/dist/simple-grid-9EryoUWI.js +2 -0
- package/dist/simple-grid-9EryoUWI.js.map +1 -0
- package/dist/simple-grid-B2zjpwZ3.d.ts +14 -0
- package/dist/skeleton-Cn3zBJRe.js +2 -0
- package/dist/skeleton-Cn3zBJRe.js.map +1 -0
- package/dist/skeleton-Co8pevj-.d.ts +10 -0
- package/dist/skills/uselets-ui/references/component-catalog.md +3 -0
- package/dist/skills/uselets-ui/references/package-guide.md +1 -1
- package/dist/slider-CC-gQawq.js +2 -0
- package/dist/slider-CC-gQawq.js.map +1 -0
- package/dist/slider-DmZ1YfLg.d.ts +9 -0
- package/dist/sonner-Binx8JJ2.d.ts +8 -0
- package/dist/sonner-DrKqhTDI.js +2 -0
- package/dist/sonner-DrKqhTDI.js.map +1 -0
- package/dist/spinner-Dz63Ltq-.d.ts +12 -0
- package/dist/spinner-ntLrcDLN.js +2 -0
- package/dist/spinner-ntLrcDLN.js.map +1 -0
- package/dist/stack-BbLllsqk.js +2 -0
- package/dist/stack-BbLllsqk.js.map +1 -0
- package/dist/stack-WiND8Dxq.d.ts +14 -0
- package/dist/stepper-BQ-59_UO.js +2 -0
- package/dist/stepper-BQ-59_UO.js.map +1 -0
- package/dist/stepper-DK5_o7RG.d.ts +71 -0
- package/dist/switch-DjdOGECT.js +2 -0
- package/dist/switch-DjdOGECT.js.map +1 -0
- package/dist/switch-OtBakZHc.d.ts +17 -0
- package/dist/table-CuE0Aenj.js +2 -0
- package/dist/table-CuE0Aenj.js.map +1 -0
- package/dist/table-qIAtG7Y5.d.ts +33 -0
- package/dist/tabs-BgWxTTah.d.ts +21 -0
- package/dist/tabs-DK9-RHkP.js +2 -0
- package/dist/tabs-DK9-RHkP.js.map +1 -0
- package/dist/text-CKFZ9Xsj.d.ts +14 -0
- package/dist/text-Kg1xuinT.js +2 -0
- package/dist/text-Kg1xuinT.js.map +1 -0
- package/dist/textarea-C8zrf9Rz.js +2 -0
- package/dist/textarea-C8zrf9Rz.js.map +1 -0
- package/dist/textarea-Cr9_P-bV.d.ts +8 -0
- package/dist/theme-BwEhfTyl.d.ts +22 -0
- package/dist/theme-DZJ_cJYp.js +2 -0
- package/dist/theme-DZJ_cJYp.js.map +1 -0
- package/dist/timeline-BDY3YzeJ.d.ts +61 -0
- package/dist/timeline-pBm0t1tb.js +2 -0
- package/dist/timeline-pBm0t1tb.js.map +1 -0
- package/dist/toggle-DJJkcqDy.js +2 -0
- package/dist/toggle-DJJkcqDy.js.map +1 -0
- package/dist/toggle-group-C3iNDYqI.d.ts +16 -0
- package/dist/toggle-group-D0OIpZN-.js +2 -0
- package/dist/toggle-group-D0OIpZN-.js.map +1 -0
- package/dist/toggle-jc8s_Z3T.d.ts +15 -0
- package/dist/tooltip-BZjnEqw5.d.ts +21 -0
- package/dist/tooltip-CNUNWZvs.js +2 -0
- package/dist/tooltip-CNUNWZvs.js.map +1 -0
- package/dist/unstyled-button-C-Zs4Qv2.d.ts +10 -0
- package/dist/unstyled-button-lGbDJA55.js +2 -0
- package/dist/unstyled-button-lGbDJA55.js.map +1 -0
- package/dist/use-breakpoint-D6YACz8C.js +2 -0
- package/dist/use-breakpoint-D6YACz8C.js.map +1 -0
- package/dist/use-breakpoint-DDuQFekj.d.ts +8 -0
- package/dist/use-breakpoint-value-BDjKflDX.js +2 -0
- package/dist/use-breakpoint-value-BDjKflDX.js.map +1 -0
- package/dist/use-breakpoint-value-CRbHqGAu.d.ts +8 -0
- package/dist/use-disclosure-CNaFpYFQ.d.ts +22 -0
- package/dist/use-disclosure-Cr405eRD.js +2 -0
- package/dist/use-disclosure-Cr405eRD.js.map +1 -0
- package/dist/use-document-visibility-CoWjCswu.js +2 -0
- package/dist/use-document-visibility-CoWjCswu.js.map +1 -0
- package/dist/use-document-visibility-DIzUN4tB.d.ts +6 -0
- package/dist/use-idle-Bsi10VE9.d.ts +13 -0
- package/dist/use-idle-DgheJlxd.js +2 -0
- package/dist/use-idle-DgheJlxd.js.map +1 -0
- package/dist/use-interval-B1aNo3tA.js +2 -0
- package/dist/use-interval-B1aNo3tA.js.map +1 -0
- package/dist/use-interval-CJVmE_lC.d.ts +24 -0
- package/dist/use-local-storage-CJBqB1GC.js +2 -0
- package/dist/use-local-storage-CJBqB1GC.js.map +1 -0
- package/dist/use-local-storage-Cmq4PWJc.d.ts +16 -0
- package/dist/use-mask-DBvFShXA.js +2 -0
- package/dist/use-mask-DBvFShXA.js.map +1 -0
- package/dist/use-mask-DRJVVcdh.d.ts +8 -0
- package/dist/use-mobile-BYwiljVq.d.ts +6 -0
- package/dist/use-mobile-OMmp56u2.js +2 -0
- package/dist/use-mobile-OMmp56u2.js.map +1 -0
- package/dist/utils-DGsdoA5l.d.ts +8 -0
- package/dist/utils-DP9KtG7I.js +2 -0
- package/dist/utils-DP9KtG7I.js.map +1 -0
- package/dist/visibility-_3zV3l-A.d.ts +17 -0
- package/dist/visibility-twHwe9Xp.js +2 -0
- package/dist/visibility-twHwe9Xp.js.map +1 -0
- package/package.json +10 -8
- package/skills/uselets-ui/references/component-catalog.md +3 -0
- package/skills/uselets-ui/references/package-guide.md +1 -1
- package/dist/components/accordion.js.map +0 -1
- package/dist/components/alert-dialog.js.map +0 -1
- package/dist/components/alert.js.map +0 -1
- package/dist/components/anchor.js.map +0 -1
- package/dist/components/area-chart.js.map +0 -1
- package/dist/components/avatar.js.map +0 -1
- package/dist/components/badge.js.map +0 -1
- package/dist/components/bar-chart.js.map +0 -1
- package/dist/components/breadcrumb.js.map +0 -1
- package/dist/components/button-group.js.map +0 -1
- package/dist/components/button.js.map +0 -1
- package/dist/components/calendar.js.map +0 -1
- package/dist/components/card.js.map +0 -1
- package/dist/components/carousel.js.map +0 -1
- package/dist/components/center.js.map +0 -1
- package/dist/components/chart.js.map +0 -1
- package/dist/components/checkbox.js.map +0 -1
- package/dist/components/code.js.map +0 -1
- package/dist/components/collapsible.js.map +0 -1
- package/dist/components/combobox.js.map +0 -1
- package/dist/components/command.js.map +0 -1
- package/dist/components/container.js.map +0 -1
- package/dist/components/data-table.js.map +0 -1
- package/dist/components/date-range-picker.js.map +0 -1
- package/dist/components/dialog.js.map +0 -1
- package/dist/components/donut-chart.js.map +0 -1
- package/dist/components/drawer.js.map +0 -1
- package/dist/components/dropdown-menu.js.map +0 -1
- package/dist/components/dropzone.js.map +0 -1
- package/dist/components/empty.js.map +0 -1
- package/dist/components/field.js.map +0 -1
- package/dist/components/flex.js.map +0 -1
- package/dist/components/grid.js.map +0 -1
- package/dist/components/group.js.map +0 -1
- package/dist/components/heading.js.map +0 -1
- package/dist/components/hover-card.js.map +0 -1
- package/dist/components/input-group.js.map +0 -1
- package/dist/components/input-otp.js.map +0 -1
- package/dist/components/input.js.map +0 -1
- package/dist/components/kbd.js.map +0 -1
- package/dist/components/label.js.map +0 -1
- package/dist/components/list.js.map +0 -1
- package/dist/components/marker.js.map +0 -1
- package/dist/components/mask-input.js.map +0 -1
- package/dist/components/native-select.js.map +0 -1
- package/dist/components/navigation-menu.js.map +0 -1
- package/dist/components/number-field.js.map +0 -1
- package/dist/components/pagination.js.map +0 -1
- package/dist/components/phone-input.js.map +0 -1
- package/dist/components/pie-chart.js.map +0 -1
- package/dist/components/popover.js.map +0 -1
- package/dist/components/progress.js.map +0 -1
- package/dist/components/radio-group.js.map +0 -1
- package/dist/components/resizable.js.map +0 -1
- package/dist/components/ring-progress.js.map +0 -1
- package/dist/components/scroll-area.js.map +0 -1
- package/dist/components/select.js.map +0 -1
- package/dist/components/separator.js.map +0 -1
- package/dist/components/sidebar.js.map +0 -1
- package/dist/components/simple-grid.js.map +0 -1
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slider.js.map +0 -1
- package/dist/components/sonner.js.map +0 -1
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/stack.js.map +0 -1
- package/dist/components/stepper.js.map +0 -1
- package/dist/components/switch.js.map +0 -1
- package/dist/components/table.js.map +0 -1
- package/dist/components/tabs.js.map +0 -1
- package/dist/components/text.js.map +0 -1
- package/dist/components/textarea.js.map +0 -1
- package/dist/components/theme.js.map +0 -1
- package/dist/components/timeline.js.map +0 -1
- package/dist/components/toggle-group.js.map +0 -1
- package/dist/components/toggle.js.map +0 -1
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/unstyled-button.js.map +0 -1
- package/dist/components/visibility.js.map +0 -1
- package/dist/hooks/use-breakpoint-value.js.map +0 -1
- package/dist/hooks/use-breakpoint.js.map +0 -1
- package/dist/hooks/use-disclosure.js.map +0 -1
- package/dist/hooks/use-document-visibility.js.map +0 -1
- package/dist/hooks/use-idle.js.map +0 -1
- package/dist/hooks/use-interval.js.map +0 -1
- package/dist/hooks/use-local-storage.js.map +0 -1
- package/dist/hooks/use-mask.js.map +0 -1
- package/dist/hooks/use-mobile.js.map +0 -1
- package/dist/lib/badge.js.map +0 -1
- package/dist/lib/button.js.map +0 -1
- package/dist/lib/color.js.map +0 -1
- package/dist/lib/compose-refs.js.map +0 -1
- package/dist/lib/progress.js.map +0 -1
- package/dist/lib/utils.js.map +0 -1
- package/dist/magic-string.es-oADFB1hu.js +0 -15
- package/dist/magic-string.es-oADFB1hu.js.map +0 -1
- package/dist/utils-Cj3IZeiu.js +0 -37
- package/dist/utils-Cj3IZeiu.js.map +0 -1
|
@@ -1,17 +1,2 @@
|
|
|
1
|
-
import { n as
|
|
2
|
-
|
|
3
|
-
//#region src/components/visibility.d.ts
|
|
4
|
-
type VisibilityBreakpoint = Exclude<Breakpoint, 'base'>;
|
|
5
|
-
type HiddenFromProps = React.ComponentProps<'div'> & {
|
|
6
|
-
breakpoint: VisibilityBreakpoint;
|
|
7
|
-
children?: React.ReactNode;
|
|
8
|
-
};
|
|
9
|
-
declare function HiddenFrom({ breakpoint, children }: HiddenFromProps): import("react").JSX.Element;
|
|
10
|
-
type VisibleFromProps = {
|
|
11
|
-
breakpoint: VisibilityBreakpoint;
|
|
12
|
-
children?: React.ReactNode;
|
|
13
|
-
};
|
|
14
|
-
declare function VisibleFrom({ breakpoint, children }: VisibleFromProps): import("react").JSX.Element;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { HiddenFrom, HiddenFromProps, VisibleFrom, VisibleFromProps };
|
|
17
|
-
//# sourceMappingURL=visibility.d.ts.map
|
|
1
|
+
import { i as VisibleFromProps, n as HiddenFromProps, r as VisibleFrom, t as HiddenFrom } from "../visibility-_3zV3l-A.js";
|
|
2
|
+
export { HiddenFrom, HiddenFromProps, VisibleFrom, VisibleFromProps };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
//# sourceMappingURL=visibility.js.map
|
|
1
|
+
import{n as e,t}from"../visibility-twHwe9Xp.js";export{t as HiddenFrom,e as VisibleFrom};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"../rolldown-runtime-Bdj-bS2b.js";import{n as e,t}from"../visibility-twHwe9Xp.js";import{a as n,r,t as i}from"../react.esm-BkhVXJ8s.js";import{jsx as a}from"react/jsx-runtime";describe(`Visibility`,()=>{it(`keeps HiddenFrom children visible below the given breakpoint`,()=>{globalThis.setTestViewportWidth(320),r(a(t,{breakpoint:`md`,children:a(`button`,{type:`button`,children:`Mobile only`})}));let e=n.getByText(`Mobile only`);expect(e.getAttribute(`style`)??``).not.toContain(`display: none`)}),it(`hides HiddenFrom children at or above the given breakpoint`,()=>{globalThis.setTestViewportWidth(1024),r(a(t,{breakpoint:`md`,children:a(`button`,{type:`button`,children:`Mobile only`})}));let e=n.getByText(`Mobile only`);expect(e.getAttribute(`style`)).toContain(`display: none`)}),it(`keeps VisibleFrom children visible at or above the given breakpoint`,()=>{globalThis.setTestViewportWidth(1024),r(a(e,{breakpoint:`md`,children:a(`button`,{type:`button`,children:`Desktop only`})}));let t=n.getByText(`Desktop only`);expect(t.getAttribute(`style`)??``).not.toContain(`display: none`)}),it(`hides VisibleFrom children below the given breakpoint`,()=>{globalThis.setTestViewportWidth(320),r(a(e,{breakpoint:`md`,children:a(`button`,{type:`button`,children:`Desktop only`})}));let t=n.getByText(`Desktop only`);expect(t.getAttribute(`style`)).toContain(`display: none`)}),it(`toggles HiddenFrom visibility as the viewport crosses the breakpoint`,()=>{globalThis.setTestViewportWidth(320),r(a(t,{breakpoint:`md`,children:a(`button`,{type:`button`,children:`Responsive`})}));let e=n.getByText(`Responsive`);expect(e.getAttribute(`style`)??``).not.toContain(`display: none`),i(()=>{globalThis.setTestViewportWidth(1024)}),expect(e.getAttribute(`style`)).toContain(`display: none`)}),it(`renders nothing extra when there are no children`,()=>{globalThis.setTestViewportWidth(1024);let{container:e}=r(a(t,{breakpoint:`md`}));expect(e.innerHTML).toBe(``)})});
|
|
2
|
+
//# sourceMappingURL=visibility.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"visibility.spec.js","names":[],"sources":["../../src/components/visibility.spec.tsx"],"sourcesContent":["import { act, render, screen } from '@testing-library/react'\n\nimport { HiddenFrom, VisibleFrom } from './visibility'\n\ndescribe('Visibility', () => {\n it('keeps HiddenFrom children visible below the given breakpoint', () => {\n globalThis.setTestViewportWidth(320)\n\n render(\n <HiddenFrom breakpoint=\"md\">\n <button type=\"button\">Mobile only</button>\n </HiddenFrom>\n )\n\n const button = screen.getByText('Mobile only')\n\n expect(button.getAttribute('style') ?? '').not.toContain('display: none')\n })\n\n it('hides HiddenFrom children at or above the given breakpoint', () => {\n globalThis.setTestViewportWidth(1024)\n\n render(\n <HiddenFrom breakpoint=\"md\">\n <button type=\"button\">Mobile only</button>\n </HiddenFrom>\n )\n\n const button = screen.getByText('Mobile only')\n\n expect(button.getAttribute('style')).toContain('display: none')\n })\n\n it('keeps VisibleFrom children visible at or above the given breakpoint', () => {\n globalThis.setTestViewportWidth(1024)\n\n render(\n <VisibleFrom breakpoint=\"md\">\n <button type=\"button\">Desktop only</button>\n </VisibleFrom>\n )\n\n const button = screen.getByText('Desktop only')\n\n expect(button.getAttribute('style') ?? '').not.toContain('display: none')\n })\n\n it('hides VisibleFrom children below the given breakpoint', () => {\n globalThis.setTestViewportWidth(320)\n\n render(\n <VisibleFrom breakpoint=\"md\">\n <button type=\"button\">Desktop only</button>\n </VisibleFrom>\n )\n\n const button = screen.getByText('Desktop only')\n\n expect(button.getAttribute('style')).toContain('display: none')\n })\n\n it('toggles HiddenFrom visibility as the viewport crosses the breakpoint', () => {\n globalThis.setTestViewportWidth(320)\n\n render(\n <HiddenFrom breakpoint=\"md\">\n <button type=\"button\">Responsive</button>\n </HiddenFrom>\n )\n\n const button = screen.getByText('Responsive')\n\n expect(button.getAttribute('style') ?? '').not.toContain('display: none')\n\n act(() => {\n globalThis.setTestViewportWidth(1024)\n })\n\n expect(button.getAttribute('style')).toContain('display: none')\n })\n\n it('renders nothing extra when there are no children', () => {\n globalThis.setTestViewportWidth(1024)\n\n const { container } = render(<HiddenFrom breakpoint=\"md\" />)\n\n expect(container.innerHTML).toBe('')\n })\n})\n"],"mappings":"sLAIA,SAAS,iBAAoB,CAC3B,GAAG,mEAAsE,CACvE,WAAW,qBAAqB,GAAG,EAEnC,EACE,EAAC,EAAD,CAAY,WAAW,KACrB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,aAAmB,CAAA,CAC/B,CAAA,CACd,EAEA,IAAM,EAAS,EAAO,UAAU,aAAa,EAE7C,OAAO,EAAO,aAAa,OAAO,GAAK,EAAE,CAAC,CAAC,IAAI,UAAU,eAAe,CAC1E,CAAC,EAED,GAAG,iEAAoE,CACrE,WAAW,qBAAqB,IAAI,EAEpC,EACE,EAAC,EAAD,CAAY,WAAW,KACrB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,aAAmB,CAAA,CAC/B,CAAA,CACd,EAEA,IAAM,EAAS,EAAO,UAAU,aAAa,EAE7C,OAAO,EAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,eAAe,CAChE,CAAC,EAED,GAAG,0EAA6E,CAC9E,WAAW,qBAAqB,IAAI,EAEpC,EACE,EAAC,EAAD,CAAa,WAAW,KACtB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,cAAoB,CAAA,CAC/B,CAAA,CACf,EAEA,IAAM,EAAS,EAAO,UAAU,cAAc,EAE9C,OAAO,EAAO,aAAa,OAAO,GAAK,EAAE,CAAC,CAAC,IAAI,UAAU,eAAe,CAC1E,CAAC,EAED,GAAG,4DAA+D,CAChE,WAAW,qBAAqB,GAAG,EAEnC,EACE,EAAC,EAAD,CAAa,WAAW,KACtB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,cAAoB,CAAA,CAC/B,CAAA,CACf,EAEA,IAAM,EAAS,EAAO,UAAU,cAAc,EAE9C,OAAO,EAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,eAAe,CAChE,CAAC,EAED,GAAG,2EAA8E,CAC/E,WAAW,qBAAqB,GAAG,EAEnC,EACE,EAAC,EAAD,CAAY,WAAW,KACrB,SAAA,EAAC,SAAD,CAAQ,KAAK,SAAS,SAAA,YAAkB,CAAA,CAC9B,CAAA,CACd,EAEA,IAAM,EAAS,EAAO,UAAU,YAAY,EAE5C,OAAO,EAAO,aAAa,OAAO,GAAK,EAAE,CAAC,CAAC,IAAI,UAAU,eAAe,EAExE,MAAU,CACR,WAAW,qBAAqB,IAAI,CACtC,CAAC,EAED,OAAO,EAAO,aAAa,OAAO,CAAC,CAAC,CAAC,UAAU,eAAe,CAChE,CAAC,EAED,GAAG,uDAA0D,CAC3D,WAAW,qBAAqB,IAAI,EAEpC,GAAM,CAAE,aAAc,EAAO,EAAC,EAAD,CAAY,WAAW,IAAM,CAAA,CAAC,EAE3D,OAAO,EAAU,SAAS,CAAC,CAAC,KAAK,EAAE,CACrC,CAAC,CACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose-refs-DUtp7lGn.js","names":[],"sources":["../src/lib/compose-refs.ts"],"sourcesContent":["import type * as React from 'react'\n\nexport function setRef<T>(ref: React.Ref<T> | undefined, value: T | null) {\n if (typeof ref === 'function') {\n ref(value)\n return\n }\n\n if (ref) {\n ref.current = value\n }\n}\n\nexport function composeRefs<T>(...refs: Array<React.Ref<T> | undefined>): React.RefCallback<T> {\n return (value) => {\n refs.forEach((ref) => {\n setRef(ref, value)\n })\n }\n}\n"],"mappings":"uCAEA,SAAgB,OAAU,EAA+B,EAAiB,CACxE,GAAI,OAAO,GAAQ,WAAY,CAC7B,EAAI,CAAK,EACT,MACF,CAEI,IACF,EAAI,QAAU,EAElB,CAEA,SAAgB,YAAe,GAAG,EAA6D,CAC7F,MAAQ,IAAU,CAChB,EAAK,QAAS,GAAQ,CACpB,OAAO,EAAK,CAAK,CACnB,CAAC,CACH,CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { n as __name } from "./rolldown-runtime-Bdj-bS2b.js";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
//#region src/lib/compose-refs.d.ts
|
|
4
|
+
declare function setRef<T>(ref: React.Ref<T> | undefined, value: T | null): void;
|
|
5
|
+
declare function composeRefs<T>(...refs: Array<React.Ref<T> | undefined>): React.RefCallback<T>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { setRef as n, composeRefs as t };
|
|
8
|
+
//# sourceMappingURL=compose-refs-GP3zdokU.d.ts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { n as __name } from "./rolldown-runtime-Bdj-bS2b.js";
|
|
2
|
+
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/components/container.d.ts
|
|
5
|
+
declare const containerVariants: (props?: ({
|
|
6
|
+
size?: "full" | "lg" | "md" | "sm" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
type ContainerProps = React.ComponentProps<'div'> & VariantProps<typeof containerVariants>;
|
|
9
|
+
declare function Container({ className, size, ...props }: ContainerProps): React.JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { ContainerProps as n, containerVariants as r, Container as t };
|
|
12
|
+
//# sourceMappingURL=container-B8-lt-oX.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./rolldown-runtime-Bdj-bS2b.js";import{t as e}from"./utils-DP9KtG7I.js";import{jsx as t}from"react/jsx-runtime";import{cva as n}from"class-variance-authority";const r=n(`mx-auto w-full`,{variants:{size:{sm:`max-w-3xl px-4 sm:px-6`,md:`max-w-5xl px-4 sm:px-6 lg:px-8`,lg:`max-w-7xl px-4 sm:px-6 lg:px-8`,full:`max-w-none px-4 sm:px-6 lg:px-8`}},defaultVariants:{size:`lg`}});function Container({className:n,size:i=`lg`,...a}){return t(`div`,{"data-slot":`container`,"data-size":i,className:e(r({size:i}),n),...a})}export{r as n,Container as t};
|
|
2
|
+
//# sourceMappingURL=container-CikeKdez.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"container-CikeKdez.js","names":[],"sources":["../src/components/container.tsx"],"sourcesContent":["import type * as React from 'react'\n\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from '../lib/utils'\n\nconst containerVariants = cva('mx-auto w-full', {\n variants: {\n size: {\n sm: 'max-w-3xl px-4 sm:px-6',\n md: 'max-w-5xl px-4 sm:px-6 lg:px-8',\n lg: 'max-w-7xl px-4 sm:px-6 lg:px-8',\n full: 'max-w-none px-4 sm:px-6 lg:px-8'\n }\n },\n defaultVariants: {\n size: 'lg'\n }\n})\n\nexport type ContainerProps = React.ComponentProps<'div'> & VariantProps<typeof containerVariants>\n\nfunction Container({ className, size = 'lg', ...props }: ContainerProps) {\n return (\n <div data-slot=\"container\" data-size={size} className={cn(containerVariants({ size }), className)} {...props} />\n )\n}\n\nexport { Container, containerVariants }\n"],"mappings":"sKAMA,MAAM,EAAoB,EAAI,iBAAkB,CAC9C,SAAU,CACR,KAAM,CACJ,GAAI,yBACJ,GAAI,iCACJ,GAAI,iCACJ,KAAM,iCACR,CACF,EACA,gBAAiB,CACf,KAAM,IACR,CACF,CAAC,EAID,SAAS,UAAU,CAAE,YAAW,OAAO,KAAM,GAAG,GAAyB,CACvE,OACE,EAAC,MAAD,CAAK,YAAU,YAAY,YAAW,EAAM,UAAW,EAAG,EAAkB,CAAE,MAAK,CAAC,EAAG,CAAS,EAAG,GAAI,CAAQ,CAAA,CAEnH"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { n as __name } from "./rolldown-runtime-Bdj-bS2b.js";
|
|
2
|
+
import { t as Button } from "./button-BNGy28pv.js";
|
|
3
|
+
import { g as TableProps } from "./table-qIAtG7Y5.js";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Column, Column as Column$1, ColumnDef, ColumnDef as ColumnDef$1, RowData, RowData as RowData$1, Table, Table as TanStackTable } from "@tanstack/react-table";
|
|
6
|
+
//#region src/components/data-table.d.ts
|
|
7
|
+
type DataTableToolbarActions<TData> = React.ReactNode | ((table: Table<TData>) => React.ReactNode);
|
|
8
|
+
type DataTableLabels = {
|
|
9
|
+
filterPlaceholder: string;
|
|
10
|
+
filterColumnSelectorLabel: string;
|
|
11
|
+
emptyMessage: React.ReactNode;
|
|
12
|
+
columnsButton: string;
|
|
13
|
+
rowsPerPage: string;
|
|
14
|
+
pageOf: (current: number, total: number) => React.ReactNode;
|
|
15
|
+
goToFirstPage: string;
|
|
16
|
+
goToPreviousPage: string;
|
|
17
|
+
goToNextPage: string;
|
|
18
|
+
goToLastPage: string;
|
|
19
|
+
selectAllRows: string;
|
|
20
|
+
selectRow: string;
|
|
21
|
+
};
|
|
22
|
+
declare const defaultDataTableLabels: DataTableLabels;
|
|
23
|
+
type DataTableProps<TData extends RowData, TValue = unknown> = {
|
|
24
|
+
columns: ColumnDef<TData, TValue>[];
|
|
25
|
+
data: TData[];
|
|
26
|
+
getRowId?: (originalRow: TData, index: number, parent?: {
|
|
27
|
+
id: string;
|
|
28
|
+
}) => string;
|
|
29
|
+
filterColumns?: string | string[];
|
|
30
|
+
pageSize?: number;
|
|
31
|
+
pageSizeOptions?: number[];
|
|
32
|
+
enableRowSelection?: boolean;
|
|
33
|
+
enableSorting?: boolean;
|
|
34
|
+
showPagination?: boolean;
|
|
35
|
+
showColumnVisibility?: boolean;
|
|
36
|
+
toolbarActions?: DataTableToolbarActions<TData>;
|
|
37
|
+
labels?: Partial<DataTableLabels>;
|
|
38
|
+
className?: string;
|
|
39
|
+
tableClassName?: string;
|
|
40
|
+
variant?: TableProps['variant'];
|
|
41
|
+
};
|
|
42
|
+
type DataTableColumnHeaderProps<TData extends RowData, TValue> = React.ComponentProps<'div'> & {
|
|
43
|
+
column: Column<TData, TValue>;
|
|
44
|
+
title: React.ReactNode;
|
|
45
|
+
};
|
|
46
|
+
type DataTablePaginationProps<TData extends RowData> = React.ComponentProps<'div'> & {
|
|
47
|
+
table?: Table<TData>;
|
|
48
|
+
pageSizeOptions?: number[];
|
|
49
|
+
labels?: Partial<DataTableLabels>;
|
|
50
|
+
};
|
|
51
|
+
type DataTableViewOptionsProps<TData extends RowData> = React.ComponentProps<typeof Button> & {
|
|
52
|
+
table?: Table<TData>;
|
|
53
|
+
label?: React.ReactNode;
|
|
54
|
+
};
|
|
55
|
+
type UseDataTableOptions<TData extends RowData, TValue = unknown> = {
|
|
56
|
+
columns: ColumnDef<TData, TValue>[];
|
|
57
|
+
data: TData[];
|
|
58
|
+
getRowId?: (originalRow: TData, index: number, parent?: {
|
|
59
|
+
id: string;
|
|
60
|
+
}) => string;
|
|
61
|
+
pageSize?: number;
|
|
62
|
+
enableRowSelection?: boolean;
|
|
63
|
+
enableSorting?: boolean;
|
|
64
|
+
enablePagination?: boolean;
|
|
65
|
+
labels?: Partial<DataTableLabels>;
|
|
66
|
+
};
|
|
67
|
+
type DataTableRootProps<TData extends RowData, TValue = unknown> = {
|
|
68
|
+
labels?: Partial<DataTableLabels>;
|
|
69
|
+
className?: string;
|
|
70
|
+
children: React.ReactNode;
|
|
71
|
+
} & ({
|
|
72
|
+
table: Table<TData>;
|
|
73
|
+
columns?: never;
|
|
74
|
+
data?: never;
|
|
75
|
+
} | (Omit<UseDataTableOptions<TData, TValue>, 'labels'> & {
|
|
76
|
+
table?: never;
|
|
77
|
+
}));
|
|
78
|
+
type DataTableToolbarProps<TData extends RowData> = {
|
|
79
|
+
filterColumns?: string | string[];
|
|
80
|
+
showColumnVisibility?: boolean;
|
|
81
|
+
toolbarActions?: DataTableToolbarActions<TData>;
|
|
82
|
+
labels?: Partial<DataTableLabels>;
|
|
83
|
+
className?: string;
|
|
84
|
+
};
|
|
85
|
+
type DataTableHeaderProps = {
|
|
86
|
+
className?: string;
|
|
87
|
+
};
|
|
88
|
+
type DataTableBodyProps = {
|
|
89
|
+
emptyMessage?: React.ReactNode;
|
|
90
|
+
className?: string;
|
|
91
|
+
};
|
|
92
|
+
type DataTableContextValue<TData extends RowData> = {
|
|
93
|
+
table: Table<TData>;
|
|
94
|
+
labels: DataTableLabels;
|
|
95
|
+
};
|
|
96
|
+
declare function useDataTableContext<TData extends RowData>(): DataTableContextValue<TData>;
|
|
97
|
+
declare function useDataTable<TData extends RowData, TValue = unknown>({ columns, data, getRowId, pageSize, enableRowSelection, enableSorting, enablePagination, labels }: UseDataTableOptions<TData, TValue>): Table<TData>;
|
|
98
|
+
declare function DataTableRoot<TData extends RowData, TValue = unknown>(props: DataTableRootProps<TData, TValue>): React.JSX.Element;
|
|
99
|
+
declare function DataTableColumnHeader<TData extends RowData, TValue>({ column, title, className, ...props }: DataTableColumnHeaderProps<TData, TValue>): React.JSX.Element;
|
|
100
|
+
declare function DataTableViewOptions<TData extends RowData>({ table: tableProp, label, className, ...props }: DataTableViewOptionsProps<TData>): React.JSX.Element | null;
|
|
101
|
+
declare function DataTableToolbar<TData extends RowData>({ filterColumns, showColumnVisibility, toolbarActions, labels: labelsOverride, className }: DataTableToolbarProps<TData>): React.JSX.Element | null;
|
|
102
|
+
declare function DataTableHeader<TData extends RowData>({ className }?: DataTableHeaderProps): React.JSX.Element;
|
|
103
|
+
declare function DataTableBody<TData extends RowData>({ emptyMessage, className }?: DataTableBodyProps): React.JSX.Element;
|
|
104
|
+
declare function DataTablePagination<TData extends RowData>({ table: tableProp, pageSizeOptions, labels: labelsOverride, className, ...props }: DataTablePaginationProps<TData>): React.JSX.Element;
|
|
105
|
+
declare function createDataTableSelectColumn<TData extends RowData>(options?: {
|
|
106
|
+
labels?: Pick<Partial<DataTableLabels>, 'selectAllRows' | 'selectRow'>;
|
|
107
|
+
}): ColumnDef<TData>;
|
|
108
|
+
declare function DataTable<TData extends RowData, TValue = unknown>({ columns, data, getRowId, filterColumns, pageSize, pageSizeOptions, enableRowSelection, enableSorting, showPagination, showColumnVisibility, toolbarActions, labels, className, tableClassName, variant }: DataTableProps<TData, TValue>): React.JSX.Element;
|
|
109
|
+
//#endregion
|
|
110
|
+
export { createDataTableSelectColumn as C, useDataTableContext as E, UseDataTableOptions as S, useDataTable as T, DataTableToolbarProps as _, DataTableBodyProps as a, RowData$1 as b, DataTableHeader as c, DataTablePagination as d, DataTablePaginationProps as f, DataTableToolbar as g, DataTableRootProps as h, DataTableBody as i, DataTableHeaderProps as l, DataTableRoot as m, ColumnDef$1 as n, DataTableColumnHeader as o, DataTableProps as p, DataTable as r, DataTableColumnHeaderProps as s, Column$1 as t, DataTableLabels as u, DataTableViewOptions as v, defaultDataTableLabels as w, TanStackTable as x, DataTableViewOptionsProps as y };
|
|
111
|
+
//# sourceMappingURL=data-table-BT75MSO9.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./rolldown-runtime-Bdj-bS2b.js";import{t as e}from"./utils-DP9KtG7I.js";import{t}from"./button-oI3hbOgp.js";import{t as n}from"./checkbox-DPvW_m7k.js";import{t as r}from"./input-Cmjl8YdK.js";import{i,n as a,t as o}from"./input-group-DsO2W3Lw.js";import{h as s,i as c,n as l,r as u,t as d}from"./dropdown-menu-zRuQQS5S.js";import{i as f,l as p,n as m,r as h,t as g,u as _}from"./select-C3QYNv4t.js";import{a as v,c as y,i as b,l as x,n as S,s as C,t as w}from"./table-CuE0Aenj.js";import{IconArrowsSort as T,IconChevronLeft as E,IconChevronRight as D,IconChevronsLeft as O,IconChevronsRight as k,IconColumns3 as A,IconSortAscending as j,IconSortDescending as M}from"@tabler/icons-react";import{jsx as N,jsxs as P}from"react/jsx-runtime";import*as F from"react";import{flexRender as I,getCoreRowModel as L,getFilteredRowModel as R,getPaginationRowModel as z,getSortedRowModel as B,useReactTable as V}from"@tanstack/react-table";const H={filterPlaceholder:`Filtrar linhas...`,filterColumnSelectorLabel:`Coluna para filtrar`,emptyMessage:`Nenhum resultado.`,columnsButton:`Colunas`,rowsPerPage:`Linhas por página`,pageOf:(e,t)=>`Página ${e} de ${t}`,goToFirstPage:`Ir para a primeira página`,goToPreviousPage:`Ir para a página anterior`,goToNextPage:`Ir para a próxima página`,goToLastPage:`Ir para a última página`,selectAllRows:`Selecionar todas as linhas`,selectRow:`Selecionar linha`},U=F.createContext(null);function useDataTableContext(){let e=F.useContext(U);if(!e)throw Error(`useDataTableContext must be used within <DataTableRoot>`);return e}function useOptionalDataTableContext(){return F.useContext(U)}function renderToolbarActions(e,t){return typeof e==`function`?e(t):e}function getColumnLabel(e){return e?e.columnDef.meta?.label??e.id:``}function useDataTable({columns:e,data:t,getRowId:n,pageSize:r=10,enableRowSelection:i=!1,enableSorting:a=!1,enablePagination:o=!1,labels:s}){let[c,l]=F.useState([]),[u,d]=F.useState([]),[f,p]=F.useState({}),[m,h]=F.useState({pageIndex:0,pageSize:r}),[g,_]=F.useState({}),v=F.useMemo(()=>({...H,...s}),[s]);return V({data:t,columns:F.useMemo(()=>!i||e.some(e=>e.id===`select`)?e:[createDataTableSelectColumn({labels:{selectAllRows:v.selectAllRows,selectRow:v.selectRow}}),...e],[e,i,v.selectAllRows,v.selectRow]),getRowId:n,enableRowSelection:i,enableSorting:a,state:{sorting:c,columnFilters:u,columnVisibility:f,rowSelection:g,pagination:m},onSortingChange:l,onColumnFiltersChange:d,onColumnVisibilityChange:p,onPaginationChange:h,onRowSelectionChange:_,getCoreRowModel:L(),getFilteredRowModel:R(),getPaginationRowModel:o?z():void 0,getSortedRowModel:a?B():void 0})}function DataTableRootControlled({table:t,labels:n,className:r,children:i}){let a={table:t,labels:F.useMemo(()=>({...H,...n}),[n])};return N(U.Provider,{value:a,children:N(`div`,{className:e(`flex w-full flex-col gap-4`,r),children:i})})}function DataTableRootUncontrolled({columns:e,data:t,getRowId:n,pageSize:r,enableRowSelection:i,enableSorting:a,enablePagination:o,labels:s,className:c,children:l}){return N(DataTableRootControlled,{table:useDataTable({columns:e,data:t,getRowId:n,pageSize:r,enableRowSelection:i,enableSorting:a,enablePagination:o,labels:s}),labels:s,className:c,children:l})}function DataTableRoot(e){if(`table`in e&&e.table!==void 0){let{table:t,labels:n,className:r,children:i}=e;return N(DataTableRootControlled,{table:t,labels:n,className:r,children:i})}let{columns:t,data:n,getRowId:r,pageSize:i,enableRowSelection:a,enableSorting:o,enablePagination:s,labels:c,className:l,children:u}=e;return N(DataTableRootUncontrolled,{columns:t,data:n,getRowId:r,pageSize:i,enableRowSelection:a,enableSorting:o,enablePagination:s,labels:c,className:l,children:u})}function DataTableColumnHeader({column:n,title:r,className:i,...a}){if(!n.getCanSort())return N(`div`,{className:e(`inline-flex items-center gap-1`,i),...a,children:r});let o=n.getIsSorted();return P(`div`,{className:e(`inline-flex items-center gap-1`,i),...a,children:[r,N(t,{variant:`ghost`,color:`zinc`,size:`icon-xs`,onClick:()=>{if(o===`desc`)return n.clearSorting();n.toggleSorting(o===`asc`)},children:N(o===`desc`?M:o===`asc`?j:T,{className:`size-4`,"data-icon":`inline-end`})})]})}function DataTableViewOptions({table:n,label:r,className:i,...a}){let o=useOptionalDataTableContext(),f=n??o?.table;if(!f)throw Error("DataTableViewOptions requires a `table` prop or to be rendered within <DataTableRoot>");let p=r??o?.labels.columnsButton??H.columnsButton,m=f.getAllColumns().filter(e=>e.accessorFn!==void 0&&e.getCanHide());return m.length===0?null:P(d,{children:[N(s,{asChild:!0,children:P(t,{type:`button`,variant:`outline`,color:`zinc`,size:`sm`,className:e(`ml-auto`,i),...a,children:[N(A,{"data-icon":`inline-start`}),p]})}),N(u,{align:`end`,className:`w-44`,children:N(c,{children:m.map(e=>N(l,{checked:e.getIsVisible(),onCheckedChange:t=>e.toggleVisibility(!!t),children:e.id},e.id))})})]})}function DataTableToolbar({filterColumns:t,showColumnVisibility:n,toolbarActions:s,labels:c,className:l}){let{table:u,labels:d}=useDataTableContext(),f=F.useMemo(()=>c?{...d,...c}:d,[d,c]),p=F.useMemo(()=>t?Array.isArray(t)?t:[t]:[],[t]),m=renderToolbarActions(s,u),h=p.length>0,[g,_]=F.useState(p[0]);if(F.useEffect(()=>{if(p.length===0){_(void 0);return}_(e=>e&&p.includes(e)?e:p[0])},[p]),!h&&!n&&!m)return null;let v=g?u.getColumn(g):void 0,y=v?.getFilterValue()??``,handleColumnChange=e=>{e!==g&&(g&&u.getColumn(g)?.setFilterValue(void 0),_(e))};return P(`div`,{className:e(`flex flex-col gap-2 sm:flex-row sm:items-center`,l),children:[h&&v?p.length>1?P(o,{className:`h-8 w-full sm:max-w-md`,children:[N(a,{align:`inline-start`,className:`pr-0`,children:N(`select`,{"aria-label":f.filterColumnSelectorLabel,value:g,onChange:e=>handleColumnChange(e.target.value),className:`cursor-pointer appearance-none border-0 bg-transparent pr-1 text-sm font-medium text-foreground outline-none focus:outline-none`,children:p.map(e=>N(`option`,{value:e,children:getColumnLabel(u.getColumn(e))},e))})}),N(i,{placeholder:f.filterPlaceholder,value:y,onChange:e=>v.setFilterValue(e.target.value)})]}):N(r,{placeholder:f.filterPlaceholder,value:y,onChange:e=>v.setFilterValue(e.target.value),className:`h-8 w-full sm:max-w-xs`}):null,P(`div`,{className:`flex flex-1 items-center justify-end gap-2`,children:[m,n?N(DataTableViewOptions,{table:u,label:f.columnsButton}):null]})]})}function DataTableHeader({className:e}={}){let{table:t}=useDataTableContext();return N(y,{className:e,children:t.getHeaderGroups().map(e=>N(x,{children:e.headers.map(e=>N(C,{colSpan:e.colSpan,children:e.isPlaceholder?null:I(e.column.columnDef.header,e.getContext())},e.id))},e.id))})}function DataTableBody({emptyMessage:e,className:t}={}){let{table:n,labels:r}=useDataTableContext(),i=n.getRowModel().rows,a=n.getVisibleLeafColumns().length,o=e??r.emptyMessage;return N(S,{className:t,children:i.length===0?N(x,{children:N(b,{colSpan:a,className:`h-24 text-center`,children:o})}):i.map(e=>N(x,{"data-state":e.getIsSelected()?`selected`:void 0,children:e.getVisibleCells().map(e=>N(b,{children:I(e.column.columnDef.cell,e.getContext())},e.id))},e.id))})}function DataTablePagination({table:n,pageSizeOptions:r=[10,20,30,40,50],labels:i,className:a,...o}){let s=useOptionalDataTableContext(),c=n??s?.table;if(!c)throw Error("DataTablePagination requires a `table` prop or to be rendered within <DataTableRoot>");let l=F.useMemo(()=>({...H,...s?.labels,...i}),[s?.labels,i]),u=c.getPageCount(),d=Math.max(u,1),v=c.getState().pagination.pageIndex;return N(`div`,{className:e(`flex items-center justify-end gap-4 px-2`,a),...o,children:P(`div`,{className:`flex items-center gap-6 lg:gap-8`,children:[P(`div`,{className:`hidden items-center gap-2 sm:flex`,children:[N(`p`,{className:`text-sm font-medium`,children:l.rowsPerPage}),P(g,{value:`${c.getState().pagination.pageSize}`,onValueChange:e=>c.setPageSize(Number(e)),children:[N(p,{size:`sm`,className:`h-8 w-20`,children:N(_,{})}),N(m,{side:`top`,children:N(h,{children:r.map(e=>N(f,{value:`${e}`,children:e},e))})})]})]}),N(`div`,{className:`text-sm font-medium`,children:l.pageOf(v+1,d)}),P(`div`,{className:`flex items-center gap-1`,children:[N(t,{type:`button`,variant:`outline`,color:`zinc`,size:`icon-sm`,className:`hidden lg:inline-flex`,onClick:()=>c.setPageIndex(0),disabled:!c.getCanPreviousPage(),"aria-label":l.goToFirstPage,children:N(O,{})}),N(t,{type:`button`,variant:`outline`,color:`zinc`,size:`icon-sm`,onClick:()=>c.previousPage(),disabled:!c.getCanPreviousPage(),"aria-label":l.goToPreviousPage,children:N(E,{})}),N(t,{type:`button`,variant:`outline`,color:`zinc`,size:`icon-sm`,onClick:()=>c.nextPage(),disabled:!c.getCanNextPage(),"aria-label":l.goToNextPage,children:N(D,{})}),N(t,{type:`button`,variant:`outline`,color:`zinc`,size:`icon-sm`,className:`hidden lg:inline-flex`,onClick:()=>c.setPageIndex(u-1),disabled:!c.getCanNextPage(),"aria-label":l.goToLastPage,children:N(k,{})})]})]})})}function createDataTableSelectColumn(e){let t=e?.labels?.selectAllRows??H.selectAllRows,r=e?.labels?.selectRow??H.selectRow;return{id:`select`,enableSorting:!1,enableHiding:!1,header:({table:e})=>N(n,{"aria-label":t,checked:e.getIsAllPageRowsSelected()||e.getIsSomePageRowsSelected()&&`indeterminate`,onCheckedChange:t=>e.toggleAllPageRowsSelected(!!t)}),cell:({row:e})=>N(n,{"aria-label":r,checked:e.getIsSelected()||e.getIsSomeSelected()&&`indeterminate`,disabled:!e.getCanSelect(),onCheckedChange:t=>e.toggleSelected(!!t)})}}function DataTable({columns:e,data:t,getRowId:n,filterColumns:r,pageSize:i=10,pageSizeOptions:a,enableRowSelection:o=!1,enableSorting:s=!1,showPagination:c=!1,showColumnVisibility:l=!1,toolbarActions:u,labels:d,className:f,tableClassName:p,variant:m}){return P(DataTableRoot,{columns:e,data:t,getRowId:n,pageSize:i,enableRowSelection:o,enableSorting:s,labels:d,className:f,children:[N(DataTableToolbar,{filterColumns:r,showColumnVisibility:l,toolbarActions:u}),N(v,{children:P(w,{className:p,variant:m,children:[N(DataTableHeader,{}),N(DataTableBody,{})]})}),c?N(DataTablePagination,{pageSizeOptions:a}):null]})}export{DataTablePagination as a,DataTableViewOptions as c,useDataTable as d,useDataTableContext as f,DataTableHeader as i,createDataTableSelectColumn as l,DataTableBody as n,DataTableRoot as o,DataTableColumnHeader as r,DataTableToolbar as s,DataTable as t,H as u};
|
|
2
|
+
//# sourceMappingURL=data-table-DcyKClKz.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-DcyKClKz.js","names":["Table"],"sources":["../src/components/data-table.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport {\n IconArrowsSort,\n IconChevronLeft,\n IconChevronRight,\n IconChevronsLeft,\n IconChevronsRight,\n IconColumns3,\n IconSortAscending,\n IconSortDescending\n} from '@tabler/icons-react'\nimport type {\n Column,\n ColumnDef,\n ColumnFiltersState,\n PaginationState,\n RowData,\n RowSelectionState,\n SortingState,\n Table as TanStackTable,\n VisibilityState\n} from '@tanstack/react-table'\nimport {\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable\n} from '@tanstack/react-table'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Checkbox } from './checkbox'\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuTrigger\n} from './dropdown-menu'\nimport { Input } from './input'\nimport { InputGroup, InputGroupAddon, InputGroupInput } from './input-group'\nimport { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue } from './select'\nimport { Table, TableBody, TableCell, TableContainer, TableHead, TableHeader, type TableProps, TableRow } from './table'\n\ntype DataTableToolbarActions<TData> = React.ReactNode | ((table: TanStackTable<TData>) => React.ReactNode)\n\nexport type DataTableLabels = {\n filterPlaceholder: string\n filterColumnSelectorLabel: string\n emptyMessage: React.ReactNode\n columnsButton: string\n rowsPerPage: string\n pageOf: (current: number, total: number) => React.ReactNode\n goToFirstPage: string\n goToPreviousPage: string\n goToNextPage: string\n goToLastPage: string\n selectAllRows: string\n selectRow: string\n}\n\nexport const defaultDataTableLabels: DataTableLabels = {\n filterPlaceholder: 'Filtrar linhas...',\n filterColumnSelectorLabel: 'Coluna para filtrar',\n emptyMessage: 'Nenhum resultado.',\n columnsButton: 'Colunas',\n rowsPerPage: 'Linhas por página',\n pageOf: (current, total) => `Página ${current} de ${total}`,\n goToFirstPage: 'Ir para a primeira página',\n goToPreviousPage: 'Ir para a página anterior',\n goToNextPage: 'Ir para a próxima página',\n goToLastPage: 'Ir para a última página',\n selectAllRows: 'Selecionar todas as linhas',\n selectRow: 'Selecionar linha'\n}\n\nexport type DataTableProps<TData extends RowData, TValue = unknown> = {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n getRowId?: (originalRow: TData, index: number, parent?: { id: string }) => string\n filterColumns?: string | string[]\n pageSize?: number\n pageSizeOptions?: number[]\n enableRowSelection?: boolean\n enableSorting?: boolean\n showPagination?: boolean\n showColumnVisibility?: boolean\n toolbarActions?: DataTableToolbarActions<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n tableClassName?: string\n variant?: TableProps['variant']\n}\n\nexport type DataTableColumnHeaderProps<TData extends RowData, TValue> = React.ComponentProps<'div'> & {\n column: Column<TData, TValue>\n title: React.ReactNode\n}\n\nexport type DataTablePaginationProps<TData extends RowData> = React.ComponentProps<'div'> & {\n table?: TanStackTable<TData>\n pageSizeOptions?: number[]\n labels?: Partial<DataTableLabels>\n}\n\nexport type DataTableViewOptionsProps<TData extends RowData> = React.ComponentProps<typeof Button> & {\n table?: TanStackTable<TData>\n label?: React.ReactNode\n}\n\nexport type UseDataTableOptions<TData extends RowData, TValue = unknown> = {\n columns: ColumnDef<TData, TValue>[]\n data: TData[]\n getRowId?: (originalRow: TData, index: number, parent?: { id: string }) => string\n pageSize?: number\n enableRowSelection?: boolean\n enableSorting?: boolean\n enablePagination?: boolean\n labels?: Partial<DataTableLabels>\n}\n\nexport type DataTableRootProps<TData extends RowData, TValue = unknown> = {\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n} & (\n | { table: TanStackTable<TData>; columns?: never; data?: never }\n | (Omit<UseDataTableOptions<TData, TValue>, 'labels'> & { table?: never })\n)\n\nexport type DataTableToolbarProps<TData extends RowData> = {\n filterColumns?: string | string[]\n showColumnVisibility?: boolean\n toolbarActions?: DataTableToolbarActions<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n}\n\nexport type DataTableHeaderProps = {\n className?: string\n}\n\nexport type DataTableBodyProps = {\n emptyMessage?: React.ReactNode\n className?: string\n}\n\ntype DataTableContextValue<TData extends RowData> = {\n table: TanStackTable<TData>\n labels: DataTableLabels\n}\n\nconst DataTableContext = React.createContext<DataTableContextValue<RowData> | null>(null)\n\nexport function useDataTableContext<TData extends RowData>(): DataTableContextValue<TData> {\n const ctx = React.useContext(DataTableContext)\n if (!ctx) {\n throw new Error('useDataTableContext must be used within <DataTableRoot>')\n }\n return ctx as unknown as DataTableContextValue<TData>\n}\n\nfunction useOptionalDataTableContext<TData extends RowData>(): DataTableContextValue<TData> | null {\n const ctx = React.useContext(DataTableContext)\n return ctx as unknown as DataTableContextValue<TData> | null\n}\n\nfunction renderToolbarActions<TData extends RowData>(\n actions: DataTableToolbarActions<TData> | undefined,\n table: TanStackTable<TData>\n) {\n return typeof actions === 'function' ? actions(table) : actions\n}\n\nfunction getColumnLabel<TData extends RowData>(column: ReturnType<TanStackTable<TData>['getColumn']>): string {\n if (!column) {\n return ''\n }\n const meta = column.columnDef.meta as { label?: string } | undefined\n return meta?.label ?? column.id\n}\n\nexport function useDataTable<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n pageSize = 10,\n enableRowSelection = false,\n enableSorting = false,\n enablePagination = false,\n labels\n}: UseDataTableOptions<TData, TValue>): TanStackTable<TData> {\n const [sorting, setSorting] = React.useState<SortingState>([])\n const [columnFilters, setColumnFilters] = React.useState<ColumnFiltersState>([])\n const [columnVisibility, setColumnVisibility] = React.useState<VisibilityState>({})\n const [pagination, setPagination] = React.useState<PaginationState>({\n pageIndex: 0,\n pageSize\n })\n const [rowSelection, setRowSelection] = React.useState<RowSelectionState>({})\n\n const mergedLabels = React.useMemo(() => ({ ...defaultDataTableLabels, ...labels }), [labels])\n const resolvedColumns = React.useMemo<ColumnDef<TData, TValue>[]>(() => {\n if (!enableRowSelection) {\n return columns\n }\n if (columns.some((column) => column.id === 'select')) {\n return columns\n }\n return [\n createDataTableSelectColumn<TData>({\n labels: { selectAllRows: mergedLabels.selectAllRows, selectRow: mergedLabels.selectRow }\n }) as ColumnDef<TData, TValue>,\n ...columns\n ]\n }, [columns, enableRowSelection, mergedLabels.selectAllRows, mergedLabels.selectRow])\n\n return useReactTable({\n data,\n columns: resolvedColumns,\n getRowId,\n enableRowSelection,\n enableSorting,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n pagination\n },\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n onRowSelectionChange: setRowSelection,\n getCoreRowModel: getCoreRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getPaginationRowModel: enablePagination ? getPaginationRowModel() : undefined,\n getSortedRowModel: enableSorting ? getSortedRowModel() : undefined\n })\n}\n\nfunction DataTableRootControlled<TData extends RowData>({\n table,\n labels,\n className,\n children\n}: {\n table: TanStackTable<TData>\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n}) {\n const mergedLabels = React.useMemo(() => ({ ...defaultDataTableLabels, ...labels }), [labels])\n const value: DataTableContextValue<TData> = { table, labels: mergedLabels }\n return (\n <DataTableContext.Provider value={value as unknown as DataTableContextValue<RowData>}>\n <div className={cn('flex w-full flex-col gap-4', className)}>{children}</div>\n </DataTableContext.Provider>\n )\n}\n\nfunction DataTableRootUncontrolled<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels,\n className,\n children\n}: Omit<UseDataTableOptions<TData, TValue>, 'labels'> & {\n labels?: Partial<DataTableLabels>\n className?: string\n children: React.ReactNode\n}) {\n const table = useDataTable<TData, TValue>({\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels\n })\n return (\n <DataTableRootControlled table={table} labels={labels} className={className}>\n {children}\n </DataTableRootControlled>\n )\n}\n\nfunction DataTableRoot<TData extends RowData, TValue = unknown>(props: DataTableRootProps<TData, TValue>) {\n if ('table' in props && props.table !== undefined) {\n const { table, labels, className, children } = props\n return (\n <DataTableRootControlled table={table} labels={labels} className={className}>\n {children}\n </DataTableRootControlled>\n )\n }\n const {\n columns,\n data,\n getRowId,\n pageSize,\n enableRowSelection,\n enableSorting,\n enablePagination,\n labels,\n className,\n children\n } = props\n return (\n <DataTableRootUncontrolled<TData, TValue>\n columns={columns!}\n data={data!}\n getRowId={getRowId}\n pageSize={pageSize}\n enableRowSelection={enableRowSelection}\n enableSorting={enableSorting}\n enablePagination={enablePagination}\n labels={labels}\n className={className}\n >\n {children}\n </DataTableRootUncontrolled>\n )\n}\n\nfunction DataTableColumnHeader<TData extends RowData, TValue>({\n column,\n title,\n className,\n ...props\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return (\n <div className={cn('inline-flex items-center gap-1', className)} {...props}>\n {title}\n </div>\n )\n }\n\n const sorted = column.getIsSorted()\n\n return (\n <div className={cn('inline-flex items-center gap-1', className)} {...props}>\n {title}\n <Button\n variant=\"ghost\"\n color=\"zinc\"\n size=\"icon-xs\"\n onClick={() => {\n if (sorted === 'desc') return column.clearSorting()\n column.toggleSorting(sorted === 'asc')\n }}\n >\n {sorted === 'desc' ? (\n <IconSortDescending className=\"size-4\" data-icon=\"inline-end\" />\n ) : sorted === 'asc' ? (\n <IconSortAscending className=\"size-4\" data-icon=\"inline-end\" />\n ) : (\n <IconArrowsSort className=\"size-4\" data-icon=\"inline-end\" />\n )}\n </Button>\n </div>\n )\n}\n\nfunction DataTableViewOptions<TData extends RowData>({\n table: tableProp,\n label,\n className,\n ...props\n}: DataTableViewOptionsProps<TData>) {\n const ctx = useOptionalDataTableContext<TData>()\n const table = tableProp ?? ctx?.table\n if (!table) {\n throw new Error('DataTableViewOptions requires a `table` prop or to be rendered within <DataTableRoot>')\n }\n const resolvedLabel = label ?? ctx?.labels.columnsButton ?? defaultDataTableLabels.columnsButton\n const columns = table\n .getAllColumns()\n .filter((column) => typeof column.accessorFn !== 'undefined' && column.getCanHide())\n\n if (columns.length === 0) {\n return null\n }\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button type=\"button\" variant=\"outline\" color=\"zinc\" size=\"sm\" className={cn('ml-auto', className)} {...props}>\n <IconColumns3 data-icon=\"inline-start\" />\n {resolvedLabel}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-44\">\n <DropdownMenuGroup>\n {columns.map((column) => (\n <DropdownMenuCheckboxItem\n key={column.id}\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(Boolean(value))}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n ))}\n </DropdownMenuGroup>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n\nfunction DataTableToolbar<TData extends RowData>({\n filterColumns,\n showColumnVisibility,\n toolbarActions,\n labels: labelsOverride,\n className\n}: DataTableToolbarProps<TData>) {\n const { table, labels: contextLabels } = useDataTableContext<TData>()\n const labels = React.useMemo(\n () => (labelsOverride ? { ...contextLabels, ...labelsOverride } : contextLabels),\n [contextLabels, labelsOverride]\n )\n const filterColumnIds = React.useMemo<string[]>(() => {\n if (!filterColumns) {\n return []\n }\n return Array.isArray(filterColumns) ? filterColumns : [filterColumns]\n }, [filterColumns])\n\n const actions = renderToolbarActions(toolbarActions, table)\n const hasFilter = filterColumnIds.length > 0\n const [activeFilterColumn, setActiveFilterColumn] = React.useState<string | undefined>(filterColumnIds[0])\n\n React.useEffect(() => {\n if (filterColumnIds.length === 0) {\n setActiveFilterColumn(undefined)\n return\n }\n setActiveFilterColumn((current) => (current && filterColumnIds.includes(current) ? current : filterColumnIds[0]))\n }, [filterColumnIds])\n\n if (!hasFilter && !showColumnVisibility && !actions) {\n return null\n }\n\n const activeColumn = activeFilterColumn ? table.getColumn(activeFilterColumn) : undefined\n const filterValue = (activeColumn?.getFilterValue() as string | undefined) ?? ''\n\n const handleColumnChange = (nextId: string) => {\n if (nextId === activeFilterColumn) {\n return\n }\n if (activeFilterColumn) {\n table.getColumn(activeFilterColumn)?.setFilterValue(undefined)\n }\n setActiveFilterColumn(nextId)\n }\n\n return (\n <div className={cn('flex flex-col gap-2 sm:flex-row sm:items-center', className)}>\n {hasFilter && activeColumn ? (\n filterColumnIds.length > 1 ? (\n <InputGroup className=\"h-8 w-full sm:max-w-md\">\n <InputGroupAddon align=\"inline-start\" className=\"pr-0\">\n <select\n aria-label={labels.filterColumnSelectorLabel}\n value={activeFilterColumn}\n onChange={(event) => handleColumnChange(event.target.value)}\n className=\"cursor-pointer appearance-none border-0 bg-transparent pr-1 text-sm font-medium text-foreground outline-none focus:outline-none\"\n >\n {filterColumnIds.map((id) => (\n <option key={id} value={id}>\n {getColumnLabel(table.getColumn(id))}\n </option>\n ))}\n </select>\n </InputGroupAddon>\n <InputGroupInput\n placeholder={labels.filterPlaceholder}\n value={filterValue}\n onChange={(event) => activeColumn.setFilterValue(event.target.value)}\n />\n </InputGroup>\n ) : (\n <Input\n placeholder={labels.filterPlaceholder}\n value={filterValue}\n onChange={(event) => activeColumn.setFilterValue(event.target.value)}\n className=\"h-8 w-full sm:max-w-xs\"\n />\n )\n ) : null}\n <div className=\"flex flex-1 items-center justify-end gap-2\">\n {actions}\n {showColumnVisibility ? <DataTableViewOptions table={table} label={labels.columnsButton} /> : null}\n </div>\n </div>\n )\n}\n\nfunction DataTableHeader<TData extends RowData>({ className }: DataTableHeaderProps = {}) {\n const { table } = useDataTableContext<TData>()\n return (\n <TableHeader className={className}>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id} colSpan={header.colSpan}>\n {header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext())}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n )\n}\n\nfunction DataTableBody<TData extends RowData>({ emptyMessage, className }: DataTableBodyProps = {}) {\n const { table, labels } = useDataTableContext<TData>()\n const rows = table.getRowModel().rows\n const visibleColumnCount = table.getVisibleLeafColumns().length\n const resolvedEmptyMessage = emptyMessage ?? labels.emptyMessage\n\n return (\n <TableBody className={className}>\n {rows.length === 0 ? (\n <TableRow>\n <TableCell colSpan={visibleColumnCount} className=\"h-24 text-center\">\n {resolvedEmptyMessage}\n </TableCell>\n </TableRow>\n ) : (\n rows.map((row) => (\n <TableRow key={row.id} data-state={row.getIsSelected() ? 'selected' : undefined}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>{flexRender(cell.column.columnDef.cell, cell.getContext())}</TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n )\n}\n\nfunction DataTablePagination<TData extends RowData>({\n table: tableProp,\n pageSizeOptions = [10, 20, 30, 40, 50],\n labels: labelsOverride,\n className,\n ...props\n}: DataTablePaginationProps<TData>) {\n const ctx = useOptionalDataTableContext<TData>()\n const table = tableProp ?? ctx?.table\n if (!table) {\n throw new Error('DataTablePagination requires a `table` prop or to be rendered within <DataTableRoot>')\n }\n const mergedLabels = React.useMemo(\n () => ({ ...defaultDataTableLabels, ...ctx?.labels, ...labelsOverride }),\n [ctx?.labels, labelsOverride]\n )\n const pageCount = table.getPageCount()\n const safePageCount = Math.max(pageCount, 1)\n const pageIndex = table.getState().pagination.pageIndex\n\n return (\n <div className={cn('flex items-center justify-end gap-4 px-2', className)} {...props}>\n <div className=\"flex items-center gap-6 lg:gap-8\">\n <div className=\"hidden items-center gap-2 sm:flex\">\n <p className=\"text-sm font-medium\">{mergedLabels.rowsPerPage}</p>\n <Select\n value={`${table.getState().pagination.pageSize}`}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger size=\"sm\" className=\"h-8 w-20\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent side=\"top\">\n <SelectGroup>\n {pageSizeOptions.map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectGroup>\n </SelectContent>\n </Select>\n </div>\n <div className=\"text-sm font-medium\">{mergedLabels.pageOf(pageIndex + 1, safePageCount)}</div>\n <div className=\"flex items-center gap-1\">\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"zinc\"\n size=\"icon-sm\"\n className=\"hidden lg:inline-flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n aria-label={mergedLabels.goToFirstPage}\n >\n <IconChevronsLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"zinc\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label={mergedLabels.goToPreviousPage}\n >\n <IconChevronLeft />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"zinc\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label={mergedLabels.goToNextPage}\n >\n <IconChevronRight />\n </Button>\n <Button\n type=\"button\"\n variant=\"outline\"\n color=\"zinc\"\n size=\"icon-sm\"\n className=\"hidden lg:inline-flex\"\n onClick={() => table.setPageIndex(pageCount - 1)}\n disabled={!table.getCanNextPage()}\n aria-label={mergedLabels.goToLastPage}\n >\n <IconChevronsRight />\n </Button>\n </div>\n </div>\n </div>\n )\n}\n\nfunction createDataTableSelectColumn<TData extends RowData>(options?: {\n labels?: Pick<Partial<DataTableLabels>, 'selectAllRows' | 'selectRow'>\n}): ColumnDef<TData> {\n const selectAllRows = options?.labels?.selectAllRows ?? defaultDataTableLabels.selectAllRows\n const selectRow = options?.labels?.selectRow ?? defaultDataTableLabels.selectRow\n\n return {\n id: 'select',\n enableSorting: false,\n enableHiding: false,\n header: ({ table }) => (\n <Checkbox\n aria-label={selectAllRows}\n checked={table.getIsAllPageRowsSelected() || (table.getIsSomePageRowsSelected() && 'indeterminate')}\n onCheckedChange={(value) => table.toggleAllPageRowsSelected(Boolean(value))}\n />\n ),\n cell: ({ row }) => (\n <Checkbox\n aria-label={selectRow}\n checked={row.getIsSelected() || (row.getIsSomeSelected() && 'indeterminate')}\n disabled={!row.getCanSelect()}\n onCheckedChange={(value) => row.toggleSelected(Boolean(value))}\n />\n )\n }\n}\n\nfunction DataTable<TData extends RowData, TValue = unknown>({\n columns,\n data,\n getRowId,\n filterColumns,\n pageSize = 10,\n pageSizeOptions,\n enableRowSelection = false,\n enableSorting = false,\n showPagination = false,\n showColumnVisibility = false,\n toolbarActions,\n labels,\n className,\n tableClassName,\n variant\n}: DataTableProps<TData, TValue>) {\n return (\n <DataTableRoot<TData, TValue>\n columns={columns}\n data={data}\n getRowId={getRowId}\n pageSize={pageSize}\n enableRowSelection={enableRowSelection}\n enableSorting={enableSorting}\n labels={labels}\n className={className}\n >\n <DataTableToolbar\n filterColumns={filterColumns}\n showColumnVisibility={showColumnVisibility}\n toolbarActions={toolbarActions}\n />\n <TableContainer>\n <Table className={tableClassName} variant={variant}>\n <DataTableHeader />\n <DataTableBody />\n </Table>\n </TableContainer>\n {showPagination ? <DataTablePagination pageSizeOptions={pageSizeOptions} /> : null}\n </DataTableRoot>\n )\n}\n\nexport type { Column, ColumnDef, RowData, Table as TanStackTable } from '@tanstack/react-table'\n\nexport {\n createDataTableSelectColumn,\n DataTable,\n DataTableBody,\n DataTableColumnHeader,\n DataTableHeader,\n DataTablePagination,\n DataTableRoot,\n DataTableToolbar,\n DataTableViewOptions\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { n as __name } from "./rolldown-runtime-Bdj-bS2b.js";
|
|
2
|
+
import { t as Button } from "./button-BNGy28pv.js";
|
|
3
|
+
import { a as DateRange, t as Calendar } from "./calendar-C1GgjzIA.js";
|
|
4
|
+
import { i as PopoverContent, t as Popover } from "./popover-DchAqyKn.js";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { Locale } from "react-day-picker";
|
|
7
|
+
//#region src/components/date-range-picker.d.ts
|
|
8
|
+
type DateRangePickerPresetOption = {
|
|
9
|
+
label: string;
|
|
10
|
+
getRange: () => DateRange;
|
|
11
|
+
};
|
|
12
|
+
type DateRangePickerProps = Omit<React.ComponentProps<typeof Popover>, 'open' | 'defaultOpen' | 'onOpenChange'> & {
|
|
13
|
+
value?: DateRange | null;
|
|
14
|
+
defaultValue?: DateRange | null;
|
|
15
|
+
onValueChange?: (range: DateRange | null) => void;
|
|
16
|
+
onApply?: (range: DateRange | null) => void;
|
|
17
|
+
onReset?: () => void;
|
|
18
|
+
open?: boolean;
|
|
19
|
+
defaultOpen?: boolean;
|
|
20
|
+
onOpenChange?: (open: boolean) => void;
|
|
21
|
+
locale?: Partial<Locale>;
|
|
22
|
+
placeholder?: string;
|
|
23
|
+
};
|
|
24
|
+
type DateRangePickerTriggerProps = React.ComponentProps<typeof Button> & {
|
|
25
|
+
asChild?: boolean;
|
|
26
|
+
};
|
|
27
|
+
type DateRangePickerValueProps = React.ComponentProps<'span'> & {
|
|
28
|
+
placeholder?: string;
|
|
29
|
+
};
|
|
30
|
+
type DateRangePickerContentProps = React.ComponentProps<typeof PopoverContent>;
|
|
31
|
+
type DateRangePickerPresetsProps = React.ComponentProps<'div'> & {
|
|
32
|
+
presets?: DateRangePickerPresetOption[];
|
|
33
|
+
};
|
|
34
|
+
type DateRangePickerPresetProps = React.ComponentProps<'button'> & {
|
|
35
|
+
selected?: boolean;
|
|
36
|
+
};
|
|
37
|
+
type DateRangePickerCalendarProps = Omit<React.ComponentProps<typeof Calendar>, 'mode' | 'numberOfMonths' | 'selected' | 'onSelect' | 'month' | 'defaultMonth'>;
|
|
38
|
+
type DateRangePickerDateFieldsProps = React.ComponentProps<'div'>;
|
|
39
|
+
type DateRangePickerActionsProps = React.ComponentProps<'div'>;
|
|
40
|
+
type DateRangePickerApplyProps = React.ComponentProps<typeof Button>;
|
|
41
|
+
type DateRangePickerResetProps = React.ComponentProps<typeof Button>;
|
|
42
|
+
declare function DateRangePicker({ value: valueProp, defaultValue, onValueChange, onApply, onReset, open: openProp, defaultOpen, onOpenChange, locale, placeholder, children, ...props }: DateRangePickerProps): React.JSX.Element;
|
|
43
|
+
declare function DateRangePickerTrigger({ className, children, asChild, variant, color, type, ...props }: DateRangePickerTriggerProps): React.JSX.Element;
|
|
44
|
+
declare function DateRangePickerValue({ className, placeholder, ...props }: DateRangePickerValueProps): React.JSX.Element;
|
|
45
|
+
declare function DateRangePickerContent({ className, align, sideOffset, children, ...props }: DateRangePickerContentProps): React.JSX.Element;
|
|
46
|
+
declare function DateRangePickerPresets({ className, presets, ...props }: DateRangePickerPresetsProps): React.JSX.Element;
|
|
47
|
+
declare function DateRangePickerPreset({ className, selected, ...props }: DateRangePickerPresetProps): React.JSX.Element;
|
|
48
|
+
declare function DateRangePickerCalendar({ className, showOutsideDays, onMonthChange, ...props }: DateRangePickerCalendarProps): React.JSX.Element;
|
|
49
|
+
declare function DateRangePickerDateFields({ className, ...props }: DateRangePickerDateFieldsProps): React.JSX.Element;
|
|
50
|
+
declare function DateRangePickerActions({ className, children, ...props }: DateRangePickerActionsProps): React.JSX.Element;
|
|
51
|
+
declare function DateRangePickerApply({ children, onClick, className, ...props }: DateRangePickerApplyProps): React.JSX.Element;
|
|
52
|
+
declare function DateRangePickerReset({ children, onClick, variant, color, className, ...props }: DateRangePickerResetProps): React.JSX.Element;
|
|
53
|
+
//#endregion
|
|
54
|
+
export { DateRangePickerValueProps as C, DateRangePickerValue as S, DateRangePickerProps as _, DateRangePickerApplyProps as a, DateRangePickerTrigger as b, DateRangePickerContent as c, DateRangePickerDateFieldsProps as d, DateRangePickerPreset as f, DateRangePickerPresetsProps as g, DateRangePickerPresets as h, DateRangePickerApply as i, DateRangePickerContentProps as l, DateRangePickerPresetProps as m, DateRangePickerActions as n, DateRangePickerCalendar as o, DateRangePickerPresetOption as p, DateRangePickerActionsProps as r, DateRangePickerCalendarProps as s, DateRangePicker as t, DateRangePickerDateFields as u, DateRangePickerReset as v, DateRangePickerTriggerProps as x, DateRangePickerResetProps as y };
|
|
55
|
+
//# sourceMappingURL=date-range-picker-BngvCWcR.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./rolldown-runtime-Bdj-bS2b.js";import{t as e}from"./utils-DP9KtG7I.js";import{t}from"./button-oI3hbOgp.js";import{t as n}from"./calendar-CW1kGXom.js";import{t as r}from"./input-Cmjl8YdK.js";import{r as i,s as a,t as o}from"./popover-BtX3tX8M.js";import{IconArrowRight as s,IconCalendar as c,IconChevronDown as l}from"@tabler/icons-react";import{Fragment as u,jsx as d,jsxs as f}from"react/jsx-runtime";import*as p from"react";const m=p.createContext(null),h=[{label:`Hoje`,getRange:()=>{let e=startOfDay(new Date);return{from:e,to:e}}},{label:`Ontem`,getRange:()=>{let e=addDays(startOfDay(new Date),-1);return{from:e,to:e}}},{label:`Últimos 7 dias`,getRange:()=>{let e=startOfDay(new Date);return{from:addDays(e,-7),to:e}}},{label:`Últimos 15 dias`,getRange:()=>{let e=startOfDay(new Date);return{from:addDays(e,-15),to:e}}},{label:`Últimos 30 dias`,getRange:()=>{let e=startOfDay(new Date);return{from:addDays(e,-30),to:e}}},{label:`Últimos 60 dias`,getRange:()=>{let e=startOfDay(new Date);return{from:addDays(e,-60),to:e}}},{label:`Últimos 90 dias`,getRange:()=>{let e=startOfDay(new Date);return{from:addDays(e,-90),to:e}}},{label:`Semana passada`,getRange:()=>{let e=addDays(startOfWeek(new Date),-7);return{from:e,to:addDays(e,6)}}},{label:`Este mês`,getRange:()=>{let e=startOfDay(new Date);return{from:startOfMonth(e),to:e}}},{label:`Mês passado`,getRange:()=>{let e=new Date(new Date().getFullYear(),new Date().getMonth()-1,1);return{from:startOfMonth(e),to:endOfMonth(e)}}}];function DateRangePicker({value:e,defaultValue:t=null,onValueChange:n,onApply:r,onReset:i,open:a,defaultOpen:s=!1,onOpenChange:c,locale:l,placeholder:h=`Selecione um período`,children:g,..._}){let[v,y]=p.useState(t),[b,x]=p.useState(s),S=e!==void 0,C=a!==void 0,w=S?e??null:v,T=C?a:b,[E,D]=p.useState(()=>toDraft(w)),[O,k]=p.useState(()=>getRangeMonth(toDraft(w))),A=p.useCallback(e=>{let t=normalizeDraft(e);D(t);let n=getRangeMonth(t);n&&k(n)},[]),j=p.useCallback(e=>{S||y(e),n?.(e)},[S,n]),M=p.useCallback(e=>{if(e){let e=toDraft(w);D(e),k(getRangeMonth(e))}C||x(e),c?.(e)},[C,c,w]),N=p.useCallback(()=>{let e=toValue(E);j(e),r?.(e),M(!1)},[j,E,r,M]),P=p.useCallback(()=>{D(void 0),j(null),i?.(),M(!1)},[j,i,M]),F=p.useMemo(()=>({value:w,draft:E,month:O,locale:l,placeholder:h,setDraft:A,setMonth:k,apply:N,reset:P}),[N,E,l,O,h,P,A,w]);return d(m.Provider,{value:F,children:d(o,{open:T,onOpenChange:M,..._,children:g??f(u,{children:[d(DateRangePickerTrigger,{}),f(DateRangePickerContent,{children:[d(DateRangePickerPresets,{}),d(DateRangePickerDateFields,{}),d(DateRangePickerCalendar,{}),d(DateRangePickerActions,{})]})]})})})}function DateRangePickerTrigger({className:n,children:r,asChild:i=!1,variant:o=`outline`,color:s=`zinc`,type:p=`button`,...m}){return i?d(a,{asChild:!0,children:r}):d(a,{asChild:!0,children:d(t,{type:p,variant:o,color:s,className:e(`min-w-64 justify-between font-normal`,n),...m,children:r??f(u,{children:[d(c,{"data-icon":`inline-start`,className:`size-4 text-muted-foreground`}),d(DateRangePickerValue,{className:`flex-1 text-left`}),d(l,{"data-icon":`inline-end`,className:`size-4 text-muted-foreground`})]})})})}function DateRangePickerValue({className:t,placeholder:n,...r}){let{value:i,locale:a,placeholder:o}=useDateRangePicker();return d(`span`,{"data-slot":`date-range-picker-value`,className:e(`truncate`,t),...r,children:formatRange(i,a,n??o)})}function DateRangePickerContent({className:t,align:n=`start`,sideOffset:r=8,children:a,...o}){let s=p.Children.toArray(a),c=s.filter(isDateRangePickerPresetsElement),l=s.filter(e=>!isDateRangePickerPresetsElement(e));return d(i,{align:n,sideOffset:r,className:e(`w-[calc(100vw-(--spacing(4)))] max-w-2xl p-2`,t),...o,children:f(`div`,{"data-slot":`date-range-picker-content`,className:`grid gap-3 md:grid-cols-[10rem_minmax(0,1fr)]`,children:[c,d(`div`,{className:`flex min-w-0 flex-col gap-3`,children:l})]})})}function DateRangePickerPresets({className:t,presets:n=h,...r}){let{draft:i,setDraft:a}=useDateRangePicker(),o=getRelativeDaysValue(i,`today`),s=getRelativeDaysValue(i,`yesterday`);return f(`div`,{"data-slot":`date-range-picker-presets`,className:e(`hidden flex-col border-border pr-3 md:flex md:border-r`,t),...r,children:[n.map(e=>{let t=e.getRange();return d(DateRangePickerPreset,{type:`button`,selected:isSameRange(i,t),onClick:()=>a(t),children:e.label},e.label)}),f(`div`,{className:`my-3 flex flex-col gap-2`,children:[d(DateRangePickerRelativeField,{label:`Dias até hoje`,value:o,onValueChange:e=>a(getRelativeDaysRange(e,`today`))}),d(DateRangePickerRelativeField,{label:`Dias até ontem`,value:s,onValueChange:e=>a(getRelativeDaysRange(e,`yesterday`))})]})]})}function DateRangePickerPreset({className:t,selected:n=!1,...r}){return d(`button`,{"data-slot":`date-range-picker-preset`,"data-selected":n,className:e(`flex h-8.5 w-full items-center border-l-3 border-border bg-transparent px-2 text-left text-sm text-foreground transition-colors outline-none`,`hover:border-primary hover:bg-primary-50 hover:text-primary-700 dark:hover:bg-primary-950 dark:hover:text-primary-300`,`focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-ring/50`,`data-[selected=true]:border-primary data-[selected=true]:bg-primary-50 data-[selected=true]:text-primary-700 dark:data-[selected=true]:bg-primary-950 dark:data-[selected=true]:text-primary-300`,t),"aria-pressed":n,...r})}function DateRangePickerRelativeField({label:e,value:t,onValueChange:n}){let i=p.useId(),[a,o]=p.useState(()=>formatRelativeInputValue(t));return p.useEffect(()=>{o(formatRelativeInputValue(t))},[t]),f(`div`,{className:`flex items-center gap-2 text-sm text-foreground`,children:[d(r,{id:i,type:`number`,name:e,min:1,step:1,value:a,className:`h-7 w-9 rounded-md px-1 text-center [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,"aria-label":e,onChange:e=>{let t=e.target.value;if(o(t),t===``)return;let r=parsePositiveInteger(t);r&&n(r)}}),d(`label`,{htmlFor:i,children:e})]})}function DateRangePickerCalendar({className:t,showOutsideDays:r=!1,onMonthChange:i,...a}){let{draft:o,locale:s,month:c,setDraft:l,setMonth:u}=useDateRangePicker();return d(n,{mode:`range`,numberOfMonths:2,showOutsideDays:r,month:c,onMonthChange:e=>{u(e),i?.(e)},selected:o,onSelect:l,locale:s,className:e(`mx-auto bg-transparent p-0`,t),...a})}function DateRangePickerDateFields({className:t,...n}){let{draft:i,setDraft:a}=useDateRangePicker();return f(`div`,{"data-slot":`date-range-picker-date-fields`,className:e(`pb-2 border-b flex justify-between gap-2 flex-wrap flex-col sm:flex-row sm:items-center`,t),...n,children:[d(r,{type:`date`,value:formatInputDate(i?.from),className:`sm:w-max`,onChange:e=>{if(e.target.value===``){a(void 0);return}let t=parseInputDate(e.target.value);t&&a(normalizeDraft({from:t,to:i?.to}))}}),d(s,{className:`size-4 text-primary hidden sm:block`}),d(r,{type:`date`,value:formatInputDate(i?.to),className:`sm:w-max`,onChange:e=>{if(e.target.value===``){a(void 0);return}let t=parseInputDate(e.target.value);t&&a(normalizeDraft({from:i?.from,to:t}))}})]})}function DateRangePickerActions({className:t,children:n,...r}){return d(`div`,{"data-slot":`date-range-picker-actions`,className:e(`flex items-center gap-2 mt-auto`,t),...r,children:n??f(u,{children:[d(DateRangePickerReset,{}),d(DateRangePickerApply,{})]})})}function DateRangePickerApply({children:n=`Aplicar`,onClick:r,className:i,...a}){let{apply:o}=useDateRangePicker();return d(t,{size:`sm`,className:e(`flex-1`,i),onClick:e=>{r?.(e),e.defaultPrevented||o()},...a,children:n})}function DateRangePickerReset({children:n=`Resetar`,onClick:r,variant:i=`outline`,color:a=`zinc`,className:o,...s}){let{reset:c}=useDateRangePicker();return d(t,{size:`sm`,className:e(`flex-1`,o),variant:i,color:a,onClick:e=>{r?.(e),e.defaultPrevented||c()},...s,children:n})}function useDateRangePicker(){let e=p.useContext(m);if(!e)throw Error(`DateRangePicker components must be used within DateRangePicker.`);return e}function isDateRangePickerPresetsElement(e){return p.isValidElement(e)&&e.type===DateRangePickerPresets}function toDraft(e){return normalizeDraft(e??void 0)}function toValue(e){return normalizeDraft(e)??null}function getRangeMonth(e){return startOfDay(e?.from??e?.to??new Date)}function normalizeDraft(e){if(!(!e?.from&&!e?.to))return e.from&&e.to&&e.from>e.to?{from:startOfDay(e.to),to:startOfDay(e.from)}:{from:e.from?startOfDay(e.from):void 0,to:e.to?startOfDay(e.to):void 0}}function formatRange(e,t,n){return!e?.from&&!e?.to?n:e.from&&e.to?`${formatDisplayDate(e.from,t)} - ${formatDisplayDate(e.to,t)}`:formatDisplayDate(e.from??e.to,t)}function formatDisplayDate(e,t){return e?new Intl.DateTimeFormat(t?.code??`pt-BR`,{day:`2-digit`,month:`2-digit`,year:`numeric`}).format(e):``}function formatInputDate(e){return e?`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,`0`)}-${String(e.getDate()).padStart(2,`0`)}`:``}function parseInputDate(e){if(!e)return;let t=/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})$/.exec(e);if(!t?.groups)return;let n=Number(t.groups.year),r=Number(t.groups.month),i=Number(t.groups.day),a=new Date(n,r-1,i);if(a.getFullYear()===n&&a.getMonth()===r-1&&a.getDate()===i)return a}function parsePositiveInteger(e){if(!e)return;let t=Number(e);if(!(!Number.isInteger(t)||t<1))return t}function formatRelativeInputValue(e){return e?String(e):``}function getRelativeDaysRange(e,t){let n=startOfDay(new Date),r=t===`today`?addDays(n,-1):addDays(n,-2);return{from:addDays(r,-e+1),to:r}}function getRelativeDaysValue(e,t){if(!e?.from||!e.to)return;let n=startOfDay(new Date),r=t===`today`?addDays(n,-1):addDays(n,-2);if(!isSameDay(e.to,r))return;let i=differenceInCalendarDays(r,startOfDay(e.from))+1;return i>0?i:void 0}function isSameRange(e,t){return isSameDay(e?.from,t?.from)&&isSameDay(e?.to,t?.to)}function isSameDay(e,t){return!e||!t?e===t:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}function startOfDay(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate())}function startOfWeek(e){let t=startOfDay(e);return addDays(t,-t.getDay())}function startOfMonth(e){return new Date(e.getFullYear(),e.getMonth(),1)}function endOfMonth(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function differenceInCalendarDays(e,t){return Math.round((startOfDay(e).getTime()-startOfDay(t).getTime())/(1440*60*1e3))}function addDays(e,t){let n=startOfDay(e);return n.setDate(n.getDate()+t),n}export{DateRangePickerContent as a,DateRangePickerPresets as c,DateRangePickerValue as d,DateRangePickerCalendar as i,DateRangePickerReset as l,DateRangePickerActions as n,DateRangePickerDateFields as o,DateRangePickerApply as r,DateRangePickerPreset as s,DateRangePicker as t,DateRangePickerTrigger as u};
|
|
2
|
+
//# sourceMappingURL=date-range-picker-CJVpTZdT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-range-picker-CJVpTZdT.js","names":[],"sources":["../src/components/date-range-picker.tsx"],"sourcesContent":["import * as React from 'react'\nimport type { Locale } from 'react-day-picker'\n\nimport { IconArrowRight, IconCalendar, IconChevronDown } from '@tabler/icons-react'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\nimport { Calendar, type DateRange } from './calendar'\nimport { Input } from './input'\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\n\ntype DateRangePickerContextValue = {\n value: DateRange | null\n draft: DateRange | undefined\n month: Date\n locale?: Partial<Locale>\n placeholder: string\n setDraft: (range: DateRange | undefined) => void\n setMonth: (month: Date) => void\n apply: () => void\n reset: () => void\n}\n\nconst DateRangePickerContext = React.createContext<DateRangePickerContextValue | null>(null)\n\nconst defaultPlaceholder = 'Selecione um período'\n\nconst defaultPresetDefinitions = [\n {\n label: 'Hoje',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: today, to: today }\n }\n },\n {\n label: 'Ontem',\n getRange: () => {\n const yesterday = addDays(startOfDay(new Date()), -1)\n return { from: yesterday, to: yesterday }\n }\n },\n {\n label: 'Últimos 7 dias',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: addDays(today, -7), to: today }\n }\n },\n {\n label: 'Últimos 15 dias',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: addDays(today, -15), to: today }\n }\n },\n {\n label: 'Últimos 30 dias',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: addDays(today, -30), to: today }\n }\n },\n {\n label: 'Últimos 60 dias',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: addDays(today, -60), to: today }\n }\n },\n {\n label: 'Últimos 90 dias',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: addDays(today, -90), to: today }\n }\n },\n {\n label: 'Semana passada',\n getRange: () => {\n const previousWeekStart = addDays(startOfWeek(new Date()), -7)\n return { from: previousWeekStart, to: addDays(previousWeekStart, 6) }\n }\n },\n {\n label: 'Este mês',\n getRange: () => {\n const today = startOfDay(new Date())\n return { from: startOfMonth(today), to: today }\n }\n },\n {\n label: 'Mês passado',\n getRange: () => {\n const previousMonth = new Date(new Date().getFullYear(), new Date().getMonth() - 1, 1)\n return { from: startOfMonth(previousMonth), to: endOfMonth(previousMonth) }\n }\n }\n] satisfies DateRangePickerPresetOption[]\n\nexport type DateRangePickerPresetOption = {\n label: string\n getRange: () => DateRange\n}\n\nexport type DateRangePickerProps = Omit<\n React.ComponentProps<typeof Popover>,\n 'open' | 'defaultOpen' | 'onOpenChange'\n> & {\n value?: DateRange | null\n defaultValue?: DateRange | null\n onValueChange?: (range: DateRange | null) => void\n onApply?: (range: DateRange | null) => void\n onReset?: () => void\n open?: boolean\n defaultOpen?: boolean\n onOpenChange?: (open: boolean) => void\n locale?: Partial<Locale>\n placeholder?: string\n}\n\nexport type DateRangePickerTriggerProps = React.ComponentProps<typeof Button> & {\n asChild?: boolean\n}\n\nexport type DateRangePickerValueProps = React.ComponentProps<'span'> & {\n placeholder?: string\n}\n\nexport type DateRangePickerContentProps = React.ComponentProps<typeof PopoverContent>\n\nexport type DateRangePickerPresetsProps = React.ComponentProps<'div'> & {\n presets?: DateRangePickerPresetOption[]\n}\n\nexport type DateRangePickerPresetProps = React.ComponentProps<'button'> & {\n selected?: boolean\n}\n\nexport type DateRangePickerCalendarProps = Omit<\n React.ComponentProps<typeof Calendar>,\n 'mode' | 'numberOfMonths' | 'selected' | 'onSelect' | 'month' | 'defaultMonth'\n>\n\nexport type DateRangePickerDateFieldsProps = React.ComponentProps<'div'>\n\nexport type DateRangePickerActionsProps = React.ComponentProps<'div'>\n\nexport type DateRangePickerApplyProps = React.ComponentProps<typeof Button>\n\nexport type DateRangePickerResetProps = React.ComponentProps<typeof Button>\n\nfunction DateRangePicker({\n value: valueProp,\n defaultValue = null,\n onValueChange,\n onApply,\n onReset,\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n locale,\n placeholder = defaultPlaceholder,\n children,\n ...props\n}: DateRangePickerProps) {\n const [uncontrolledValue, setUncontrolledValue] = React.useState<DateRange | null>(defaultValue)\n const [uncontrolledOpen, setUncontrolledOpen] = React.useState(defaultOpen)\n\n const isValueControlled = valueProp !== undefined\n const isOpenControlled = openProp !== undefined\n const value = isValueControlled ? (valueProp ?? null) : uncontrolledValue\n const open = isOpenControlled ? openProp : uncontrolledOpen\n\n const [draft, setDraft] = React.useState<DateRange | undefined>(() => toDraft(value))\n const [month, setMonth] = React.useState<Date>(() => getRangeMonth(toDraft(value)))\n\n const updateDraft = React.useCallback((nextDraft: DateRange | undefined) => {\n const normalizedDraft = normalizeDraft(nextDraft)\n setDraft(normalizedDraft)\n\n const nextMonth = getRangeMonth(normalizedDraft)\n if (nextMonth) {\n setMonth(nextMonth)\n }\n }, [])\n\n const commitValue = React.useCallback(\n (nextValue: DateRange | null) => {\n if (!isValueControlled) {\n setUncontrolledValue(nextValue)\n }\n\n onValueChange?.(nextValue)\n },\n [isValueControlled, onValueChange]\n )\n\n const setOpen = React.useCallback(\n (nextOpen: boolean) => {\n if (nextOpen) {\n const nextDraft = toDraft(value)\n setDraft(nextDraft)\n setMonth(getRangeMonth(nextDraft))\n }\n\n if (!isOpenControlled) {\n setUncontrolledOpen(nextOpen)\n }\n\n onOpenChange?.(nextOpen)\n },\n [isOpenControlled, onOpenChange, value]\n )\n\n const apply = React.useCallback(() => {\n const nextValue = toValue(draft)\n commitValue(nextValue)\n onApply?.(nextValue)\n setOpen(false)\n }, [commitValue, draft, onApply, setOpen])\n\n const reset = React.useCallback(() => {\n setDraft(undefined)\n commitValue(null)\n onReset?.()\n setOpen(false)\n }, [commitValue, onReset, setOpen])\n\n const context = React.useMemo<DateRangePickerContextValue>(\n () => ({\n value,\n draft,\n month,\n locale,\n placeholder,\n setDraft: updateDraft,\n setMonth,\n apply,\n reset\n }),\n [apply, draft, locale, month, placeholder, reset, updateDraft, value]\n )\n\n return (\n <DateRangePickerContext.Provider value={context}>\n <Popover open={open} onOpenChange={setOpen} {...props}>\n {children ?? (\n <>\n <DateRangePickerTrigger />\n <DateRangePickerContent>\n <DateRangePickerPresets />\n <DateRangePickerDateFields />\n <DateRangePickerCalendar />\n <DateRangePickerActions />\n </DateRangePickerContent>\n </>\n )}\n </Popover>\n </DateRangePickerContext.Provider>\n )\n}\n\nfunction DateRangePickerTrigger({\n className,\n children,\n asChild = false,\n variant = 'outline',\n color = 'zinc',\n type = 'button',\n ...props\n}: DateRangePickerTriggerProps) {\n if (asChild) {\n return <PopoverTrigger asChild>{children}</PopoverTrigger>\n }\n\n return (\n <PopoverTrigger asChild>\n <Button\n type={type}\n variant={variant}\n color={color}\n className={cn('min-w-64 justify-between font-normal', className)}\n {...props}\n >\n {children ?? (\n <>\n <IconCalendar data-icon=\"inline-start\" className=\"size-4 text-muted-foreground\" />\n <DateRangePickerValue className=\"flex-1 text-left\" />\n <IconChevronDown data-icon=\"inline-end\" className=\"size-4 text-muted-foreground\" />\n </>\n )}\n </Button>\n </PopoverTrigger>\n )\n}\n\nfunction DateRangePickerValue({ className, placeholder, ...props }: DateRangePickerValueProps) {\n const { value, locale, placeholder: contextPlaceholder } = useDateRangePicker()\n\n return (\n <span data-slot=\"date-range-picker-value\" className={cn('truncate', className)} {...props}>\n {formatRange(value, locale, placeholder ?? contextPlaceholder)}\n </span>\n )\n}\n\nfunction DateRangePickerContent({\n className,\n align = 'start',\n sideOffset = 8,\n children,\n ...props\n}: DateRangePickerContentProps) {\n const childArray = React.Children.toArray(children)\n const presets = childArray.filter(isDateRangePickerPresetsElement)\n const content = childArray.filter((child) => !isDateRangePickerPresetsElement(child))\n\n return (\n <PopoverContent\n align={align}\n sideOffset={sideOffset}\n className={cn('w-[calc(100vw-(--spacing(4)))] max-w-2xl p-2', className)}\n {...props}\n >\n <div data-slot=\"date-range-picker-content\" className=\"grid gap-3 md:grid-cols-[10rem_minmax(0,1fr)]\">\n {presets}\n <div className=\"flex min-w-0 flex-col gap-3\">{content}</div>\n </div>\n </PopoverContent>\n )\n}\n\nfunction DateRangePickerPresets({\n className,\n presets = defaultPresetDefinitions,\n ...props\n}: DateRangePickerPresetsProps) {\n const { draft, setDraft } = useDateRangePicker()\n const todayRelativeValue = getRelativeDaysValue(draft, 'today')\n const yesterdayRelativeValue = getRelativeDaysValue(draft, 'yesterday')\n\n return (\n <div\n data-slot=\"date-range-picker-presets\"\n className={cn('hidden flex-col border-border pr-3 md:flex md:border-r', className)}\n {...props}\n >\n {presets.map((preset) => {\n const range = preset.getRange()\n const selected = isSameRange(draft, range)\n\n return (\n <DateRangePickerPreset key={preset.label} type=\"button\" selected={selected} onClick={() => setDraft(range)}>\n {preset.label}\n </DateRangePickerPreset>\n )\n })}\n\n <div className=\"my-3 flex flex-col gap-2\">\n <DateRangePickerRelativeField\n label=\"Dias até hoje\"\n value={todayRelativeValue}\n onValueChange={(days) => setDraft(getRelativeDaysRange(days, 'today'))}\n />\n <DateRangePickerRelativeField\n label=\"Dias até ontem\"\n value={yesterdayRelativeValue}\n onValueChange={(days) => setDraft(getRelativeDaysRange(days, 'yesterday'))}\n />\n </div>\n </div>\n )\n}\n\nfunction DateRangePickerPreset({ className, selected = false, ...props }: DateRangePickerPresetProps) {\n return (\n <button\n data-slot=\"date-range-picker-preset\"\n data-selected={selected}\n className={cn(\n 'flex h-8.5 w-full items-center border-l-3 border-border bg-transparent px-2 text-left text-sm text-foreground transition-colors outline-none',\n 'hover:border-primary hover:bg-primary-50 hover:text-primary-700 dark:hover:bg-primary-950 dark:hover:text-primary-300',\n 'focus-visible:border-primary focus-visible:ring-3 focus-visible:ring-ring/50',\n 'data-[selected=true]:border-primary data-[selected=true]:bg-primary-50 data-[selected=true]:text-primary-700 dark:data-[selected=true]:bg-primary-950 dark:data-[selected=true]:text-primary-300',\n className\n )}\n aria-pressed={selected}\n {...props}\n />\n )\n}\n\nfunction DateRangePickerRelativeField({\n label,\n value,\n onValueChange\n}: {\n label: string\n value: number | undefined\n onValueChange: (days: number) => void\n}) {\n const id = React.useId()\n const [inputValue, setInputValue] = React.useState(() => formatRelativeInputValue(value))\n\n React.useEffect(() => {\n setInputValue(formatRelativeInputValue(value))\n }, [value])\n\n return (\n <div className=\"flex items-center gap-2 text-sm text-foreground\">\n <Input\n id={id}\n type=\"number\"\n name={label}\n min={1}\n step={1}\n value={inputValue}\n className=\"h-7 w-9 rounded-md px-1 text-center [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none\"\n aria-label={label}\n onChange={(event) => {\n const nextValue = event.target.value\n setInputValue(nextValue)\n\n if (nextValue === '') return\n\n const days = parsePositiveInteger(nextValue)\n if (!days) return\n onValueChange(days)\n }}\n />\n <label htmlFor={id}>{label}</label>\n </div>\n )\n}\n\nfunction DateRangePickerCalendar({\n className,\n showOutsideDays = false,\n onMonthChange,\n ...props\n}: DateRangePickerCalendarProps) {\n const { draft, locale, month, setDraft, setMonth } = useDateRangePicker()\n\n return (\n <Calendar\n mode=\"range\"\n numberOfMonths={2}\n showOutsideDays={showOutsideDays}\n month={month}\n onMonthChange={(nextMonth) => {\n setMonth(nextMonth)\n onMonthChange?.(nextMonth)\n }}\n selected={draft}\n onSelect={setDraft}\n locale={locale}\n className={cn('mx-auto bg-transparent p-0', className)}\n {...props}\n />\n )\n}\n\nfunction DateRangePickerDateFields({ className, ...props }: DateRangePickerDateFieldsProps) {\n const { draft, setDraft } = useDateRangePicker()\n\n return (\n <div\n data-slot=\"date-range-picker-date-fields\"\n className={cn(\n 'pb-2 border-b flex justify-between gap-2 flex-wrap flex-col sm:flex-row sm:items-center',\n className\n )}\n {...props}\n >\n <Input\n type=\"date\"\n value={formatInputDate(draft?.from)}\n className=\"sm:w-max\"\n onChange={(event) => {\n if (event.target.value === '') {\n setDraft(undefined)\n return\n }\n\n const date = parseInputDate(event.target.value)\n if (!date) return\n setDraft(normalizeDraft({ from: date, to: draft?.to }))\n }}\n />\n <IconArrowRight className=\"size-4 text-primary hidden sm:block\" />\n <Input\n type=\"date\"\n value={formatInputDate(draft?.to)}\n className=\"sm:w-max\"\n onChange={(event) => {\n if (event.target.value === '') {\n setDraft(undefined)\n return\n }\n\n const date = parseInputDate(event.target.value)\n if (!date) return\n setDraft(normalizeDraft({ from: draft?.from, to: date }))\n }}\n />\n </div>\n )\n}\n\nfunction DateRangePickerActions({ className, children, ...props }: DateRangePickerActionsProps) {\n return (\n <div data-slot=\"date-range-picker-actions\" className={cn('flex items-center gap-2 mt-auto', className)} {...props}>\n {children ?? (\n <>\n <DateRangePickerReset />\n <DateRangePickerApply />\n </>\n )}\n </div>\n )\n}\n\nfunction DateRangePickerApply({ children = 'Aplicar', onClick, className, ...props }: DateRangePickerApplyProps) {\n const { apply } = useDateRangePicker()\n\n return (\n <Button\n size=\"sm\"\n className={cn('flex-1', className)}\n onClick={(event) => {\n onClick?.(event)\n if (!event.defaultPrevented) {\n apply()\n }\n }}\n {...props}\n >\n {children}\n </Button>\n )\n}\n\nfunction DateRangePickerReset({\n children = 'Resetar',\n onClick,\n variant = 'outline',\n color = 'zinc',\n className,\n ...props\n}: DateRangePickerResetProps) {\n const { reset } = useDateRangePicker()\n\n return (\n <Button\n size=\"sm\"\n className={cn('flex-1', className)}\n variant={variant}\n color={color}\n onClick={(event) => {\n onClick?.(event)\n if (!event.defaultPrevented) {\n reset()\n }\n }}\n {...props}\n >\n {children}\n </Button>\n )\n}\n\nfunction useDateRangePicker() {\n const context = React.useContext(DateRangePickerContext)\n\n if (!context) {\n throw new Error('DateRangePicker components must be used within DateRangePicker.')\n }\n\n return context\n}\n\nfunction isDateRangePickerPresetsElement(child: React.ReactNode) {\n return React.isValidElement(child) && child.type === DateRangePickerPresets\n}\n\nfunction toDraft(range: DateRange | null | undefined) {\n return normalizeDraft(range ?? undefined)\n}\n\nfunction toValue(range: DateRange | undefined): DateRange | null {\n return normalizeDraft(range) ?? null\n}\n\nfunction getRangeMonth(range: DateRange | undefined) {\n return startOfDay(range?.from ?? range?.to ?? new Date())\n}\n\nfunction normalizeDraft(range: DateRange | undefined): DateRange | undefined {\n if (!range?.from && !range?.to) return undefined\n\n if (range.from && range.to && range.from > range.to) {\n return { from: startOfDay(range.to), to: startOfDay(range.from) }\n }\n\n return {\n from: range.from ? startOfDay(range.from) : undefined,\n to: range.to ? startOfDay(range.to) : undefined\n }\n}\n\nfunction formatRange(range: DateRange | null | undefined, locale: Partial<Locale> | undefined, placeholder: string) {\n if (!range?.from && !range?.to) return placeholder\n\n if (range.from && range.to) {\n return `${formatDisplayDate(range.from, locale)} - ${formatDisplayDate(range.to, locale)}`\n }\n\n return formatDisplayDate(range.from ?? range.to, locale)\n}\n\nfunction formatDisplayDate(date: Date | undefined, locale: Partial<Locale> | undefined) {\n if (!date) return ''\n\n return new Intl.DateTimeFormat(locale?.code ?? 'pt-BR', {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric'\n }).format(date)\n}\n\nfunction formatInputDate(date: Date | undefined) {\n if (!date) return ''\n\n const year = date.getFullYear()\n const month = String(date.getMonth() + 1).padStart(2, '0')\n const day = String(date.getDate()).padStart(2, '0')\n\n return `${year}-${month}-${day}`\n}\n\nfunction parseInputDate(value: string) {\n if (!value) return undefined\n\n const match = /^(?<year>\\d{4})-(?<month>\\d{2})-(?<day>\\d{2})$/.exec(value)\n if (!match?.groups) return undefined\n\n const year = Number(match.groups.year)\n const month = Number(match.groups.month)\n const day = Number(match.groups.day)\n const date = new Date(year, month - 1, day)\n\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return undefined\n }\n\n return date\n}\n\nfunction parsePositiveInteger(value: string) {\n if (!value) return undefined\n\n const days = Number(value)\n if (!Number.isInteger(days) || days < 1) return undefined\n\n return days\n}\n\nfunction formatRelativeInputValue(value: number | undefined) {\n return value ? String(value) : ''\n}\n\nfunction getRelativeDaysRange(days: number, target: 'today' | 'yesterday'): DateRange {\n const today = startOfDay(new Date())\n const targetDate = target === 'today' ? addDays(today, -1) : addDays(today, -2)\n\n return {\n from: addDays(targetDate, -days + 1),\n to: targetDate\n }\n}\n\nfunction getRelativeDaysValue(range: DateRange | undefined, target: 'today' | 'yesterday') {\n if (!range?.from || !range.to) return undefined\n\n const today = startOfDay(new Date())\n const targetDate = target === 'today' ? addDays(today, -1) : addDays(today, -2)\n if (!isSameDay(range.to, targetDate)) return undefined\n\n const days = differenceInCalendarDays(targetDate, startOfDay(range.from)) + 1\n return days > 0 ? days : undefined\n}\n\nfunction isSameRange(left: DateRange | undefined, right: DateRange | undefined) {\n return isSameDay(left?.from, right?.from) && isSameDay(left?.to, right?.to)\n}\n\nfunction isSameDay(left: Date | undefined, right: Date | undefined) {\n if (!left || !right) return left === right\n\n return (\n left.getFullYear() === right.getFullYear() &&\n left.getMonth() === right.getMonth() &&\n left.getDate() === right.getDate()\n )\n}\n\nfunction startOfDay(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\n}\n\nfunction startOfWeek(date: Date) {\n const day = startOfDay(date)\n return addDays(day, -day.getDay())\n}\n\nfunction startOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth(), 1)\n}\n\nfunction endOfMonth(date: Date) {\n return new Date(date.getFullYear(), date.getMonth() + 1, 0)\n}\n\nfunction differenceInCalendarDays(left: Date, right: Date) {\n const millisecondsPerDay = 24 * 60 * 60 * 1000\n return Math.round((startOfDay(left).getTime() - startOfDay(right).getTime()) / millisecondsPerDay)\n}\n\nfunction addDays(date: Date, amount: number) {\n const nextDate = startOfDay(date)\n nextDate.setDate(nextDate.getDate() + amount)\n return nextDate\n}\n\nexport {\n type DateRange,\n DateRangePicker,\n DateRangePickerActions,\n DateRangePickerApply,\n DateRangePickerCalendar,\n DateRangePickerContent,\n DateRangePickerDateFields,\n DateRangePickerPreset,\n DateRangePickerPresets,\n DateRangePickerReset,\n DateRangePickerTrigger,\n DateRangePickerValue\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-Bdj-bS2b.js";import{t}from"./utils-DP9KtG7I.js";import{t as n}from"./button-oI3hbOgp.js";import{IconX as r}from"@tabler/icons-react";import{Dialog as i}from"radix-ui";import{jsx as a,jsxs as o}from"react/jsx-runtime";import{cva as s}from"class-variance-authority";import*as c from"react";const l=s([`bg-background ring-foreground/10 fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none`,`flex flex-col gap-4 rounded-xl p-4 text-sm ring-1 duration-100`,`max-w-[calc(100%-2rem)] max-h-[calc(100dvh-2rem)] overflow-hidden`,`data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95`],{variants:{size:{sm:`sm:max-w-sm`,md:`sm:max-w-md`,lg:`sm:max-w-lg`,xl:`sm:max-w-xl`,"2xl":`sm:max-w-2xl`,"3xl":`sm:max-w-3xl`,full:`w-screen h-screen max-w-none max-h-screen rounded-none sm:max-w-none`}},defaultVariants:{size:`md`}}),u=c.createContext({size:`sm`,dismissible:!0});function Dialog$1({size:e=`sm`,dismissible:t=!0,...n}){let r=c.useMemo(()=>({size:e,dismissible:t}),[e,t]);return a(u.Provider,{value:r,children:a(i.Root,{"data-slot":`dialog`,...n})})}e(Dialog$1,`Dialog`);function DialogTrigger({...e}){return a(i.Trigger,{"data-slot":`dialog-trigger`,...e})}function DialogPortal({...e}){return a(i.Portal,{"data-slot":`dialog-portal`,...e})}function DialogClose({...e}){return a(i.Close,{"data-slot":`dialog-close`,...e})}function DialogOverlay({className:e,...n}){return a(i.Overlay,{"data-slot":`dialog-overlay`,className:t(`bg-black/10 fixed inset-0 isolate z-50`,`data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0`,`duration-100 supports-backdrop-filter:backdrop-blur-xs`,e),...n})}function DialogContent({className:e,children:s,showCloseButton:d=!0,overlayRef:f,...p}){let{size:m,dismissible:h}=c.useContext(u);return o(DialogPortal,{children:[a(DialogOverlay,{ref:f}),o(i.Content,{"data-slot":`dialog-content`,className:t(l({size:m}),e),...p,onEscapeKeyDown:e=>{h||e.preventDefault(),p.onEscapeKeyDown?.(e)},onInteractOutside:e=>{h||e.preventDefault(),p.onInteractOutside?.(e)},children:[s,d&&a(i.Close,{"data-slot":`dialog-close`,asChild:!0,children:o(n,{variant:`ghost`,className:`absolute top-2 right-2`,size:`icon-sm`,children:[a(r,{}),a(`span`,{className:`sr-only`,children:`Close`})]})})]})]})}function DialogHeader({className:e,...n}){return a(`div`,{"data-slot":`dialog-header`,className:t(`gap-2 flex flex-col shrink-0`,e),...n})}function DialogBody({className:e,...n}){return a(`div`,{"data-slot":`dialog-body`,className:t(`-mx-4 px-4 flex-1 overflow-y-auto`,e),...n})}function DialogFooter({className:e,showCloseButton:r=!1,children:s,...c}){return o(`div`,{"data-slot":`dialog-footer`,className:t(`bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 shrink-0`,`flex flex-col-reverse gap-2 sm:flex-row sm:justify-end`,e),...c,children:[s,r&&a(i.Close,{asChild:!0,children:a(n,{variant:`outline`,children:`Close`})})]})}function DialogTitle({className:e,...n}){return a(i.Title,{"data-slot":`dialog-title`,className:t(`text-base leading-none font-medium`,e),...n})}function DialogDescription({className:e,...n}){return a(i.Description,{"data-slot":`dialog-description`,className:t(`text-muted-foreground text-sm`,`*:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,e),...n})}export{DialogDescription as a,DialogOverlay as c,DialogTrigger as d,DialogContent as i,DialogPortal as l,DialogBody as n,DialogFooter as o,DialogClose as r,DialogHeader as s,Dialog$1 as t,DialogTitle as u};
|
|
2
|
+
//# sourceMappingURL=dialog-B7I4Ky1i.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialog-B7I4Ky1i.js","names":["Dialog","DialogPrimitive"],"sources":["../src/components/dialog.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { IconX } from '@tabler/icons-react'\nimport { cva, type VariantProps } from 'class-variance-authority'\nimport { Dialog as DialogPrimitive } from 'radix-ui'\n\nimport { cn } from '../lib/utils'\nimport { Button } from './button'\n\nconst dialogContentVariants = cva(\n [\n 'bg-background ring-foreground/10 fixed top-1/2 left-1/2 z-50 w-full -translate-x-1/2 -translate-y-1/2 outline-none',\n 'flex flex-col gap-4 rounded-xl p-4 text-sm ring-1 duration-100',\n 'max-w-[calc(100%-2rem)] max-h-[calc(100dvh-2rem)] overflow-hidden',\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95'\n ],\n {\n variants: {\n size: {\n sm: 'sm:max-w-sm',\n md: 'sm:max-w-md',\n lg: 'sm:max-w-lg',\n xl: 'sm:max-w-xl',\n '2xl': 'sm:max-w-2xl',\n '3xl': 'sm:max-w-3xl',\n full: 'w-screen h-screen max-w-none max-h-screen rounded-none sm:max-w-none'\n }\n },\n defaultVariants: {\n size: 'md'\n }\n }\n)\n\ntype DialogSize = NonNullable<VariantProps<typeof dialogContentVariants>['size']>\ntype DialogContextValue = { size: DialogSize; dismissible: boolean }\nconst DialogContext = React.createContext<DialogContextValue>({ size: 'sm', dismissible: true })\n\nexport type DialogProps = React.ComponentProps<typeof DialogPrimitive.Root> & {\n size?: DialogSize\n dismissible?: boolean\n}\nexport type DialogTriggerProps = React.ComponentProps<typeof DialogPrimitive.Trigger>\nexport type DialogPortalProps = React.ComponentProps<typeof DialogPrimitive.Portal>\nexport type DialogCloseProps = React.ComponentProps<typeof DialogPrimitive.Close>\nexport type DialogOverlayProps = React.ComponentProps<typeof DialogPrimitive.Overlay>\nexport type DialogContentProps = React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n overlayRef?: React.Ref<HTMLDivElement>\n}\nexport type DialogHeaderProps = React.ComponentProps<'div'>\nexport type DialogBodyProps = React.ComponentProps<'div'>\nexport type DialogFooterProps = React.ComponentProps<'div'> & { showCloseButton?: boolean }\nexport type DialogTitleProps = React.ComponentProps<typeof DialogPrimitive.Title>\nexport type DialogDescriptionProps = React.ComponentProps<typeof DialogPrimitive.Description>\n\nfunction Dialog({ size = 'sm', dismissible = true, ...props }: DialogProps) {\n const contextValue = React.useMemo<DialogContextValue>(() => ({ size, dismissible }), [size, dismissible])\n\n return (\n <DialogContext.Provider value={contextValue}>\n <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n </DialogContext.Provider>\n )\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({ ...props }: DialogPortalProps) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({ className, ...props }: DialogOverlayProps) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n 'bg-black/10 fixed inset-0 isolate z-50',\n 'data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0',\n 'duration-100 supports-backdrop-filter:backdrop-blur-xs',\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({ className, children, showCloseButton = true, overlayRef, ...props }: DialogContentProps) {\n const { size, dismissible } = React.useContext(DialogContext)\n\n return (\n <DialogPortal>\n <DialogOverlay ref={overlayRef} />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(dialogContentVariants({ size }), className)}\n {...props}\n onEscapeKeyDown={(event) => {\n if (!dismissible) event.preventDefault()\n props.onEscapeKeyDown?.(event)\n }}\n onInteractOutside={(event) => {\n if (!dismissible) event.preventDefault()\n props.onInteractOutside?.(event)\n }}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close data-slot=\"dialog-close\" asChild>\n <Button variant=\"ghost\" className=\"absolute top-2 right-2\" size=\"icon-sm\">\n <IconX />\n <span className=\"sr-only\">Close</span>\n </Button>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: DialogHeaderProps) {\n return <div data-slot=\"dialog-header\" className={cn('gap-2 flex flex-col shrink-0', className)} {...props} />\n}\n\nfunction DialogBody({ className, ...props }: DialogBodyProps) {\n return <div data-slot=\"dialog-body\" className={cn('-mx-4 px-4 flex-1 overflow-y-auto', className)} {...props} />\n}\n\nfunction DialogFooter({ className, showCloseButton = false, children, ...props }: DialogFooterProps) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n 'bg-muted/50 -mx-4 -mb-4 rounded-b-xl border-t p-4 shrink-0',\n 'flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({ className, ...props }: DialogTitleProps) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn('text-base leading-none font-medium', className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({ className, ...props }: DialogDescriptionProps) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\n 'text-muted-foreground text-sm',\n '*:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground',\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { n as __name } from "./rolldown-runtime-Bdj-bS2b.js";
|
|
2
|
+
import { Dialog } from "radix-ui";
|
|
3
|
+
import { VariantProps } from "class-variance-authority";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
//#region src/components/dialog.d.ts
|
|
6
|
+
declare const dialogContentVariants: (props?: ({
|
|
7
|
+
size?: "2xl" | "3xl" | "full" | "lg" | "md" | "sm" | "xl" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
type DialogSize = NonNullable<VariantProps<typeof dialogContentVariants>['size']>;
|
|
10
|
+
type DialogProps = React.ComponentProps<typeof Dialog.Root> & {
|
|
11
|
+
size?: DialogSize;
|
|
12
|
+
dismissible?: boolean;
|
|
13
|
+
};
|
|
14
|
+
type DialogTriggerProps = React.ComponentProps<typeof Dialog.Trigger>;
|
|
15
|
+
type DialogPortalProps = React.ComponentProps<typeof Dialog.Portal>;
|
|
16
|
+
type DialogCloseProps = React.ComponentProps<typeof Dialog.Close>;
|
|
17
|
+
type DialogOverlayProps = React.ComponentProps<typeof Dialog.Overlay>;
|
|
18
|
+
type DialogContentProps = React.ComponentProps<typeof Dialog.Content> & {
|
|
19
|
+
showCloseButton?: boolean;
|
|
20
|
+
overlayRef?: React.Ref<HTMLDivElement>;
|
|
21
|
+
};
|
|
22
|
+
type DialogHeaderProps = React.ComponentProps<'div'>;
|
|
23
|
+
type DialogBodyProps = React.ComponentProps<'div'>;
|
|
24
|
+
type DialogFooterProps = React.ComponentProps<'div'> & {
|
|
25
|
+
showCloseButton?: boolean;
|
|
26
|
+
};
|
|
27
|
+
type DialogTitleProps = React.ComponentProps<typeof Dialog.Title>;
|
|
28
|
+
type DialogDescriptionProps = React.ComponentProps<typeof Dialog.Description>;
|
|
29
|
+
declare function Dialog$1({ size, dismissible, ...props }: DialogProps): React.JSX.Element;
|
|
30
|
+
declare function DialogTrigger({ ...props }: React.ComponentProps<typeof Dialog.Trigger>): React.JSX.Element;
|
|
31
|
+
declare function DialogPortal({ ...props }: DialogPortalProps): React.JSX.Element;
|
|
32
|
+
declare function DialogClose({ ...props }: React.ComponentProps<typeof Dialog.Close>): React.JSX.Element;
|
|
33
|
+
declare function DialogOverlay({ className, ...props }: DialogOverlayProps): React.JSX.Element;
|
|
34
|
+
declare function DialogContent({ className, children, showCloseButton, overlayRef, ...props }: DialogContentProps): React.JSX.Element;
|
|
35
|
+
declare function DialogHeader({ className, ...props }: DialogHeaderProps): React.JSX.Element;
|
|
36
|
+
declare function DialogBody({ className, ...props }: DialogBodyProps): React.JSX.Element;
|
|
37
|
+
declare function DialogFooter({ className, showCloseButton, children, ...props }: DialogFooterProps): React.JSX.Element;
|
|
38
|
+
declare function DialogTitle({ className, ...props }: DialogTitleProps): React.JSX.Element;
|
|
39
|
+
declare function DialogDescription({ className, ...props }: DialogDescriptionProps): React.JSX.Element;
|
|
40
|
+
//#endregion
|
|
41
|
+
export { DialogTriggerProps as S, DialogPortalProps as _, DialogCloseProps as a, DialogTitleProps as b, DialogDescription as c, DialogFooterProps as d, DialogHeader as f, DialogPortal as g, DialogOverlayProps as h, DialogClose as i, DialogDescriptionProps as l, DialogOverlay as m, DialogBody as n, DialogContent as o, DialogHeaderProps as p, DialogBodyProps as r, DialogContentProps as s, Dialog$1 as t, DialogFooter as u, DialogProps as v, DialogTrigger as x, DialogTitle as y };
|
|
42
|
+
//# sourceMappingURL=dialog-Ej7pnact.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { n as __name } from "./rolldown-runtime-Bdj-bS2b.js";
|
|
2
|
+
import { a as PieChartProps } from "./pie-chart-CvG27kFN.js";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
//#region src/components/donut-chart.d.ts
|
|
5
|
+
type DonutChartProps = PieChartProps & {
|
|
6
|
+
thickness?: number;
|
|
7
|
+
withTotal?: boolean;
|
|
8
|
+
totalLabel?: React.ReactNode;
|
|
9
|
+
};
|
|
10
|
+
declare function DonutChart({ className, thickness, outerRadius, withTotal, totalLabel, data, ...props }: DonutChartProps): React.JSX.Element;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { DonutChartProps as n, DonutChart as t };
|
|
13
|
+
//# sourceMappingURL=donut-chart-BDJR8TXh.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./rolldown-runtime-Bdj-bS2b.js";import{t as e}from"./utils-DP9KtG7I.js";import{n as t}from"./pie-chart-S4nMKbsW.js";import{jsx as n,jsxs as r}from"react/jsx-runtime";import*as i from"react";import{Label as a}from"recharts";function DonutChart({className:o,thickness:s=.35,outerRadius:c=`80%`,withTotal:l=!1,totalLabel:u=`Total`,data:d,...f}){let p=i.useMemo(()=>{let e=Math.min(Math.max(1-s,0),1);if(typeof c==`number`)return c*e;let t=/^(\d+(?:\.\d+)?)%$/.exec(c);return t?`${Number(t[1])*e}%`:c},[c,s]),m=i.useMemo(()=>d.reduce((e,t)=>e+t.value,0),[d]);return n(t,{dataSlot:`donut-chart`,className:e(o),data:d,outerRadius:c,innerRadius:p,centerSlot:l?n(a,{position:`center`,content:({viewBox:e})=>!e||!(`cx`in e)||!(`cy`in e)?null:r(`text`,{x:e.cx,y:e.cy,textAnchor:`middle`,dominantBaseline:`middle`,children:[n(`tspan`,{x:e.cx,y:e.cy,className:`fill-foreground font-medium text-2xl tabular-nums`,children:m.toLocaleString()}),n(`tspan`,{x:e.cx,y:(e.cy??0)+20,className:`fill-muted-foreground text-xs`,children:u})]})}):null,...f})}export{DonutChart as t};
|
|
2
|
+
//# sourceMappingURL=donut-chart-BHU4kDE6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"donut-chart-BHU4kDE6.js","names":[],"sources":["../src/components/donut-chart.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { Label } from 'recharts'\n\nimport { cn } from '../lib/utils'\nimport { PieChartBase, type PieChartProps } from './pie-chart'\n\nexport type DonutChartProps = PieChartProps & {\n thickness?: number\n withTotal?: boolean\n totalLabel?: React.ReactNode\n}\n\nfunction DonutChart({\n className,\n thickness = 0.35,\n outerRadius = '80%',\n withTotal = false,\n totalLabel = 'Total',\n data,\n ...props\n}: DonutChartProps) {\n const innerRadius = React.useMemo(() => {\n const ratio = Math.min(Math.max(1 - thickness, 0), 1)\n if (typeof outerRadius === 'number') {\n return outerRadius * ratio\n }\n const match = /^(\\d+(?:\\.\\d+)?)%$/.exec(outerRadius)\n if (match) {\n return `${Number(match[1]) * ratio}%`\n }\n return outerRadius\n }, [outerRadius, thickness])\n\n const total = React.useMemo(() => data.reduce((sum, item) => sum + item.value, 0), [data])\n\n return (\n <PieChartBase\n dataSlot=\"donut-chart\"\n className={cn(className)}\n data={data}\n outerRadius={outerRadius}\n innerRadius={innerRadius}\n centerSlot={\n withTotal ? (\n <Label\n position=\"center\"\n content={({ viewBox }) => {\n if (!viewBox || !('cx' in viewBox) || !('cy' in viewBox)) {\n return null\n }\n return (\n <text x={viewBox.cx} y={viewBox.cy} textAnchor=\"middle\" dominantBaseline=\"middle\">\n <tspan x={viewBox.cx} y={viewBox.cy} className=\"fill-foreground font-medium text-2xl tabular-nums\">\n {total.toLocaleString()}\n </tspan>\n <tspan x={viewBox.cx} y={(viewBox.cy ?? 0) + 20} className=\"fill-muted-foreground text-xs\">\n {totalLabel}\n </tspan>\n </text>\n )\n }}\n />\n ) : null\n }\n {...props}\n />\n )\n}\n\nexport { DonutChart }\n"],"mappings":"sOAaA,SAAS,WAAW,CAClB,YACA,YAAY,IACZ,cAAc,MACd,YAAY,GACZ,aAAa,QACb,OACA,GAAG,GACe,CAClB,IAAM,EAAc,EAAM,YAAc,CACtC,IAAM,EAAQ,KAAK,IAAI,KAAK,IAAI,EAAI,EAAW,CAAC,EAAG,CAAC,EACpD,GAAI,OAAO,GAAgB,SACzB,OAAO,EAAc,EAEvB,IAAM,EAAQ,qBAAqB,KAAK,CAAW,EAInD,OAHI,EACK,GAAG,OAAO,EAAM,EAAE,EAAI,EAAM,GAE9B,CACT,EAAG,CAAC,EAAa,CAAS,CAAC,EAErB,EAAQ,EAAM,YAAc,EAAK,QAAQ,EAAK,IAAS,EAAM,EAAK,MAAO,CAAC,EAAG,CAAC,CAAI,CAAC,EAEzF,OACE,EAAC,EAAD,CACE,SAAS,cACT,UAAW,EAAG,CAAS,EACjB,OACO,cACA,cACb,WACE,EACE,EAAC,EAAD,CACE,SAAS,SACT,SAAU,CAAE,aACN,CAAC,GAAW,EAAE,OAAQ,IAAY,EAAE,OAAQ,GACvC,KAGP,EAAC,OAAD,CAAM,EAAG,EAAQ,GAAI,EAAG,EAAQ,GAAI,WAAW,SAAS,iBAAiB,SAAzE,SAAA,CACE,EAAC,QAAD,CAAO,EAAG,EAAQ,GAAI,EAAG,EAAQ,GAAI,UAAU,oDAC5C,SAAA,EAAM,eAAe,CACjB,CAAA,EACP,EAAC,QAAD,CAAO,EAAG,EAAQ,GAAI,GAAI,EAAQ,IAAM,GAAK,GAAI,UAAU,gCACxD,SAAA,CACI,CAAA,CACH,GAGX,CAAA,EACC,KAEN,GAAI,CACL,CAAA,CAEL"}
|