@ayasofyazilim/ui 0.0.0 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aria/index.js +2 -0
- package/dist/aria/index.js.map +1 -0
- package/dist/aria/number-field.js +46 -0
- package/dist/aria/number-field.js.map +1 -0
- package/dist/components/accordion.js +66 -0
- package/dist/components/accordion.js.map +1 -0
- package/dist/components/alert-dialog.js +148 -0
- package/dist/components/alert-dialog.js.map +1 -0
- package/dist/components/alert.js +69 -0
- package/dist/components/alert.js.map +1 -0
- package/dist/components/aspect-ratio.js +12 -0
- package/dist/components/aspect-ratio.js.map +1 -0
- package/dist/components/avatar.js +55 -0
- package/dist/components/avatar.js.map +1 -0
- package/dist/components/badge.js +62 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/breadcrumb.js +104 -0
- package/dist/components/breadcrumb.js.map +1 -0
- package/dist/components/button-group.js +77 -0
- package/dist/components/button-group.js.map +1 -0
- package/dist/components/button.js +56 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/calendar.js +196 -0
- package/dist/components/calendar.js.map +1 -0
- package/dist/components/card.js +91 -0
- package/dist/components/card.js.map +1 -0
- package/dist/components/carousel.js +200 -0
- package/dist/components/carousel.js.map +1 -0
- package/dist/components/chart.js +250 -0
- package/dist/components/chart.js.map +1 -0
- package/dist/components/checkbox.js +33 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/collapsible.js +36 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/command.js +178 -0
- package/dist/components/command.js.map +1 -0
- package/dist/components/context-menu.js +225 -0
- package/dist/components/context-menu.js.map +1 -0
- package/dist/components/dialog.js +139 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/drawer.js +130 -0
- package/dist/components/drawer.js.map +1 -0
- package/dist/components/dropdown-menu.js +234 -0
- package/dist/components/dropdown-menu.js.map +1 -0
- package/dist/components/empty.js +100 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.js +231 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/form.js +124 -0
- package/dist/components/form.js.map +1 -0
- package/dist/components/hover-card.js +40 -0
- package/dist/components/hover-card.js.map +1 -0
- package/dist/components/input-group.js +156 -0
- package/dist/components/input-group.js.map +1 -0
- package/dist/components/input-otp.js +68 -0
- package/dist/components/input-otp.js.map +1 -0
- package/dist/components/input.js +22 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/item.js +188 -0
- package/dist/components/item.js.map +1 -0
- package/dist/components/kbd.js +32 -0
- package/dist/components/kbd.js.map +1 -0
- package/dist/components/label.js +24 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/menubar.js +253 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/navigation-menu.js +171 -0
- package/dist/components/navigation-menu.js.map +1 -0
- package/dist/components/pagination.js +125 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.js +82 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/progress.js +33 -0
- package/dist/components/progress.js.map +1 -0
- package/dist/components/radio-group.js +47 -0
- package/dist/components/radio-group.js.map +1 -0
- package/dist/components/resizable.js +50 -0
- package/dist/components/resizable.js.map +1 -0
- package/dist/components/scroll-area.js +62 -0
- package/dist/components/scroll-area.js.map +1 -0
- package/dist/components/select.js +173 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/separator.js +28 -0
- package/dist/components/separator.js.map +1 -0
- package/dist/components/sheet.js +129 -0
- package/dist/components/sheet.js.map +1 -0
- package/dist/components/sidebar.js +759 -0
- package/dist/components/sidebar.js.map +1 -0
- package/dist/components/skeleton.js +16 -0
- package/dist/components/skeleton.js.map +1 -0
- package/dist/components/slider.js +65 -0
- package/dist/components/slider.js.map +1 -0
- package/dist/components/sonner.js +40 -0
- package/dist/components/sonner.js.map +1 -0
- package/dist/components/spinner.js +18 -0
- package/dist/components/spinner.js.map +1 -0
- package/dist/components/stepper.js +220 -0
- package/dist/components/stepper.js.map +1 -0
- package/dist/components/switch.js +33 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.js +131 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.js +69 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/textarea.js +19 -0
- package/dist/components/textarea.js.map +1 -0
- package/dist/components/toggle-group.js +70 -0
- package/dist/components/toggle-group.js.map +1 -0
- package/dist/components/toggle.js +45 -0
- package/dist/components/toggle.js.map +1 -0
- package/dist/components/tooltip.js +65 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/custom/action-button.js +38 -0
- package/dist/custom/action-button.js.map +1 -0
- package/dist/custom/async-select.js +249 -0
- package/dist/custom/async-select.js.map +1 -0
- package/dist/custom/awesome-not-found.js +113 -0
- package/dist/custom/awesome-not-found.js.map +1 -0
- package/dist/custom/charts/area-chart.js +125 -0
- package/dist/custom/charts/area-chart.js.map +1 -0
- package/dist/custom/charts/bar-chart.js +232 -0
- package/dist/custom/charts/bar-chart.js.map +1 -0
- package/dist/custom/charts/chart-card.js +71 -0
- package/dist/custom/charts/chart-card.js.map +1 -0
- package/dist/custom/charts/index.js +5 -0
- package/dist/custom/charts/index.js.map +1 -0
- package/dist/custom/charts/pie-chart.js +153 -0
- package/dist/custom/charts/pie-chart.js.map +1 -0
- package/dist/custom/charts/radar-chart.js +112 -0
- package/dist/custom/charts/radar-chart.js.map +1 -0
- package/dist/custom/checkbox-tree.js +70 -0
- package/dist/custom/checkbox-tree.js.map +1 -0
- package/dist/custom/combobox.js +233 -0
- package/dist/custom/combobox.js.map +1 -0
- package/dist/custom/confirm-dialog.js +90 -0
- package/dist/custom/confirm-dialog.js.map +1 -0
- package/dist/custom/country-selector.js +151 -0
- package/dist/custom/country-selector.js.map +1 -0
- package/dist/custom/date-picker/calendar-rac.js +91 -0
- package/dist/custom/date-picker/calendar-rac.js.map +1 -0
- package/dist/custom/date-picker/datefield-rac.js +77 -0
- package/dist/custom/date-picker/datefield-rac.js.map +1 -0
- package/dist/custom/date-picker/index.js +251 -0
- package/dist/custom/date-picker/index.js.map +1 -0
- package/dist/custom/date-picker/types/index.js +1 -0
- package/dist/custom/date-picker/types/index.js.map +1 -0
- package/dist/custom/date-picker/utils/index.js +30 -0
- package/dist/custom/date-picker/utils/index.js.map +1 -0
- package/dist/custom/date-picker-old.js +46 -0
- package/dist/custom/date-picker-old.js.map +1 -0
- package/dist/custom/date-tooltip.js +89 -0
- package/dist/custom/date-tooltip.js.map +1 -0
- package/dist/custom/document-scanner/consts.js +13 -0
- package/dist/custom/document-scanner/consts.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/action-buttons.js +24 -0
- package/dist/custom/document-scanner/corner-adjustment/action-buttons.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/corner-handle.js +44 -0
- package/dist/custom/document-scanner/corner-adjustment/corner-handle.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/hooks/use-corner-drag.js +60 -0
- package/dist/custom/document-scanner/corner-adjustment/hooks/use-corner-drag.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/index.js +124 -0
- package/dist/custom/document-scanner/corner-adjustment/index.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/types.js +1 -0
- package/dist/custom/document-scanner/corner-adjustment/types.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/utils/clip-path.js +16 -0
- package/dist/custom/document-scanner/corner-adjustment/utils/clip-path.js.map +1 -0
- package/dist/custom/document-scanner/corner-adjustment/zoom-magnifier.js +85 -0
- package/dist/custom/document-scanner/corner-adjustment/zoom-magnifier.js.map +1 -0
- package/dist/custom/document-scanner/hooks/use-document-capture.js +61 -0
- package/dist/custom/document-scanner/hooks/use-document-capture.js.map +1 -0
- package/dist/custom/document-scanner/hooks/use-document-scanner.js +59 -0
- package/dist/custom/document-scanner/hooks/use-document-scanner.js.map +1 -0
- package/dist/custom/document-scanner/hooks/use-perspective-crop.js +31 -0
- package/dist/custom/document-scanner/hooks/use-perspective-crop.js.map +1 -0
- package/dist/custom/document-scanner/index.js +229 -0
- package/dist/custom/document-scanner/index.js.map +1 -0
- package/dist/custom/document-scanner/lib.js +289 -0
- package/dist/custom/document-scanner/lib.js.map +1 -0
- package/dist/custom/document-scanner/types.js +1 -0
- package/dist/custom/document-scanner/types.js.map +1 -0
- package/dist/custom/document-scanner/utils/perspective-correction.js +100 -0
- package/dist/custom/document-scanner/utils/perspective-correction.js.map +1 -0
- package/dist/custom/document-viewer/controllers.js +76 -0
- package/dist/custom/document-viewer/controllers.js.map +1 -0
- package/dist/custom/document-viewer/index.js +36 -0
- package/dist/custom/document-viewer/index.js.map +1 -0
- package/dist/custom/document-viewer/renderers/image.js +40 -0
- package/dist/custom/document-viewer/renderers/image.js.map +1 -0
- package/dist/custom/document-viewer/renderers/index.js +3 -0
- package/dist/custom/document-viewer/renderers/index.js.map +1 -0
- package/dist/custom/document-viewer/renderers/pdf.js +95 -0
- package/dist/custom/document-viewer/renderers/pdf.js.map +1 -0
- package/dist/custom/email-input/email.js +184 -0
- package/dist/custom/email-input/email.js.map +1 -0
- package/dist/custom/email-input/index.js +8 -0
- package/dist/custom/email-input/index.js.map +1 -0
- package/dist/custom/email-input/types.js +13 -0
- package/dist/custom/email-input/types.js.map +1 -0
- package/dist/custom/file-uploader.js +389 -0
- package/dist/custom/file-uploader.js.map +1 -0
- package/dist/custom/filter-component/fields/async-select.js +31 -0
- package/dist/custom/filter-component/fields/async-select.js.map +1 -0
- package/dist/custom/filter-component/fields/date.js +56 -0
- package/dist/custom/filter-component/fields/date.js.map +1 -0
- package/dist/custom/filter-component/fields/multi-select.js +28 -0
- package/dist/custom/filter-component/fields/multi-select.js.map +1 -0
- package/dist/custom/filter-component/index.js +149 -0
- package/dist/custom/filter-component/index.js.map +1 -0
- package/dist/custom/image-canvas.js +193 -0
- package/dist/custom/image-canvas.js.map +1 -0
- package/dist/custom/json-editor.js +30 -0
- package/dist/custom/json-editor.js.map +1 -0
- package/dist/custom/master-data-grid/components/dialogs/column-settings-dialog.js +84 -0
- package/dist/custom/master-data-grid/components/dialogs/column-settings-dialog.js.map +1 -0
- package/dist/custom/master-data-grid/components/dialogs/index.js +5 -0
- package/dist/custom/master-data-grid/components/dialogs/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/client-filter.js +310 -0
- package/dist/custom/master-data-grid/components/filters/client-filter.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/filter-input.js +209 -0
- package/dist/custom/master-data-grid/components/filters/filter-input.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/index.js +9 -0
- package/dist/custom/master-data-grid/components/filters/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/inline-column-filter.js +188 -0
- package/dist/custom/master-data-grid/components/filters/inline-column-filter.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/multi-filter-dialog.js +65 -0
- package/dist/custom/master-data-grid/components/filters/multi-filter-dialog.js.map +1 -0
- package/dist/custom/master-data-grid/components/filters/server-filter.js +213 -0
- package/dist/custom/master-data-grid/components/filters/server-filter.js.map +1 -0
- package/dist/custom/master-data-grid/components/master-data-grid.js +421 -0
- package/dist/custom/master-data-grid/components/master-data-grid.js.map +1 -0
- package/dist/custom/master-data-grid/components/pagination/index.js +5 -0
- package/dist/custom/master-data-grid/components/pagination/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/pagination/pagination.js +159 -0
- package/dist/custom/master-data-grid/components/pagination/pagination.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/cell-renderer.js +442 -0
- package/dist/custom/master-data-grid/components/table/cell-renderer.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/header-cell.js +116 -0
- package/dist/custom/master-data-grid/components/table/header-cell.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/index.js +5 -0
- package/dist/custom/master-data-grid/components/table/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/table-body-renderer.js +79 -0
- package/dist/custom/master-data-grid/components/table/table-body-renderer.js.map +1 -0
- package/dist/custom/master-data-grid/components/table/virtual-body.js +86 -0
- package/dist/custom/master-data-grid/components/table/virtual-body.js.map +1 -0
- package/dist/custom/master-data-grid/components/toolbar/index.js +5 -0
- package/dist/custom/master-data-grid/components/toolbar/index.js.map +1 -0
- package/dist/custom/master-data-grid/components/toolbar/toolbar.js +238 -0
- package/dist/custom/master-data-grid/components/toolbar/toolbar.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/index.js +7 -0
- package/dist/custom/master-data-grid/hooks/index.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-columns.js +278 -0
- package/dist/custom/master-data-grid/hooks/use-columns.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-editing.js +75 -0
- package/dist/custom/master-data-grid/hooks/use-editing.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-table-state-reducer.js +96 -0
- package/dist/custom/master-data-grid/hooks/use-table-state-reducer.js.map +1 -0
- package/dist/custom/master-data-grid/hooks/use-table-state.js +25 -0
- package/dist/custom/master-data-grid/hooks/use-table-state.js.map +1 -0
- package/dist/custom/master-data-grid/index.js +5 -0
- package/dist/custom/master-data-grid/index.js.map +1 -0
- package/dist/custom/master-data-grid/types.js +1 -0
- package/dist/custom/master-data-grid/types.js.map +1 -0
- package/dist/custom/master-data-grid/utils/column-generator.js +203 -0
- package/dist/custom/master-data-grid/utils/column-generator.js.map +1 -0
- package/dist/custom/master-data-grid/utils/export-utils.js +46 -0
- package/dist/custom/master-data-grid/utils/export-utils.js.map +1 -0
- package/dist/custom/master-data-grid/utils/filter-fns.js +218 -0
- package/dist/custom/master-data-grid/utils/filter-fns.js.map +1 -0
- package/dist/custom/master-data-grid/utils/index.js +16 -0
- package/dist/custom/master-data-grid/utils/index.js.map +1 -0
- package/dist/custom/master-data-grid/utils/pinning-utils.js +70 -0
- package/dist/custom/master-data-grid/utils/pinning-utils.js.map +1 -0
- package/dist/custom/master-data-grid/utils/translation-utils.js +33 -0
- package/dist/custom/master-data-grid/utils/translation-utils.js.map +1 -0
- package/dist/custom/multi-select.js +339 -0
- package/dist/custom/multi-select.js.map +1 -0
- package/dist/custom/password-input.js +158 -0
- package/dist/custom/password-input.js.map +1 -0
- package/dist/custom/phone-input.js +127 -0
- package/dist/custom/phone-input.js.map +1 -0
- package/dist/custom/schema-form/custom/index.js +2 -0
- package/dist/custom/schema-form/custom/index.js.map +1 -0
- package/dist/custom/schema-form/custom/label.js +39 -0
- package/dist/custom/schema-form/custom/label.js.map +1 -0
- package/dist/custom/schema-form/fields/base-input-field.js +73 -0
- package/dist/custom/schema-form/fields/base-input-field.js.map +1 -0
- package/dist/custom/schema-form/fields/field.js +72 -0
- package/dist/custom/schema-form/fields/field.js.map +1 -0
- package/dist/custom/schema-form/fields/index.js +6 -0
- package/dist/custom/schema-form/fields/index.js.map +1 -0
- package/dist/custom/schema-form/fields/object.js +9 -0
- package/dist/custom/schema-form/fields/object.js.map +1 -0
- package/dist/custom/schema-form/fields/table-array/array-field-item.js +58 -0
- package/dist/custom/schema-form/fields/table-array/array-field-item.js.map +1 -0
- package/dist/custom/schema-form/fields/table-array/array-field-template.js +104 -0
- package/dist/custom/schema-form/fields/table-array/array-field-template.js.map +1 -0
- package/dist/custom/schema-form/index.js +219 -0
- package/dist/custom/schema-form/index.js.map +1 -0
- package/dist/custom/schema-form/templates/description.js +19 -0
- package/dist/custom/schema-form/templates/description.js.map +1 -0
- package/dist/custom/schema-form/templates/index.js +3 -0
- package/dist/custom/schema-form/templates/index.js.map +1 -0
- package/dist/custom/schema-form/templates/submit.js +31 -0
- package/dist/custom/schema-form/templates/submit.js.map +1 -0
- package/dist/custom/schema-form/types.js +1 -0
- package/dist/custom/schema-form/types.js.map +1 -0
- package/dist/custom/schema-form/utils/index.js +10 -0
- package/dist/custom/schema-form/utils/index.js.map +1 -0
- package/dist/custom/schema-form/utils/schema-dependency.js +349 -0
- package/dist/custom/schema-form/utils/schema-dependency.js.map +1 -0
- package/dist/custom/schema-form/utils/schemas.js +190 -0
- package/dist/custom/schema-form/utils/schemas.js.map +1 -0
- package/dist/custom/schema-form/utils/validation.js +19 -0
- package/dist/custom/schema-form/utils/validation.js.map +1 -0
- package/dist/custom/schema-form/widgets/boolean.js +73 -0
- package/dist/custom/schema-form/widgets/boolean.js.map +1 -0
- package/dist/custom/schema-form/widgets/combobox.js +222 -0
- package/dist/custom/schema-form/widgets/combobox.js.map +1 -0
- package/dist/custom/schema-form/widgets/date.js +56 -0
- package/dist/custom/schema-form/widgets/date.js.map +1 -0
- package/dist/custom/schema-form/widgets/email.js +37 -0
- package/dist/custom/schema-form/widgets/email.js.map +1 -0
- package/dist/custom/schema-form/widgets/index.js +11 -0
- package/dist/custom/schema-form/widgets/index.js.map +1 -0
- package/dist/custom/schema-form/widgets/password.js +42 -0
- package/dist/custom/schema-form/widgets/password.js.map +1 -0
- package/dist/custom/schema-form/widgets/phone.js +39 -0
- package/dist/custom/schema-form/widgets/phone.js.map +1 -0
- package/dist/custom/schema-form/widgets/select.js +78 -0
- package/dist/custom/schema-form/widgets/select.js.map +1 -0
- package/dist/custom/schema-form/widgets/selectable.js +25 -0
- package/dist/custom/schema-form/widgets/selectable.js.map +1 -0
- package/dist/custom/schema-form/widgets/string-array.js +237 -0
- package/dist/custom/schema-form/widgets/string-array.js.map +1 -0
- package/dist/custom/schema-form/widgets/url.js +53 -0
- package/dist/custom/schema-form/widgets/url.js.map +1 -0
- package/dist/custom/section-layout-v2.js +150 -0
- package/dist/custom/section-layout-v2.js.map +1 -0
- package/dist/custom/select-tabs.js +66 -0
- package/dist/custom/select-tabs.js.map +1 -0
- package/dist/custom/selectable.js +231 -0
- package/dist/custom/selectable.js.map +1 -0
- package/dist/custom/stepper.js +166 -0
- package/dist/custom/stepper.js.map +1 -0
- package/dist/custom/tab-layout.js +182 -0
- package/dist/custom/tab-layout.js.map +1 -0
- package/dist/custom/tanstack-table/fields/index.js +13 -0
- package/dist/custom/tanstack-table/fields/index.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-action-dialogs.js +76 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-action-dialogs.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-column-header.js +47 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-column-header.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-date.js +132 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-date.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-faceted.js +131 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-faceted.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-text.js +64 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-filter-text.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-pagination.js +135 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-pagination.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-plain-table.js +111 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-plain-table.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.js +65 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.js +69 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions.js +119 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-row-actions.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.js +75 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js +41 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-toolbar.js +106 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-toolbar.js.map +1 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-view-options.js +132 -0
- package/dist/custom/tanstack-table/fields/tanstack-table-view-options.js.map +1 -0
- package/dist/custom/tanstack-table/index.js +217 -0
- package/dist/custom/tanstack-table/index.js.map +1 -0
- package/dist/custom/tanstack-table/types/index.js +1 -0
- package/dist/custom/tanstack-table/types/index.js.map +1 -0
- package/dist/custom/tanstack-table/utils/cell-with-actions.js +16 -0
- package/dist/custom/tanstack-table/utils/cell-with-actions.js.map +1 -0
- package/dist/custom/tanstack-table/utils/column-names.js +15 -0
- package/dist/custom/tanstack-table/utils/column-names.js.map +1 -0
- package/dist/custom/tanstack-table/utils/columns-by-row-data.js +246 -0
- package/dist/custom/tanstack-table/utils/columns-by-row-data.js.map +1 -0
- package/dist/custom/tanstack-table/utils/editable-columns-by-row-data.js +187 -0
- package/dist/custom/tanstack-table/utils/editable-columns-by-row-data.js.map +1 -0
- package/dist/custom/tanstack-table/utils/faceted-boolean-options.js +25 -0
- package/dist/custom/tanstack-table/utils/faceted-boolean-options.js.map +1 -0
- package/dist/custom/tanstack-table/utils/index.js +10 -0
- package/dist/custom/tanstack-table/utils/index.js.map +1 -0
- package/dist/custom/tanstack-table/utils/pinning-styles.js +38 -0
- package/dist/custom/tanstack-table/utils/pinning-styles.js.map +1 -0
- package/dist/custom/tanstack-table/utils/table.js +66 -0
- package/dist/custom/tanstack-table/utils/table.js.map +1 -0
- package/dist/custom/tanstack-table/utils/test-conditions.js +10 -0
- package/dist/custom/tanstack-table/utils/test-conditions.js.map +1 -0
- package/dist/custom/timeline.js +165 -0
- package/dist/custom/timeline.js.map +1 -0
- package/dist/custom/tree.js +130 -0
- package/dist/custom/tree.js.map +1 -0
- package/dist/custom/tscanify/browser.js +36 -0
- package/dist/custom/tscanify/browser.js.map +1 -0
- package/dist/custom/tscanify/index.js +34 -0
- package/dist/custom/tscanify/index.js.map +1 -0
- package/dist/custom/tscanify/tscanify-browser.js +363 -0
- package/dist/custom/tscanify/tscanify-browser.js.map +1 -0
- package/dist/custom/tscanify/tscanify.js +197 -0
- package/dist/custom/tscanify/tscanify.js.map +1 -0
- package/dist/custom/tscanify/types.js +1 -0
- package/dist/custom/tscanify/types.js.map +1 -0
- package/dist/custom/webcam.js +519 -0
- package/dist/custom/webcam.js.map +1 -0
- package/dist/hooks/use-callback-ref.js +15 -0
- package/dist/hooks/use-callback-ref.js.map +1 -0
- package/dist/hooks/use-controllable-state.js +49 -0
- package/dist/hooks/use-controllable-state.js.map +1 -0
- package/dist/hooks/use-debounce.js +18 -0
- package/dist/hooks/use-debounce.js.map +1 -0
- package/dist/hooks/use-is-visible.js +22 -0
- package/dist/hooks/use-is-visible.js.map +1 -0
- package/dist/hooks/use-media-query.js +19 -0
- package/dist/hooks/use-media-query.js.map +1 -0
- package/dist/hooks/use-mobile.js +21 -0
- package/dist/hooks/use-mobile.js.map +1 -0
- package/dist/hooks/use-on-window-resize.js +15 -0
- package/dist/hooks/use-on-window-resize.js.map +1 -0
- package/dist/hooks/use-scroll.js +20 -0
- package/dist/hooks/use-scroll.js.map +1 -0
- package/dist/lib/utils.js +48 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/lib/zod.js +7 -0
- package/dist/lib/zod.js.map +1 -0
- package/package.json +34 -8
- package/src/aria/index.tsx +1 -1
- package/src/aria/number-field.tsx +41 -41
- package/src/components/accordion.tsx +66 -66
- package/src/components/alert-dialog.tsx +157 -157
- package/src/components/alert.tsx +70 -70
- package/src/components/aspect-ratio.tsx +11 -11
- package/src/components/avatar.tsx +53 -53
- package/src/components/badge.tsx +74 -67
- package/src/components/breadcrumb.tsx +109 -109
- package/src/components/button-group.tsx +83 -83
- package/src/components/button.tsx +69 -68
- package/src/components/calendar.tsx +216 -219
- package/src/components/card.tsx +92 -92
- package/src/components/carousel.tsx +241 -241
- package/src/components/chart.tsx +363 -363
- package/src/components/checkbox.tsx +32 -32
- package/src/components/collapsible.tsx +33 -33
- package/src/components/command.tsx +184 -184
- package/src/components/context-menu.tsx +252 -252
- package/src/components/dialog.tsx +144 -144
- package/src/components/drawer.tsx +135 -135
- package/src/components/dropdown-menu.tsx +258 -258
- package/src/components/empty.tsx +100 -100
- package/src/components/field.tsx +248 -248
- package/src/components/form.tsx +169 -169
- package/src/components/hover-card.tsx +44 -44
- package/src/components/input-group.tsx +170 -170
- package/src/components/input-otp.tsx +77 -77
- package/src/components/input.tsx +21 -21
- package/src/components/item.tsx +193 -193
- package/src/components/kbd.tsx +28 -28
- package/src/components/label.tsx +24 -24
- package/src/components/menubar.tsx +276 -276
- package/src/components/navigation-menu.tsx +168 -168
- package/src/components/pagination.tsx +127 -130
- package/src/components/popover.tsx +88 -88
- package/src/components/progress.tsx +31 -31
- package/src/components/radio-group.tsx +45 -45
- package/src/components/resizable.tsx +56 -56
- package/src/components/scroll-area.tsx +58 -58
- package/src/components/select.tsx +189 -189
- package/src/components/separator.tsx +28 -28
- package/src/components/sheet.tsx +140 -140
- package/src/components/sidebar.tsx +862 -862
- package/src/components/skeleton.tsx +13 -13
- package/src/components/slider.tsx +63 -63
- package/src/components/sonner.tsx +40 -40
- package/src/components/spinner.tsx +16 -16
- package/src/components/stepper.tsx +290 -291
- package/src/components/switch.tsx +31 -31
- package/src/components/table.tsx +133 -133
- package/src/components/tabs.tsx +66 -66
- package/src/components/textarea.tsx +18 -18
- package/src/components/toggle-group.tsx +83 -83
- package/src/components/toggle.tsx +47 -47
- package/src/components/tooltip.tsx +66 -66
- package/src/custom/action-button.tsx +45 -48
- package/src/custom/async-select.tsx +287 -287
- package/src/custom/awesome-not-found.tsx +116 -116
- package/src/custom/charts/area-chart.tsx +147 -147
- package/src/custom/charts/bar-chart.tsx +233 -233
- package/src/custom/charts/chart-card.tsx +103 -103
- package/src/custom/charts/index.tsx +16 -16
- package/src/custom/charts/pie-chart.tsx +168 -168
- package/src/custom/charts/radar-chart.tsx +126 -126
- package/src/custom/checkbox-tree.tsx +100 -100
- package/src/custom/combobox.tsx +296 -296
- package/src/custom/confirm-dialog.tsx +114 -102
- package/src/custom/country-selector.tsx +204 -204
- package/src/custom/date-picker/calendar-rac.tsx +109 -109
- package/src/custom/date-picker/datefield-rac.tsx +84 -84
- package/src/custom/date-picker/index.tsx +273 -273
- package/src/custom/date-picker/types/index.ts +4 -4
- package/src/custom/date-picker/utils/index.ts +42 -42
- package/src/custom/date-picker-old.tsx +50 -50
- package/src/custom/date-tooltip.tsx +98 -98
- package/src/custom/document-scanner/consts.ts +5 -5
- package/src/custom/document-scanner/corner-adjustment/action-buttons.tsx +33 -33
- package/src/custom/document-scanner/corner-adjustment/corner-handle.tsx +43 -43
- package/src/custom/document-scanner/corner-adjustment/hooks/use-corner-drag.ts +85 -85
- package/src/custom/document-scanner/corner-adjustment/index.tsx +125 -125
- package/src/custom/document-scanner/corner-adjustment/types.ts +53 -53
- package/src/custom/document-scanner/corner-adjustment/utils/clip-path.ts +22 -22
- package/src/custom/document-scanner/corner-adjustment/zoom-magnifier.tsx +115 -115
- package/src/custom/document-scanner/hooks/use-document-capture.ts +81 -81
- package/src/custom/document-scanner/hooks/use-document-scanner.ts +80 -80
- package/src/custom/document-scanner/hooks/use-perspective-crop.ts +38 -38
- package/src/custom/document-scanner/index.tsx +255 -255
- package/src/custom/document-scanner/lib.ts +407 -407
- package/src/custom/document-scanner/types.ts +205 -205
- package/src/custom/document-scanner/utils/perspective-correction.ts +139 -139
- package/src/custom/document-viewer/controllers.tsx +98 -98
- package/src/custom/document-viewer/index.tsx +43 -43
- package/src/custom/document-viewer/renderers/image.tsx +37 -37
- package/src/custom/document-viewer/renderers/index.tsx +2 -2
- package/src/custom/document-viewer/renderers/pdf.tsx +105 -105
- package/src/custom/email-input/domains.json +159 -159
- package/src/custom/email-input/email.tsx +231 -229
- package/src/custom/email-input/index.tsx +4 -4
- package/src/custom/email-input/types.ts +104 -104
- package/src/custom/file-uploader.tsx +541 -541
- package/src/custom/filter-component/fields/async-select.tsx +33 -33
- package/src/custom/filter-component/fields/date.tsx +60 -60
- package/src/custom/filter-component/fields/multi-select.tsx +30 -30
- package/src/custom/filter-component/index.tsx +217 -217
- package/src/custom/image-canvas.tsx +260 -260
- package/src/custom/json-editor.tsx +22 -22
- package/src/custom/master-data-grid/components/dialogs/column-settings-dialog.tsx +100 -100
- package/src/custom/master-data-grid/components/dialogs/index.ts +1 -1
- package/src/custom/master-data-grid/components/filters/client-filter.tsx +369 -368
- package/src/custom/master-data-grid/components/filters/filter-input.tsx +256 -256
- package/src/custom/master-data-grid/components/filters/index.ts +3 -3
- package/src/custom/master-data-grid/components/filters/inline-column-filter.tsx +233 -233
- package/src/custom/master-data-grid/components/filters/multi-filter-dialog.tsx +91 -90
- package/src/custom/master-data-grid/components/filters/server-filter.tsx +265 -255
- package/src/custom/master-data-grid/components/master-data-grid.tsx +472 -472
- package/src/custom/master-data-grid/components/pagination/index.ts +1 -1
- package/src/custom/master-data-grid/components/pagination/pagination.tsx +178 -178
- package/src/custom/master-data-grid/components/table/cell-renderer.tsx +621 -634
- package/src/custom/master-data-grid/components/table/header-cell.tsx +162 -162
- package/src/custom/master-data-grid/components/table/index.ts +4 -4
- package/src/custom/master-data-grid/components/table/table-body-renderer.tsx +113 -113
- package/src/custom/master-data-grid/components/table/virtual-body.tsx +138 -138
- package/src/custom/master-data-grid/components/toolbar/index.ts +1 -1
- package/src/custom/master-data-grid/components/toolbar/toolbar.tsx +314 -314
- package/src/custom/master-data-grid/hooks/index.ts +3 -3
- package/src/custom/master-data-grid/hooks/use-columns.tsx +353 -332
- package/src/custom/master-data-grid/hooks/use-editing.ts +106 -106
- package/src/custom/master-data-grid/hooks/use-table-state-reducer.ts +157 -157
- package/src/custom/master-data-grid/hooks/use-table-state.ts +31 -31
- package/src/custom/master-data-grid/index.ts +16 -16
- package/src/custom/master-data-grid/types.ts +487 -466
- package/src/custom/master-data-grid/utils/column-generator.tsx +324 -306
- package/src/custom/master-data-grid/utils/export-utils.ts +67 -67
- package/src/custom/master-data-grid/utils/filter-fns.ts +310 -290
- package/src/custom/master-data-grid/utils/index.ts +8 -8
- package/src/custom/master-data-grid/utils/pinning-utils.ts +88 -88
- package/src/custom/master-data-grid/utils/translation-utils.ts +42 -42
- package/src/custom/multi-select.tsx +434 -432
- package/src/custom/password-input.tsx +194 -194
- package/src/custom/phone-input.tsx +172 -172
- package/src/custom/schema-form/custom/index.tsx +1 -1
- package/src/custom/schema-form/custom/label.tsx +53 -53
- package/src/custom/schema-form/fields/base-input-field.tsx +82 -82
- package/src/custom/schema-form/fields/field.tsx +67 -67
- package/src/custom/schema-form/fields/index.tsx +5 -5
- package/src/custom/schema-form/fields/object.tsx +12 -12
- package/src/custom/schema-form/fields/table-array/array-field-item.tsx +90 -90
- package/src/custom/schema-form/fields/table-array/array-field-template.tsx +115 -115
- package/src/custom/schema-form/index.tsx +259 -259
- package/src/custom/schema-form/templates/description.tsx +20 -20
- package/src/custom/schema-form/templates/index.tsx +2 -2
- package/src/custom/schema-form/templates/submit.tsx +32 -32
- package/src/custom/schema-form/types.ts +64 -64
- package/src/custom/schema-form/utils/index.ts +4 -4
- package/src/custom/schema-form/utils/schema-dependency.ts +655 -655
- package/src/custom/schema-form/utils/schemas.ts +289 -289
- package/src/custom/schema-form/utils/validation.ts +23 -23
- package/src/custom/schema-form/widgets/boolean.tsx +77 -77
- package/src/custom/schema-form/widgets/combobox.tsx +274 -274
- package/src/custom/schema-form/widgets/date.tsx +59 -59
- package/src/custom/schema-form/widgets/email.tsx +34 -34
- package/src/custom/schema-form/widgets/index.tsx +10 -10
- package/src/custom/schema-form/widgets/password.tsx +40 -40
- package/src/custom/schema-form/widgets/phone.tsx +40 -40
- package/src/custom/schema-form/widgets/select.tsx +105 -105
- package/src/custom/schema-form/widgets/selectable.tsx +25 -25
- package/src/custom/schema-form/widgets/string-array.tsx +296 -296
- package/src/custom/schema-form/widgets/url.tsx +56 -56
- package/src/custom/section-layout-v2.tsx +212 -212
- package/src/custom/select-tabs.tsx +109 -109
- package/src/custom/selectable.tsx +316 -316
- package/src/custom/stepper.tsx +236 -236
- package/src/custom/tab-layout.tsx +213 -213
- package/src/custom/tanstack-table/fields/index.tsx +12 -12
- package/src/custom/tanstack-table/fields/tanstack-table-action-dialogs.tsx +89 -89
- package/src/custom/tanstack-table/fields/tanstack-table-column-header.tsx +68 -66
- package/src/custom/tanstack-table/fields/tanstack-table-filter-date.tsx +180 -180
- package/src/custom/tanstack-table/fields/tanstack-table-filter-faceted.tsx +158 -158
- package/src/custom/tanstack-table/fields/tanstack-table-filter-text.tsx +73 -76
- package/src/custom/tanstack-table/fields/tanstack-table-pagination.tsx +136 -136
- package/src/custom/tanstack-table/fields/tanstack-table-plain-table.tsx +142 -142
- package/src/custom/tanstack-table/fields/tanstack-table-row-actions-confirmation.tsx +77 -77
- package/src/custom/tanstack-table/fields/tanstack-table-row-actions-custom-dialog.tsx +87 -87
- package/src/custom/tanstack-table/fields/tanstack-table-row-actions.tsx +151 -151
- package/src/custom/tanstack-table/fields/tanstack-table-table-actions-custom-dialog.tsx +88 -88
- package/src/custom/tanstack-table/fields/tanstack-table-table-actions-schemaform-dialog.tsx +47 -47
- package/src/custom/tanstack-table/fields/tanstack-table-toolbar.tsx +143 -143
- package/src/custom/tanstack-table/fields/tanstack-table-view-options.tsx +171 -171
- package/src/custom/tanstack-table/index.tsx +244 -244
- package/src/custom/tanstack-table/types/index.ts +328 -328
- package/src/custom/tanstack-table/utils/cell-with-actions.tsx +21 -21
- package/src/custom/tanstack-table/utils/column-names.ts +26 -26
- package/src/custom/tanstack-table/utils/columns-by-row-data.tsx +312 -312
- package/src/custom/tanstack-table/utils/editable-columns-by-row-data.tsx +219 -219
- package/src/custom/tanstack-table/utils/faceted-boolean-options.tsx +22 -22
- package/src/custom/tanstack-table/utils/index.tsx +10 -10
- package/src/custom/tanstack-table/utils/pinning-styles.ts +57 -57
- package/src/custom/tanstack-table/utils/table.tsx +83 -83
- package/src/custom/tanstack-table/utils/test-conditions.ts +17 -17
- package/src/custom/timeline.tsx +208 -208
- package/src/custom/tree.tsx +202 -200
- package/src/custom/tscanify/browser.ts +66 -66
- package/src/custom/tscanify/index.ts +51 -51
- package/src/custom/tscanify/tscanify-browser.ts +522 -522
- package/src/custom/tscanify/tscanify.ts +262 -262
- package/src/custom/tscanify/types.ts +22 -22
- package/src/custom/webcam.tsx +737 -737
- package/src/hooks/use-callback-ref.ts +27 -27
- package/src/hooks/use-controllable-state.ts +67 -67
- package/src/hooks/use-debounce.ts +19 -19
- package/src/hooks/use-is-visible.ts +23 -23
- package/src/hooks/use-media-query.ts +21 -21
- package/src/hooks/use-mobile.ts +21 -21
- package/src/hooks/use-on-window-resize.ts +15 -15
- package/src/hooks/use-scroll.tsx +22 -22
- package/src/lib/utils.ts +61 -61
- package/src/lib/zod.ts +2 -2
- package/src/styles/core.css +57 -57
- package/src/test/email-input.test.tsx +217 -217
- package/src/test/password-input.test.tsx +92 -92
- package/src/test/select-tabs.test.tsx +302 -302
- package/src/test/selectable.test.tsx +1093 -1093
- package/__mocks__/canvas.ts +0 -8
- package/components.json +0 -21
- package/eslint.config.js +0 -4
- package/jest-environment.js +0 -37
- package/jest.config.ts +0 -47
- package/jest.setup.ts +0 -69
- package/postcss.config.mjs +0 -6
- package/tsconfig.json +0 -13
- package/tsconfig.lint.json +0 -8
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/columns-by-row-data.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnDef, Row } from \"@tanstack/react-table\";\r\nimport Link from \"next/link\";\r\nimport { Badge } from \"@repo/ayasofyazilim-ui/components/badge\";\r\nimport { Checkbox } from \"@repo/ayasofyazilim-ui/components/checkbox\";\r\nimport { cn } from \"@repo/ayasofyazilim-ui/lib/utils\";\r\nimport { tanstackTableCreateTitleWithLanguageData, testConditions } from \".\";\r\nimport DateTooltip, { Localization } from \"../../date-tooltip\";\r\nimport { TanstackTableColumnHeader } from \"../fields\";\r\nimport {\r\n TanstackTableColumCell,\r\n TanstackTableColumnBadge,\r\n TanstackTableColumnClassNames,\r\n TanstackTableColumnIcon,\r\n TanstackTableColumnLink,\r\n TanstackTableConfig,\r\n TanstackTableCreateColumnsByRowId,\r\n TanstackTableFacetedFilterType,\r\n} from \"../types\";\r\nimport { JSX } from \"react\";\r\n\r\nexport function createCell<T>(props: {\r\n accessorKey: keyof T;\r\n row: Row<T>;\r\n link?: TanstackTableColumnLink;\r\n faceted?: TanstackTableFacetedFilterType[];\r\n badge?: TanstackTableColumnBadge;\r\n icon?: TanstackTableColumnIcon;\r\n className?: TanstackTableColumnClassNames[];\r\n expandRowTrigger?: boolean;\r\n format?: string;\r\n custom?: TanstackTableColumCell<T>;\r\n config?: TanstackTableConfig;\r\n localization: Localization;\r\n}) {\r\n const {\r\n accessorKey,\r\n row,\r\n link,\r\n badge,\r\n icon,\r\n className,\r\n expandRowTrigger,\r\n format,\r\n custom,\r\n config,\r\n faceted,\r\n localization,\r\n } = props;\r\n\r\n let content: JSX.Element | string | null =\r\n row.getValue(accessorKey.toString())?.toString() || \"\";\r\n if (format) {\r\n if (format === \"date\" || format === \"date-time\") {\r\n content = content ? (\r\n <DateTooltip\r\n date={content}\r\n dateOptions={config?.dateOptions}\r\n localization={localization}\r\n />\r\n ) : (\r\n \"\"\r\n );\r\n }\r\n }\r\n\r\n if (icon) {\r\n const position = icon.position || \"before\";\r\n content = (\r\n <div className=\"inline-flex\">\r\n {icon.icon && position === \"before\" && (\r\n <icon.icon className={cn(\"w-4 h-4 mr-2\", icon.iconClassName)} />\r\n )}\r\n {row.getValue(accessorKey.toString())}\r\n {icon.icon && position === \"after\" && (\r\n <icon.icon className={cn(\"w-4 h-4 ml-2\", icon.iconClassName)} />\r\n )}\r\n </div>\r\n );\r\n }\r\n if (badge) {\r\n const position: { before: JSX.Element[]; after: JSX.Element[] } = {\r\n before: [],\r\n after: [],\r\n };\r\n badge.values.forEach((item) => {\r\n const itemPosition = item.position || \"before\";\r\n item.conditions?.forEach((condition) => {\r\n if (condition.when(row.getValue(condition.conditionAccessorKey))) {\r\n position[itemPosition].push(\r\n <Badge\r\n variant=\"outline\"\r\n className={item.badgeClassName}\r\n key={item.label}\r\n >\r\n {item.label}\r\n </Badge>\r\n );\r\n }\r\n return null;\r\n });\r\n });\r\n content = (\r\n <>\r\n {position.before}\r\n {!badge.hideColumnValue && content}\r\n {position.after}\r\n </>\r\n );\r\n }\r\n if (faceted) {\r\n const facetedItem = faceted.find(\r\n (item) =>\r\n item.when?.(row.getValue(accessorKey.toString())) ||\r\n row.getValue(accessorKey.toString()) === item.value\r\n );\r\n if (facetedItem) {\r\n content = (\r\n <div className={cn(\"flex items-center\", facetedItem.className)}>\r\n {facetedItem.icon && (\r\n <facetedItem.icon\r\n className={cn(\r\n \"text-muted-foreground mr-2 h-4 w-4\",\r\n facetedItem.iconClassName\r\n )}\r\n />\r\n )}\r\n {facetedItem.hideColumnValue ? \"\" : <span>{facetedItem.label}</span>}\r\n </div>\r\n );\r\n }\r\n }\r\n const containerClassName = className\r\n ?.map((item) => {\r\n if (testConditions(item.conditions, row)) {\r\n return item.className;\r\n }\r\n return null;\r\n })\r\n .join(\" \");\r\n\r\n if (custom) content = custom.content(row.original, row);\r\n if (!link || !testConditions(link.conditions, row)) {\r\n if (expandRowTrigger) {\r\n return (\r\n <button\r\n type=\"button\"\r\n onClick={row.getToggleExpandedHandler()}\r\n data-testid={`expand-row-${accessorKey.toString()}`}\r\n className={cn(\r\n \"font-medium text-blue-700 flex items-center gap-2 cursor-pointer\",\r\n containerClassName\r\n )}\r\n >\r\n {content}\r\n </button>\r\n );\r\n }\r\n return (\r\n <div className={cn(\" flex items-center gap-2\", containerClassName)}>\r\n {content}\r\n </div>\r\n );\r\n }\r\n let url = link.prefix;\r\n if (link.targetAccessorKey) {\r\n url += `/${row._getAllCellsByColumnId()?.[link.targetAccessorKey || \"\"]?.getValue()?.toString()}`;\r\n }\r\n if (link.suffix) {\r\n url += `/${link.suffix}`;\r\n }\r\n return (\r\n <Link\r\n href={url}\r\n className={cn(\r\n \"font-medium text-blue-700 flex items-center gap-2\",\r\n containerClassName\r\n )}\r\n >\r\n {content}\r\n </Link>\r\n );\r\n}\r\nexport function tanstackTableCreateColumnsByRowData<T>(\r\n params: TanstackTableCreateColumnsByRowId<T>\r\n) {\r\n const { rows, config } = params;\r\n\r\n const {\r\n excludeColumns,\r\n languageData,\r\n links,\r\n faceted,\r\n badges,\r\n classNames,\r\n icons,\r\n expandRowTrigger,\r\n custom,\r\n localization,\r\n onSelectedRowChange,\r\n } = params;\r\n const columns: ColumnDef<T>[] = [];\r\n if (params.selectableRows) {\r\n columns.push({\r\n size: 64,\r\n id: \"select\",\r\n header: ({ table }) => (\r\n <div className=\"w-full h-9 flex items-center justify-center\">\r\n <Checkbox\r\n checked={\r\n table\r\n .getRowModel()\r\n .rows.filter((row) => !params.disabledRowIds?.includes(row.id))\r\n .every((row) => row.getIsSelected()) &&\r\n table\r\n .getRowModel()\r\n .rows.some(\r\n (row) =>\r\n !params.disabledRowIds?.includes(row.id) &&\r\n row.getIsSelected()\r\n )\r\n }\r\n onCheckedChange={(value) => {\r\n const selectedRows: T[] = [];\r\n table.getRowModel().rows.forEach((row) => {\r\n if (!params.disabledRowIds?.includes(row.id)) {\r\n row.toggleSelected(!!value);\r\n if (value) {\r\n selectedRows.push(row.original);\r\n }\r\n }\r\n });\r\n onSelectedRowChange?.(selectedRows);\r\n }}\r\n aria-label=\"Select all\"\r\n className=\"translate-y-0.5 align-middle\"\r\n />\r\n </div>\r\n ),\r\n\r\n cell: ({ row, table }) => (\r\n <div className=\"w-full h-9 flex items-center justify-center\">\r\n <Checkbox\r\n checked={row.getIsSelected()}\r\n onCheckedChange={(value) => {\r\n const selectedRows: T[] = [];\r\n table.getSelectedRowModel().rows.forEach((row) => {\r\n selectedRows.push(row.original);\r\n });\r\n if (value) {\r\n selectedRows.push(row.original);\r\n } else {\r\n selectedRows.splice(selectedRows.indexOf(row.original), 1);\r\n }\r\n row.toggleSelected(!!value);\r\n onSelectedRowChange?.(selectedRows);\r\n }}\r\n disabled={params.disabledRowIds?.some((id) => id === row.id)}\r\n aria-label=\"Select row\"\r\n className=\"translate-y-0.5 align-top\"\r\n />\r\n </div>\r\n ),\r\n enableSorting: false,\r\n enableHiding: false,\r\n });\r\n }\r\n const rowKeys = Object.keys(rows) as (keyof T)[];\r\n rowKeys\r\n .filter((key) => !excludeColumns?.includes(key as keyof T))\r\n .forEach((accessorKey) => {\r\n const title = tanstackTableCreateTitleWithLanguageData({\r\n languageData,\r\n accessorKey: accessorKey.toString(),\r\n });\r\n const link = links?.[accessorKey as keyof T];\r\n const { format } = rows[accessorKey];\r\n const column: ColumnDef<T> = {\r\n id: accessorKey.toString(),\r\n accessorKey,\r\n meta: title,\r\n header:\r\n !custom?.[accessorKey] || custom?.[accessorKey]?.showHeader\r\n ? ({ column }) => (\r\n <TanstackTableColumnHeader column={column} title={title} />\r\n )\r\n : undefined,\r\n cell: ({ row }) =>\r\n createCell<T>({\r\n accessorKey,\r\n row,\r\n link,\r\n faceted: faceted?.[accessorKey]?.options,\r\n badge: badges?.[accessorKey],\r\n icon: icons?.[accessorKey],\r\n className: classNames?.[accessorKey],\r\n expandRowTrigger: expandRowTrigger === accessorKey,\r\n format,\r\n custom: custom?.[accessorKey],\r\n config,\r\n localization,\r\n }),\r\n };\r\n if (faceted?.[accessorKey]) {\r\n column.filterFn = (row, id, value) => value.includes(row.getValue(id));\r\n }\r\n columns.push(column);\r\n });\r\n\r\n return columns;\r\n}\r\n"],"mappings":";AAwDQ,SAgDF,UAhDE,KAcF,YAdE;AArDR,OAAO,UAAU;AACjB,SAAS,aAAa;AACtB,SAAS,gBAAgB;AACzB,SAAS,UAAU;AACnB,SAAS,0CAA0C,sBAAsB;AACzE,OAAO,iBAAmC;AAC1C,SAAS,iCAAiC;AAanC,SAAS,WAAc,OAa3B;AACD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AAEJ,MAAI,UACF,IAAI,SAAS,YAAY,SAAS,CAAC,GAAG,SAAS,KAAK;AACtD,MAAI,QAAQ;AACV,QAAI,WAAW,UAAU,WAAW,aAAa;AAC/C,gBAAU,UACR;AAAA,QAAC;AAAA;AAAA,UACC,MAAM;AAAA,UACN,aAAa,QAAQ;AAAA,UACrB;AAAA;AAAA,MACF,IAEA;AAAA,IAEJ;AAAA,EACF;AAEA,MAAI,MAAM;AACR,UAAM,WAAW,KAAK,YAAY;AAClC,cACE,qBAAC,SAAI,WAAU,eACZ;AAAA,WAAK,QAAQ,aAAa,YACzB,oBAAC,KAAK,MAAL,EAAU,WAAW,GAAG,gBAAgB,KAAK,aAAa,GAAG;AAAA,MAE/D,IAAI,SAAS,YAAY,SAAS,CAAC;AAAA,MACnC,KAAK,QAAQ,aAAa,WACzB,oBAAC,KAAK,MAAL,EAAU,WAAW,GAAG,gBAAgB,KAAK,aAAa,GAAG;AAAA,OAElE;AAAA,EAEJ;AACA,MAAI,OAAO;AACT,UAAM,WAA4D;AAAA,MAChE,QAAQ,CAAC;AAAA,MACT,OAAO,CAAC;AAAA,IACV;AACA,UAAM,OAAO,QAAQ,CAAC,SAAS;AAC7B,YAAM,eAAe,KAAK,YAAY;AACtC,WAAK,YAAY,QAAQ,CAAC,cAAc;AACtC,YAAI,UAAU,KAAK,IAAI,SAAS,UAAU,oBAAoB,CAAC,GAAG;AAChE,mBAAS,YAAY,EAAE;AAAA,YACrB;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,WAAW,KAAK;AAAA,gBAGf,eAAK;AAAA;AAAA,cAFD,KAAK;AAAA,YAGZ;AAAA,UACF;AAAA,QACF;AACA,eAAO;AAAA,MACT,CAAC;AAAA,IACH,CAAC;AACD,cACE,iCACG;AAAA,eAAS;AAAA,MACT,CAAC,MAAM,mBAAmB;AAAA,MAC1B,SAAS;AAAA,OACZ;AAAA,EAEJ;AACA,MAAI,SAAS;AACX,UAAM,cAAc,QAAQ;AAAA,MAC1B,CAAC,SACC,KAAK,OAAO,IAAI,SAAS,YAAY,SAAS,CAAC,CAAC,KAChD,IAAI,SAAS,YAAY,SAAS,CAAC,MAAM,KAAK;AAAA,IAClD;AACA,QAAI,aAAa;AACf,gBACE,qBAAC,SAAI,WAAW,GAAG,qBAAqB,YAAY,SAAS,GAC1D;AAAA,oBAAY,QACX;AAAA,UAAC,YAAY;AAAA,UAAZ;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,YAAY;AAAA,YACd;AAAA;AAAA,QACF;AAAA,QAED,YAAY,kBAAkB,KAAK,oBAAC,UAAM,sBAAY,OAAM;AAAA,SAC/D;AAAA,IAEJ;AAAA,EACF;AACA,QAAM,qBAAqB,WACvB,IAAI,CAAC,SAAS;AACd,QAAI,eAAe,KAAK,YAAY,GAAG,GAAG;AACxC,aAAO,KAAK;AAAA,IACd;AACA,WAAO;AAAA,EACT,CAAC,EACA,KAAK,GAAG;AAEX,MAAI,OAAQ,WAAU,OAAO,QAAQ,IAAI,UAAU,GAAG;AACtD,MAAI,CAAC,QAAQ,CAAC,eAAe,KAAK,YAAY,GAAG,GAAG;AAClD,QAAI,kBAAkB;AACpB,aACE;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,SAAS,IAAI,yBAAyB;AAAA,UACtC,eAAa,cAAc,YAAY,SAAS,CAAC;AAAA,UACjD,WAAW;AAAA,YACT;AAAA,YACA;AAAA,UACF;AAAA,UAEC;AAAA;AAAA,MACH;AAAA,IAEJ;AACA,WACE,oBAAC,SAAI,WAAW,GAAG,4BAA4B,kBAAkB,GAC9D,mBACH;AAAA,EAEJ;AACA,MAAI,MAAM,KAAK;AACf,MAAI,KAAK,mBAAmB;AAC1B,WAAO,IAAI,IAAI,uBAAuB,IAAI,KAAK,qBAAqB,EAAE,GAAG,SAAS,GAAG,SAAS,CAAC;AAAA,EACjG;AACA,MAAI,KAAK,QAAQ;AACf,WAAO,IAAI,KAAK,MAAM;AAAA,EACxB;AACA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAM;AAAA,MACN,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AACO,SAAS,oCACd,QACA;AACA,QAAM,EAAE,MAAM,OAAO,IAAI;AAEzB,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,UAA0B,CAAC;AACjC,MAAI,OAAO,gBAAgB;AACzB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,IAAI;AAAA,MACJ,QAAQ,CAAC,EAAE,MAAM,MACf,oBAAC,SAAI,WAAU,+CACb;AAAA,QAAC;AAAA;AAAA,UACC,SACE,MACG,YAAY,EACZ,KAAK,OAAO,CAAC,QAAQ,CAAC,OAAO,gBAAgB,SAAS,IAAI,EAAE,CAAC,EAC7D,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC,KACrC,MACG,YAAY,EACZ,KAAK;AAAA,YACJ,CAAC,QACC,CAAC,OAAO,gBAAgB,SAAS,IAAI,EAAE,KACvC,IAAI,cAAc;AAAA,UACtB;AAAA,UAEJ,iBAAiB,CAAC,UAAU;AAC1B,kBAAM,eAAoB,CAAC;AAC3B,kBAAM,YAAY,EAAE,KAAK,QAAQ,CAAC,QAAQ;AACxC,kBAAI,CAAC,OAAO,gBAAgB,SAAS,IAAI,EAAE,GAAG;AAC5C,oBAAI,eAAe,CAAC,CAAC,KAAK;AAC1B,oBAAI,OAAO;AACT,+BAAa,KAAK,IAAI,QAAQ;AAAA,gBAChC;AAAA,cACF;AAAA,YACF,CAAC;AACD,kCAAsB,YAAY;AAAA,UACpC;AAAA,UACA,cAAW;AAAA,UACX,WAAU;AAAA;AAAA,MACZ,GACF;AAAA,MAGF,MAAM,CAAC,EAAE,KAAK,MAAM,MAClB,oBAAC,SAAI,WAAU,+CACb;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,IAAI,cAAc;AAAA,UAC3B,iBAAiB,CAAC,UAAU;AAC1B,kBAAM,eAAoB,CAAC;AAC3B,kBAAM,oBAAoB,EAAE,KAAK,QAAQ,CAACA,SAAQ;AAChD,2BAAa,KAAKA,KAAI,QAAQ;AAAA,YAChC,CAAC;AACD,gBAAI,OAAO;AACT,2BAAa,KAAK,IAAI,QAAQ;AAAA,YAChC,OAAO;AACL,2BAAa,OAAO,aAAa,QAAQ,IAAI,QAAQ,GAAG,CAAC;AAAA,YAC3D;AACA,gBAAI,eAAe,CAAC,CAAC,KAAK;AAC1B,kCAAsB,YAAY;AAAA,UACpC;AAAA,UACA,UAAU,OAAO,gBAAgB,KAAK,CAAC,OAAO,OAAO,IAAI,EAAE;AAAA,UAC3D,cAAW;AAAA,UACX,WAAU;AAAA;AAAA,MACZ,GACF;AAAA,MAEF,eAAe;AAAA,MACf,cAAc;AAAA,IAChB,CAAC;AAAA,EACH;AACA,QAAM,UAAU,OAAO,KAAK,IAAI;AAChC,UACG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,SAAS,GAAc,CAAC,EACzD,QAAQ,CAAC,gBAAgB;AACxB,UAAM,QAAQ,yCAAyC;AAAA,MACrD;AAAA,MACA,aAAa,YAAY,SAAS;AAAA,IACpC,CAAC;AACD,UAAM,OAAO,QAAQ,WAAsB;AAC3C,UAAM,EAAE,OAAO,IAAI,KAAK,WAAW;AACnC,UAAM,SAAuB;AAAA,MAC3B,IAAI,YAAY,SAAS;AAAA,MACzB;AAAA,MACA,MAAM;AAAA,MACN,QACE,CAAC,SAAS,WAAW,KAAK,SAAS,WAAW,GAAG,aAC7C,CAAC,EAAE,QAAAC,QAAO,MACR,oBAAC,6BAA0B,QAAQA,SAAQ,OAAc,IAE3D;AAAA,MACN,MAAM,CAAC,EAAE,IAAI,MACX,WAAc;AAAA,QACZ;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAS,UAAU,WAAW,GAAG;AAAA,QACjC,OAAO,SAAS,WAAW;AAAA,QAC3B,MAAM,QAAQ,WAAW;AAAA,QACzB,WAAW,aAAa,WAAW;AAAA,QACnC,kBAAkB,qBAAqB;AAAA,QACvC;AAAA,QACA,QAAQ,SAAS,WAAW;AAAA,QAC5B;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACL;AACA,QAAI,UAAU,WAAW,GAAG;AAC1B,aAAO,WAAW,CAAC,KAAK,IAAI,UAAU,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;AAAA,IACvE;AACA,YAAQ,KAAK,MAAM;AAAA,EACrB,CAAC;AAEH,SAAO;AACT;","names":["row","column"]}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from "react";
|
|
4
|
+
import { Input } from "@repo/ayasofyazilim-ui/components/input";
|
|
5
|
+
import {
|
|
6
|
+
Select,
|
|
7
|
+
SelectContent,
|
|
8
|
+
SelectGroup,
|
|
9
|
+
SelectItem,
|
|
10
|
+
SelectTrigger,
|
|
11
|
+
SelectValue
|
|
12
|
+
} from "@repo/ayasofyazilim-ui/components/select";
|
|
13
|
+
import { Switch } from "@repo/ayasofyazilim-ui/components/switch";
|
|
14
|
+
import { cn } from "@repo/ayasofyazilim-ui/lib/utils";
|
|
15
|
+
import { createCell, tanstackTableCreateTitleWithLanguageData } from ".";
|
|
16
|
+
import { TanstackTableColumnHeader } from "../fields";
|
|
17
|
+
import { DatePicker } from "@repo/ayasofyazilim-ui/custom/date-picker";
|
|
18
|
+
function tanstackTableEditableColumnsByRowData(params) {
|
|
19
|
+
const {
|
|
20
|
+
rows,
|
|
21
|
+
excludeColumns,
|
|
22
|
+
languageData,
|
|
23
|
+
editableColumns,
|
|
24
|
+
config,
|
|
25
|
+
faceted,
|
|
26
|
+
links,
|
|
27
|
+
badges,
|
|
28
|
+
classNames,
|
|
29
|
+
custom,
|
|
30
|
+
expandRowTrigger,
|
|
31
|
+
icons,
|
|
32
|
+
localization
|
|
33
|
+
} = params;
|
|
34
|
+
const columns = [];
|
|
35
|
+
Object.keys(rows).filter((key) => !excludeColumns?.includes(key)).forEach((accessorKey) => {
|
|
36
|
+
const title = tanstackTableCreateTitleWithLanguageData({
|
|
37
|
+
languageData,
|
|
38
|
+
accessorKey
|
|
39
|
+
});
|
|
40
|
+
const column = {
|
|
41
|
+
id: accessorKey,
|
|
42
|
+
accessorKey,
|
|
43
|
+
meta: title,
|
|
44
|
+
header: ({ column: column2 }) => /* @__PURE__ */ jsx(TanstackTableColumnHeader, { column: column2, title }),
|
|
45
|
+
cell: ({ getValue, row, column: { id }, table }) => {
|
|
46
|
+
const _accesorKey = accessorKey;
|
|
47
|
+
if (editableColumns && !editableColumns.includes(_accesorKey)) {
|
|
48
|
+
return createCell({
|
|
49
|
+
accessorKey: _accesorKey,
|
|
50
|
+
row,
|
|
51
|
+
link: links?.[_accesorKey],
|
|
52
|
+
faceted: faceted?.[_accesorKey]?.options,
|
|
53
|
+
badge: badges?.[_accesorKey],
|
|
54
|
+
icon: icons?.[_accesorKey],
|
|
55
|
+
className: classNames?.[_accesorKey],
|
|
56
|
+
expandRowTrigger: expandRowTrigger === _accesorKey,
|
|
57
|
+
format: rows[accessorKey]?.format,
|
|
58
|
+
custom: custom?.[_accesorKey],
|
|
59
|
+
config,
|
|
60
|
+
localization
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
const initialValue = getValue()?.toString() || "";
|
|
64
|
+
const [value, setValue] = useState(initialValue);
|
|
65
|
+
const rowId = row.index.toString();
|
|
66
|
+
const isRowSelected = table.getRow(rowId)?.getIsSelected();
|
|
67
|
+
const onBlur = () => {
|
|
68
|
+
let $value;
|
|
69
|
+
switch (rows[accessorKey]?.type) {
|
|
70
|
+
case "number":
|
|
71
|
+
$value = Number(value);
|
|
72
|
+
break;
|
|
73
|
+
case "boolean":
|
|
74
|
+
$value = value === "true";
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
$value = value;
|
|
78
|
+
}
|
|
79
|
+
table.options.meta?.updateData(row.index, id, $value);
|
|
80
|
+
};
|
|
81
|
+
function handleValueChange(newValue) {
|
|
82
|
+
setValue(newValue);
|
|
83
|
+
if (isRowSelected && newValue === initialValue) {
|
|
84
|
+
table.setRowSelection((old) => ({
|
|
85
|
+
...old,
|
|
86
|
+
[rowId]: false
|
|
87
|
+
}));
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
if (!isRowSelected && newValue !== initialValue) {
|
|
91
|
+
table.setRowSelection((old) => ({
|
|
92
|
+
...old,
|
|
93
|
+
[rowId]: true
|
|
94
|
+
}));
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
useEffect(() => {
|
|
98
|
+
setValue(initialValue);
|
|
99
|
+
}, [initialValue]);
|
|
100
|
+
if (rows[accessorKey]?.enum) {
|
|
101
|
+
return /* @__PURE__ */ jsxs(
|
|
102
|
+
Select,
|
|
103
|
+
{
|
|
104
|
+
value,
|
|
105
|
+
onValueChange: (_value) => {
|
|
106
|
+
handleValueChange(_value);
|
|
107
|
+
const $value = rows[accessorKey]?.type === "number" ? Number(_value) : _value;
|
|
108
|
+
table.options.meta?.updateData(row.index, id, $value);
|
|
109
|
+
},
|
|
110
|
+
children: [
|
|
111
|
+
/* @__PURE__ */ jsx(
|
|
112
|
+
SelectTrigger,
|
|
113
|
+
{
|
|
114
|
+
className: cn(
|
|
115
|
+
"w-[180px] min-w-max border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none",
|
|
116
|
+
isRowSelected ? "font-medium italic" : "",
|
|
117
|
+
!value && "text-muted-foreground"
|
|
118
|
+
),
|
|
119
|
+
children: /* @__PURE__ */ jsx(
|
|
120
|
+
SelectValue,
|
|
121
|
+
{
|
|
122
|
+
placeholder: languageData?.[accessorKey] || accessorKey
|
|
123
|
+
}
|
|
124
|
+
)
|
|
125
|
+
}
|
|
126
|
+
),
|
|
127
|
+
/* @__PURE__ */ jsx(SelectContent, { children: /* @__PURE__ */ jsx(SelectGroup, { children: rows[accessorKey]?.enum?.map((item) => /* @__PURE__ */ jsx(SelectItem, { value: item.value, children: item.label }, item.value)) }) })
|
|
128
|
+
]
|
|
129
|
+
}
|
|
130
|
+
);
|
|
131
|
+
}
|
|
132
|
+
if (rows[accessorKey]?.type === "boolean") {
|
|
133
|
+
return /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx(
|
|
134
|
+
Switch,
|
|
135
|
+
{
|
|
136
|
+
className: "align-middle",
|
|
137
|
+
checked: value === "true",
|
|
138
|
+
onBlur,
|
|
139
|
+
onCheckedChange: (_value) => {
|
|
140
|
+
handleValueChange(String(value));
|
|
141
|
+
table.options.meta?.updateData(row.index, id, _value);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
) });
|
|
145
|
+
}
|
|
146
|
+
if (rows[accessorKey]?.format === "date-time") {
|
|
147
|
+
const date = new Date(value);
|
|
148
|
+
return /* @__PURE__ */ jsx("div", { className: "text-center", children: /* @__PURE__ */ jsx(
|
|
149
|
+
DatePicker,
|
|
150
|
+
{
|
|
151
|
+
id: `${accessorKey}_date`,
|
|
152
|
+
defaultValue: date instanceof Date && !Number.isNaN(date.getTime()) ? date : void 0,
|
|
153
|
+
onChange: (date2) => {
|
|
154
|
+
const $value = rows[accessorKey]?.format === "date-time" ? date2?.toISOString() : date2;
|
|
155
|
+
table.options.meta?.updateData(row.index, id, $value);
|
|
156
|
+
},
|
|
157
|
+
classNames: {
|
|
158
|
+
dateInput: "border-none rounded-none"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
) });
|
|
162
|
+
}
|
|
163
|
+
return /* @__PURE__ */ jsx(
|
|
164
|
+
Input,
|
|
165
|
+
{
|
|
166
|
+
value,
|
|
167
|
+
className: cn(
|
|
168
|
+
"w-full border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none",
|
|
169
|
+
isRowSelected ? "font-medium italic" : ""
|
|
170
|
+
),
|
|
171
|
+
placeholder: accessorKey,
|
|
172
|
+
onChange: (e) => {
|
|
173
|
+
handleValueChange(e.target.value);
|
|
174
|
+
},
|
|
175
|
+
onBlur
|
|
176
|
+
}
|
|
177
|
+
);
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
columns.push(column);
|
|
181
|
+
});
|
|
182
|
+
return columns;
|
|
183
|
+
}
|
|
184
|
+
export {
|
|
185
|
+
tanstackTableEditableColumnsByRowData
|
|
186
|
+
};
|
|
187
|
+
//# sourceMappingURL=editable-columns-by-row-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/editable-columns-by-row-data.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnDef } from \"@tanstack/react-table\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Input } from \"@repo/ayasofyazilim-ui/components/input\";\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectGroup,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from \"@repo/ayasofyazilim-ui/components/select\";\r\nimport { Switch } from \"@repo/ayasofyazilim-ui/components/switch\";\r\nimport { cn } from \"@repo/ayasofyazilim-ui/lib/utils\";\r\nimport { createCell, tanstackTableCreateTitleWithLanguageData } from \".\";\r\nimport { TanstackTableColumnHeader } from \"../fields\";\r\nimport {\r\n TanstackTableCreateColumnsByRowId,\r\n TanstacktableEditableColumnsByRowId,\r\n} from \"../types\";\r\nimport { DatePicker } from \"@repo/ayasofyazilim-ui/custom/date-picker\";\r\n\r\nexport function tanstackTableEditableColumnsByRowData<T>(\r\n params: TanstacktableEditableColumnsByRowId<T> &\r\n Omit<TanstackTableCreateColumnsByRowId<T>, \"rows\" | \"selectableRows\">\r\n) {\r\n const {\r\n rows,\r\n excludeColumns,\r\n languageData,\r\n editableColumns,\r\n config,\r\n faceted,\r\n links,\r\n badges,\r\n classNames,\r\n custom,\r\n expandRowTrigger,\r\n icons,\r\n localization,\r\n } = params;\r\n const columns: ColumnDef<T>[] = [];\r\n\r\n Object.keys(rows)\r\n .filter((key) => !excludeColumns?.includes(key as keyof T))\r\n .forEach((accessorKey) => {\r\n const title = tanstackTableCreateTitleWithLanguageData({\r\n languageData,\r\n accessorKey,\r\n });\r\n const column: ColumnDef<T> = {\r\n id: accessorKey,\r\n accessorKey,\r\n meta: title,\r\n header: ({ column }) => (\r\n <TanstackTableColumnHeader column={column} title={title} />\r\n ),\r\n cell: ({ getValue, row, column: { id }, table }) => {\r\n const _accesorKey = accessorKey as keyof T;\r\n if (editableColumns && !editableColumns.includes(_accesorKey)) {\r\n return createCell<T>({\r\n accessorKey: _accesorKey,\r\n row,\r\n link: links?.[_accesorKey],\r\n faceted: faceted?.[_accesorKey]?.options,\r\n badge: badges?.[_accesorKey],\r\n icon: icons?.[_accesorKey],\r\n className: classNames?.[_accesorKey],\r\n expandRowTrigger: expandRowTrigger === _accesorKey,\r\n format: rows[accessorKey]?.format,\r\n custom: custom?.[_accesorKey],\r\n config,\r\n localization,\r\n });\r\n }\r\n const initialValue = (getValue() as string)?.toString() || \"\";\r\n const [value, setValue] = useState(initialValue);\r\n const rowId = row.index.toString();\r\n const isRowSelected = table.getRow(rowId)?.getIsSelected();\r\n\r\n // When the input is blurred, we'll call our table meta's updateData function\r\n const onBlur = () => {\r\n let $value: string | number | boolean;\r\n switch (rows[accessorKey]?.type) {\r\n case \"number\":\r\n $value = Number(value);\r\n break;\r\n case \"boolean\":\r\n $value = value === \"true\";\r\n break;\r\n default:\r\n $value = value;\r\n }\r\n table.options.meta?.updateData(row.index, id, $value);\r\n };\r\n\r\n function handleValueChange(newValue: string) {\r\n setValue(newValue);\r\n if (isRowSelected && newValue === initialValue) {\r\n table.setRowSelection((old) => ({\r\n ...old,\r\n [rowId]: false,\r\n }));\r\n return;\r\n }\r\n\r\n if (!isRowSelected && newValue !== initialValue) {\r\n table.setRowSelection((old) => ({\r\n ...old,\r\n [rowId]: true,\r\n }));\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n setValue(initialValue);\r\n }, [initialValue]);\r\n\r\n if (rows[accessorKey]?.enum) {\r\n return (\r\n <Select\r\n value={value as string}\r\n onValueChange={(_value) => {\r\n handleValueChange(_value);\r\n const $value =\r\n rows[accessorKey]?.type === \"number\"\r\n ? Number(_value)\r\n : _value;\r\n table.options.meta?.updateData(row.index, id, $value);\r\n }}\r\n >\r\n <SelectTrigger\r\n className={cn(\r\n \"w-[180px] min-w-max border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none\",\r\n isRowSelected ? \"font-medium italic\" : \"\",\r\n !value && \"text-muted-foreground\"\r\n )}\r\n >\r\n <SelectValue\r\n placeholder={\r\n (languageData?.[\r\n accessorKey as keyof typeof languageData\r\n ] as string) || accessorKey\r\n }\r\n />\r\n </SelectTrigger>\r\n <SelectContent>\r\n <SelectGroup>\r\n {rows[accessorKey]?.enum?.map((item) => (\r\n <SelectItem key={item.value} value={item.value}>\r\n {item.label}\r\n </SelectItem>\r\n ))}\r\n </SelectGroup>\r\n </SelectContent>\r\n </Select>\r\n );\r\n }\r\n if (rows[accessorKey]?.type === \"boolean\") {\r\n return (\r\n <div className=\"text-center\">\r\n <Switch\r\n className=\"align-middle\"\r\n checked={value === \"true\"}\r\n onBlur={onBlur}\r\n onCheckedChange={(_value) => {\r\n handleValueChange(String(value));\r\n table.options.meta?.updateData(row.index, id, _value);\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n if (rows[accessorKey]?.format === \"date-time\") {\r\n const date = new Date(value);\r\n return (\r\n <div className=\"text-center\">\r\n <DatePicker\r\n id={`${accessorKey}_date`}\r\n defaultValue={\r\n date instanceof Date && !Number.isNaN(date.getTime())\r\n ? date\r\n : undefined\r\n }\r\n onChange={(date) => {\r\n const $value =\r\n rows[accessorKey]?.format === \"date-time\"\r\n ? date?.toISOString()\r\n : date;\r\n table.options.meta?.updateData(row.index, id, $value);\r\n }}\r\n classNames={{\r\n dateInput: \"border-none rounded-none\",\r\n }}\r\n />\r\n </div>\r\n );\r\n }\r\n return (\r\n <Input\r\n value={value as string}\r\n className={cn(\r\n \"w-full border-none rounded-none focus-visible:border-none focus-within:border-none ring-0 focus-visible:ring-0 focus-within:ring-0 ring-transparent shadow-none\",\r\n isRowSelected ? \"font-medium italic\" : \"\"\r\n )}\r\n placeholder={accessorKey}\r\n onChange={(e) => {\r\n handleValueChange(e.target.value);\r\n }}\r\n onBlur={onBlur}\r\n />\r\n );\r\n },\r\n };\r\n columns.push(column);\r\n });\r\n return columns;\r\n}\r\n"],"mappings":";AAwDU,cAiEI,YAjEJ;AArDV,SAAS,WAAW,gBAAgB;AACpC,SAAS,aAAa;AACtB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,cAAc;AACvB,SAAS,UAAU;AACnB,SAAS,YAAY,gDAAgD;AACrE,SAAS,iCAAiC;AAK1C,SAAS,kBAAkB;AAEpB,SAAS,sCACd,QAEA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,IAAI;AACJ,QAAM,UAA0B,CAAC;AAEjC,SAAO,KAAK,IAAI,EACb,OAAO,CAAC,QAAQ,CAAC,gBAAgB,SAAS,GAAc,CAAC,EACzD,QAAQ,CAAC,gBAAgB;AACxB,UAAM,QAAQ,yCAAyC;AAAA,MACrD;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,SAAuB;AAAA,MAC3B,IAAI;AAAA,MACJ;AAAA,MACA,MAAM;AAAA,MACN,QAAQ,CAAC,EAAE,QAAAA,QAAO,MAChB,oBAAC,6BAA0B,QAAQA,SAAQ,OAAc;AAAA,MAE3D,MAAM,CAAC,EAAE,UAAU,KAAK,QAAQ,EAAE,GAAG,GAAG,MAAM,MAAM;AAClD,cAAM,cAAc;AACpB,YAAI,mBAAmB,CAAC,gBAAgB,SAAS,WAAW,GAAG;AAC7D,iBAAO,WAAc;AAAA,YACnB,aAAa;AAAA,YACb;AAAA,YACA,MAAM,QAAQ,WAAW;AAAA,YACzB,SAAS,UAAU,WAAW,GAAG;AAAA,YACjC,OAAO,SAAS,WAAW;AAAA,YAC3B,MAAM,QAAQ,WAAW;AAAA,YACzB,WAAW,aAAa,WAAW;AAAA,YACnC,kBAAkB,qBAAqB;AAAA,YACvC,QAAQ,KAAK,WAAW,GAAG;AAAA,YAC3B,QAAQ,SAAS,WAAW;AAAA,YAC5B;AAAA,YACA;AAAA,UACF,CAAC;AAAA,QACH;AACA,cAAM,eAAgB,SAAS,GAAc,SAAS,KAAK;AAC3D,cAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,YAAY;AAC/C,cAAM,QAAQ,IAAI,MAAM,SAAS;AACjC,cAAM,gBAAgB,MAAM,OAAO,KAAK,GAAG,cAAc;AAGzD,cAAM,SAAS,MAAM;AACnB,cAAI;AACJ,kBAAQ,KAAK,WAAW,GAAG,MAAM;AAAA,YAC/B,KAAK;AACH,uBAAS,OAAO,KAAK;AACrB;AAAA,YACF,KAAK;AACH,uBAAS,UAAU;AACnB;AAAA,YACF;AACE,uBAAS;AAAA,UACb;AACA,gBAAM,QAAQ,MAAM,WAAW,IAAI,OAAO,IAAI,MAAM;AAAA,QACtD;AAEA,iBAAS,kBAAkB,UAAkB;AAC3C,mBAAS,QAAQ;AACjB,cAAI,iBAAiB,aAAa,cAAc;AAC9C,kBAAM,gBAAgB,CAAC,SAAS;AAAA,cAC9B,GAAG;AAAA,cACH,CAAC,KAAK,GAAG;AAAA,YACX,EAAE;AACF;AAAA,UACF;AAEA,cAAI,CAAC,iBAAiB,aAAa,cAAc;AAC/C,kBAAM,gBAAgB,CAAC,SAAS;AAAA,cAC9B,GAAG;AAAA,cACH,CAAC,KAAK,GAAG;AAAA,YACX,EAAE;AAAA,UACJ;AAAA,QACF;AAEA,kBAAU,MAAM;AACd,mBAAS,YAAY;AAAA,QACvB,GAAG,CAAC,YAAY,CAAC;AAEjB,YAAI,KAAK,WAAW,GAAG,MAAM;AAC3B,iBACE;AAAA,YAAC;AAAA;AAAA,cACC;AAAA,cACA,eAAe,CAAC,WAAW;AACzB,kCAAkB,MAAM;AACxB,sBAAM,SACJ,KAAK,WAAW,GAAG,SAAS,WACxB,OAAO,MAAM,IACb;AACN,sBAAM,QAAQ,MAAM,WAAW,IAAI,OAAO,IAAI,MAAM;AAAA,cACtD;AAAA,cAEA;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,WAAW;AAAA,sBACT;AAAA,sBACA,gBAAgB,uBAAuB;AAAA,sBACvC,CAAC,SAAS;AAAA,oBACZ;AAAA,oBAEA;AAAA,sBAAC;AAAA;AAAA,wBACC,aACG,eACC,WACF,KAAgB;AAAA;AAAA,oBAEpB;AAAA;AAAA,gBACF;AAAA,gBACA,oBAAC,iBACC,8BAAC,eACE,eAAK,WAAW,GAAG,MAAM,IAAI,CAAC,SAC7B,oBAAC,cAA4B,OAAO,KAAK,OACtC,eAAK,SADS,KAAK,KAEtB,CACD,GACH,GACF;AAAA;AAAA;AAAA,UACF;AAAA,QAEJ;AACA,YAAI,KAAK,WAAW,GAAG,SAAS,WAAW;AACzC,iBACE,oBAAC,SAAI,WAAU,eACb;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,SAAS,UAAU;AAAA,cACnB;AAAA,cACA,iBAAiB,CAAC,WAAW;AAC3B,kCAAkB,OAAO,KAAK,CAAC;AAC/B,sBAAM,QAAQ,MAAM,WAAW,IAAI,OAAO,IAAI,MAAM;AAAA,cACtD;AAAA;AAAA,UACF,GACF;AAAA,QAEJ;AACA,YAAI,KAAK,WAAW,GAAG,WAAW,aAAa;AAC7C,gBAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,iBACE,oBAAC,SAAI,WAAU,eACb;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,GAAG,WAAW;AAAA,cAClB,cACE,gBAAgB,QAAQ,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,IAChD,OACA;AAAA,cAEN,UAAU,CAACC,UAAS;AAClB,sBAAM,SACJ,KAAK,WAAW,GAAG,WAAW,cAC1BA,OAAM,YAAY,IAClBA;AACN,sBAAM,QAAQ,MAAM,WAAW,IAAI,OAAO,IAAI,MAAM;AAAA,cACtD;AAAA,cACA,YAAY;AAAA,gBACV,WAAW;AAAA,cACb;AAAA;AAAA,UACF,GACF;AAAA,QAEJ;AACA,eACE;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,WAAW;AAAA,cACT;AAAA,cACA,gBAAgB,uBAAuB;AAAA,YACzC;AAAA,YACA,aAAa;AAAA,YACb,UAAU,CAAC,MAAM;AACf,gCAAkB,EAAE,OAAO,KAAK;AAAA,YAClC;AAAA,YACA;AAAA;AAAA,QACF;AAAA,MAEJ;AAAA,IACF;AACA,YAAQ,KAAK,MAAM;AAAA,EACrB,CAAC;AACH,SAAO;AACT;","names":["column","date"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CheckCircle, XCircle } from "lucide-react";
|
|
2
|
+
const BooleanOptions = {
|
|
3
|
+
options: [
|
|
4
|
+
{
|
|
5
|
+
label: "Yes",
|
|
6
|
+
when: (value) => Boolean(value),
|
|
7
|
+
value: "true",
|
|
8
|
+
icon: CheckCircle,
|
|
9
|
+
iconClassName: "text-green-700",
|
|
10
|
+
hideColumnValue: true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
label: "No",
|
|
14
|
+
when: (value) => !value,
|
|
15
|
+
value: "false",
|
|
16
|
+
icon: XCircle,
|
|
17
|
+
iconClassName: "text-red-700",
|
|
18
|
+
hideColumnValue: true
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
BooleanOptions
|
|
24
|
+
};
|
|
25
|
+
//# sourceMappingURL=faceted-boolean-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/faceted-boolean-options.tsx"],"sourcesContent":["import { CheckCircle, XCircle } from \"lucide-react\";\r\n\r\nexport const BooleanOptions = {\r\n options: [\r\n {\r\n label: \"Yes\",\r\n when: (value: string | number | boolean | Date) => Boolean(value),\r\n value: \"true\",\r\n icon: CheckCircle,\r\n iconClassName: \"text-green-700\",\r\n hideColumnValue: true,\r\n },\r\n {\r\n label: \"No\",\r\n when: (value: string | number | boolean | Date) => !value,\r\n value: \"false\",\r\n icon: XCircle,\r\n iconClassName: \"text-red-700\",\r\n hideColumnValue: true,\r\n },\r\n ],\r\n};\r\n"],"mappings":"AAAA,SAAS,aAAa,eAAe;AAE9B,MAAM,iBAAiB;AAAA,EAC5B,SAAS;AAAA,IACP;AAAA,MACE,OAAO;AAAA,MACP,MAAM,CAAC,UAA4C,QAAQ,KAAK;AAAA,MAChE,OAAO;AAAA,MACP,MAAM;AAAA,MACN,eAAe;AAAA,MACf,iBAAiB;AAAA,IACnB;AAAA,IACA;AAAA,MACE,OAAO;AAAA,MACP,MAAM,CAAC,UAA4C,CAAC;AAAA,MACpD,OAAO;AAAA,MACP,MAAM;AAAA,MACN,eAAe;AAAA,MACf,iBAAiB;AAAA,IACnB;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
export * from "./table";
|
|
3
|
+
export * from "./column-names";
|
|
4
|
+
export * from "./cell-with-actions";
|
|
5
|
+
export * from "./columns-by-row-data";
|
|
6
|
+
export * from "./editable-columns-by-row-data";
|
|
7
|
+
export * from "./pinning-styles";
|
|
8
|
+
export * from "./test-conditions";
|
|
9
|
+
export * from "./faceted-boolean-options";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/index.tsx"],"sourcesContent":["\"use client\";\r\n\r\nexport * from \"./table\";\r\nexport * from \"./column-names\";\r\nexport * from \"./cell-with-actions\";\r\nexport * from \"./columns-by-row-data\";\r\nexport * from \"./editable-columns-by-row-data\";\r\nexport * from \"./pinning-styles\";\r\nexport * from \"./test-conditions\";\r\nexport * from \"./faceted-boolean-options\";\r\n"],"mappings":";AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function getCommonPinningStyles({
|
|
2
|
+
column,
|
|
3
|
+
fillerColumn,
|
|
4
|
+
withBorder,
|
|
5
|
+
resizeable
|
|
6
|
+
}) {
|
|
7
|
+
const isPinned = column.getIsPinned();
|
|
8
|
+
const isLastLeftPinnedColumn = isPinned === "left" && column.getIsLastColumn("left");
|
|
9
|
+
const isFirstRightPinnedColumn = isPinned === "right" && column.getIsFirstColumn("right");
|
|
10
|
+
let width = column.getSize();
|
|
11
|
+
if (resizeable) {
|
|
12
|
+
if (fillerColumn === column.id) {
|
|
13
|
+
width = 2e3;
|
|
14
|
+
} else {
|
|
15
|
+
width = column.getSize();
|
|
16
|
+
}
|
|
17
|
+
} else if (fillerColumn === column.id) {
|
|
18
|
+
width = "100%";
|
|
19
|
+
} else {
|
|
20
|
+
width = column.getSize();
|
|
21
|
+
}
|
|
22
|
+
return {
|
|
23
|
+
boxShadow: withBorder ? isLastLeftPinnedColumn ? "-4px 0 4px -4px var(--border) inset" : isFirstRightPinnedColumn ? "4px 0 4px -4px var(--border) inset" : void 0 : void 0,
|
|
24
|
+
left: isPinned === "left" ? `${column.getStart("left")}px` : void 0,
|
|
25
|
+
right: isPinned === "right" ? `${column.getAfter("right")}px` : void 0,
|
|
26
|
+
opacity: isPinned ? 0.97 : 1,
|
|
27
|
+
width,
|
|
28
|
+
position: isPinned ? "sticky" : "relative",
|
|
29
|
+
background: isPinned ? "var(--background)" : "",
|
|
30
|
+
zIndex: isPinned ? 1 : 0,
|
|
31
|
+
textWrap: "nowrap",
|
|
32
|
+
...column.id === "select" && { minWidth: "40px", padding: 0 }
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export {
|
|
36
|
+
getCommonPinningStyles
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=pinning-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/pinning-styles.ts"],"sourcesContent":["import { Column } from \"@tanstack/react-table\";\r\nimport { CSSProperties } from \"react\";\r\n\r\nexport function getCommonPinningStyles<TData>({\r\n column,\r\n fillerColumn,\r\n withBorder,\r\n resizeable,\r\n}: {\r\n resizeable?: boolean;\r\n column: Column<TData>;\r\n fillerColumn?: keyof TData;\r\n\r\n /**\r\n * Show box shadow between pinned and scrollable columns.\r\n * @default false\r\n */\r\n withBorder?: boolean;\r\n}): CSSProperties {\r\n const isPinned = column.getIsPinned();\r\n const isLastLeftPinnedColumn =\r\n isPinned === \"left\" && column.getIsLastColumn(\"left\");\r\n const isFirstRightPinnedColumn =\r\n isPinned === \"right\" && column.getIsFirstColumn(\"right\");\r\n\r\n let width: string | number = column.getSize();\r\n if (resizeable) {\r\n if (fillerColumn === column.id) {\r\n width = 2000;\r\n } else {\r\n width = column.getSize();\r\n }\r\n } else if (fillerColumn === column.id) {\r\n width = \"100%\";\r\n } else {\r\n width = column.getSize();\r\n }\r\n\r\n return {\r\n boxShadow: withBorder\r\n ? isLastLeftPinnedColumn\r\n ? \"-4px 0 4px -4px var(--border) inset\"\r\n : isFirstRightPinnedColumn\r\n ? \"4px 0 4px -4px var(--border) inset\"\r\n : undefined\r\n : undefined,\r\n left: isPinned === \"left\" ? `${column.getStart(\"left\")}px` : undefined,\r\n right: isPinned === \"right\" ? `${column.getAfter(\"right\")}px` : undefined,\r\n opacity: isPinned ? 0.97 : 1,\r\n width,\r\n position: isPinned ? \"sticky\" : \"relative\",\r\n background: isPinned ? \"var(--background)\" : \"\",\r\n zIndex: isPinned ? 1 : 0,\r\n textWrap: \"nowrap\",\r\n ...(column.id === \"select\" && { minWidth: \"40px\", padding: 0 }),\r\n };\r\n}\r\n"],"mappings":"AAGO,SAAS,uBAA8B;AAAA,EAC5C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAUkB;AAChB,QAAM,WAAW,OAAO,YAAY;AACpC,QAAM,yBACJ,aAAa,UAAU,OAAO,gBAAgB,MAAM;AACtD,QAAM,2BACJ,aAAa,WAAW,OAAO,iBAAiB,OAAO;AAEzD,MAAI,QAAyB,OAAO,QAAQ;AAC5C,MAAI,YAAY;AACd,QAAI,iBAAiB,OAAO,IAAI;AAC9B,cAAQ;AAAA,IACV,OAAO;AACL,cAAQ,OAAO,QAAQ;AAAA,IACzB;AAAA,EACF,WAAW,iBAAiB,OAAO,IAAI;AACrC,YAAQ;AAAA,EACV,OAAO;AACL,YAAQ,OAAO,QAAQ;AAAA,EACzB;AAEA,SAAO;AAAA,IACL,WAAW,aACP,yBACE,wCACA,2BACE,uCACA,SACJ;AAAA,IACJ,MAAM,aAAa,SAAS,GAAG,OAAO,SAAS,MAAM,CAAC,OAAO;AAAA,IAC7D,OAAO,aAAa,UAAU,GAAG,OAAO,SAAS,OAAO,CAAC,OAAO;AAAA,IAChE,SAAS,WAAW,OAAO;AAAA,IAC3B;AAAA,IACA,UAAU,WAAW,WAAW;AAAA,IAChC,YAAY,WAAW,sBAAsB;AAAA,IAC7C,QAAQ,WAAW,IAAI;AAAA,IACvB,UAAU;AAAA,IACV,GAAI,OAAO,OAAO,YAAY,EAAE,UAAU,QAAQ,SAAS,EAAE;AAAA,EAC/D;AACF;","names":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useState, useEffect } from "react";
|
|
3
|
+
function NonEditableTanstackTable(data, rowCount) {
|
|
4
|
+
const [columnFilters, setColumnFilters] = useState([]);
|
|
5
|
+
const [pagination, setPagination] = useState({ pageIndex: 0, pageSize: 10 });
|
|
6
|
+
return {
|
|
7
|
+
data,
|
|
8
|
+
rowCount,
|
|
9
|
+
pagination,
|
|
10
|
+
columnFilters,
|
|
11
|
+
onPaginationChange: setPagination,
|
|
12
|
+
onColumnFiltersChange: setColumnFilters
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function EditableTanstackTable({
|
|
16
|
+
initialData,
|
|
17
|
+
onTableDataChange
|
|
18
|
+
}) {
|
|
19
|
+
const [tableData, setTableData] = useState(initialData);
|
|
20
|
+
useEffect(() => {
|
|
21
|
+
setTableData(initialData);
|
|
22
|
+
}, [initialData]);
|
|
23
|
+
return {
|
|
24
|
+
data: tableData,
|
|
25
|
+
meta: {
|
|
26
|
+
removeRow: (rowIndex) => {
|
|
27
|
+
const newData = [...tableData];
|
|
28
|
+
newData.splice(rowIndex, 1);
|
|
29
|
+
setTableData(newData);
|
|
30
|
+
onTableDataChange?.(newData);
|
|
31
|
+
},
|
|
32
|
+
updateData: (rowIndex, columnId, value) => {
|
|
33
|
+
const newData = [...tableData];
|
|
34
|
+
newData[rowIndex] = {
|
|
35
|
+
...newData[rowIndex],
|
|
36
|
+
[columnId]: value
|
|
37
|
+
};
|
|
38
|
+
setTableData(newData);
|
|
39
|
+
onTableDataChange?.(newData);
|
|
40
|
+
},
|
|
41
|
+
addRow: () => {
|
|
42
|
+
const newData = [...tableData, {}];
|
|
43
|
+
setTableData(newData);
|
|
44
|
+
onTableDataChange?.(newData);
|
|
45
|
+
},
|
|
46
|
+
duplicateRow: (rowIndex, value) => {
|
|
47
|
+
const newData = [...tableData];
|
|
48
|
+
newData.splice(rowIndex, 0, value);
|
|
49
|
+
setTableData(newData);
|
|
50
|
+
onTableDataChange?.(newData);
|
|
51
|
+
},
|
|
52
|
+
orderRow: (newIndex, oldIndex) => {
|
|
53
|
+
const newData = [...tableData];
|
|
54
|
+
const item = newData.splice(oldIndex, 1)[0];
|
|
55
|
+
newData.splice(newIndex, 0, item);
|
|
56
|
+
setTableData(newData);
|
|
57
|
+
onTableDataChange?.(newData);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
export {
|
|
63
|
+
EditableTanstackTable,
|
|
64
|
+
NonEditableTanstackTable
|
|
65
|
+
};
|
|
66
|
+
//# sourceMappingURL=table.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/table.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport { ColumnFiltersState } from \"@tanstack/react-table\";\r\nimport { useState, useEffect } from \"react\";\r\nimport {\r\n EditableTanstackTableProps,\r\n NonEditableTanstackTableProps,\r\n} from \"../types\";\r\n\r\nexport function NonEditableTanstackTable<TData>(\r\n data: TData[],\r\n rowCount: number\r\n): NonEditableTanstackTableProps<TData> {\r\n const [columnFilters, setColumnFilters] = useState<ColumnFiltersState>([]);\r\n\r\n const [pagination, setPagination] = useState<{\r\n pageIndex: number;\r\n pageSize: number;\r\n }>({ pageIndex: 0, pageSize: 10 });\r\n\r\n return {\r\n data,\r\n rowCount,\r\n pagination,\r\n columnFilters,\r\n onPaginationChange: setPagination,\r\n onColumnFiltersChange: setColumnFilters,\r\n };\r\n}\r\n\r\nexport function EditableTanstackTable<TData>({\r\n initialData,\r\n onTableDataChange,\r\n}: {\r\n initialData: TData[];\r\n onTableDataChange?: (data: TData[]) => void;\r\n}): EditableTanstackTableProps<TData> {\r\n const [tableData, setTableData] = useState<TData[]>(initialData);\r\n useEffect(() => {\r\n // When user submits the form, the initialData changes with the new data\r\n // so we need to update the table data\r\n setTableData(initialData);\r\n }, [initialData]);\r\n\r\n return {\r\n data: tableData,\r\n meta: {\r\n removeRow: (rowIndex) => {\r\n const newData = [...tableData];\r\n newData.splice(rowIndex, 1);\r\n setTableData(newData);\r\n onTableDataChange?.(newData);\r\n },\r\n updateData: (rowIndex, columnId, value) => {\r\n const newData = [...tableData];\r\n newData[rowIndex] = {\r\n ...newData[rowIndex],\r\n [columnId]: value,\r\n } as TData;\r\n setTableData(newData);\r\n onTableDataChange?.(newData);\r\n },\r\n addRow: () => {\r\n const newData = [...tableData, {} as TData];\r\n setTableData(newData);\r\n onTableDataChange?.(newData);\r\n },\r\n duplicateRow: (rowIndex, value) => {\r\n const newData = [...tableData];\r\n newData.splice(rowIndex, 0, value);\r\n setTableData(newData);\r\n onTableDataChange?.(newData);\r\n },\r\n orderRow: (newIndex, oldIndex) => {\r\n const newData = [...tableData];\r\n const item = newData.splice(oldIndex, 1)[0] as TData;\r\n newData.splice(newIndex, 0, item);\r\n setTableData(newData);\r\n onTableDataChange?.(newData);\r\n },\r\n },\r\n };\r\n}\r\n"],"mappings":";AAGA,SAAS,UAAU,iBAAiB;AAM7B,SAAS,yBACd,MACA,UACsC;AACtC,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAA6B,CAAC,CAAC;AAEzE,QAAM,CAAC,YAAY,aAAa,IAAI,SAGjC,EAAE,WAAW,GAAG,UAAU,GAAG,CAAC;AAEjC,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,uBAAuB;AAAA,EACzB;AACF;AAEO,SAAS,sBAA6B;AAAA,EAC3C;AAAA,EACA;AACF,GAGsC;AACpC,QAAM,CAAC,WAAW,YAAY,IAAI,SAAkB,WAAW;AAC/D,YAAU,MAAM;AAGd,iBAAa,WAAW;AAAA,EAC1B,GAAG,CAAC,WAAW,CAAC;AAEhB,SAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,MACJ,WAAW,CAAC,aAAa;AACvB,cAAM,UAAU,CAAC,GAAG,SAAS;AAC7B,gBAAQ,OAAO,UAAU,CAAC;AAC1B,qBAAa,OAAO;AACpB,4BAAoB,OAAO;AAAA,MAC7B;AAAA,MACA,YAAY,CAAC,UAAU,UAAU,UAAU;AACzC,cAAM,UAAU,CAAC,GAAG,SAAS;AAC7B,gBAAQ,QAAQ,IAAI;AAAA,UAClB,GAAG,QAAQ,QAAQ;AAAA,UACnB,CAAC,QAAQ,GAAG;AAAA,QACd;AACA,qBAAa,OAAO;AACpB,4BAAoB,OAAO;AAAA,MAC7B;AAAA,MACA,QAAQ,MAAM;AACZ,cAAM,UAAU,CAAC,GAAG,WAAW,CAAC,CAAU;AAC1C,qBAAa,OAAO;AACpB,4BAAoB,OAAO;AAAA,MAC7B;AAAA,MACA,cAAc,CAAC,UAAU,UAAU;AACjC,cAAM,UAAU,CAAC,GAAG,SAAS;AAC7B,gBAAQ,OAAO,UAAU,GAAG,KAAK;AACjC,qBAAa,OAAO;AACpB,4BAAoB,OAAO;AAAA,MAC7B;AAAA,MACA,UAAU,CAAC,UAAU,aAAa;AAChC,cAAM,UAAU,CAAC,GAAG,SAAS;AAC7B,cAAM,OAAO,QAAQ,OAAO,UAAU,CAAC,EAAE,CAAC;AAC1C,gBAAQ,OAAO,UAAU,GAAG,IAAI;AAChC,qBAAa,OAAO;AACpB,4BAAoB,OAAO;AAAA,MAC7B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
function testConditions(conditions, row) {
|
|
2
|
+
if (!conditions) return true;
|
|
3
|
+
return conditions.map(
|
|
4
|
+
(condition) => condition.when(row.getValue(condition.conditionAccessorKey))
|
|
5
|
+
).filter((i) => !i).length === 0;
|
|
6
|
+
}
|
|
7
|
+
export {
|
|
8
|
+
testConditions
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=test-conditions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/custom/tanstack-table/utils/test-conditions.ts"],"sourcesContent":["import { Row } from \"@tanstack/react-table\";\r\nimport { TanstackTableCellCondition } from \"../types\";\r\n\r\nexport function testConditions<T>(\r\n conditions: TanstackTableCellCondition[] | undefined,\r\n row: Row<T>\r\n) {\r\n if (!conditions) return true;\r\n\r\n return (\r\n conditions\r\n .map((condition) =>\r\n condition.when(row.getValue(condition.conditionAccessorKey))\r\n )\r\n .filter((i) => !i).length === 0\r\n );\r\n}\r\n"],"mappings":"AAGO,SAAS,eACd,YACA,KACA;AACA,MAAI,CAAC,WAAY,QAAO;AAExB,SACE,WACG;AAAA,IAAI,CAAC,cACJ,UAAU,KAAK,IAAI,SAAS,UAAU,oBAAoB,CAAC;AAAA,EAC7D,EACC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW;AAEpC;","names":[]}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx } from "react/jsx-runtime";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { Slot } from "radix-ui";
|
|
5
|
+
import { cn } from "@repo/ayasofyazilim-ui/lib/utils";
|
|
6
|
+
const TimelineContext = React.createContext(
|
|
7
|
+
void 0
|
|
8
|
+
);
|
|
9
|
+
const useTimeline = () => {
|
|
10
|
+
const context = React.useContext(TimelineContext);
|
|
11
|
+
if (!context) {
|
|
12
|
+
throw new Error("useTimeline must be used within a Timeline");
|
|
13
|
+
}
|
|
14
|
+
return context;
|
|
15
|
+
};
|
|
16
|
+
function Timeline({
|
|
17
|
+
defaultValue = 1,
|
|
18
|
+
value,
|
|
19
|
+
onValueChange,
|
|
20
|
+
orientation = "vertical",
|
|
21
|
+
className,
|
|
22
|
+
...props
|
|
23
|
+
}) {
|
|
24
|
+
const [activeStep, setInternalStep] = React.useState(defaultValue);
|
|
25
|
+
const setActiveStep = React.useCallback(
|
|
26
|
+
(step) => {
|
|
27
|
+
if (value === void 0) {
|
|
28
|
+
setInternalStep(step);
|
|
29
|
+
}
|
|
30
|
+
onValueChange?.(step);
|
|
31
|
+
},
|
|
32
|
+
[value, onValueChange]
|
|
33
|
+
);
|
|
34
|
+
const currentStep = value ?? activeStep;
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
TimelineContext.Provider,
|
|
37
|
+
{
|
|
38
|
+
value: { activeStep: currentStep, setActiveStep },
|
|
39
|
+
children: /* @__PURE__ */ jsx(
|
|
40
|
+
"div",
|
|
41
|
+
{
|
|
42
|
+
"data-slot": "timeline",
|
|
43
|
+
className: cn(
|
|
44
|
+
"group/timeline flex data-[orientation=horizontal]:w-full data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col",
|
|
45
|
+
className
|
|
46
|
+
),
|
|
47
|
+
"data-orientation": orientation,
|
|
48
|
+
...props
|
|
49
|
+
}
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
function TimelineContent({
|
|
55
|
+
className,
|
|
56
|
+
...props
|
|
57
|
+
}) {
|
|
58
|
+
return /* @__PURE__ */ jsx(
|
|
59
|
+
"div",
|
|
60
|
+
{
|
|
61
|
+
"data-slot": "timeline-content",
|
|
62
|
+
className: cn("text-sm text-muted-foreground", className),
|
|
63
|
+
...props
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function TimelineDate({
|
|
68
|
+
asChild = false,
|
|
69
|
+
className,
|
|
70
|
+
...props
|
|
71
|
+
}) {
|
|
72
|
+
const Comp = asChild ? Slot.Root : "time";
|
|
73
|
+
return /* @__PURE__ */ jsx(
|
|
74
|
+
Comp,
|
|
75
|
+
{
|
|
76
|
+
"data-slot": "timeline-date",
|
|
77
|
+
className: cn(
|
|
78
|
+
"mb-1 block text-xs font-medium text-muted-foreground group-data-[orientation=vertical]/timeline:max-sm:h-4",
|
|
79
|
+
className
|
|
80
|
+
),
|
|
81
|
+
...props
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
function TimelineHeader({
|
|
86
|
+
className,
|
|
87
|
+
...props
|
|
88
|
+
}) {
|
|
89
|
+
return /* @__PURE__ */ jsx("div", { "data-slot": "timeline-header", className: cn(className), ...props });
|
|
90
|
+
}
|
|
91
|
+
function TimelineIndicator({
|
|
92
|
+
className,
|
|
93
|
+
children,
|
|
94
|
+
...props
|
|
95
|
+
}) {
|
|
96
|
+
return /* @__PURE__ */ jsx(
|
|
97
|
+
"div",
|
|
98
|
+
{
|
|
99
|
+
"data-slot": "timeline-indicator",
|
|
100
|
+
className: cn(
|
|
101
|
+
"absolute size-4 rounded-full border-2 border-primary/20 group-data-completed/timeline-item:border-primary group-data-[orientation=horizontal]/timeline:-top-6 group-data-[orientation=horizontal]/timeline:left-0 group-data-[orientation=horizontal]/timeline:-translate-y-1/2 group-data-[orientation=vertical]/timeline:top-0 group-data-[orientation=vertical]/timeline:-left-6 group-data-[orientation=vertical]/timeline:-translate-x-1/2",
|
|
102
|
+
className
|
|
103
|
+
),
|
|
104
|
+
"aria-hidden": "true",
|
|
105
|
+
...props,
|
|
106
|
+
children
|
|
107
|
+
}
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
function TimelineItem({ step, className, ...props }) {
|
|
111
|
+
const { activeStep } = useTimeline();
|
|
112
|
+
return /* @__PURE__ */ jsx(
|
|
113
|
+
"div",
|
|
114
|
+
{
|
|
115
|
+
"data-slot": "timeline-item",
|
|
116
|
+
className: cn(
|
|
117
|
+
"group/timeline-item relative flex flex-1 flex-col gap-0.5 group-data-[orientation=horizontal]/timeline:mt-8 group-data-[orientation=horizontal]/timeline:not-last:pe-8 group-data-[orientation=vertical]/timeline:ms-8 group-data-[orientation=vertical]/timeline:not-last:pb-12 has-[+[data-completed]]:**:data-[slot=timeline-separator]:bg-primary",
|
|
118
|
+
className
|
|
119
|
+
),
|
|
120
|
+
"data-completed": step <= activeStep || void 0,
|
|
121
|
+
...props
|
|
122
|
+
}
|
|
123
|
+
);
|
|
124
|
+
}
|
|
125
|
+
function TimelineSeparator({
|
|
126
|
+
className,
|
|
127
|
+
...props
|
|
128
|
+
}) {
|
|
129
|
+
return /* @__PURE__ */ jsx(
|
|
130
|
+
"div",
|
|
131
|
+
{
|
|
132
|
+
"data-slot": "timeline-separator",
|
|
133
|
+
className: cn(
|
|
134
|
+
"absolute self-start bg-primary/10 group-last/timeline-item:hidden group-data-[orientation=horizontal]/timeline:-top-6 group-data-[orientation=horizontal]/timeline:h-0.5 group-data-[orientation=horizontal]/timeline:w-[calc(100%-1rem-0.25rem)] group-data-[orientation=horizontal]/timeline:translate-x-4.5 group-data-[orientation=horizontal]/timeline:-translate-y-1/2 group-data-[orientation=vertical]/timeline:-left-6 group-data-[orientation=vertical]/timeline:h-[calc(100%-1rem-0.25rem)] group-data-[orientation=vertical]/timeline:w-0.5 group-data-[orientation=vertical]/timeline:-translate-x-1/2 group-data-[orientation=vertical]/timeline:translate-y-4.5",
|
|
135
|
+
className
|
|
136
|
+
),
|
|
137
|
+
"aria-hidden": "true",
|
|
138
|
+
...props
|
|
139
|
+
}
|
|
140
|
+
);
|
|
141
|
+
}
|
|
142
|
+
function TimelineTitle({
|
|
143
|
+
className,
|
|
144
|
+
...props
|
|
145
|
+
}) {
|
|
146
|
+
return /* @__PURE__ */ jsx(
|
|
147
|
+
"h3",
|
|
148
|
+
{
|
|
149
|
+
"data-slot": "timeline-title",
|
|
150
|
+
className: cn("text-sm font-medium", className),
|
|
151
|
+
...props
|
|
152
|
+
}
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
export {
|
|
156
|
+
Timeline,
|
|
157
|
+
TimelineContent,
|
|
158
|
+
TimelineDate,
|
|
159
|
+
TimelineHeader,
|
|
160
|
+
TimelineIndicator,
|
|
161
|
+
TimelineItem,
|
|
162
|
+
TimelineSeparator,
|
|
163
|
+
TimelineTitle
|
|
164
|
+
};
|
|
165
|
+
//# sourceMappingURL=timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/custom/timeline.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport * as React from \"react\";\r\nimport { Slot } from \"radix-ui\";\r\nimport { cn } from \"@repo/ayasofyazilim-ui/lib/utils\";\r\n\r\n// Types\r\ntype TimelineContextValue = {\r\n activeStep: number;\r\n setActiveStep: (step: number) => void;\r\n};\r\n\r\n// Context\r\nconst TimelineContext = React.createContext<TimelineContextValue | undefined>(\r\n undefined\r\n);\r\n\r\nconst useTimeline = () => {\r\n const context = React.useContext(TimelineContext);\r\n if (!context) {\r\n throw new Error(\"useTimeline must be used within a Timeline\");\r\n }\r\n return context;\r\n};\r\n\r\n// Components\r\ninterface TimelineProps extends React.HTMLAttributes<HTMLDivElement> {\r\n defaultValue?: number;\r\n value?: number;\r\n onValueChange?: (value: number) => void;\r\n orientation?: \"horizontal\" | \"vertical\";\r\n}\r\n\r\nfunction Timeline({\r\n defaultValue = 1,\r\n value,\r\n onValueChange,\r\n orientation = \"vertical\",\r\n className,\r\n ...props\r\n}: TimelineProps) {\r\n const [activeStep, setInternalStep] = React.useState(defaultValue);\r\n\r\n const setActiveStep = React.useCallback(\r\n (step: number) => {\r\n if (value === undefined) {\r\n setInternalStep(step);\r\n }\r\n onValueChange?.(step);\r\n },\r\n [value, onValueChange]\r\n );\r\n\r\n const currentStep = value ?? activeStep;\r\n\r\n return (\r\n <TimelineContext.Provider\r\n value={{ activeStep: currentStep, setActiveStep }}\r\n >\r\n <div\r\n data-slot=\"timeline\"\r\n className={cn(\r\n \"group/timeline flex data-[orientation=horizontal]:w-full data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col\",\r\n className\r\n )}\r\n data-orientation={orientation}\r\n {...props}\r\n />\r\n </TimelineContext.Provider>\r\n );\r\n}\r\n\r\n// TimelineContent\r\nfunction TimelineContent({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n return (\r\n <div\r\n data-slot=\"timeline-content\"\r\n className={cn(\"text-sm text-muted-foreground\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\n// TimelineDate\r\ninterface TimelineDateProps extends React.HTMLAttributes<HTMLTimeElement> {\r\n asChild?: boolean;\r\n}\r\n\r\nfunction TimelineDate({\r\n asChild = false,\r\n className,\r\n ...props\r\n}: TimelineDateProps) {\r\n const Comp = asChild ? Slot.Root : \"time\";\r\n\r\n return (\r\n <Comp\r\n data-slot=\"timeline-date\"\r\n className={cn(\r\n \"mb-1 block text-xs font-medium text-muted-foreground group-data-[orientation=vertical]/timeline:max-sm:h-4\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\n// TimelineHeader\r\nfunction TimelineHeader({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n return (\r\n <div data-slot=\"timeline-header\" className={cn(className)} {...props} />\r\n );\r\n}\r\n\r\n// TimelineIndicator\r\ninterface TimelineIndicatorProps extends React.HTMLAttributes<HTMLDivElement> {\r\n asChild?: boolean;\r\n}\r\n\r\nfunction TimelineIndicator({\r\n className,\r\n children,\r\n ...props\r\n}: TimelineIndicatorProps) {\r\n return (\r\n <div\r\n data-slot=\"timeline-indicator\"\r\n className={cn(\r\n \"absolute size-4 rounded-full border-2 border-primary/20 group-data-completed/timeline-item:border-primary group-data-[orientation=horizontal]/timeline:-top-6 group-data-[orientation=horizontal]/timeline:left-0 group-data-[orientation=horizontal]/timeline:-translate-y-1/2 group-data-[orientation=vertical]/timeline:top-0 group-data-[orientation=vertical]/timeline:-left-6 group-data-[orientation=vertical]/timeline:-translate-x-1/2\",\r\n className\r\n )}\r\n aria-hidden=\"true\"\r\n {...props}\r\n >\r\n {children}\r\n </div>\r\n );\r\n}\r\n\r\n// TimelineItem\r\ninterface TimelineItemProps extends React.HTMLAttributes<HTMLDivElement> {\r\n step: number;\r\n}\r\n\r\nfunction TimelineItem({ step, className, ...props }: TimelineItemProps) {\r\n const { activeStep } = useTimeline();\r\n\r\n return (\r\n <div\r\n data-slot=\"timeline-item\"\r\n className={cn(\r\n \"group/timeline-item relative flex flex-1 flex-col gap-0.5 group-data-[orientation=horizontal]/timeline:mt-8 group-data-[orientation=horizontal]/timeline:not-last:pe-8 group-data-[orientation=vertical]/timeline:ms-8 group-data-[orientation=vertical]/timeline:not-last:pb-12 has-[+[data-completed]]:**:data-[slot=timeline-separator]:bg-primary\",\r\n className\r\n )}\r\n data-completed={step <= activeStep || undefined}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\n// TimelineSeparator\r\nfunction TimelineSeparator({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLDivElement>) {\r\n return (\r\n <div\r\n data-slot=\"timeline-separator\"\r\n className={cn(\r\n \"absolute self-start bg-primary/10 group-last/timeline-item:hidden group-data-[orientation=horizontal]/timeline:-top-6 group-data-[orientation=horizontal]/timeline:h-0.5 group-data-[orientation=horizontal]/timeline:w-[calc(100%-1rem-0.25rem)] group-data-[orientation=horizontal]/timeline:translate-x-4.5 group-data-[orientation=horizontal]/timeline:-translate-y-1/2 group-data-[orientation=vertical]/timeline:-left-6 group-data-[orientation=vertical]/timeline:h-[calc(100%-1rem-0.25rem)] group-data-[orientation=vertical]/timeline:w-0.5 group-data-[orientation=vertical]/timeline:-translate-x-1/2 group-data-[orientation=vertical]/timeline:translate-y-4.5\",\r\n className\r\n )}\r\n aria-hidden=\"true\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\n// TimelineTitle\r\nfunction TimelineTitle({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLHeadingElement>) {\r\n return (\r\n <h3\r\n data-slot=\"timeline-title\"\r\n className={cn(\"text-sm font-medium\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Timeline,\r\n TimelineContent,\r\n TimelineDate,\r\n TimelineHeader,\r\n TimelineIndicator,\r\n TimelineItem,\r\n TimelineSeparator,\r\n TimelineTitle,\r\n};\r\n"],"mappings":"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","names":[]}
|