@gbmtech/aurora-ui 0.3.57 → 0.3.58
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 +54 -54
- package/dist/cjs/components/alert-dialog.cjs.map +1 -1
- package/dist/cjs/components/app-layout/app-layout-breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/app-layout/app-layout-content.cjs.map +1 -1
- package/dist/cjs/components/app-layout/app-layout-filters.cjs.map +1 -1
- package/dist/cjs/components/app-layout/app-layout-header.cjs.map +1 -1
- package/dist/cjs/components/app-layout/app-layout-provider.cjs.map +1 -1
- package/dist/cjs/components/app-layout/app-layout.cjs.map +1 -1
- package/dist/cjs/components/app-layout/index.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/app-sidebar.cjs +1 -1
- package/dist/cjs/components/app-layout/sidebar/app-sidebar.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/index.cjs +1 -1
- package/dist/cjs/components/app-layout/sidebar/index.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/index.d.ts +1 -0
- package/dist/cjs/components/app-layout/sidebar/index.d.ts.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/intl/messages.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/logo.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/lucide-dynamic-icon.cjs.map +1 -0
- package/dist/cjs/components/app-layout/sidebar/lucide-dynamic-icon.d.ts.map +1 -0
- package/dist/cjs/components/app-layout/sidebar/nav-modules.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/nav-sub-item.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/nav-user.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/sidebar-icons.cjs +1 -1
- package/dist/cjs/components/app-layout/sidebar/sidebar-icons.cjs.map +1 -1
- package/dist/cjs/components/app-layout/sidebar/sidebar.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete-content.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete-context.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete-empty.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete-input.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete-item.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete-list.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/autocomplete.cjs.map +1 -1
- package/dist/cjs/components/autocomplete/index.cjs.map +1 -1
- package/dist/cjs/components/avatar.cjs.map +1 -1
- package/dist/cjs/components/badge.cjs +1 -1
- package/dist/cjs/components/badge.cjs.map +1 -1
- package/dist/cjs/components/badge.d.ts +2 -2
- package/dist/cjs/components/badge.d.ts.map +1 -1
- package/dist/cjs/components/breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/button.cjs +1 -1
- package/dist/cjs/components/button.cjs.map +1 -1
- package/dist/cjs/components/button.d.ts +2 -2
- package/dist/cjs/components/button.d.ts.map +1 -1
- package/dist/cjs/components/calendar.cjs +1 -1
- package/dist/cjs/components/calendar.cjs.map +1 -1
- package/dist/cjs/components/checkbox.cjs +1 -1
- package/dist/cjs/components/checkbox.cjs.map +1 -1
- package/dist/cjs/components/combobox.cjs.map +1 -1
- package/dist/cjs/components/command.cjs.map +1 -1
- package/dist/cjs/components/context-menu.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-action-bar.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-advanced-toolbar.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-column-header.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-date-filter.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-faceted-filter.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-filter-list.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-filter-menu.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-pagination.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-range-filter.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-skeleton.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-slider-filter.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-sort-list.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-toolbar.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table-view-options.cjs.map +1 -1
- package/dist/cjs/components/data-table/data-table.cjs.map +1 -1
- package/dist/cjs/components/data-table/index.cjs +1 -1
- package/dist/cjs/components/data-table/index.cjs.map +1 -1
- package/dist/cjs/components/date-picker-with-range.cjs.map +1 -1
- package/dist/cjs/components/date-picker.cjs.map +1 -1
- package/dist/cjs/components/date-time-picker-with-range.cjs.map +1 -1
- package/dist/cjs/components/date-time-picker.cjs.map +1 -1
- package/dist/cjs/components/dialog.cjs.map +1 -1
- package/dist/cjs/components/dropdown-menu.cjs.map +1 -1
- package/dist/cjs/components/faceted.cjs.map +1 -1
- package/dist/cjs/components/form.cjs.map +1 -1
- package/dist/cjs/components/icons/rumo.cjs.map +1 -1
- package/dist/cjs/components/icons/vli.cjs.map +1 -1
- package/dist/cjs/components/input-otp.cjs +1 -1
- package/dist/cjs/components/input-otp.cjs.map +1 -1
- package/dist/cjs/components/input-password.cjs.map +1 -1
- package/dist/cjs/components/input.cjs +1 -1
- package/dist/cjs/components/input.cjs.map +1 -1
- package/dist/cjs/components/label.cjs.map +1 -1
- package/dist/cjs/components/mask-input.cjs.map +1 -1
- package/dist/cjs/components/multi-select.cjs.map +1 -1
- package/dist/cjs/components/page-layout/index.cjs.map +1 -1
- package/dist/cjs/components/page-layout/page-layout-breadcrumb.cjs.map +1 -1
- package/dist/cjs/components/page-layout/page-layout-content.cjs.map +1 -1
- package/dist/cjs/components/page-layout/page-layout-header.cjs.map +1 -1
- package/dist/cjs/components/page-layout/page-layout-root.cjs.map +1 -1
- package/dist/cjs/components/page-layout/page-layout-title.cjs.map +1 -1
- package/dist/cjs/components/pagination.cjs.map +1 -1
- package/dist/cjs/components/popover.cjs.map +1 -1
- package/dist/cjs/components/radio-group.cjs +1 -1
- package/dist/cjs/components/radio-group.cjs.map +1 -1
- package/dist/cjs/components/scroll-area.cjs +1 -1
- package/dist/cjs/components/scroll-area.cjs.map +1 -1
- package/dist/cjs/components/select.cjs +1 -1
- package/dist/cjs/components/select.cjs.map +1 -1
- package/dist/cjs/components/separator.cjs.map +1 -1
- package/dist/cjs/components/sheet/index.cjs.map +1 -1
- package/dist/cjs/components/sheet/sheet-content-variants.cjs.map +1 -1
- package/dist/cjs/components/sheet/sheet.cjs.map +1 -1
- package/dist/cjs/components/skeleton.cjs.map +1 -1
- package/dist/cjs/components/slider.cjs.map +1 -1
- package/dist/cjs/components/sortable.cjs.map +1 -1
- package/dist/cjs/components/spinner.cjs.map +1 -1
- package/dist/cjs/components/switch.cjs +1 -1
- package/dist/cjs/components/switch.cjs.map +1 -1
- package/dist/cjs/components/table-expandable.cjs.map +1 -1
- package/dist/cjs/components/table.cjs.map +1 -1
- package/dist/cjs/components/tabs/index.cjs.map +1 -1
- package/dist/cjs/components/tabs/tabs-content.cjs +1 -1
- package/dist/cjs/components/tabs/tabs-content.cjs.map +1 -1
- package/dist/cjs/components/tabs/tabs-list.cjs.map +1 -1
- package/dist/cjs/components/tabs/tabs-root.cjs.map +1 -1
- package/dist/cjs/components/tabs/tabs-trigger.cjs +1 -1
- package/dist/cjs/components/tabs/tabs-trigger.cjs.map +1 -1
- package/dist/cjs/components/textarea.cjs +1 -1
- package/dist/cjs/components/textarea.cjs.map +1 -1
- package/dist/cjs/components/time-picker-input.cjs.map +1 -1
- package/dist/cjs/components/time-picker.cjs.map +1 -1
- package/dist/cjs/components/title.cjs.map +1 -1
- package/dist/cjs/components/tokens-grid.cjs.map +1 -1
- package/dist/cjs/components/tooltip.cjs.map +1 -1
- package/dist/cjs/hooks/use-callback-ref.cjs.map +1 -1
- package/dist/cjs/hooks/use-data-table.cjs.map +1 -1
- package/dist/cjs/hooks/use-debounce.cjs.map +1 -1
- package/dist/cjs/hooks/use-debounced-callback.cjs.map +1 -1
- package/dist/cjs/hooks/use-mobile.cjs.map +1 -1
- package/dist/cjs/lib/composition.cjs.map +1 -1
- package/dist/cjs/lib/data-table-config.cjs.map +1 -1
- package/dist/cjs/lib/data-table.cjs.map +1 -1
- package/dist/cjs/lib/format.cjs.map +1 -1
- package/dist/cjs/lib/id.cjs.map +1 -1
- package/dist/cjs/lib/index.cjs.map +1 -1
- package/dist/cjs/lib/parsers.cjs.map +1 -1
- package/dist/cjs/lib/utils.cjs.map +1 -1
- package/dist/cjs/primitive/input.cjs.map +1 -1
- package/dist/cjs/tokens/colors.cjs.map +1 -1
- package/dist/cjs/tokens/index.cjs.map +1 -1
- package/dist/cjs/types/data-table.cjs.map +1 -1
- package/dist/cjs/types/index.cjs.map +1 -1
- package/dist/cjs/types/locale.cjs.map +1 -1
- package/dist/cjs/types/module.cjs.map +1 -1
- package/dist/cjs/types/user.cjs.map +1 -1
- package/dist/cjs/utils/time-picker.cjs.map +1 -1
- package/dist/esm/components/alert-dialog.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-breadcrumb.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-content.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-filters.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-header.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout-provider.js.map +1 -1
- package/dist/esm/components/app-layout/app-layout.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/app-sidebar.js +1 -1
- package/dist/esm/components/app-layout/sidebar/app-sidebar.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/index.d.ts +1 -0
- package/dist/esm/components/app-layout/sidebar/index.d.ts.map +1 -1
- package/dist/esm/components/app-layout/sidebar/index.js +2 -1
- package/dist/esm/components/app-layout/sidebar/index.js.map +1 -0
- package/dist/esm/components/app-layout/sidebar/intl/messages.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/logo.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/lucide-dynamic-icon.d.ts.map +1 -0
- package/dist/esm/components/app-layout/sidebar/lucide-dynamic-icon.js.map +1 -0
- package/dist/esm/components/app-layout/sidebar/nav-modules.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-sub-item.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/nav-user.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar-icons.js +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar-icons.js.map +1 -1
- package/dist/esm/components/app-layout/sidebar/sidebar.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-content.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-context.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-empty.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-input.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-item.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete-list.js.map +1 -1
- package/dist/esm/components/autocomplete/autocomplete.js.map +1 -1
- package/dist/esm/components/avatar.js.map +1 -1
- package/dist/esm/components/badge.d.ts +2 -2
- package/dist/esm/components/badge.d.ts.map +1 -1
- package/dist/esm/components/badge.js +1 -1
- package/dist/esm/components/badge.js.map +1 -1
- package/dist/esm/components/breadcrumb.js.map +1 -1
- package/dist/esm/components/button.d.ts +2 -2
- package/dist/esm/components/button.d.ts.map +1 -1
- package/dist/esm/components/button.js +1 -1
- package/dist/esm/components/button.js.map +1 -1
- package/dist/esm/components/calendar.js +1 -1
- package/dist/esm/components/calendar.js.map +1 -1
- package/dist/esm/components/checkbox.js +1 -1
- package/dist/esm/components/checkbox.js.map +1 -1
- package/dist/esm/components/combobox.js.map +1 -1
- package/dist/esm/components/command.js.map +1 -1
- package/dist/esm/components/context-menu.js.map +1 -1
- package/dist/esm/components/data-table/data-table-action-bar.js.map +1 -1
- package/dist/esm/components/data-table/data-table-advanced-toolbar.js.map +1 -1
- package/dist/esm/components/data-table/data-table-column-header.js.map +1 -1
- package/dist/esm/components/data-table/data-table-date-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-faceted-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-filter-list.js.map +1 -1
- package/dist/esm/components/data-table/data-table-filter-menu.js.map +1 -1
- package/dist/esm/components/data-table/data-table-pagination.js.map +1 -1
- package/dist/esm/components/data-table/data-table-range-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-skeleton.js.map +1 -1
- package/dist/esm/components/data-table/data-table-slider-filter.js.map +1 -1
- package/dist/esm/components/data-table/data-table-sort-list.js.map +1 -1
- package/dist/esm/components/data-table/data-table-toolbar.js.map +1 -1
- package/dist/esm/components/data-table/data-table-view-options.js.map +1 -1
- package/dist/esm/components/data-table/data-table.js.map +1 -1
- package/dist/esm/components/data-table/index.js +1 -2
- package/dist/esm/components/date-picker-with-range.js.map +1 -1
- package/dist/esm/components/date-picker.js.map +1 -1
- package/dist/esm/components/date-time-picker-with-range.js.map +1 -1
- package/dist/esm/components/date-time-picker.js.map +1 -1
- package/dist/esm/components/dialog.js.map +1 -1
- package/dist/esm/components/dropdown-menu.js.map +1 -1
- package/dist/esm/components/faceted.js.map +1 -1
- package/dist/esm/components/form.js.map +1 -1
- package/dist/esm/components/icons/rumo.js.map +1 -1
- package/dist/esm/components/icons/vli.js.map +1 -1
- package/dist/esm/components/input-otp.js +1 -1
- package/dist/esm/components/input-otp.js.map +1 -1
- package/dist/esm/components/input-password.js.map +1 -1
- package/dist/esm/components/input.js +1 -1
- package/dist/esm/components/input.js.map +1 -1
- package/dist/esm/components/label.js.map +1 -1
- package/dist/esm/components/mask-input.js.map +1 -1
- package/dist/esm/components/multi-select.js.map +1 -1
- package/dist/esm/components/page-layout/index.js.map +1 -1
- package/dist/esm/components/page-layout/page-layout-breadcrumb.js.map +1 -1
- package/dist/esm/components/page-layout/page-layout-content.js.map +1 -1
- package/dist/esm/components/page-layout/page-layout-header.js.map +1 -1
- package/dist/esm/components/page-layout/page-layout-root.js.map +1 -1
- package/dist/esm/components/page-layout/page-layout-title.js.map +1 -1
- package/dist/esm/components/pagination.js.map +1 -1
- package/dist/esm/components/popover.js.map +1 -1
- package/dist/esm/components/radio-group.js +1 -1
- package/dist/esm/components/radio-group.js.map +1 -1
- package/dist/esm/components/scroll-area.js +1 -1
- package/dist/esm/components/scroll-area.js.map +1 -1
- package/dist/esm/components/select.js +1 -1
- package/dist/esm/components/select.js.map +1 -1
- package/dist/esm/components/separator.js.map +1 -1
- package/dist/esm/components/sheet/sheet-content-variants.js.map +1 -1
- package/dist/esm/components/sheet/sheet.js.map +1 -1
- package/dist/esm/components/skeleton.js.map +1 -1
- package/dist/esm/components/slider.js.map +1 -1
- package/dist/esm/components/sortable.js.map +1 -1
- package/dist/esm/components/spinner.js.map +1 -1
- package/dist/esm/components/switch.js +1 -1
- package/dist/esm/components/switch.js.map +1 -1
- package/dist/esm/components/table-expandable.js.map +1 -1
- package/dist/esm/components/table.js.map +1 -1
- package/dist/esm/components/tabs/index.js.map +1 -1
- package/dist/esm/components/tabs/tabs-content.js +1 -1
- package/dist/esm/components/tabs/tabs-content.js.map +1 -1
- package/dist/esm/components/tabs/tabs-list.js.map +1 -1
- package/dist/esm/components/tabs/tabs-root.js.map +1 -1
- package/dist/esm/components/tabs/tabs-trigger.js +1 -1
- package/dist/esm/components/tabs/tabs-trigger.js.map +1 -1
- package/dist/esm/components/textarea.js +1 -1
- package/dist/esm/components/textarea.js.map +1 -1
- package/dist/esm/components/time-picker-input.js.map +1 -1
- package/dist/esm/components/time-picker.js.map +1 -1
- package/dist/esm/components/title.js.map +1 -1
- package/dist/esm/components/tokens-grid.js.map +1 -1
- package/dist/esm/components/tooltip.js.map +1 -1
- package/dist/esm/hooks/use-callback-ref.js.map +1 -1
- package/dist/esm/hooks/use-data-table.js.map +1 -1
- package/dist/esm/hooks/use-debounce.js.map +1 -1
- package/dist/esm/hooks/use-debounced-callback.js.map +1 -1
- package/dist/esm/hooks/use-mobile.js.map +1 -1
- package/dist/esm/lib/composition.js.map +1 -1
- package/dist/esm/lib/data-table-config.js.map +1 -1
- package/dist/esm/lib/data-table.js.map +1 -1
- package/dist/esm/lib/format.js.map +1 -1
- package/dist/esm/lib/id.js.map +1 -1
- package/dist/esm/lib/parsers.js.map +1 -1
- package/dist/esm/lib/utils.js.map +1 -1
- package/dist/esm/primitive/input.js.map +1 -1
- package/dist/esm/tokens/colors.js.map +1 -1
- package/dist/esm/utils/time-picker.js.map +1 -1
- package/dist/styles/index.css +675 -574
- package/package.json +1 -1
- package/dist/cjs/lib/lucide-dynamic-icon.cjs.map +0 -1
- package/dist/cjs/lib/lucide-dynamic-icon.d.ts.map +0 -1
- package/dist/esm/components/data-table/index.js.map +0 -1
- package/dist/esm/lib/lucide-dynamic-icon.d.ts.map +0 -1
- package/dist/esm/lib/lucide-dynamic-icon.js.map +0 -1
- /package/dist/cjs/{lib → components/app-layout/sidebar}/lucide-dynamic-icon.cjs +0 -0
- /package/dist/cjs/{lib → components/app-layout/sidebar}/lucide-dynamic-icon.d.ts +0 -0
- /package/dist/esm/{lib → components/app-layout/sidebar}/lucide-dynamic-icon.d.ts +0 -0
- /package/dist/esm/{lib → components/app-layout/sidebar}/lucide-dynamic-icon.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/data-table/data-table-slider-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-slider-filter.tsx"],"sourcesContent":["\n\nimport type { Column } from '@tanstack/react-table'\nimport * as React from 'react'\n\nimport { Button } from '@/components/button'\nimport { Input } from '@/components/input'\nimport { Label } from '@/components/label'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport { Separator } from '@/components/separator'\nimport { Slider } from '@/components/slider'\nimport { cn } from '@/lib/utils'\nimport { PlusCircle, XCircle } from '@phosphor-icons/react'\n\ninterface Range {\n min: number\n max: number\n}\n\ntype RangeValue = [number, number]\n\nfunction getIsValidRange(value: unknown): value is RangeValue {\n return (\n Array.isArray(value) &&\n value.length === 2 &&\n typeof value[0] === 'number' &&\n typeof value[1] === 'number'\n )\n}\n\ninterface DataTableSliderFilterProps<TData> {\n column: Column<TData, unknown>\n title?: string\n}\n\nexport function DataTableSliderFilter<TData>({\n column,\n title,\n}: DataTableSliderFilterProps<TData>) {\n const id = React.useId()\n\n const columnFilterValue = getIsValidRange(column.getFilterValue())\n ? (column.getFilterValue() as RangeValue)\n : undefined\n\n const defaultRange = column.columnDef.meta?.range\n const unit = column.columnDef.meta?.unit\n\n const { min, max, step } = React.useMemo<Range & { step: number }>(() => {\n let minValue = 0\n let maxValue = 100\n\n if (defaultRange && getIsValidRange(defaultRange)) {\n ;[minValue, maxValue] = defaultRange\n } else {\n const values = column.getFacetedMinMaxValues()\n if (values && Array.isArray(values) && values.length === 2) {\n const [facetMinValue, facetMaxValue] = values\n if (\n typeof facetMinValue === 'number' &&\n typeof facetMaxValue === 'number'\n ) {\n minValue = facetMinValue\n maxValue = facetMaxValue\n }\n }\n }\n\n const rangeSize = maxValue - minValue\n const step =\n rangeSize <= 20\n ? 1\n : rangeSize <= 100\n ? Math.ceil(rangeSize / 20)\n : Math.ceil(rangeSize / 50)\n\n return { min: minValue, max: maxValue, step }\n }, [column, defaultRange])\n\n const range = React.useMemo((): RangeValue => {\n return columnFilterValue ?? [min, max]\n }, [columnFilterValue, min, max])\n\n const formatValue = React.useCallback((value: number) => {\n return value.toLocaleString(undefined, { maximumFractionDigits: 0 })\n }, [])\n\n const onFromInputChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const numValue = Number(event.target.value)\n if (!Number.isNaN(numValue) && numValue >= min && numValue <= range[1]) {\n column.setFilterValue([numValue, range[1]])\n }\n },\n [column, min, range]\n )\n\n const onToInputChange = React.useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const numValue = Number(event.target.value)\n if (!Number.isNaN(numValue) && numValue <= max && numValue >= range[0]) {\n column.setFilterValue([range[0], numValue])\n }\n },\n [column, max, range]\n )\n\n const onSliderValueChange = React.useCallback(\n (value: RangeValue) => {\n if (Array.isArray(value) && value.length === 2) {\n column.setFilterValue(value)\n }\n },\n [column]\n )\n\n const onReset = React.useCallback(\n (event: React.MouseEvent) => {\n if (event.target instanceof HTMLDivElement) {\n event.stopPropagation()\n }\n column.setFilterValue(undefined)\n },\n [column]\n )\n\n return (\n <Popover>\n <PopoverTrigger asChild>\n <Button variant=\"outline\" size=\"sm\">\n {columnFilterValue ? (\n <div\n role=\"button\"\n aria-label={`Clear ${title} filter`}\n tabIndex={0}\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-500\"\n onClick={onReset}\n >\n <XCircle />\n </div>\n ) : (\n <PlusCircle />\n )}\n <span>{title}</span>\n {columnFilterValue ? (\n <>\n <Separator\n orientation=\"vertical\"\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\n />\n {formatValue(columnFilterValue[0])} -{' '}\n {formatValue(columnFilterValue[1])}\n {unit ? ` ${unit}` : ''}\n </>\n ) : null}\n </Button>\n </PopoverTrigger>\n <PopoverContent align=\"start\" className=\"flex w-auto flex-col gap-4\">\n <div className=\"flex flex-col gap-3\">\n <p className=\"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {title}\n </p>\n <div className=\"flex items-center gap-4\">\n <Label htmlFor={`${id}-from`} className=\"sr-only\">\n From\n </Label>\n <div className=\"relative\">\n <Input\n id={`${id}-from`}\n type=\"number\"\n aria-valuemin={min}\n aria-valuemax={max}\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n placeholder={min.toString()}\n min={min}\n max={max}\n value={range[0]?.toString()}\n onChange={onFromInputChange}\n className={cn('h-10 w-24', unit && 'pr-8')}\n />\n {unit && (\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\n {unit}\n </span>\n )}\n </div>\n <Label htmlFor={`${id}-to`} className=\"sr-only\">\n to\n </Label>\n <div className=\"relative\">\n <Input\n id={`${id}-to`}\n type=\"number\"\n aria-valuemin={min}\n aria-valuemax={max}\n inputMode=\"numeric\"\n pattern=\"[0-9]*\"\n placeholder={max.toString()}\n min={min}\n max={max}\n value={range[1]?.toString()}\n onChange={onToInputChange}\n className={cn('h-10 w-24', unit && 'pr-8')}\n />\n {unit && (\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\n {unit}\n </span>\n )}\n </div>\n </div>\n <Label htmlFor={`${id}-slider`} className=\"sr-only\">\n {title} slider\n </Label>\n <Slider\n id={`${id}-slider`}\n min={min}\n max={max}\n step={step}\n value={range}\n onValueChange={onSliderValueChange}\n />\n </div>\n <Button\n aria-label={`Clear ${title} filter`}\n variant=\"outline\"\n size=\"sm\"\n onClick={onReset}\n >\n Limpar\n </Button>\n </PopoverContent>\n </Popover>\n )\n}\n"],"names":["getIsValidRange","value","Array","DataTableSliderFilter","column","title","id","React","columnFilterValue","undefined","defaultRange","unit","min","max","step","minValue","maxValue","values","facetMinValue","facetMaxValue","rangeSize","Math","range","formatValue","onFromInputChange","event","numValue","Number","onToInputChange","onSliderValueChange","onReset","HTMLDivElement","Popover","PopoverTrigger","Button","XCircle","PlusCircle","Separator","PopoverContent","Label","Input","cn","Slider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components\\data-table\\data-table-slider-filter.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-slider-filter.tsx"],"sourcesContent":["\r\n\r\nimport type { Column } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { Input } from '@/components/input'\r\nimport { Label } from '@/components/label'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { Separator } from '@/components/separator'\r\nimport { Slider } from '@/components/slider'\r\nimport { cn } from '@/lib/utils'\r\nimport { PlusCircle, XCircle } from '@phosphor-icons/react'\r\n\r\ninterface Range {\r\n min: number\r\n max: number\r\n}\r\n\r\ntype RangeValue = [number, number]\r\n\r\nfunction getIsValidRange(value: unknown): value is RangeValue {\r\n return (\r\n Array.isArray(value) &&\r\n value.length === 2 &&\r\n typeof value[0] === 'number' &&\r\n typeof value[1] === 'number'\r\n )\r\n}\r\n\r\ninterface DataTableSliderFilterProps<TData> {\r\n column: Column<TData, unknown>\r\n title?: string\r\n}\r\n\r\nexport function DataTableSliderFilter<TData>({\r\n column,\r\n title,\r\n}: DataTableSliderFilterProps<TData>) {\r\n const id = React.useId()\r\n\r\n const columnFilterValue = getIsValidRange(column.getFilterValue())\r\n ? (column.getFilterValue() as RangeValue)\r\n : undefined\r\n\r\n const defaultRange = column.columnDef.meta?.range\r\n const unit = column.columnDef.meta?.unit\r\n\r\n const { min, max, step } = React.useMemo<Range & { step: number }>(() => {\r\n let minValue = 0\r\n let maxValue = 100\r\n\r\n if (defaultRange && getIsValidRange(defaultRange)) {\r\n ;[minValue, maxValue] = defaultRange\r\n } else {\r\n const values = column.getFacetedMinMaxValues()\r\n if (values && Array.isArray(values) && values.length === 2) {\r\n const [facetMinValue, facetMaxValue] = values\r\n if (\r\n typeof facetMinValue === 'number' &&\r\n typeof facetMaxValue === 'number'\r\n ) {\r\n minValue = facetMinValue\r\n maxValue = facetMaxValue\r\n }\r\n }\r\n }\r\n\r\n const rangeSize = maxValue - minValue\r\n const step =\r\n rangeSize <= 20\r\n ? 1\r\n : rangeSize <= 100\r\n ? Math.ceil(rangeSize / 20)\r\n : Math.ceil(rangeSize / 50)\r\n\r\n return { min: minValue, max: maxValue, step }\r\n }, [column, defaultRange])\r\n\r\n const range = React.useMemo((): RangeValue => {\r\n return columnFilterValue ?? [min, max]\r\n }, [columnFilterValue, min, max])\r\n\r\n const formatValue = React.useCallback((value: number) => {\r\n return value.toLocaleString(undefined, { maximumFractionDigits: 0 })\r\n }, [])\r\n\r\n const onFromInputChange = React.useCallback(\r\n (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const numValue = Number(event.target.value)\r\n if (!Number.isNaN(numValue) && numValue >= min && numValue <= range[1]) {\r\n column.setFilterValue([numValue, range[1]])\r\n }\r\n },\r\n [column, min, range]\r\n )\r\n\r\n const onToInputChange = React.useCallback(\r\n (event: React.ChangeEvent<HTMLInputElement>) => {\r\n const numValue = Number(event.target.value)\r\n if (!Number.isNaN(numValue) && numValue <= max && numValue >= range[0]) {\r\n column.setFilterValue([range[0], numValue])\r\n }\r\n },\r\n [column, max, range]\r\n )\r\n\r\n const onSliderValueChange = React.useCallback(\r\n (value: RangeValue) => {\r\n if (Array.isArray(value) && value.length === 2) {\r\n column.setFilterValue(value)\r\n }\r\n },\r\n [column]\r\n )\r\n\r\n const onReset = React.useCallback(\r\n (event: React.MouseEvent) => {\r\n if (event.target instanceof HTMLDivElement) {\r\n event.stopPropagation()\r\n }\r\n column.setFilterValue(undefined)\r\n },\r\n [column]\r\n )\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"outline\" size=\"sm\">\r\n {columnFilterValue ? (\r\n <div\r\n role=\"button\"\r\n aria-label={`Clear ${title} filter`}\r\n tabIndex={0}\r\n className=\"rounded-sm opacity-70 transition-opacity hover:opacity-100 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-gray-500\"\r\n onClick={onReset}\r\n >\r\n <XCircle />\r\n </div>\r\n ) : (\r\n <PlusCircle />\r\n )}\r\n <span>{title}</span>\r\n {columnFilterValue ? (\r\n <>\r\n <Separator\r\n orientation=\"vertical\"\r\n className=\"mx-0.5 data-[orientation=vertical]:h-4\"\r\n />\r\n {formatValue(columnFilterValue[0])} -{' '}\r\n {formatValue(columnFilterValue[1])}\r\n {unit ? ` ${unit}` : ''}\r\n </>\r\n ) : null}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent align=\"start\" className=\"flex w-auto flex-col gap-4\">\r\n <div className=\"flex flex-col gap-3\">\r\n <p className=\"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\r\n {title}\r\n </p>\r\n <div className=\"flex items-center gap-4\">\r\n <Label htmlFor={`${id}-from`} className=\"sr-only\">\r\n From\r\n </Label>\r\n <div className=\"relative\">\r\n <Input\r\n id={`${id}-from`}\r\n type=\"number\"\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n inputMode=\"numeric\"\r\n pattern=\"[0-9]*\"\r\n placeholder={min.toString()}\r\n min={min}\r\n max={max}\r\n value={range[0]?.toString()}\r\n onChange={onFromInputChange}\r\n className={cn('h-10 w-24', unit && 'pr-8')}\r\n />\r\n {unit && (\r\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\r\n {unit}\r\n </span>\r\n )}\r\n </div>\r\n <Label htmlFor={`${id}-to`} className=\"sr-only\">\r\n to\r\n </Label>\r\n <div className=\"relative\">\r\n <Input\r\n id={`${id}-to`}\r\n type=\"number\"\r\n aria-valuemin={min}\r\n aria-valuemax={max}\r\n inputMode=\"numeric\"\r\n pattern=\"[0-9]*\"\r\n placeholder={max.toString()}\r\n min={min}\r\n max={max}\r\n value={range[1]?.toString()}\r\n onChange={onToInputChange}\r\n className={cn('h-10 w-24', unit && 'pr-8')}\r\n />\r\n {unit && (\r\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\r\n {unit}\r\n </span>\r\n )}\r\n </div>\r\n </div>\r\n <Label htmlFor={`${id}-slider`} className=\"sr-only\">\r\n {title} slider\r\n </Label>\r\n <Slider\r\n id={`${id}-slider`}\r\n min={min}\r\n max={max}\r\n step={step}\r\n value={range}\r\n onValueChange={onSliderValueChange}\r\n />\r\n </div>\r\n <Button\r\n aria-label={`Clear ${title} filter`}\r\n variant=\"outline\"\r\n size=\"sm\"\r\n onClick={onReset}\r\n >\r\n Limpar\r\n </Button>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["getIsValidRange","value","Array","DataTableSliderFilter","column","title","id","React","columnFilterValue","undefined","defaultRange","unit","min","max","step","minValue","maxValue","values","facetMinValue","facetMaxValue","rangeSize","Math","range","formatValue","onFromInputChange","event","numValue","Number","onToInputChange","onSliderValueChange","onReset","HTMLDivElement","Popover","PopoverTrigger","Button","XCircle","PlusCircle","Separator","PopoverContent","Label","Input","cn","Slider"],"mappings":";qUAqBA,SAASA,EAAgBC,CAAc,EACrC,OACEC,MAAM,OAAO,CAACD,IACdA,IAAAA,EAAM,MAAM,EACZ,iBAAOA,CAAK,CAAC,EAAE,EACf,iBAAOA,CAAK,CAAC,EAAE,CASZ,SAASE,EAA6B,CAC3CC,OAAAA,CAAM,CACNC,MAAAA,CAAK,CAC6B,EAClC,IAAMC,EAAKC,EAAAA,KAAW,GAEhBC,EAAoBR,EAAgBI,EAAO,cAAc,IAC1DA,EAAO,cAAc,GACtBK,OAEEC,EAAeN,EAAO,SAAS,CAAC,IAAI,EAAE,MACtCO,EAAOP,EAAO,SAAS,CAAC,IAAI,EAAE,KAE9B,CAAEQ,IAAAA,CAAG,CAAEC,IAAAA,CAAG,CAAEC,KAAAA,CAAI,CAAE,CAAGP,EAAAA,OAAa,CAA2B,KACjE,IAAIQ,EAAW,EACXC,EAAW,IAEf,GAAIN,GAAgBV,EAAgBU,GACjC,CAACK,EAAUC,EAAS,CAAGN,MACnB,CACL,IAAMO,EAASb,EAAO,sBAAsB,GAC5C,GAAIa,GAAUf,MAAM,OAAO,CAACe,IAAWA,IAAAA,EAAO,MAAM,CAAQ,CAC1D,GAAM,CAACC,EAAeC,EAAc,CAAGF,CAEZ,WAAzB,OAAOC,GACP,iBAAOC,IAEPJ,EAAWG,EACXF,EAAWG,EAEf,CACF,CAEA,IAAMC,EAAYJ,EAAWD,EAQ7B,MAAO,CAAE,IAAKA,EAAU,IAAKC,EAAUF,KANrCM,GAAa,GACT,EACAA,GAAa,IACXC,KAAK,IAAI,CAACD,EAAY,IACtBC,KAAK,IAAI,CAACD,EAAY,GAEc,CAC9C,EAAG,CAAChB,EAAQM,EAAa,EAEnBY,EAAQf,EAAAA,OAAa,CAAC,IACnBC,GAAqB,CAACI,EAAKC,EAAI,CACrC,CAACL,EAAmBI,EAAKC,EAAI,EAE1BU,EAAchB,EAAAA,WAAiB,CAAC,GAC7BN,EAAM,cAAc,CAACQ,OAAW,CAAE,sBAAuB,CAAE,GACjE,EAAE,EAECe,EAAoBjB,EAAAA,WAAiB,CACzC,IACE,IAAMmB,EAAWC,OAAOF,EAAM,MAAM,CAAC,KAAK,CACtC,EAACE,OAAO,KAAK,CAACD,IAAaA,GAAYd,GAAOc,GAAYJ,CAAK,CAAC,EAAE,EACpElB,EAAO,cAAc,CAAC,CAACsB,EAAUJ,CAAK,CAAC,EAAE,CAAC,CAE9C,EACA,CAAClB,EAAQQ,EAAKU,EAAM,EAGhBM,EAAkBrB,EAAAA,WAAiB,CACvC,IACE,IAAMmB,EAAWC,OAAOF,EAAM,MAAM,CAAC,KAAK,CACtC,EAACE,OAAO,KAAK,CAACD,IAAaA,GAAYb,GAAOa,GAAYJ,CAAK,CAAC,EAAE,EACpElB,EAAO,cAAc,CAAC,CAACkB,CAAK,CAAC,EAAE,CAAEI,EAAS,CAE9C,EACA,CAACtB,EAAQS,EAAKS,EAAM,EAGhBO,EAAsBtB,EAAAA,WAAiB,CAC3C,IACML,MAAM,OAAO,CAACD,IAAUA,IAAAA,EAAM,MAAM,EACtCG,EAAO,cAAc,CAACH,EAE1B,EACA,CAACG,EAAO,EAGJ0B,EAAUvB,EAAAA,WAAiB,CAC/B,IACMkB,EAAM,MAAM,YAAYM,gBAC1BN,EAAM,eAAe,GAEvBrB,EAAO,cAAc,CAACK,OACxB,EACA,CAACL,EAAO,EAGV,MACE,WAAC4B,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CAAC,QAAQ,UAAU,KAAK,K,UAC5B1B,EACC,UAAC,OACC,KAAK,SACL,aAAY,CAAC,MAAM,EAAEH,EAAM,OAAO,CAAC,CACnC,SAAU,EACV,UAAU,yIACV,QAASyB,E,SAET,UAACK,EAAAA,OAAOA,CAAAA,CAAAA,E,GAGV,UAACC,EAAAA,UAAUA,CAAAA,CAAAA,GAEb,UAAC,Q,SAAM/B,C,GACNG,EACC,uB,UACE,UAAC6B,EAAAA,SAASA,CAAAA,CACR,YAAY,WACZ,UAAU,wC,GAEXd,EAAYf,CAAiB,CAAC,EAAE,EAAE,KAAG,IACrCe,EAAYf,CAAiB,CAAC,EAAE,EAChCG,EAAO,CAAC,CAAC,EAAEA,EAAK,CAAC,CAAG,G,GAErB,K,KAGR,WAAC2B,EAAAA,cAAcA,CAAAA,CAAC,MAAM,QAAQ,UAAU,6B,UACtC,WAAC,OAAI,UAAU,sB,UACb,UAAC,KAAE,UAAU,qF,SACVjC,C,GAEH,WAAC,OAAI,UAAU,0B,UACb,UAACkC,EAAAA,KAAKA,CAAAA,CAAC,QAAS,CAAC,EAAEjC,EAAG,KAAK,CAAC,CAAE,UAAU,U,SAAU,M,GAGlD,WAAC,OAAI,UAAU,W,UACb,UAACkC,EAAAA,KAAKA,CAAAA,CACJ,GAAI,CAAC,EAAElC,EAAG,KAAK,CAAC,CAChB,KAAK,SACL,gBAAeM,EACf,gBAAeC,EACf,UAAU,UACV,QAAQ,SACR,YAAaD,EAAI,QAAQ,GACzB,IAAKA,EACL,IAAKC,EACL,MAAOS,CAAK,CAAC,EAAE,EAAE,WACjB,SAAUE,EACV,UAAWiB,GAAAA,EAAAA,EAAAA,EAAG,YAAa9B,GAAQ,O,GAEpCA,GACC,UAAC,QAAK,UAAU,8G,SACbA,C,MAIP,UAAC4B,EAAAA,KAAKA,CAAAA,CAAC,QAAS,CAAC,EAAEjC,EAAG,GAAG,CAAC,CAAE,UAAU,U,SAAU,I,GAGhD,WAAC,OAAI,UAAU,W,UACb,UAACkC,EAAAA,KAAKA,CAAAA,CACJ,GAAI,CAAC,EAAElC,EAAG,GAAG,CAAC,CACd,KAAK,SACL,gBAAeM,EACf,gBAAeC,EACf,UAAU,UACV,QAAQ,SACR,YAAaA,EAAI,QAAQ,GACzB,IAAKD,EACL,IAAKC,EACL,MAAOS,CAAK,CAAC,EAAE,EAAE,WACjB,SAAUM,EACV,UAAWa,GAAAA,EAAAA,EAAAA,EAAG,YAAa9B,GAAQ,O,GAEpCA,GACC,UAAC,QAAK,UAAU,8G,SACbA,C,SAKT,WAAC4B,EAAAA,KAAKA,CAAAA,CAAC,QAAS,CAAC,EAAEjC,EAAG,OAAO,CAAC,CAAE,UAAU,U,UACvCD,EAAM,U,GAET,UAACqC,EAAAA,MAAMA,CAAAA,CACL,GAAI,CAAC,EAAEpC,EAAG,OAAO,CAAC,CAClB,IAAKM,EACL,IAAKC,EACL,KAAMC,EACN,MAAOQ,EACP,cAAeO,C,MAGnB,UAACK,EAAAA,MAAMA,CAAAA,CACL,aAAY,CAAC,MAAM,EAAE7B,EAAM,OAAO,CAAC,CACnC,QAAQ,UACR,KAAK,KACL,QAASyB,E,SACV,Q,QAMT,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/data-table/data-table-sort-list.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-sort-list.tsx"],"sourcesContent":["\n\nimport {\n ArrowsDownUp,\n CaretUpDown,\n DotsSixVertical,\n Trash,\n} from '@phosphor-icons/react'\nimport type { ColumnSort, SortDirection, Table } from '@tanstack/react-table'\nimport * as React from 'react'\n\nimport { Badge } from '@/components/badge'\nimport { Button } from '@/components/button'\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from '@/components/command'\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@/components/select'\nimport {\n Sortable,\n SortableContent,\n SortableItem,\n SortableItemHandle,\n SortableOverlay,\n} from '@/components/sortable'\nimport { dataTableConfig } from '@/lib/data-table-config'\nimport { cn } from '@/lib/utils'\n\nconst OPEN_MENU_SHORTCUT = 's'\nconst REMOVE_SORT_SHORTCUTS = ['backspace', 'delete']\n\ninterface DataTableSortListProps<TData>\n extends React.ComponentProps<typeof PopoverContent> {\n table: Table<TData>\n}\n\nexport function DataTableSortList<TData>({\n table,\n ...props\n}: DataTableSortListProps<TData>) {\n const id = React.useId()\n const labelId = React.useId()\n const descriptionId = React.useId()\n const [open, setOpen] = React.useState(false)\n const addButtonRef = React.useRef<HTMLButtonElement>(null)\n\n const sorting = table.getState().sorting\n const onSortingChange = table.setSorting\n\n const { columnLabels, columns } = React.useMemo(() => {\n const labels = new Map<string, string>()\n const sortingIds = new Set(sorting.map(s => s.id))\n const availableColumns: { id: string; label: string }[] = []\n\n for (const column of table.getAllColumns()) {\n if (!column.getCanSort()) continue\n\n const label = column.columnDef.meta?.label ?? column.id\n labels.set(column.id, label)\n\n if (!sortingIds.has(column.id)) {\n availableColumns.push({ id: column.id, label })\n }\n }\n\n return {\n columnLabels: labels,\n columns: availableColumns,\n }\n }, [sorting, table])\n\n const onSortAdd = React.useCallback(() => {\n const firstColumn = columns[0]\n if (!firstColumn) return\n\n onSortingChange(prevSorting => [\n ...prevSorting,\n { id: firstColumn.id, desc: false },\n ])\n }, [columns, onSortingChange])\n\n const onSortUpdate = React.useCallback(\n (sortId: string, updates: Partial<ColumnSort>) => {\n onSortingChange(prevSorting => {\n if (!prevSorting) return prevSorting\n return prevSorting.map(sort =>\n sort.id === sortId ? { ...sort, ...updates } : sort\n )\n })\n },\n [onSortingChange]\n )\n\n const onSortRemove = React.useCallback(\n (sortId: string) => {\n onSortingChange(prevSorting =>\n prevSorting.filter(item => item.id !== sortId)\n )\n },\n [onSortingChange]\n )\n\n const onSortingReset = React.useCallback(\n () => onSortingChange(table.initialState.sorting),\n [onSortingChange, table.initialState.sorting]\n )\n\n React.useEffect(() => {\n function onKeyDown(event: KeyboardEvent) {\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLTextAreaElement\n ) {\n return\n }\n\n if (\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\n !event.ctrlKey &&\n !event.metaKey &&\n !event.shiftKey\n ) {\n event.preventDefault()\n setOpen(true)\n }\n\n if (\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\n event.shiftKey &&\n sorting.length > 0\n ) {\n event.preventDefault()\n onSortingReset()\n }\n }\n\n window.addEventListener('keydown', onKeyDown)\n return () => window.removeEventListener('keydown', onKeyDown)\n }, [sorting.length, onSortingReset])\n\n const onTriggerKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\n if (\n REMOVE_SORT_SHORTCUTS.includes(event.key.toLowerCase()) &&\n sorting.length > 0\n ) {\n event.preventDefault()\n onSortingReset()\n }\n },\n [sorting.length, onSortingReset]\n )\n\n return (\n <Sortable\n value={sorting}\n onValueChange={onSortingChange}\n getItemValue={item => item.id}\n >\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button variant=\"secondary\" size=\"sm\" onKeyDown={onTriggerKeyDown}>\n <ArrowsDownUp />\n Ordenar\n {sorting.length > 0 && (\n <Badge\n variant=\"secondary\"\n className=\"h-[18.24px] rounded-[3.2px] px-[5.12px] font-mono font-normal text-[10.4px]\"\n >\n {sorting.length}\n </Badge>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent\n aria-labelledby={labelId}\n aria-describedby={descriptionId}\n className=\"flex w-full max-w-[var(--radix-popover-content-available-width)] origin-[var(--radix-popover-content-transform-origin)] flex-col gap-3.5 p-4 sm:min-w-[380px]\"\n {...props}\n >\n <div className=\"flex flex-col gap-1\">\n <h4 id={labelId} className=\"font-medium leading-none\">\n {sorting.length > 0\n ? 'Ordenar por'\n : 'Nenhuma ordenação aplicada'}\n </h4>\n <p\n id={descriptionId}\n className={cn(\n 'text-gray-500 text-sm',\n sorting.length > 0 && 'sr-only'\n )}\n >\n {sorting.length > 0\n ? 'Modifique a ordenação para organizar suas linhas.'\n : 'Adicione uma ordenação para organizar suas linhas.'}\n </p>\n </div>\n {sorting.length > 0 && (\n <SortableContent asChild>\n <div\n role=\"list\"\n className=\"flex max-h-[300px] flex-col gap-2 overflow-y-auto p-1\"\n >\n {sorting.map(sort => (\n <DataTableSortItem\n key={sort.id}\n sort={sort}\n sortItemId={`${id}-sort-${sort.id}`}\n columns={columns}\n columnLabels={columnLabels}\n onSortUpdate={onSortUpdate}\n onSortRemove={onSortRemove}\n />\n ))}\n </div>\n </SortableContent>\n )}\n <div className=\"flex w-full items-center gap-2\">\n <Button\n size=\"sm\"\n className=\"rounded\"\n ref={addButtonRef}\n onClick={onSortAdd}\n disabled={columns.length === 0}\n >\n Adicionar\n </Button>\n {sorting.length > 0 && (\n <Button\n variant=\"secondary\"\n size=\"sm\"\n className=\"rounded\"\n onClick={onSortingReset}\n >\n Resetar\n </Button>\n )}\n </div>\n </PopoverContent>\n </Popover>\n <SortableOverlay>\n <div className=\"flex items-center gap-2\">\n <div className=\"h-10 w-[180px] rounded-sm bg-primary/10\" />\n <div className=\"h-10 w-24 rounded-sm bg-primary/10\" />\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\n </div>\n </SortableOverlay>\n </Sortable>\n )\n}\n\ninterface DataTableSortItemProps {\n sort: ColumnSort\n sortItemId: string\n columns: { id: string; label: string }[]\n columnLabels: Map<string, string>\n onSortUpdate: (sortId: string, updates: Partial<ColumnSort>) => void\n onSortRemove: (sortId: string) => void\n}\n\nfunction DataTableSortItem({\n sort,\n sortItemId,\n columns,\n columnLabels,\n onSortUpdate,\n onSortRemove,\n}: DataTableSortItemProps) {\n const fieldListboxId = `${sortItemId}-field-listbox`\n const fieldTriggerId = `${sortItemId}-field-trigger`\n const directionListboxId = `${sortItemId}-direction-listbox`\n\n const [showFieldSelector, setShowFieldSelector] = React.useState(false)\n const [showDirectionSelector, setShowDirectionSelector] =\n React.useState(false)\n\n const onItemKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (\n event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLTextAreaElement\n ) {\n return\n }\n\n if (showFieldSelector || showDirectionSelector) {\n return\n }\n\n if (REMOVE_SORT_SHORTCUTS.includes(event.key.toLowerCase())) {\n event.preventDefault()\n onSortRemove(sort.id)\n }\n },\n [sort.id, showFieldSelector, showDirectionSelector, onSortRemove]\n )\n\n return (\n <SortableItem value={sort.id} asChild>\n <div\n role=\"listitem\"\n id={sortItemId}\n tabIndex={-1}\n className=\"flex items-center gap-2\"\n onKeyDown={onItemKeyDown}\n >\n <Popover open={showFieldSelector} onOpenChange={setShowFieldSelector}>\n <PopoverTrigger asChild>\n <Button\n id={fieldTriggerId}\n role=\"combobox\"\n aria-controls={fieldListboxId}\n variant=\"secondary\"\n size=\"sm\"\n className=\"w-44 justify-between rounded font-normal\"\n >\n <span className=\"truncate\">{columnLabels.get(sort.id)}</span>\n <CaretUpDown className=\"opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n id={fieldListboxId}\n className=\"w-[var(--radix-popover-trigger-width)] origin-[var(--radix-popover-content-transform-origin)] p-0\"\n >\n <Command>\n <CommandInput placeholder=\"Buscar campo...\" />\n <CommandList>\n <CommandEmpty>Nenhum campo encontrado.</CommandEmpty>\n <CommandGroup>\n {columns.map(column => (\n <CommandItem\n key={column.id}\n value={column.id}\n onSelect={value => onSortUpdate(sort.id, { id: value })}\n >\n <span className=\"truncate\">{column.label}</span>\n </CommandItem>\n ))}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n <Select\n open={showDirectionSelector}\n onOpenChange={setShowDirectionSelector}\n value={sort.desc ? 'desc' : 'asc'}\n onValueChange={(value: SortDirection) =>\n onSortUpdate(sort.id, { desc: value === 'desc' })\n }\n >\n <SelectTrigger\n aria-controls={directionListboxId}\n className=\"h-10 w-24 rounded [&[data-size]]:h-10\"\n >\n <SelectValue />\n </SelectTrigger>\n <SelectContent\n id={directionListboxId}\n className=\"min-w-[var(--radix-select-trigger-width)] origin-[var(--radix-select-content-transform-origin)]\"\n >\n {dataTableConfig.sortOrders.map(order => (\n <SelectItem key={order.value} value={order.value}>\n {order.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <Button\n aria-controls={sortItemId}\n variant=\"secondary\"\n size=\"icon\"\n className=\"size-10 shrink-0 rounded\"\n onClick={() => onSortRemove(sort.id)}\n >\n <Trash weight=\"bold\" />\n </Button>\n <SortableItemHandle asChild>\n <Button\n variant=\"secondary\"\n size=\"icon\"\n className=\"size-10 shrink-0 rounded\"\n >\n <DotsSixVertical weight=\"bold\" />\n </Button>\n </SortableItemHandle>\n </div>\n </SortableItem>\n )\n}\n"],"names":["REMOVE_SORT_SHORTCUTS","DataTableSortList","table","props","id","React","labelId","descriptionId","open","setOpen","addButtonRef","sorting","onSortingChange","columnLabels","columns","labels","Map","sortingIds","Set","s","availableColumns","column","label","onSortAdd","firstColumn","prevSorting","onSortUpdate","sortId","updates","sort","onSortRemove","item","onSortingReset","onKeyDown","event","HTMLInputElement","HTMLTextAreaElement","window","onTriggerKeyDown","Sortable","Popover","PopoverTrigger","Button","ArrowsDownUp","Badge","PopoverContent","cn","SortableContent","DataTableSortItem","SortableOverlay","sortItemId","fieldListboxId","fieldTriggerId","directionListboxId","showFieldSelector","setShowFieldSelector","showDirectionSelector","setShowDirectionSelector","onItemKeyDown","SortableItem","CaretUpDown","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","value","Select","SelectTrigger","SelectValue","SelectContent","dataTableConfig","order","SelectItem","Trash","SortableItemHandle","DotsSixVertical"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components\\data-table\\data-table-sort-list.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-sort-list.tsx"],"sourcesContent":["\r\n\r\nimport {\r\n ArrowsDownUp,\r\n CaretUpDown,\r\n DotsSixVertical,\r\n Trash,\r\n} from '@phosphor-icons/react'\r\nimport type { ColumnSort, SortDirection, Table } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Badge } from '@/components/badge'\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '@/components/command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/select'\r\nimport {\r\n Sortable,\r\n SortableContent,\r\n SortableItem,\r\n SortableItemHandle,\r\n SortableOverlay,\r\n} from '@/components/sortable'\r\nimport { dataTableConfig } from '@/lib/data-table-config'\r\nimport { cn } from '@/lib/utils'\r\n\r\nconst OPEN_MENU_SHORTCUT = 's'\r\nconst REMOVE_SORT_SHORTCUTS = ['backspace', 'delete']\r\n\r\ninterface DataTableSortListProps<TData>\r\n extends React.ComponentProps<typeof PopoverContent> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableSortList<TData>({\r\n table,\r\n ...props\r\n}: DataTableSortListProps<TData>) {\r\n const id = React.useId()\r\n const labelId = React.useId()\r\n const descriptionId = React.useId()\r\n const [open, setOpen] = React.useState(false)\r\n const addButtonRef = React.useRef<HTMLButtonElement>(null)\r\n\r\n const sorting = table.getState().sorting\r\n const onSortingChange = table.setSorting\r\n\r\n const { columnLabels, columns } = React.useMemo(() => {\r\n const labels = new Map<string, string>()\r\n const sortingIds = new Set(sorting.map(s => s.id))\r\n const availableColumns: { id: string; label: string }[] = []\r\n\r\n for (const column of table.getAllColumns()) {\r\n if (!column.getCanSort()) continue\r\n\r\n const label = column.columnDef.meta?.label ?? column.id\r\n labels.set(column.id, label)\r\n\r\n if (!sortingIds.has(column.id)) {\r\n availableColumns.push({ id: column.id, label })\r\n }\r\n }\r\n\r\n return {\r\n columnLabels: labels,\r\n columns: availableColumns,\r\n }\r\n }, [sorting, table])\r\n\r\n const onSortAdd = React.useCallback(() => {\r\n const firstColumn = columns[0]\r\n if (!firstColumn) return\r\n\r\n onSortingChange(prevSorting => [\r\n ...prevSorting,\r\n { id: firstColumn.id, desc: false },\r\n ])\r\n }, [columns, onSortingChange])\r\n\r\n const onSortUpdate = React.useCallback(\r\n (sortId: string, updates: Partial<ColumnSort>) => {\r\n onSortingChange(prevSorting => {\r\n if (!prevSorting) return prevSorting\r\n return prevSorting.map(sort =>\r\n sort.id === sortId ? { ...sort, ...updates } : sort\r\n )\r\n })\r\n },\r\n [onSortingChange]\r\n )\r\n\r\n const onSortRemove = React.useCallback(\r\n (sortId: string) => {\r\n onSortingChange(prevSorting =>\r\n prevSorting.filter(item => item.id !== sortId)\r\n )\r\n },\r\n [onSortingChange]\r\n )\r\n\r\n const onSortingReset = React.useCallback(\r\n () => onSortingChange(table.initialState.sorting),\r\n [onSortingChange, table.initialState.sorting]\r\n )\r\n\r\n React.useEffect(() => {\r\n function onKeyDown(event: KeyboardEvent) {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n !event.ctrlKey &&\r\n !event.metaKey &&\r\n !event.shiftKey\r\n ) {\r\n event.preventDefault()\r\n setOpen(true)\r\n }\r\n\r\n if (\r\n event.key.toLowerCase() === OPEN_MENU_SHORTCUT &&\r\n event.shiftKey &&\r\n sorting.length > 0\r\n ) {\r\n event.preventDefault()\r\n onSortingReset()\r\n }\r\n }\r\n\r\n window.addEventListener('keydown', onKeyDown)\r\n return () => window.removeEventListener('keydown', onKeyDown)\r\n }, [sorting.length, onSortingReset])\r\n\r\n const onTriggerKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLButtonElement>) => {\r\n if (\r\n REMOVE_SORT_SHORTCUTS.includes(event.key.toLowerCase()) &&\r\n sorting.length > 0\r\n ) {\r\n event.preventDefault()\r\n onSortingReset()\r\n }\r\n },\r\n [sorting.length, onSortingReset]\r\n )\r\n\r\n return (\r\n <Sortable\r\n value={sorting}\r\n onValueChange={onSortingChange}\r\n getItemValue={item => item.id}\r\n >\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <Button variant=\"secondary\" size=\"sm\" onKeyDown={onTriggerKeyDown}>\r\n <ArrowsDownUp />\r\n Ordenar\r\n {sorting.length > 0 && (\r\n <Badge\r\n variant=\"secondary\"\r\n className=\"h-[18.24px] rounded-[3.2px] px-[5.12px] font-mono font-normal text-[10.4px]\"\r\n >\r\n {sorting.length}\r\n </Badge>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n aria-labelledby={labelId}\r\n aria-describedby={descriptionId}\r\n className=\"flex w-full max-w-[var(--radix-popover-content-available-width)] origin-[var(--radix-popover-content-transform-origin)] flex-col gap-3.5 p-4 sm:min-w-[380px]\"\r\n {...props}\r\n >\r\n <div className=\"flex flex-col gap-1\">\r\n <h4 id={labelId} className=\"font-medium leading-none\">\r\n {sorting.length > 0\r\n ? 'Ordenar por'\r\n : 'Nenhuma ordenação aplicada'}\r\n </h4>\r\n <p\r\n id={descriptionId}\r\n className={cn(\r\n 'text-gray-500 text-sm',\r\n sorting.length > 0 && 'sr-only'\r\n )}\r\n >\r\n {sorting.length > 0\r\n ? 'Modifique a ordenação para organizar suas linhas.'\r\n : 'Adicione uma ordenação para organizar suas linhas.'}\r\n </p>\r\n </div>\r\n {sorting.length > 0 && (\r\n <SortableContent asChild>\r\n <div\r\n role=\"list\"\r\n className=\"flex max-h-[300px] flex-col gap-2 overflow-y-auto p-1\"\r\n >\r\n {sorting.map(sort => (\r\n <DataTableSortItem\r\n key={sort.id}\r\n sort={sort}\r\n sortItemId={`${id}-sort-${sort.id}`}\r\n columns={columns}\r\n columnLabels={columnLabels}\r\n onSortUpdate={onSortUpdate}\r\n onSortRemove={onSortRemove}\r\n />\r\n ))}\r\n </div>\r\n </SortableContent>\r\n )}\r\n <div className=\"flex w-full items-center gap-2\">\r\n <Button\r\n size=\"sm\"\r\n className=\"rounded\"\r\n ref={addButtonRef}\r\n onClick={onSortAdd}\r\n disabled={columns.length === 0}\r\n >\r\n Adicionar\r\n </Button>\r\n {sorting.length > 0 && (\r\n <Button\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n className=\"rounded\"\r\n onClick={onSortingReset}\r\n >\r\n Resetar\r\n </Button>\r\n )}\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n <SortableOverlay>\r\n <div className=\"flex items-center gap-2\">\r\n <div className=\"h-10 w-[180px] rounded-sm bg-primary/10\" />\r\n <div className=\"h-10 w-24 rounded-sm bg-primary/10\" />\r\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\r\n <div className=\"size-8 shrink-0 rounded-sm bg-primary/10\" />\r\n </div>\r\n </SortableOverlay>\r\n </Sortable>\r\n )\r\n}\r\n\r\ninterface DataTableSortItemProps {\r\n sort: ColumnSort\r\n sortItemId: string\r\n columns: { id: string; label: string }[]\r\n columnLabels: Map<string, string>\r\n onSortUpdate: (sortId: string, updates: Partial<ColumnSort>) => void\r\n onSortRemove: (sortId: string) => void\r\n}\r\n\r\nfunction DataTableSortItem({\r\n sort,\r\n sortItemId,\r\n columns,\r\n columnLabels,\r\n onSortUpdate,\r\n onSortRemove,\r\n}: DataTableSortItemProps) {\r\n const fieldListboxId = `${sortItemId}-field-listbox`\r\n const fieldTriggerId = `${sortItemId}-field-trigger`\r\n const directionListboxId = `${sortItemId}-direction-listbox`\r\n\r\n const [showFieldSelector, setShowFieldSelector] = React.useState(false)\r\n const [showDirectionSelector, setShowDirectionSelector] =\r\n React.useState(false)\r\n\r\n const onItemKeyDown = React.useCallback(\r\n (event: React.KeyboardEvent<HTMLDivElement>) => {\r\n if (\r\n event.target instanceof HTMLInputElement ||\r\n event.target instanceof HTMLTextAreaElement\r\n ) {\r\n return\r\n }\r\n\r\n if (showFieldSelector || showDirectionSelector) {\r\n return\r\n }\r\n\r\n if (REMOVE_SORT_SHORTCUTS.includes(event.key.toLowerCase())) {\r\n event.preventDefault()\r\n onSortRemove(sort.id)\r\n }\r\n },\r\n [sort.id, showFieldSelector, showDirectionSelector, onSortRemove]\r\n )\r\n\r\n return (\r\n <SortableItem value={sort.id} asChild>\r\n <div\r\n role=\"listitem\"\r\n id={sortItemId}\r\n tabIndex={-1}\r\n className=\"flex items-center gap-2\"\r\n onKeyDown={onItemKeyDown}\r\n >\r\n <Popover open={showFieldSelector} onOpenChange={setShowFieldSelector}>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id={fieldTriggerId}\r\n role=\"combobox\"\r\n aria-controls={fieldListboxId}\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n className=\"w-44 justify-between rounded font-normal\"\r\n >\r\n <span className=\"truncate\">{columnLabels.get(sort.id)}</span>\r\n <CaretUpDown className=\"opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent\r\n id={fieldListboxId}\r\n className=\"w-[var(--radix-popover-trigger-width)] origin-[var(--radix-popover-content-transform-origin)] p-0\"\r\n >\r\n <Command>\r\n <CommandInput placeholder=\"Buscar campo...\" />\r\n <CommandList>\r\n <CommandEmpty>Nenhum campo encontrado.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n value={column.id}\r\n onSelect={value => onSortUpdate(sort.id, { id: value })}\r\n >\r\n <span className=\"truncate\">{column.label}</span>\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n <Select\r\n open={showDirectionSelector}\r\n onOpenChange={setShowDirectionSelector}\r\n value={sort.desc ? 'desc' : 'asc'}\r\n onValueChange={(value: SortDirection) =>\r\n onSortUpdate(sort.id, { desc: value === 'desc' })\r\n }\r\n >\r\n <SelectTrigger\r\n aria-controls={directionListboxId}\r\n className=\"h-10 w-24 rounded [&[data-size]]:h-10\"\r\n >\r\n <SelectValue />\r\n </SelectTrigger>\r\n <SelectContent\r\n id={directionListboxId}\r\n className=\"min-w-[var(--radix-select-trigger-width)] origin-[var(--radix-select-content-transform-origin)]\"\r\n >\r\n {dataTableConfig.sortOrders.map(order => (\r\n <SelectItem key={order.value} value={order.value}>\r\n {order.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n <Button\r\n aria-controls={sortItemId}\r\n variant=\"secondary\"\r\n size=\"icon\"\r\n className=\"size-10 shrink-0 rounded\"\r\n onClick={() => onSortRemove(sort.id)}\r\n >\r\n <Trash weight=\"bold\" />\r\n </Button>\r\n <SortableItemHandle asChild>\r\n <Button\r\n variant=\"secondary\"\r\n size=\"icon\"\r\n className=\"size-10 shrink-0 rounded\"\r\n >\r\n <DotsSixVertical weight=\"bold\" />\r\n </Button>\r\n </SortableItemHandle>\r\n </div>\r\n </SortableItem>\r\n )\r\n}\r\n"],"names":["REMOVE_SORT_SHORTCUTS","DataTableSortList","table","props","id","React","labelId","descriptionId","open","setOpen","addButtonRef","sorting","onSortingChange","columnLabels","columns","labels","Map","sortingIds","Set","s","availableColumns","column","label","onSortAdd","firstColumn","prevSorting","onSortUpdate","sortId","updates","sort","onSortRemove","item","onSortingReset","onKeyDown","event","HTMLInputElement","HTMLTextAreaElement","window","onTriggerKeyDown","Sortable","Popover","PopoverTrigger","Button","ArrowsDownUp","Badge","PopoverContent","cn","SortableContent","DataTableSortItem","SortableOverlay","sortItemId","fieldListboxId","fieldTriggerId","directionListboxId","showFieldSelector","setShowFieldSelector","showDirectionSelector","setShowDirectionSelector","onItemKeyDown","SortableItem","CaretUpDown","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","value","Select","SelectTrigger","SelectValue","SelectContent","dataTableConfig","order","SelectItem","Trash","SortableItemHandle","DotsSixVertical"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\data-table\\data-table-toolbar.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-toolbar.tsx"],"sourcesContent":["\r\n\r\nimport { X } from '@phosphor-icons/react'\r\nimport type { Column, Table } from '@tanstack/react-table'\r\nimport * as React from 'react'\r\n\r\nimport { Button } from '@/components/button'\r\nimport { DataTableDateFilter } from '@/components/data-table/data-table-date-filter'\r\nimport { DataTableFacetedFilter } from '@/components/data-table/data-table-faceted-filter'\r\nimport { DataTableSliderFilter } from '@/components/data-table/data-table-slider-filter'\r\nimport { DataTableViewOptions } from '@/components/data-table/data-table-view-options'\r\nimport { Input } from '@/components/input'\r\nimport { cn } from '@/lib/utils'\r\n\r\ninterface DataTableToolbarProps<TData> extends React.ComponentProps<'div'> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableToolbar<TData>({\r\n table,\r\n children,\r\n className,\r\n ...props\r\n}: DataTableToolbarProps<TData>) {\r\n const isFiltered = table.getState().columnFilters.length > 0\r\n\r\n const columns = React.useMemo(\r\n () => table.getAllColumns().filter(column => column.getCanFilter()),\r\n [table]\r\n )\r\n\r\n const onReset = React.useCallback(() => {\r\n table.resetColumnFilters()\r\n }, [table])\r\n\r\n return (\r\n <div\r\n role=\"toolbar\"\r\n aria-orientation=\"horizontal\"\r\n className={cn(\r\n 'flex w-full items-start justify-between gap-2 p-1',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div className=\"flex flex-1 flex-wrap items-center gap-2\">\r\n {columns.map(column => (\r\n <DataTableToolbarFilter key={column.id} column={column} />\r\n ))}\r\n {isFiltered && (\r\n <Button\r\n aria-label=\"Reset filters\"\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n onClick={onReset}\r\n >\r\n <X />\r\n Limpar\r\n </Button>\r\n )}\r\n </div>\r\n <div className=\"flex items-center gap-2\">\r\n {children}\r\n <DataTableViewOptions table={table} />\r\n </div>\r\n </div>\r\n )\r\n}\r\ninterface DataTableToolbarFilterProps<TData> {\r\n column: Column<TData>\r\n}\r\n\r\nfunction DataTableToolbarFilter<TData>({\r\n column,\r\n}: DataTableToolbarFilterProps<TData>) {\r\n {\r\n const columnMeta = column.columnDef.meta\r\n\r\n const onFilterRender = React.useCallback(() => {\r\n if (!columnMeta?.variant) return null\r\n\r\n switch (columnMeta.variant) {\r\n case 'text':\r\n return (\r\n <Input\r\n placeholder={columnMeta.placeholder ?? columnMeta.label}\r\n value={(column.getFilterValue() as string) ?? ''}\r\n onChange={event => column.setFilterValue(event.target.value)}\r\n className=\"h-10 w-40 lg:w-56\"\r\n classNames={{\r\n input: 'text-sm',\r\n }}\r\n />\r\n )\r\n\r\n case 'number':\r\n return (\r\n <div className=\"relative\">\r\n <Input\r\n type=\"number\"\r\n inputMode=\"numeric\"\r\n placeholder={columnMeta.placeholder ?? columnMeta.label}\r\n value={(column.getFilterValue() as string) ?? ''}\r\n onChange={event => column.setFilterValue(event.target.value)}\r\n className={cn('h-10 w-[120px]', columnMeta.unit && 'pr-8')}\r\n classNames={{\r\n input: 'text-sm',\r\n }}\r\n />\r\n {columnMeta.unit && (\r\n <span className=\"absolute top-0 right-0 bottom-0 flex items-center rounded-r-md bg-accent px-2 text-muted-foreground text-sm\">\r\n {columnMeta.unit}\r\n </span>\r\n )}\r\n </div>\r\n )\r\n\r\n case 'range':\r\n return (\r\n <DataTableSliderFilter\r\n column={column}\r\n title={columnMeta.label ?? column.id}\r\n />\r\n )\r\n\r\n case 'date':\r\n case 'dateRange':\r\n return (\r\n <DataTableDateFilter\r\n column={column}\r\n title={columnMeta.label ?? column.id}\r\n multiple={columnMeta.variant === 'dateRange'}\r\n />\r\n )\r\n\r\n case 'select':\r\n case 'multiSelect':\r\n return (\r\n <DataTableFacetedFilter\r\n column={column}\r\n title={columnMeta.label ?? column.id}\r\n options={columnMeta.options ?? []}\r\n multiple={columnMeta.variant === 'multiSelect'}\r\n />\r\n )\r\n\r\n default:\r\n return null\r\n }\r\n }, [column, columnMeta])\r\n\r\n return onFilterRender()\r\n }\r\n}\r\n"],"names":["DataTableToolbar","table","children","className","props","isFiltered","columns","React","column","onReset","cn","DataTableToolbarFilter","Button","X","DataTableViewOptions","columnMeta","onFilterRender","Input","event","DataTableSliderFilter","DataTableDateFilter","DataTableFacetedFilter"],"mappings":";oYAkBO,SAASA,EAAwB,CACtCC,MAAAA,CAAK,CACLC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACT,GAAGC,EAC0B,EAC7B,IAAMC,EAAaJ,EAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAG,EAErDK,EAAUC,EAAAA,OAAa,CAC3B,IAAMN,EAAM,aAAa,GAAG,MAAM,CAACO,GAAUA,EAAO,YAAY,IAChE,CAACP,EAAM,EAGHQ,EAAUF,EAAAA,WAAiB,CAAC,KAChCN,EAAM,kBAAkB,EAC1B,EAAG,CAACA,EAAM,EAEV,MACE,WAAC,OACC,KAAK,UACL,mBAAiB,aACjB,UAAWS,GAAAA,EAAAA,EAAAA,EACT,oDACAP,GAED,GAAGC,CAAK,C,UAET,WAAC,OAAI,UAAU,2C,UACZE,EAAQ,GAAG,CAACE,GACX,UAACG,EAAAA,CAAuC,OAAQH,C,EAAnBA,EAAO,EAAE,GAEvCH,GACC,WAACO,EAAAA,MAAMA,CAAAA,CACL,aAAW,gBACX,QAAQ,YACR,KAAK,KACL,QAASH,E,UAET,UAACI,EAAAA,CAACA,CAAAA,CAAAA,GAAG,S,MAKX,WAAC,OAAI,UAAU,0B,UACZX,EACD,UAACY,EAAAA,oBAAoBA,CAAAA,CAAC,MAAOb,C,QAIrC,CAKA,SAASU,EAA8B,CACrCH,OAAAA,CAAM,CAC6B,EACnC,CACE,IAAMO,EAAaP,EAAO,SAAS,CAAC,IAAI,CA2ExC,OAAOQ,EAzEgBT,WAAiB,CAAC,KACvC,GAAI,CAACQ,GAAY,QAAS,OAAO,KAEjC,OAAQA,EAAW,OAAO,EACxB,IAAK,OACH,MACE,UAACE,EAAAA,KAAKA,CAAAA,CACJ,YAAaF,EAAW,WAAW,EAAIA,EAAW,KAAK,CACvD,MAAQP,EAAO,cAAc,IAAiB,GAC9C,SAAUU,GAASV,EAAO,cAAc,CAACU,EAAM,MAAM,CAAC,KAAK,EAC3D,UAAU,oBACV,WAAY,CACV,MAAO,SACT,C,EAIN,KAAK,SACH,MACE,WAAC,OAAI,UAAU,W,UACb,UAACD,EAAAA,KAAKA,CAAAA,CACJ,KAAK,SACL,UAAU,UACV,YAAaF,EAAW,WAAW,EAAIA,EAAW,KAAK,CACvD,MAAQP,EAAO,cAAc,IAAiB,GAC9C,SAAUU,GAASV,EAAO,cAAc,CAACU,EAAM,MAAM,CAAC,KAAK,EAC3D,UAAWR,GAAAA,EAAAA,EAAAA,EAAG,iBAAkBK,EAAW,IAAI,EAAI,QACnD,WAAY,CACV,MAAO,SACT,C,GAEDA,EAAW,IAAI,EACd,UAAC,QAAK,UAAU,8G,SACbA,EAAW,IAAI,KAM1B,KAAK,QACH,MACE,UAACI,EAAAA,qBAAqBA,CAAAA,CACpB,OAAQX,EACR,MAAOO,EAAW,KAAK,EAAIP,EAAO,EAAE,EAI1C,KAAK,OACL,IAAK,YACH,MACE,UAACY,EAAAA,mBAAmBA,CAAAA,CAClB,OAAQZ,EACR,MAAOO,EAAW,KAAK,EAAIP,EAAO,EAAE,CACpC,SAAUO,cAAAA,EAAW,OAAO,EAIlC,KAAK,SACL,IAAK,cACH,MACE,UAACM,EAAAA,sBAAsBA,CAAAA,CACrB,OAAQb,EACR,MAAOO,EAAW,KAAK,EAAIP,EAAO,EAAE,CACpC,QAASO,EAAW,OAAO,EAAI,EAAE,CACjC,SAAUA,gBAAAA,EAAW,OAAO,EAIlC,SACE,OAAO,IACX,CACF,EAAG,CAACP,EAAQO,EAAW,GAGzB,CACF,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\data-table\\data-table-view-options.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table-view-options.tsx"],"sourcesContent":["\r\n\r\nimport { CaretUpDown, Check, SlidersHorizontal } from '@phosphor-icons/react'\r\nimport type { Table } from '@tanstack/react-table'\r\n\r\nimport { Button } from '@/components/button'\r\nimport {\r\n Command,\r\n CommandEmpty,\r\n CommandGroup,\r\n CommandInput,\r\n CommandItem,\r\n CommandList,\r\n} from '@/components/command'\r\nimport { Popover, PopoverContent, PopoverTrigger } from '@/components/popover'\r\nimport { cn } from '@/lib/utils'\r\nimport * as React from 'react'\r\n\r\ninterface DataTableViewOptionsProps<TData> {\r\n table: Table<TData>\r\n}\r\n\r\nexport function DataTableViewOptions<TData>({\r\n table,\r\n}: DataTableViewOptionsProps<TData>) {\r\n const columns = React.useMemo(\r\n () =>\r\n table\r\n .getAllColumns()\r\n .filter(\r\n column =>\r\n typeof column.accessorFn !== 'undefined' && column.getCanHide()\r\n ),\r\n [table]\r\n )\r\n\r\n if (columns.length <= 0) {\r\n return null\r\n }\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n aria-label=\"Toggle columns\"\r\n role=\"combobox\"\r\n variant=\"secondary\"\r\n size=\"sm\"\r\n className=\"ml-auto hidden lg:flex\"\r\n >\r\n <SlidersHorizontal />\r\n Ver\r\n <CaretUpDown className=\"ml-auto opacity-50\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent align=\"end\" className=\"w-44 p-0\">\r\n <Command>\r\n <CommandInput placeholder=\"Buscar colunas...\" />\r\n <CommandList>\r\n <CommandEmpty>Nenhuma coluna encontrada.</CommandEmpty>\r\n <CommandGroup>\r\n {columns.map(column => (\r\n <CommandItem\r\n key={column.id}\r\n onSelect={() =>\r\n column.toggleVisibility(!column.getIsVisible())\r\n }\r\n >\r\n <span className=\"truncate\">\r\n {column.columnDef.meta?.label ?? column.id}\r\n </span>\r\n <Check\r\n className={cn(\r\n 'ml-auto size-4 shrink-0',\r\n column.getIsVisible() ? 'opacity-100' : 'opacity-0'\r\n )}\r\n />\r\n </CommandItem>\r\n ))}\r\n </CommandGroup>\r\n </CommandList>\r\n </Command>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n"],"names":["DataTableViewOptions","table","columns","React","column","Popover","PopoverTrigger","Button","SlidersHorizontal","CaretUpDown","PopoverContent","Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandItem","Check","cn"],"mappings":";wOAsBO,SAASA,EAA4B,CAC1CC,MAAAA,CAAK,CAC4B,EACjC,IAAMC,EAAUC,EAAAA,OAAa,CAC3B,IACEF,EACG,aAAa,GACb,MAAM,CACLG,GACE,SAAOA,EAAO,UAAU,EAAoBA,EAAO,UAAU,IAErE,CAACH,EAAM,SAGT,EAAY,MAAM,EAAI,EACb,KAIP,WAACI,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,aAAW,iBACX,KAAK,WACL,QAAQ,YACR,KAAK,KACL,UAAU,yB,UAEV,UAACC,EAAAA,iBAAiBA,CAAAA,CAAAA,GAAG,MAErB,UAACC,EAAAA,WAAWA,CAAAA,CAAC,UAAU,oB,QAG3B,UAACC,EAAAA,cAAcA,CAAAA,CAAC,MAAM,MAAM,UAAU,W,SACpC,WAACC,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,YAAYA,CAAAA,CAAC,YAAY,mB,GAC1B,WAACC,EAAAA,WAAWA,CAAAA,C,UACV,UAACC,EAAAA,YAAYA,CAAAA,C,SAAC,4B,GACd,UAACC,EAAAA,YAAYA,CAAAA,C,SACVb,EAAQ,GAAG,CAACE,GACX,WAACY,EAAAA,WAAWA,CAAAA,CAEV,SAAU,IACRZ,EAAO,gBAAgB,CAAC,CAACA,EAAO,YAAY,I,UAG9C,UAAC,QAAK,UAAU,W,SACbA,EAAO,SAAS,CAAC,IAAI,EAAE,OAASA,EAAO,EAAE,GAE5C,UAACa,EAAAA,KAAKA,CAAAA,CACJ,UAAWC,GAAAA,EAAAA,EAAAA,EACT,0BACAd,EAAO,YAAY,GAAK,cAAgB,Y,KAXvCA,EAAO,EAAE,E,aAsBhC,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\data-table\\data-table.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/data-table/data-table.tsx"],"sourcesContent":["import { type Table as TanstackTable, flexRender } from '@tanstack/react-table'\r\nimport type * as React from 'react'\r\n\r\nimport { DataTablePagination } from '@/components/data-table/data-table-pagination'\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from '@/components/table'\r\nimport { getCommonPinningStyles } from '@/lib/data-table'\r\nimport { cn } from '@/lib/utils'\r\nimport {\r\n ContextMenu,\r\n ContextMenuContent,\r\n ContextMenuItem,\r\n ContextMenuTrigger,\r\n} from '../context-menu'\r\n\r\ninterface DataTableProps<TData> extends React.ComponentProps<'div'> {\r\n table: TanstackTable<TData>\r\n actionBar?: React.ReactNode\r\n contextMenuOptions?: (row: TData) => { label: string; onClick: () => void }[]\r\n}\r\n\r\nexport function DataTable<TData>({\r\n table,\r\n actionBar,\r\n contextMenuOptions,\r\n children,\r\n className,\r\n ...props\r\n}: DataTableProps<TData>) {\r\n return (\r\n <div\r\n className={cn('flex w-full flex-col gap-2.5 overflow-auto', className)}\r\n {...props}\r\n >\r\n {children}\r\n <Table>\r\n <TableHeader>\r\n {table.getHeaderGroups().map(headerGroup => (\r\n <TableRow key={headerGroup.id}>\r\n {headerGroup.headers.map(header => (\r\n <TableHead\r\n key={header.id}\r\n colSpan={header.colSpan}\r\n style={{\r\n ...getCommonPinningStyles({ column: header.column }),\r\n }}\r\n >\r\n {header.isPlaceholder\r\n ? null\r\n : flexRender(\r\n header.column.columnDef.header,\r\n header.getContext()\r\n )}\r\n </TableHead>\r\n ))}\r\n </TableRow>\r\n ))}\r\n </TableHeader>\r\n <TableBody>\r\n {table.getRowModel().rows?.length ? (\r\n table.getRowModel().rows.map(row => (\r\n <ContextMenu key={row.id}>\r\n <ContextMenuTrigger asChild>\r\n <TableRow\r\n key={row.id}\r\n data-state={row.getIsSelected() && 'selected'}\r\n >\r\n {row.getVisibleCells().map(cell => (\r\n <TableCell\r\n key={cell.id}\r\n style={{\r\n ...getCommonPinningStyles({ column: cell.column }),\r\n }}\r\n >\r\n {flexRender(\r\n cell.column.columnDef.cell,\r\n cell.getContext()\r\n )}\r\n </TableCell>\r\n ))}\r\n </TableRow>\r\n </ContextMenuTrigger>\r\n {contextMenuOptions && (\r\n <ContextMenuContent>\r\n {contextMenuOptions(row.original).map(option => (\r\n <ContextMenuItem\r\n key={option.label}\r\n onClick={option.onClick}\r\n >\r\n {option.label}\r\n </ContextMenuItem>\r\n ))}\r\n </ContextMenuContent>\r\n )}\r\n </ContextMenu>\r\n ))\r\n ) : (\r\n <TableRow>\r\n <TableCell\r\n colSpan={table.getAllColumns().length}\r\n className=\"h-24 text-center\"\r\n >\r\n Nenhum resultado\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </TableBody>\r\n </Table>\r\n <div className=\"flex flex-col gap-2.5\">\r\n <DataTablePagination table={table} />\r\n {actionBar &&\r\n table.getFilteredSelectedRowModel().rows.length > 0 &&\r\n actionBar}\r\n </div>\r\n </div>\r\n )\r\n}\r\n"],"names":["DataTable","table","actionBar","contextMenuOptions","children","className","props","cn","Table","TableHeader","headerGroup","TableRow","header","TableHead","getCommonPinningStyles","flexRender","TableBody","row","ContextMenu","ContextMenuTrigger","cell","TableCell","ContextMenuContent","option","ContextMenuItem","DataTablePagination"],"mappings":"2QA2BO,SAASA,EAAiB,CAC/BC,MAAAA,CAAK,CACLC,UAAAA,CAAS,CACTC,mBAAAA,CAAkB,CAClBC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACT,GAAGC,EACmB,EACtB,MACE,WAAC,OACC,UAAWC,AAAAA,GAAAA,EAAAA,EAAAA,AAAAA,EAAG,6CAA8CF,GAC3D,GAAGC,CAAK,C,UAERF,EACD,WAACI,EAAAA,KAAKA,CAAAA,C,UACJ,UAACC,EAAAA,WAAWA,CAAAA,C,SACTR,EAAM,eAAe,GAAG,GAAG,CAACS,AAAAA,GAC3B,UAACC,EAAAA,QAAQA,CAAAA,C,SACND,EAAY,OAAO,CAAC,GAAG,CAACE,AAAAA,GACvB,UAACC,EAAAA,SAASA,CAAAA,CAER,QAASD,EAAO,OAAO,CACvB,MAAO,CACL,GAAGE,AAAAA,GAAAA,EAAAA,sBAAAA,AAAAA,EAAuB,CAAE,OAAQF,EAAO,MAAM,AAAC,EAAE,AACtD,E,SAECA,EAAO,aAAa,CACjB,KACAG,AAAAA,GAAAA,EAAAA,UAAAA,AAAAA,EACEH,EAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAC9BA,EAAO,UAAU,G,EAVlBA,EAAO,EAAE,E,EAHLF,EAAY,EAAE,E,GAoBjC,UAACM,EAAAA,SAASA,CAAAA,C,SACPf,EAAM,WAAW,GAAG,IAAI,EAAE,OACzBA,EAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAACgB,AAAAA,GAC3B,WAACC,EAAAA,WAAWA,CAAAA,C,UACV,UAACC,EAAAA,kBAAkBA,CAAAA,CAAC,QAAO,G,SACzB,UAACR,EAAAA,QAAQA,CAAAA,CAEP,aAAYM,EAAI,aAAa,IAAM,W,SAElCA,EAAI,eAAe,GAAG,GAAG,CAACG,AAAAA,GACzB,UAACC,EAAAA,SAASA,CAAAA,CAER,MAAO,CACL,GAAGP,AAAAA,GAAAA,EAAAA,sBAAAA,AAAAA,EAAuB,CAAE,OAAQM,EAAK,MAAM,AAAC,EAAE,AACpD,E,SAECL,AAAAA,GAAAA,EAAAA,UAAAA,AAAAA,EACCK,EAAK,MAAM,CAAC,SAAS,CAAC,IAAI,CAC1BA,EAAK,UAAU,G,EAPZA,EAAK,EAAE,E,EALXH,EAAI,EAAE,C,GAkBdd,GACC,UAACmB,EAAAA,kBAAkBA,CAAAA,C,SAChBnB,EAAmBc,EAAI,QAAQ,EAAE,GAAG,CAACM,AAAAA,GACpC,UAACC,EAAAA,eAAeA,CAAAA,CAEd,QAASD,EAAO,OAAO,C,SAEtBA,EAAO,KAAK,A,EAHRA,EAAO,KAAK,E,KAzBTN,EAAI,EAAE,GAoC1B,UAACN,EAAAA,QAAQA,CAAAA,C,SACP,UAACU,EAAAA,SAASA,CAAAA,CACR,QAASpB,EAAM,aAAa,GAAG,MAAM,CACrC,UAAU,mB,SACX,kB,UAOT,WAAC,OAAI,UAAU,wB,UACb,UAACwB,EAAAA,mBAAmBA,CAAAA,CAAC,MAAOxB,C,GAC3BC,GACCD,EAAM,2BAA2B,GAAG,IAAI,CAAC,MAAM,CAAG,GAClDC,E,KAIV,Q"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export*from"./data-table-action-bar.js";export*from"./data-table-advanced-toolbar.js";export*from"./data-table-column-header.js";export*from"./data-table-date-filter.js";export*from"./data-table-faceted-filter.js";export*from"./data-table-filter-list.js";export*from"./data-table-filter-menu.js";export*from"./data-table-pagination.js";export*from"./data-table-range-filter.js";export*from"./data-table-skeleton.js";export*from"./data-table-slider-filter.js";export*from"./data-table-sort-list.js";export*from"./data-table-toolbar.js";export*from"./data-table-view-options.js";export*from"./data-table.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\date-picker-with-range.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker-with-range.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { useState } from 'react'\r\nimport { DateRange } from 'react-day-picker'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\ninterface DatePickerWithRangeProps {\r\n startDate?: Date\r\n endDate?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: DateRange | undefined) => void\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DatePickerWithRange\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePickerWithRange({\r\n startDate,\r\n endDate,\r\n onChange,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n}: DatePickerWithRangeProps) {\r\n const [date, setDate] = useState<DateRange | undefined>({\r\n from: startDate,\r\n to: endDate,\r\n })\r\n\r\n const isRangeSelected = date?.from || date?.to\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n className={cn(\r\n 'h-12 min-w-60 justify-between overflow-hidden rounded-md px-4 text-left font-normal hover:bg-gray-50',\r\n !isRangeSelected && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n <div>\r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, 'dd/MM/yyyy')} -{' '}\r\n {format(date.to, 'dd/MM/yyyy')}\r\n </>\r\n ) : (\r\n format(date.from, 'dd/MM/yyyy')\r\n )\r\n ) : (\r\n <span>{placeholder || 'Selecione o período'}</span>\r\n )}\r\n </div>\r\n <CalendarBlank className=\"ml-2 size-4 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n autoFocus\r\n mode=\"range\"\r\n defaultMonth={date?.from}\r\n selected={date}\r\n onSelect={date => {\r\n setDate(date)\r\n onChange?.(date)\r\n }}\r\n numberOfMonths={2}\r\n disabled={disabled}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePickerWithRange }\r\n"],"names":["DatePickerWithRange","startDate","endDate","onChange","placeholder","className","disabled","date","setDate","useState","isRangeSelected","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar"],"mappings":";8PAyBA,SAASA,EAAoB,CAC3BC,UAAAA,CAAS,CACTC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CACS,EACzB,GAAM,CAACC,EAAMC,EAAQ,CAAGC,GAAAA,EAAAA,QAAAA,EAAgC,CACtD,KAAMR,EACN,GAAIC,CACN,GAEMQ,EAAkBH,GAAM,MAAQA,GAAM,GAE5C,MACE,WAACI,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,UAAWC,GAAAA,EAAAA,EAAAA,EACT,uGACA,CAACJ,GAAmB,gBACpBL,GAEF,SAAUC,E,UAEV,UAAC,O,SACEC,GAAM,KACLA,EAAK,EAAE,CACL,uB,UACGQ,GAAAA,EAAAA,MAAAA,EAAOR,EAAK,IAAI,CAAE,cAAc,KAAG,IACnCQ,GAAAA,EAAAA,MAAAA,EAAOR,EAAK,EAAE,CAAE,c,GAGnBQ,GAAAA,EAAAA,MAAAA,EAAOR,EAAK,IAAI,CAAE,cAGpB,UAAC,Q,SAAMH,GAAe,wB,KAG1B,UAACY,EAAAA,aAAaA,CAAAA,CAAC,UAAU,2B,QAG7B,UAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,UAACC,EAAAA,QAAQA,CAAAA,CACP,UAAS,GACT,KAAK,QACL,aAAcX,GAAM,KACpB,SAAUA,EACV,SAAUA,IACRC,EAAQD,GACRJ,IAAWI,EACb,EACA,eAAgB,EAChB,SAAUD,C,OAKpB,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\date-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react'\r\nimport { format } from 'date-fns'\r\nimport { ComponentProps, useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DatePicker({\r\n date,\r\n defaultValue,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n onChange,\r\n ...props\r\n}: ComponentProps<typeof Calendar> & {\r\n date?: Date\r\n defaultValue?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n size=\"md\"\r\n className={cn(\r\n 'min-w-60 justify-between rounded-md px-4 text-left font-normal text-sm hover:bg-gray-50',\r\n !currentDate && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n <CalendarBlank className=\"ml-4 size-4 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n {...props}\r\n mode=\"single\"\r\n selected={currentDate ?? defaultValue}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DatePicker }\r\n"],"names":["DatePicker","date","defaultValue","placeholder","className","disabled","onChange","props","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar"],"mappings":";8PAeA,SAASA,EAAW,CAClBC,KAAAA,CAAI,CACJC,aAAAA,CAAY,CACZC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CAChBC,SAAAA,CAAQ,CACR,GAAGC,EAQJ,EACC,GAAM,CAACC,EAAaC,EAAe,CAAGC,GAAAA,EAAAA,QAAAA,EAA2BT,GAEjE,MACE,WAACU,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,KAAK,KACL,UAAWC,GAAAA,EAAAA,EAAAA,EACT,0FACA,CAACN,GAAe,gBAChBJ,GAEF,SAAUC,E,UAETG,EACCO,GAAAA,EAAAA,MAAAA,EAAOP,EAAa,cAEpB,UAAC,Q,SAAML,GAAe,kB,GAExB,UAACa,EAAAA,aAAaA,CAAAA,CAAC,UAAU,2B,QAG7B,UAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAU,aAAa,MAAM,Q,SAC3C,UAACC,EAAAA,QAAQA,CAAAA,CACN,GAAGX,CAAK,CACT,KAAK,SACL,SAAUC,GAAeN,EACzB,SAAUD,IACRQ,EAAeR,GACfK,IAAWL,EACb,C,OAKV,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\date-time-picker-with-range.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-time-picker-with-range.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank, X } from '@phosphor-icons/react/dist/ssr'\r\nimport { format } from 'date-fns'\r\nimport { useState } from 'react'\r\nimport { DateRange } from 'react-day-picker'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\nimport { TimePicker } from './time-picker'\r\n\r\ninterface DateTimePickerWithRangeProps {\r\n startDate?: Date\r\n endDate?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: DateRange | undefined) => void\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePickerWithRange\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DateTimePickerWithRange({\r\n startDate,\r\n endDate,\r\n onChange,\r\n placeholder,\r\n className,\r\n disabled = false,\r\n}: DateTimePickerWithRangeProps) {\r\n const [dateRange, setDateRange] = useState<DateRange | undefined>({\r\n from: startDate,\r\n to: endDate,\r\n })\r\n\r\n const handleDateChange = (newRange: Partial<DateRange> | undefined) => {\r\n if (!newRange) {\r\n setDateRange(undefined)\r\n onChange?.(undefined)\r\n return\r\n }\r\n\r\n setDateRange({\r\n from: newRange.from ?? dateRange?.from,\r\n to: newRange.to,\r\n })\r\n onChange?.({\r\n from: newRange.from ?? dateRange?.from,\r\n to: newRange.to,\r\n })\r\n }\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n className={cn(\r\n 'h-12 min-w-96 justify-between px-4 text-left font-normal',\r\n !dateRange?.from && !dateRange?.to && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {dateRange?.from ? (\r\n dateRange.to ? (\r\n `${format(dateRange.from, 'dd/MM/yyyy HH:mm')} - ${format(dateRange.to, 'dd/MM/yyyy HH:mm')}`\r\n ) : (\r\n format(dateRange.from, 'dd/MM/yyyy HH:mm')\r\n )\r\n ) : (\r\n <span>{placeholder || 'Selecione o período'}</span>\r\n )}\r\n <CalendarBlank size={20} className=\"ml-2 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\">\r\n <Calendar\r\n mode=\"range\"\r\n selected={dateRange}\r\n onSelect={handleDateChange}\r\n numberOfMonths={2}\r\n />\r\n <div className=\"flex flex-col border-stroke border-t p-3\">\r\n <div className=\"flex justify-between gap-4\">\r\n <TimePicker\r\n onTimeChange={date =>\r\n handleDateChange({ ...dateRange, from: date })\r\n }\r\n date={dateRange?.from}\r\n />\r\n <TimePicker\r\n onTimeChange={date =>\r\n handleDateChange({ ...dateRange, to: date })\r\n }\r\n date={dateRange?.to}\r\n />\r\n </div>\r\n </div>\r\n <div className=\"flex flex-1 justify-center\">\r\n <Button\r\n variant=\"secondary\"\r\n className=\"flex h-12 flex-1\"\r\n onClick={() => handleDateChange(undefined)}\r\n >\r\n <X size={12} /> Clear\r\n </Button>\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DateTimePickerWithRange }\r\n"],"names":["DateTimePickerWithRange","startDate","endDate","onChange","placeholder","className","disabled","dateRange","setDateRange","useState","handleDateChange","newRange","undefined","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar","TimePicker","date","X"],"mappings":";0SA0BA,SAASA,EAAwB,CAC/BC,UAAAA,CAAS,CACTC,QAAAA,CAAO,CACPC,SAAAA,CAAQ,CACRC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,EAAW,EAAK,CACa,EAC7B,GAAM,CAACC,EAAWC,EAAa,CAAGC,GAAAA,EAAAA,QAAAA,EAAgC,CAChE,KAAMR,EACN,GAAIC,CACN,GAEMQ,EAAmB,IACvB,GAAI,CAACC,EAAU,CACbH,EAAaI,QACbT,IAAWS,QACX,MACF,CAEAJ,EAAa,CACX,KAAMG,EAAS,IAAI,EAAIJ,GAAW,KAClC,GAAII,EAAS,EAAE,GAEjBR,IAAW,CACT,KAAMQ,EAAS,IAAI,EAAIJ,GAAW,KAClC,GAAII,EAAS,EAAE,EAEnB,EAEA,MACE,WAACE,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,UAAWC,GAAAA,EAAAA,EAAAA,EACT,2DACA,CAACT,GAAW,MAAQ,CAACA,GAAW,IAAM,gBACtCF,GAEF,SAAUC,E,UAETC,GAAW,KACVA,EAAU,EAAE,CACV,CAAC,EAAEU,GAAAA,EAAAA,MAAAA,EAAOV,EAAU,IAAI,CAAE,oBAAoB,GAAG,EAAEU,GAAAA,EAAAA,MAAAA,EAAOV,EAAU,EAAE,CAAE,oBAAoB,CAAC,CAE7FU,GAAAA,EAAAA,MAAAA,EAAOV,EAAU,IAAI,CAAE,oBAGzB,UAAC,Q,SAAMH,GAAe,wB,GAExB,UAACc,EAAAA,aAAaA,CAAAA,CAAC,KAAM,GAAI,UAAU,oB,QAGvC,WAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAU,a,UACxB,UAACC,EAAAA,QAAQA,CAAAA,CACP,KAAK,QACL,SAAUb,EACV,SAAUG,EACV,eAAgB,C,GAElB,UAAC,OAAI,UAAU,2C,SACb,WAAC,OAAI,UAAU,6B,UACb,UAACW,EAAAA,UAAUA,CAAAA,CACT,aAAcC,GACZZ,EAAiB,CAAE,GAAGH,CAAS,CAAE,KAAMe,CAAK,GAE9C,KAAMf,GAAW,I,GAEnB,UAACc,EAAAA,UAAUA,CAAAA,CACT,aAAcC,GACZZ,EAAiB,CAAE,GAAGH,CAAS,CAAE,GAAIe,CAAK,GAE5C,KAAMf,GAAW,E,QAIvB,UAAC,OAAI,UAAU,6B,SACb,WAACQ,EAAAA,MAAMA,CAAAA,CACL,QAAQ,YACR,UAAU,mBACV,QAAS,IAAML,EAAiBE,Q,UAEhC,UAACW,EAAAA,CAACA,CAAAA,CAAC,KAAM,E,GAAM,S,UAM3B,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\date-time-picker.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/date-time-picker.tsx"],"sourcesContent":["\r\n\r\nimport { CalendarBlank } from '@phosphor-icons/react/dist/ssr'\r\nimport { format } from 'date-fns'\r\nimport { ComponentProps, useState } from 'react'\r\n\r\nimport { cn } from '../lib/utils'\r\nimport { Button } from './button'\r\nimport { Calendar } from './calendar'\r\nimport { Popover, PopoverContent, PopoverTrigger } from './popover'\r\nimport { TimePicker } from './time-picker'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DateTimePicker\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DateTimePicker({\r\n date,\r\n defaultValue,\r\n placeholder,\r\n className,\r\n disabled,\r\n onChange,\r\n}: ComponentProps<typeof Calendar> & {\r\n date?: Date\r\n defaultValue?: Date\r\n placeholder?: string\r\n className?: string\r\n disabled?: boolean\r\n onChange?: (date: Date | undefined) => void\r\n}) {\r\n const [currentDate, setCurrentDate] = useState<Date | undefined>(date)\r\n\r\n return (\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant=\"secondary\"\r\n className={cn(\r\n 'h-12 w-full justify-between px-4 text-left font-normal hover:bg-transparent',\r\n !currentDate && 'text-gray-400',\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n {currentDate ? (\r\n format(currentDate, 'dd/MM/yyyy HH:mm')\r\n ) : (\r\n <span>{placeholder || 'Selecione a data'}</span>\r\n )}\r\n\r\n <CalendarBlank size={20} className=\"ml-2 text-gray-600\" />\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\">\r\n <Calendar\r\n mode=\"single\"\r\n selected={currentDate}\r\n onSelect={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n />\r\n\r\n <div className=\"flex justify-center border-stroke border-t p-3\">\r\n <TimePicker\r\n date={currentDate}\r\n onTimeChange={date => {\r\n setCurrentDate(date)\r\n onChange?.(date)\r\n }}\r\n defaultValue={defaultValue}\r\n />\r\n </div>\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport { DateTimePicker }\r\n"],"names":["DateTimePicker","date","defaultValue","placeholder","className","disabled","onChange","currentDate","setCurrentDate","useState","Popover","PopoverTrigger","Button","cn","format","CalendarBlank","PopoverContent","Calendar","TimePicker"],"mappings":";0SAgBA,SAASA,EAAe,CACtBC,KAAAA,CAAI,CACJC,aAAAA,CAAY,CACZC,YAAAA,CAAW,CACXC,UAAAA,CAAS,CACTC,SAAAA,CAAQ,CACRC,SAAAA,CAAQ,CAQT,EACC,GAAM,CAACC,EAAaC,EAAe,CAAGC,GAAAA,EAAAA,QAAAA,EAA2BR,GAEjE,MACE,WAACS,EAAAA,OAAOA,CAAAA,C,UACN,UAACC,EAAAA,cAAcA,CAAAA,CAAC,QAAO,G,SACrB,WAACC,EAAAA,MAAMA,CAAAA,CACL,GAAG,OACH,QAAQ,YACR,UAAWC,GAAAA,EAAAA,EAAAA,EACT,8EACA,CAACN,GAAe,gBAChBH,GAEF,SAAUC,E,UAETE,EACCO,GAAAA,EAAAA,MAAAA,EAAOP,EAAa,oBAEpB,UAAC,Q,SAAMJ,GAAe,kB,GAGxB,UAACY,EAAAA,aAAaA,CAAAA,CAAC,KAAM,GAAI,UAAU,oB,QAGvC,WAACC,EAAAA,cAAcA,CAAAA,CAAC,UAAU,a,UACxB,UAACC,EAAAA,QAAQA,CAAAA,CACP,KAAK,SACL,SAAUV,EACV,SAAUN,IACRO,EAAeP,GACfK,IAAWL,EACb,C,GAGF,UAAC,OAAI,UAAU,iD,SACb,UAACiB,EAAAA,UAAUA,CAAAA,CACT,KAAMX,EACN,aAAcN,IACZO,EAAeP,GACfK,IAAWL,EACb,EACA,aAAcC,C,UAM1B,Q"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components
|
|
1
|
+
{"version":3,"file":"components\\dialog.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/dialog.tsx"],"sourcesContent":["\r\n\r\nimport { X } from '@phosphor-icons/react'\r\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\r\nimport { ComponentProps, JSX } from 'react'\r\n\r\nimport { VariantProps, cn } from '@/lib/utils'\r\nimport { buttonVariants } from './button'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: Dialog\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction Dialog({\r\n ...props\r\n}: ComponentProps<typeof DialogPrimitive.Root>): JSX.Element {\r\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\r\n}\r\nDialog.displayName = 'Dialog'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogTrigger\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogTrigger({\r\n ...props\r\n}: ComponentProps<typeof DialogPrimitive.Trigger>): JSX.Element {\r\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\r\n}\r\nDialogTrigger.displayName = 'DialogTrigger'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogContent\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogContent({\r\n children,\r\n className,\r\n classNames,\r\n ...props\r\n}: ComponentProps<typeof DialogPrimitive.Content> & {\r\n classNames?: {\r\n close?: string\r\n content?: string\r\n overlay?: string\r\n }\r\n}): JSX.Element {\r\n return (\r\n <DialogPrimitive.Portal>\r\n <DialogPrimitive.Overlay\r\n className={cn(\r\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/40 backdrop-blur-sm data-[state=closed]:animate-out data-[state=open]:animate-in',\r\n classNames?.overlay\r\n )}\r\n />\r\n <DialogPrimitive.Content\r\n className={cn(\r\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:rounded-lg',\r\n classNames?.content\r\n )}\r\n data-slot=\"dialog-content-wrapper\"\r\n {...props}\r\n >\r\n {children}\r\n <DialogPrimitive.Close\r\n className={buttonVariants({\r\n className: ['absolute top-2.5 right-2.5 size-7', classNames?.close],\r\n size: 'icon',\r\n variant: 'ghost',\r\n })}\r\n >\r\n <X className=\"size-4\" />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogPrimitive.Close>\r\n </DialogPrimitive.Content>\r\n </DialogPrimitive.Portal>\r\n )\r\n}\r\nDialogContent.displayName = 'DialogContent'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogHeader\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogHeader({\r\n className,\r\n ...props\r\n}: ComponentProps<'div'>): JSX.Element {\r\n return (\r\n <header\r\n className={cn(\r\n 'flex flex-col space-y-1.5 text-center sm:text-left',\r\n className\r\n )}\r\n data-slot=\"dialog-header\"\r\n {...props}\r\n />\r\n )\r\n}\r\nDialogHeader.displayName = 'DialogHeader'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogBody\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogBody({\r\n className,\r\n ...props\r\n}: ComponentProps<'div'>): JSX.Element {\r\n return (\r\n <main\r\n className={cn('py-2', className)}\r\n data-slot=\"dialog-body\"\r\n {...props}\r\n />\r\n )\r\n}\r\nDialogBody.displayName = 'DialogBody'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogFooter\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogFooter({\r\n className,\r\n ...props\r\n}: ComponentProps<'div'>): JSX.Element {\r\n return (\r\n <footer\r\n className={cn(\r\n 'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\r\n className\r\n )}\r\n data-slot=\"dialog-footer\"\r\n {...props}\r\n />\r\n )\r\n}\r\nDialogFooter.displayName = 'DialogFooter'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogTitle\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogTitle({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DialogPrimitive.Title>): JSX.Element {\r\n return (\r\n <DialogPrimitive.Title\r\n className={cn(\r\n 'font-semibold text-lg leading-none tracking-tight',\r\n className\r\n )}\r\n data-slot=\"dialog-title\"\r\n {...props}\r\n />\r\n )\r\n}\r\nDialogTitle.displayName = 'DialogTitle'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogDescription\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogDescription({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DialogPrimitive.Description>): JSX.Element {\r\n return (\r\n <DialogPrimitive.Description\r\n className={cn('text-gray-600 text-sm', className)}\r\n data-slot=\"dialog-description\"\r\n {...props}\r\n />\r\n )\r\n}\r\nDialogDescription.displayName = 'DialogDescription'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DialogClose\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DialogClose({\r\n className,\r\n size,\r\n variant = 'outline',\r\n ...props\r\n}: Omit<ComponentProps<typeof DialogPrimitive.Close>, 'ref'> & {\r\n size?: VariantProps<typeof buttonVariants>['size']\r\n variant?: VariantProps<typeof buttonVariants>['variant']\r\n}): JSX.Element {\r\n return (\r\n <DialogPrimitive.Close\r\n className={buttonVariants({ className, size, variant })}\r\n data-slot=\"dialog-close\"\r\n {...props}\r\n />\r\n )\r\n}\r\nDialogClose.displayName = 'DialogClose'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n Dialog,\r\n DialogTrigger,\r\n DialogContent,\r\n DialogHeader,\r\n DialogBody,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n DialogClose,\r\n}\r\n"],"names":["Dialog","props","DialogPrimitive","DialogTrigger","DialogContent","children","className","classNames","cn","buttonVariants","X","DialogHeader","DialogBody","DialogFooter","DialogTitle","DialogDescription","DialogClose","size","variant"],"mappings":";qLAaA,SAASA,EAAO,CACd,GAAGC,EACyC,EAC5C,MAAO,UAACC,EAAAA,IAAoB,EAAC,YAAU,SAAU,GAAGD,CAAK,EAC3D,CAOA,SAASE,EAAc,CACrB,GAAGF,EAC4C,EAC/C,MAAO,UAACC,EAAAA,OAAuB,EAAC,YAAU,iBAAkB,GAAGD,CAAK,EACtE,CAOA,SAASG,EAAc,CACrBC,SAAAA,CAAQ,CACRC,UAAAA,CAAS,CACTC,WAAAA,CAAU,CACV,GAAGN,EAOJ,EACC,MACE,WAACC,EAAAA,MAAsB,E,UACrB,UAACA,EAAAA,OAAuB,EACtB,UAAWM,GAAAA,EAAAA,EAAAA,EACT,0KACAD,GAAY,Q,GAGhB,WAACL,EAAAA,OAAuB,EACtB,UAAWM,GAAAA,EAAAA,EAAAA,EACT,sVACAD,GAAY,SAEd,YAAU,yBACT,GAAGN,CAAK,C,UAERI,EACD,WAACH,EAAAA,KAAqB,EACpB,UAAWO,GAAAA,EAAAA,cAAAA,EAAe,CACxB,UAAW,CAAC,oCAAqCF,GAAY,MAAM,CACnE,KAAM,OACN,QAAS,OACX,G,UAEA,UAACG,EAAAA,CAACA,CAAAA,CAAC,UAAU,Q,GACb,UAAC,QAAK,UAAU,U,SAAU,O,WAKpC,CAOA,SAASC,EAAa,CACpBL,UAAAA,CAAS,CACT,GAAGL,EACmB,EACtB,MACE,UAAC,UACC,UAAWO,GAAAA,EAAAA,EAAAA,EACT,qDACAF,GAEF,YAAU,gBACT,GAAGL,CAAK,EAGf,CAOA,SAASW,EAAW,CAClBN,UAAAA,CAAS,CACT,GAAGL,EACmB,EACtB,MACE,UAAC,QACC,UAAWO,GAAAA,EAAAA,EAAAA,EAAG,OAAQF,GACtB,YAAU,cACT,GAAGL,CAAK,EAGf,CAOA,SAASY,EAAa,CACpBP,UAAAA,CAAS,CACT,GAAGL,EACmB,EACtB,MACE,UAAC,UACC,UAAWO,GAAAA,EAAAA,EAAAA,EACT,gEACAF,GAEF,YAAU,gBACT,GAAGL,CAAK,EAGf,CAOA,SAASa,EAAY,CACnBR,UAAAA,CAAS,CACT,GAAGL,EAC0C,EAC7C,MACE,UAACC,EAAAA,KAAqB,EACpB,UAAWM,GAAAA,EAAAA,EAAAA,EACT,oDACAF,GAEF,YAAU,eACT,GAAGL,CAAK,EAGf,CAOA,SAASc,EAAkB,CACzBT,UAAAA,CAAS,CACT,GAAGL,EACgD,EACnD,MACE,UAACC,EAAAA,WAA2B,EAC1B,UAAWM,GAAAA,EAAAA,EAAAA,EAAG,wBAAyBF,GACvC,YAAU,qBACT,GAAGL,CAAK,EAGf,CAOA,SAASe,EAAY,CACnBV,UAAAA,CAAS,CACTW,KAAAA,CAAI,CACJC,QAAAA,EAAU,SAAS,CACnB,GAAGjB,EAIJ,EACC,MACE,UAACC,EAAAA,KAAqB,EACpB,UAAWO,GAAAA,EAAAA,cAAAA,EAAe,CAAEH,UAAAA,EAAWW,KAAAA,EAAMC,QAAAA,CAAQ,GACrD,YAAU,eACT,GAAGjB,CAAK,EAGf,CArLAD,EAAO,WAAW,CAAG,SAWrBG,EAAc,WAAW,CAAG,gBAiD5BC,EAAc,WAAW,CAAG,gBAqB5BO,EAAa,WAAW,CAAG,eAkB3BC,EAAW,WAAW,CAAG,aAqBzBC,EAAa,WAAW,CAAG,eAqB3BC,EAAY,WAAW,CAAG,cAkB1BC,EAAkB,WAAW,CAAG,oBAuBhCC,EAAY,WAAW,CAAG,qB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components/dropdown-menu.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/dropdown-menu.tsx"],"sourcesContent":["\n\nimport { CaretRight, Check } from '@phosphor-icons/react/dist/ssr'\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\nimport { ComponentProps, JSX } from 'react'\n\nimport { Dot } from '@phosphor-icons/react'\nimport { cn } from '../lib/utils'\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenu\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenu({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Root>): JSX.Element {\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\n}\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuTrigger\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuTrigger({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Trigger>): JSX.Element {\n return (\n <DropdownMenuPrimitive.Trigger\n data-slot=\"dropdown-menu-trigger\"\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuGroup\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuGroup({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Group>): JSX.Element {\n return (\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuSub\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuSub({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Sub>): JSX.Element {\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuRadioGroup\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuRadioGroup({\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): JSX.Element {\n return (\n <DropdownMenuPrimitive.RadioGroup\n data-slot=\"dropdown-menu-radio-group\"\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuSubTrigger\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuSubTrigger({\n children,\n className,\n inset,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean\n}): JSX.Element {\n return (\n <DropdownMenuPrimitive.SubTrigger\n className={cn(\n 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-gray-100 data-[state=open]:bg-accent data-inset:pl-8',\n className\n )}\n data-inset={inset}\n data-slot=\"dropdown-menu-sub-trigger\"\n {...props}\n >\n {children}\n <CaretRight className=\"ml-auto size-4\" />\n </DropdownMenuPrimitive.SubTrigger>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuSubContent\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuSubContent({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.SubContent>): JSX.Element {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.SubContent\n className={cn(\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-white p-1 shadow-lg data-[state=closed]:animate-out data-[state=open]:animate-in',\n className\n )}\n data-slot=\"dropdown-menu-sub-content\"\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuContent\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuContent({\n className,\n sideOffset = 4,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Content>): JSX.Element {\n return (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n className={cn(\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-white p-1 text-gbm-dark shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in',\n className\n )}\n data-slot=\"dropdown-menu-content\"\n sideOffset={sideOffset}\n {...props}\n />\n </DropdownMenuPrimitive.Portal>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuItem\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuItem({\n className,\n inset,\n variant,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean\n variant?: 'default' | 'destructive'\n}): JSX.Element {\n return (\n <DropdownMenuPrimitive.Item\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-gray-100 data-[disabled]:pointer-events-none data-inset:pl-8 data-[disabled]:opacity-50',\n className\n )}\n data-inset={inset}\n data-slot=\"dropdown-menu-item\"\n data-variant={variant}\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuCheckboxItem\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuCheckboxItem({\n checked,\n children,\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): JSX.Element {\n return (\n <DropdownMenuPrimitive.CheckboxItem\n checked={checked}\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none transition-colors focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n data-slot=\"dropdown-menu-checkbox-item\"\n {...props}\n >\n <span className=\"absolute left-2 flex items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"size-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuRadioItem\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuRadioItem({\n children,\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): JSX.Element {\n return (\n <DropdownMenuPrimitive.RadioItem\n className={cn(\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none transition-colors focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n data-slot=\"dropdown-menu-radio-item\"\n {...props}\n >\n <span className=\"absolute left-2 flex items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Dot className=\"size-4 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuLabel\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuLabel({\n className,\n inset,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean\n}): JSX.Element {\n return (\n <DropdownMenuPrimitive.Label\n className={cn(\n 'px-2 py-1.5 font-semibold text-sm data-inset:pl-8',\n className\n )}\n data-inset={inset}\n data-slot=\"dropdown-menu-label\"\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuSeparator\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuSeparator({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Separator>): JSX.Element {\n return (\n <DropdownMenuPrimitive.Separator\n className={cn('-mx-1 my-1 h-px bg-stroke', className)}\n data-slot=\"dropdown-menu-separator\"\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuShortcut\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuShortcut({\n className,\n ...props\n}: ComponentProps<'span'>): JSX.Element {\n return (\n <span\n className={cn('ml-auto text-xs tracking-widest opacity-60', className)}\n data-slot=\"dropdown-menu-shortcut\"\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Component: DropdownMenuArrow\n * -------------------------------------------------------------------------- */\n\nfunction DropdownMenuArrow({\n className,\n ...props\n}: ComponentProps<typeof DropdownMenuPrimitive.Arrow>): JSX.Element {\n return (\n <DropdownMenuPrimitive.Arrow\n className={cn('fill-stroke', className)}\n data-slot=\"dropdown-menu-arrow\"\n {...props}\n />\n )\n}\n\n/* -----------------------------------------------------------------------------\n * Exports\n * -------------------------------------------------------------------------- */\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuArrow,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n}\n"],"names":["DropdownMenu","props","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","children","className","inset","cn","CaretRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","variant","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Dot","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuArrow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components\\dropdown-menu.js","sources":["webpack://@gbmtech/aurora-ui/./src/components/dropdown-menu.tsx"],"sourcesContent":["\r\n\r\nimport { CaretRight, Check } from '@phosphor-icons/react/dist/ssr'\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu'\r\nimport { ComponentProps, JSX } from 'react'\r\n\r\nimport { Dot } from '@phosphor-icons/react'\r\nimport { cn } from '../lib/utils'\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenu\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenu({\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Root>): JSX.Element {\r\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />\r\n}\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuTrigger\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuTrigger({\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Trigger>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Trigger\r\n data-slot=\"dropdown-menu-trigger\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuGroup\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuGroup({\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Group>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuSub\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuSub({\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Sub>): JSX.Element {\r\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuRadioGroup\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuRadioGroup({\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.RadioGroup\r\n data-slot=\"dropdown-menu-radio-group\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuSubTrigger\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuSubTrigger({\r\n children,\r\n className,\r\n inset,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n}): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.SubTrigger\r\n className={cn(\r\n 'flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-gray-100 data-[state=open]:bg-accent data-inset:pl-8',\r\n className\r\n )}\r\n data-inset={inset}\r\n data-slot=\"dropdown-menu-sub-trigger\"\r\n {...props}\r\n >\r\n {children}\r\n <CaretRight className=\"ml-auto size-4\" />\r\n </DropdownMenuPrimitive.SubTrigger>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuSubContent\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuSubContent({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.SubContent>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.SubContent\r\n className={cn(\r\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-white p-1 shadow-lg data-[state=closed]:animate-out data-[state=open]:animate-in',\r\n className\r\n )}\r\n data-slot=\"dropdown-menu-sub-content\"\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuContent\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuContent({\r\n className,\r\n sideOffset = 4,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Content>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.Content\r\n className={cn(\r\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] overflow-hidden rounded-md border bg-white p-1 text-gbm-dark shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in',\r\n className\r\n )}\r\n data-slot=\"dropdown-menu-content\"\r\n sideOffset={sideOffset}\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuItem({\r\n className,\r\n inset,\r\n variant,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Item> & {\r\n inset?: boolean\r\n variant?: 'default' | 'destructive'\r\n}): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Item\r\n className={cn(\r\n 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-gray-100 data-[disabled]:pointer-events-none data-inset:pl-8 data-[disabled]:opacity-50',\r\n className\r\n )}\r\n data-inset={inset}\r\n data-slot=\"dropdown-menu-item\"\r\n data-variant={variant}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuCheckboxItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuCheckboxItem({\r\n checked,\r\n children,\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem\r\n checked={checked}\r\n className={cn(\r\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none transition-colors focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n className\r\n )}\r\n data-slot=\"dropdown-menu-checkbox-item\"\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <Check className=\"size-4\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuRadioItem\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuRadioItem({\r\n children,\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.RadioItem\r\n className={cn(\r\n 'relative flex cursor-default select-none items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none transition-colors focus:bg-gray-100 data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\r\n className\r\n )}\r\n data-slot=\"dropdown-menu-radio-item\"\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <Dot className=\"size-4 fill-current\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.RadioItem>\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuLabel\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuLabel({\r\n className,\r\n inset,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Label> & {\r\n inset?: boolean\r\n}): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Label\r\n className={cn(\r\n 'px-2 py-1.5 font-semibold text-sm data-inset:pl-8',\r\n className\r\n )}\r\n data-inset={inset}\r\n data-slot=\"dropdown-menu-label\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuSeparator\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuSeparator({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Separator>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Separator\r\n className={cn('-mx-1 my-1 h-px bg-stroke', className)}\r\n data-slot=\"dropdown-menu-separator\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuShortcut\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuShortcut({\r\n className,\r\n ...props\r\n}: ComponentProps<'span'>): JSX.Element {\r\n return (\r\n <span\r\n className={cn('ml-auto text-xs tracking-widest opacity-60', className)}\r\n data-slot=\"dropdown-menu-shortcut\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Component: DropdownMenuArrow\r\n * -------------------------------------------------------------------------- */\r\n\r\nfunction DropdownMenuArrow({\r\n className,\r\n ...props\r\n}: ComponentProps<typeof DropdownMenuPrimitive.Arrow>): JSX.Element {\r\n return (\r\n <DropdownMenuPrimitive.Arrow\r\n className={cn('fill-stroke', className)}\r\n data-slot=\"dropdown-menu-arrow\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\n/* -----------------------------------------------------------------------------\r\n * Exports\r\n * -------------------------------------------------------------------------- */\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuGroup,\r\n DropdownMenuArrow,\r\n DropdownMenuSub,\r\n DropdownMenuSubContent,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuRadioGroup,\r\n}\r\n"],"names":["DropdownMenu","props","DropdownMenuPrimitive","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","children","className","inset","cn","CaretRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","variant","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Dot","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut","DropdownMenuArrow"],"mappings":"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"}
|