impact-nova 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -0
- package/dist/App.d.ts +2 -0
- package/dist/assets/flatten.worker-C7x-Wj6s.js +1 -0
- package/dist/components/layout/dashboard-layout.d.ts +25 -0
- package/dist/components/ui/accordion-nested-list/accordion-nested-list.d.ts +3 -0
- package/dist/components/ui/accordion-nested-list/accordion-nested-list.js +105 -0
- package/dist/components/ui/accordion-nested-list/hooks/useAccordionNestedListState.d.ts +19 -0
- package/dist/components/ui/accordion-nested-list/hooks/useAccordionNestedListState.js +41 -0
- package/dist/components/ui/accordion-nested-list/index.d.ts +2 -0
- package/dist/components/ui/accordion-nested-list/index.js +4 -0
- package/dist/components/ui/accordion.d.ts +10 -0
- package/dist/components/ui/accordion.js +52 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/actions-cell-renderer.d.ts +30 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/actions-cell-renderer.js +27 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/badge-cell-renderer.d.ts +44 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/badge-cell-renderer.js +22 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/checkbox-display-renderer.d.ts +29 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/checkbox-display-renderer.js +36 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/date-display-renderer.d.ts +37 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/date-display-renderer.js +50 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/date-cell-editor.d.ts +33 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/date-cell-editor.js +73 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/input-cell-editor.d.ts +21 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/input-cell-editor.js +91 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/select-cell-editor.d.ts +45 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/select-cell-editor.js +64 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/split-cell-editor.d.ts +9 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/split-cell-editor.js +85 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/textarea-cell-editor.d.ts +31 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/editors/textarea-cell-editor.js +61 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/empty-cell-renderer.d.ts +10 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/empty-cell-renderer.js +5 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/index.d.ts +90 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/index.js +65 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/input-display-renderer.d.ts +35 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/input-display-renderer.js +27 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/link-with-batch-cell-renderer.d.ts +63 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/link-with-batch-cell-renderer.js +148 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/select-display-renderer.d.ts +45 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/select-display-renderer.js +25 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/split-cell-renderer.d.ts +13 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/split-cell-renderer.js +67 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/status-badge-renderer.d.ts +35 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/status-badge-renderer.js +26 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/switch-display-renderer.d.ts +35 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/switch-display-renderer.js +38 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/textarea-display-renderer.d.ts +34 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/textarea-display-renderer.js +32 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/types.d.ts +129 -0
- package/dist/components/ui/ag-grid-react/cell-renderers/types.js +74 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.d.ts +24 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/advanced-filter-dialog.js +223 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/column-filter-section.d.ts +24 -0
- package/dist/components/ui/ag-grid-react/headers/advanced-filter/column-filter-section.js +230 -0
- package/dist/components/ui/ag-grid-react/headers/column-menu/column-settings-menu.d.ts +11 -0
- package/dist/components/ui/ag-grid-react/headers/column-menu/column-settings-menu.js +113 -0
- package/dist/components/ui/ag-grid-react/headers/components/header-info.d.ts +37 -0
- package/dist/components/ui/ag-grid-react/headers/components/header-info.js +93 -0
- package/dist/components/ui/ag-grid-react/headers/components/info-modal.d.ts +12 -0
- package/dist/components/ui/ag-grid-react/headers/components/info-modal.js +18 -0
- package/dist/components/ui/ag-grid-react/headers/components/lazy-tooltip.d.ts +16 -0
- package/dist/components/ui/ag-grid-react/headers/components/lazy-tooltip.js +13 -0
- package/dist/components/ui/ag-grid-react/headers/components/section-renderers.d.ts +32 -0
- package/dist/components/ui/ag-grid-react/headers/components/section-renderers.js +78 -0
- package/dist/components/ui/ag-grid-react/headers/context/grid-header-context.d.ts +34 -0
- package/dist/components/ui/ag-grid-react/headers/context/grid-header-context.js +6 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header-group.d.ts +12 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header-group.js +33 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header.d.ts +4 -0
- package/dist/components/ui/ag-grid-react/headers/custom-header.js +230 -0
- package/dist/components/ui/ag-grid-react/headers/header-search-input.d.ts +29 -0
- package/dist/components/ui/ag-grid-react/headers/header-search-input.js +352 -0
- package/dist/components/ui/ag-grid-react/headers/utils/date-utils.d.ts +46 -0
- package/dist/components/ui/ag-grid-react/headers/utils/date-utils.js +38 -0
- package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.d.ts +117 -0
- package/dist/components/ui/ag-grid-react/headers/utils/filter-utils.js +434 -0
- package/dist/components/ui/ag-grid-react/index.d.ts +5 -0
- package/dist/components/ui/ag-grid-react/index.js +183 -0
- package/dist/components/ui/ag-grid-react/process-backend-columndefs.d.ts +31 -0
- package/dist/components/ui/ag-grid-react/process-backend-columndefs.js +61 -0
- package/dist/components/ui/ag-grid-react/theme.d.ts +2 -0
- package/dist/components/ui/ag-grid-react/theme.js +46 -0
- package/dist/components/ui/ag-grid-react/value-formatters.d.ts +22 -0
- package/dist/components/ui/ag-grid-react/value-formatters.js +95 -0
- package/dist/components/ui/alert-dialog.d.ts +20 -0
- package/dist/components/ui/alert-dialog.js +114 -0
- package/dist/components/ui/alert.d.ts +11 -0
- package/dist/components/ui/alert.js +54 -0
- package/dist/components/ui/avatar.d.ts +14 -0
- package/dist/components/ui/avatar.js +60 -0
- package/dist/components/ui/badge.d.ts +10 -0
- package/dist/components/ui/badge.js +54 -0
- package/dist/components/ui/breadcrumb.d.ts +24 -0
- package/dist/components/ui/breadcrumb.js +150 -0
- package/dist/components/ui/button-group.d.ts +17 -0
- package/dist/components/ui/button-group.js +110 -0
- package/dist/components/ui/button-variants.d.ts +4 -0
- package/dist/components/ui/button-variants.js +31 -0
- package/dist/components/ui/button.d.ts +10 -0
- package/dist/components/ui/button.js +27 -0
- package/dist/components/ui/calendar.d.ts +46 -0
- package/dist/components/ui/calendar.js +660 -0
- package/dist/components/ui/card.d.ts +8 -0
- package/dist/components/ui/card.js +61 -0
- package/dist/components/ui/chart/chart.d.ts +29 -0
- package/dist/components/ui/chart/chart.js +203 -0
- package/dist/components/ui/chart/chart.utils.d.ts +3 -0
- package/dist/components/ui/chart/chart.utils.js +192 -0
- package/dist/components/ui/chart/index.d.ts +3 -0
- package/dist/components/ui/chart/index.js +12 -0
- package/dist/components/ui/checkbox.d.ts +8 -0
- package/dist/components/ui/checkbox.js +54 -0
- package/dist/components/ui/chips.d.ts +13 -0
- package/dist/components/ui/chips.js +60 -0
- package/dist/components/ui/data-table/data-table-column-list.d.ts +6 -0
- package/dist/components/ui/data-table/data-table-column-list.js +153 -0
- package/dist/components/ui/data-table/data-table-context.d.ts +18 -0
- package/dist/components/ui/data-table/data-table-context.js +11 -0
- package/dist/components/ui/data-table/data-table-format-options.d.ts +1 -0
- package/dist/components/ui/data-table/data-table-format-options.js +74 -0
- package/dist/components/ui/data-table/data-table-sheet.d.ts +20 -0
- package/dist/components/ui/data-table/data-table-sheet.js +81 -0
- package/dist/components/ui/data-table/data-table-view-options.d.ts +8 -0
- package/dist/components/ui/data-table/data-table-view-options.js +75 -0
- package/dist/components/ui/data-table/data-table.d.ts +26 -0
- package/dist/components/ui/data-table/data-table.js +67 -0
- package/dist/components/ui/data-table/index.d.ts +6 -0
- package/dist/components/ui/data-table/index.js +20 -0
- package/dist/components/ui/data-table/stories/fakeServer.d.ts +14 -0
- package/dist/components/ui/data-table/stories/interfaces.d.ts +15 -0
- package/dist/components/ui/date-picker/date-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/date-picker.js +116 -0
- package/dist/components/ui/date-picker/date-range-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/date-range-picker.js +195 -0
- package/dist/components/ui/date-picker/index.d.ts +18 -0
- package/dist/components/ui/date-picker/index.js +20 -0
- package/dist/components/ui/date-picker/month-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/month-picker.js +117 -0
- package/dist/components/ui/date-picker/month-range-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/month-range-picker.js +193 -0
- package/dist/components/ui/date-picker/multi-date-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/multi-date-picker.js +94 -0
- package/dist/components/ui/date-picker/multi-month-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/multi-month-picker.js +93 -0
- package/dist/components/ui/date-picker/multi-week-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/multi-week-picker.js +98 -0
- package/dist/components/ui/date-picker/week-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/week-picker.js +135 -0
- package/dist/components/ui/date-picker/week-range-picker.d.ts +3 -0
- package/dist/components/ui/date-picker/week-range-picker.js +207 -0
- package/dist/components/ui/dialog.d.ts +25 -0
- package/dist/components/ui/dialog.js +116 -0
- package/dist/components/ui/drawer.d.ts +22 -0
- package/dist/components/ui/drawer.js +98 -0
- package/dist/components/ui/dropdown-menu.d.ts +42 -0
- package/dist/components/ui/dropdown-menu.js +193 -0
- package/dist/components/ui/dynamic-layout.d.ts +12 -0
- package/dist/components/ui/dynamic-layout.js +50 -0
- package/dist/components/ui/empty-container.d.ts +8 -0
- package/dist/components/ui/empty-container.js +108 -0
- package/dist/components/ui/file-upload.d.ts +12 -0
- package/dist/components/ui/file-upload.js +241 -0
- package/dist/components/ui/filter-panel/filter-panel.d.ts +7 -0
- package/dist/components/ui/filter-panel/filter-panel.js +101 -0
- package/dist/components/ui/filter-panel/index.d.ts +2 -0
- package/dist/components/ui/filter-panel/index.js +8 -0
- package/dist/components/ui/filter-strip/filter-strip.d.ts +3 -0
- package/dist/components/ui/filter-strip/filter-strip.js +95 -0
- package/dist/components/ui/filter-strip/filter-summary.d.ts +15 -0
- package/dist/components/ui/filter-strip/filter-summary.js +204 -0
- package/dist/components/ui/filter-strip/filter-tag-list.d.ts +9 -0
- package/dist/components/ui/filter-strip/filter-tag-list.js +136 -0
- package/dist/components/ui/filter-strip/index.d.ts +2 -0
- package/dist/components/ui/filter-strip/index.js +4 -0
- package/dist/components/ui/header.d.ts +15 -0
- package/dist/components/ui/header.js +125 -0
- package/dist/components/ui/horizontal-scroller/horizontal-scroller.d.ts +4 -0
- package/dist/components/ui/horizontal-scroller/horizontal-scroller.js +165 -0
- package/dist/components/ui/horizontal-scroller/index.d.ts +2 -0
- package/dist/components/ui/horizontal-scroller/index.js +1 -0
- package/dist/components/ui/hover-card.d.ts +6 -0
- package/dist/components/ui/hover-card.js +23 -0
- package/dist/components/ui/input.d.ts +17 -0
- package/dist/components/ui/input.js +107 -0
- package/dist/components/ui/label.d.ts +3 -0
- package/dist/components/ui/label.js +18 -0
- package/dist/components/ui/loader.d.ts +11 -0
- package/dist/components/ui/loader.js +72 -0
- package/dist/components/ui/nested-list/components/NestedListApplyDiscardButtons.d.ts +11 -0
- package/dist/components/ui/nested-list/components/NestedListApplyDiscardButtons.js +37 -0
- package/dist/components/ui/nested-list/components/NestedListCategoryFilters.d.ts +10 -0
- package/dist/components/ui/nested-list/components/NestedListCategoryFilters.js +33 -0
- package/dist/components/ui/nested-list/components/NestedListContent.d.ts +21 -0
- package/dist/components/ui/nested-list/components/NestedListContent.js +73 -0
- package/dist/components/ui/nested-list/components/NestedListDragOverlay.d.ts +7 -0
- package/dist/components/ui/nested-list/components/NestedListHeader.d.ts +18 -0
- package/dist/components/ui/nested-list/components/NestedListHeader.js +86 -0
- package/dist/components/ui/nested-list/components/SortableItem.d.ts +17 -0
- package/dist/components/ui/nested-list/components/SortableItem.js +139 -0
- package/dist/components/ui/nested-list/hooks/useNestedListDragDrop.d.ts +14 -0
- package/dist/components/ui/nested-list/hooks/useNestedListDragDrop.js +168 -0
- package/dist/components/ui/nested-list/hooks/useNestedListHandlers.d.ts +42 -0
- package/dist/components/ui/nested-list/hooks/useNestedListHandlers.js +185 -0
- package/dist/components/ui/nested-list/hooks/useNestedListSelectAll.d.ts +16 -0
- package/dist/components/ui/nested-list/hooks/useNestedListSelectAll.js +62 -0
- package/dist/components/ui/nested-list/hooks/useNestedListState.d.ts +73 -0
- package/dist/components/ui/nested-list/hooks/useNestedListState.js +165 -0
- package/dist/components/ui/nested-list/index.d.ts +2 -0
- package/dist/components/ui/nested-list/index.js +6 -0
- package/dist/components/ui/nested-list/nested-list.d.ts +3 -0
- package/dist/components/ui/nested-list/nested-list.js +363 -0
- package/dist/components/ui/notification-panel/index.d.ts +3 -0
- package/dist/components/ui/notification-panel/index.js +20 -0
- package/dist/components/ui/notification-panel/notification-item.d.ts +14 -0
- package/dist/components/ui/notification-panel/notification-item.js +86 -0
- package/dist/components/ui/notification-panel/notification-list.d.ts +5 -0
- package/dist/components/ui/notification-panel/notification-list.js +45 -0
- package/dist/components/ui/notification-panel/notification-panel.d.ts +9 -0
- package/dist/components/ui/notification-panel/notification-panel.js +58 -0
- package/dist/components/ui/popover.d.ts +24 -0
- package/dist/components/ui/popover.js +84 -0
- package/dist/components/ui/portal.d.ts +7 -0
- package/dist/components/ui/portal.js +18 -0
- package/dist/components/ui/progress-bar.d.ts +1 -0
- package/dist/components/ui/progress.d.ts +9 -0
- package/dist/components/ui/progress.js +61 -0
- package/dist/components/ui/prompt.d.ts +26 -0
- package/dist/components/ui/prompt.js +141 -0
- package/dist/components/ui/radio-group.d.ts +11 -0
- package/dist/components/ui/radio-group.js +68 -0
- package/dist/components/ui/select/components/LabelWithSequence.d.ts +13 -0
- package/dist/components/ui/select/components/LabelWithSequence.js +18 -0
- package/dist/components/ui/select/components/Submenu.d.ts +15 -0
- package/dist/components/ui/select/components/Submenu.js +85 -0
- package/dist/components/ui/select/hooks/useClickOutside.d.ts +15 -0
- package/dist/components/ui/select/hooks/useClickOutside.js +43 -0
- package/dist/components/ui/select/hooks/useFlattenOptions.d.ts +24 -0
- package/dist/components/ui/select/hooks/useFlattenOptions.js +233 -0
- package/dist/components/ui/select/hooks/useMenuPosition.d.ts +2 -0
- package/dist/components/ui/select/hooks/useMenuPosition.js +89 -0
- package/dist/components/ui/select/hooks/useSelectionModel.d.ts +6 -0
- package/dist/components/ui/select/hooks/useSelectionModel.js +25 -0
- package/dist/components/ui/select/hooks/useVisibleStats.d.ts +16 -0
- package/dist/components/ui/select/hooks/useVisibleStats.js +54 -0
- package/dist/components/ui/select/index.d.ts +3 -0
- package/dist/components/ui/select/index.js +13 -0
- package/dist/components/ui/select/select.d.ts +6 -0
- package/dist/components/ui/select/select.js +814 -0
- package/dist/components/ui/select/utils/select.d.ts +12 -0
- package/dist/components/ui/select/utils/select.js +72 -0
- package/dist/components/ui/select/workers/flatten.worker.d.ts +9 -0
- package/dist/components/ui/select/workers/flatten.worker.js +11 -0
- package/dist/components/ui/separator.d.ts +4 -0
- package/dist/components/ui/separator.js +24 -0
- package/dist/components/ui/sheet.d.ts +30 -0
- package/dist/components/ui/sheet.js +157 -0
- package/dist/components/ui/sidebar.d.ts +98 -0
- package/dist/components/ui/sidebar.js +681 -0
- package/dist/components/ui/skeleton.d.ts +2 -0
- package/dist/components/ui/skeleton.js +17 -0
- package/dist/components/ui/slider.d.ts +4 -0
- package/dist/components/ui/slider.js +23 -0
- package/dist/components/ui/smart-input.d.ts +25 -0
- package/dist/components/ui/smart-input.js +177 -0
- package/dist/components/ui/stepper.d.ts +22 -0
- package/dist/components/ui/stepper.js +137 -0
- package/dist/components/ui/switch.d.ts +4 -0
- package/dist/components/ui/switch.js +27 -0
- package/dist/components/ui/tabs.d.ts +14 -0
- package/dist/components/ui/tabs.js +102 -0
- package/dist/components/ui/tag-group.d.ts +22 -0
- package/dist/components/ui/tag-group.js +56 -0
- package/dist/components/ui/tag.d.ts +16 -0
- package/dist/components/ui/tag.js +72 -0
- package/dist/components/ui/textarea.d.ts +13 -0
- package/dist/components/ui/textarea.js +85 -0
- package/dist/components/ui/toast.d.ts +17 -0
- package/dist/components/ui/toast.js +102 -0
- package/dist/components/ui/toaster.d.ts +6 -0
- package/dist/components/ui/toaster.js +100 -0
- package/dist/components/ui/tooltip.d.ts +14 -0
- package/dist/components/ui/tooltip.js +49 -0
- package/dist/components/ui/types/accordion-nested-list.types.d.ts +112 -0
- package/dist/components/ui/types/accordion.types.d.ts +1 -0
- package/dist/components/ui/types/ag-grid.types.d.ts +164 -0
- package/dist/components/ui/types/alert.types.d.ts +5 -0
- package/dist/components/ui/types/avatar.types.d.ts +1 -0
- package/dist/components/ui/types/badge.types.d.ts +1 -0
- package/dist/components/ui/types/breadcrumb.types.d.ts +1 -0
- package/dist/components/ui/types/button-group.types.d.ts +1 -0
- package/dist/components/ui/types/button.types.d.ts +1 -0
- package/dist/components/ui/types/card.types.d.ts +1 -0
- package/dist/components/ui/types/chart.types.d.ts +23 -0
- package/dist/components/ui/types/checkbox.types.d.ts +1 -0
- package/dist/components/ui/types/chips.types.d.ts +1 -0
- package/dist/components/ui/types/date-picker.types.d.ts +100 -0
- package/dist/components/ui/types/dialog.types.d.ts +8 -0
- package/dist/components/ui/types/dynamic-layout.types.d.ts +1 -0
- package/dist/components/ui/types/empty-container.types.d.ts +18 -0
- package/dist/components/ui/types/file-upload.types.d.ts +23 -0
- package/dist/components/ui/types/filter-panel.types.d.ts +42 -0
- package/dist/components/ui/types/filter-strip.types.d.ts +86 -0
- package/dist/components/ui/types/horizontal-scroller.types.d.ts +49 -0
- package/dist/components/ui/types/hover-card.types.d.ts +1 -0
- package/dist/components/ui/types/input.types.d.ts +1 -0
- package/dist/components/ui/types/loader.types.d.ts +1 -0
- package/dist/components/ui/types/nested-list.types.d.ts +63 -0
- package/dist/components/ui/types/nested-list.types.js +24 -0
- package/dist/components/ui/types/notification-panel.types.d.ts +63 -0
- package/dist/components/ui/types/popover.types.d.ts +1 -0
- package/dist/components/ui/types/progress-bar.types.d.ts +2 -0
- package/dist/components/ui/types/prompt.types.d.ts +1 -0
- package/dist/components/ui/types/radio-button-group.types.d.ts +1 -0
- package/dist/components/ui/types/select.types.d.ts +329 -0
- package/dist/components/ui/types/sidebar.types.d.ts +1 -0
- package/dist/components/ui/types/slider.types.d.ts +1 -0
- package/dist/components/ui/types/stepper.types.d.ts +1 -0
- package/dist/components/ui/types/switch.types.d.ts +1 -0
- package/dist/components/ui/types/tabs.types.d.ts +1 -0
- package/dist/components/ui/types/tag-group.types.d.ts +1 -0
- package/dist/components/ui/types/tag.types.d.ts +1 -0
- package/dist/components/ui/types/text-area.types.d.ts +1 -0
- package/dist/hooks/use-mobile.d.ts +1 -0
- package/dist/hooks/use-toast.d.ts +45 -0
- package/dist/hooks/use-toast.js +97 -0
- package/dist/ia-logo.svg +18 -0
- package/dist/icons/assets/PivotMode.svg.js +4 -0
- package/dist/icons/assets/PivotMode.svg2.js +5 -0
- package/dist/icons/assets/alan.svg.js +4 -0
- package/dist/icons/assets/alan.svg2.js +5 -0
- package/dist/icons/assets/alerts.svg.js +4 -0
- package/dist/icons/assets/alerts.svg2.js +5 -0
- package/dist/icons/assets/analyticalSearch.svg.js +4 -0
- package/dist/icons/assets/analyticalSearch.svg2.js +5 -0
- package/dist/icons/assets/back.svg.js +4 -0
- package/dist/icons/assets/back.svg2.js +5 -0
- package/dist/icons/assets/backdrop.svg.js +4 -0
- package/dist/icons/assets/backdrop.svg2.js +15 -0
- package/dist/icons/assets/bell.svg.js +4 -0
- package/dist/icons/assets/bell.svg2.js +5 -0
- package/dist/icons/assets/bin.svg.js +4 -0
- package/dist/icons/assets/bin.svg2.js +5 -0
- package/dist/icons/assets/blocks.svg.js +4 -0
- package/dist/icons/assets/blocks.svg2.js +5 -0
- package/dist/icons/assets/box.svg.js +4 -0
- package/dist/icons/assets/box.svg2.js +5 -0
- package/dist/icons/assets/calender-month.svg.js +4 -0
- package/dist/icons/assets/calender-month.svg2.js +5 -0
- package/dist/icons/assets/calender.svg.js +4 -0
- package/dist/icons/assets/calender.svg2.js +5 -0
- package/dist/icons/assets/chart.svg.js +4 -0
- package/dist/icons/assets/chart.svg2.js +5 -0
- package/dist/icons/assets/checkmark.svg.js +4 -0
- package/dist/icons/assets/checkmark.svg2.js +5 -0
- package/dist/icons/assets/chevronRight.svg.js +4 -0
- package/dist/icons/assets/chevronRight.svg2.js +5 -0
- package/dist/icons/assets/collapse.svg.js +4 -0
- package/dist/icons/assets/collapse.svg2.js +5 -0
- package/dist/icons/assets/column.svg.js +4 -0
- package/dist/icons/assets/column.svg2.js +5 -0
- package/dist/icons/assets/copy.svg.js +4 -0
- package/dist/icons/assets/copy.svg2.js +5 -0
- package/dist/icons/assets/createNewDocument.svg.js +4 -0
- package/dist/icons/assets/createNewDocument.svg2.js +5 -0
- package/dist/icons/assets/cross.svg.js +4 -0
- package/dist/icons/assets/cross.svg2.js +5 -0
- package/dist/icons/assets/delete.svg.js +4 -0
- package/dist/icons/assets/delete.svg2.js +5 -0
- package/dist/icons/assets/density.svg.js +4 -0
- package/dist/icons/assets/density.svg2.js +5 -0
- package/dist/icons/assets/document.svg.js +4 -0
- package/dist/icons/assets/document.svg2.js +5 -0
- package/dist/icons/assets/drag.svg.js +4 -0
- package/dist/icons/assets/drag.svg2.js +5 -0
- package/dist/icons/assets/draw.svg.js +4 -0
- package/dist/icons/assets/draw.svg2.js +5 -0
- package/dist/icons/assets/email.svg.js +4 -0
- package/dist/icons/assets/email.svg2.js +5 -0
- package/dist/icons/assets/errorCircle.svg.js +4 -0
- package/dist/icons/assets/errorCircle.svg2.js +5 -0
- package/dist/icons/assets/expand.svg.js +4 -0
- package/dist/icons/assets/expand.svg2.js +5 -0
- package/dist/icons/assets/filter.svg.js +4 -0
- package/dist/icons/assets/filter.svg2.js +5 -0
- package/dist/icons/assets/fiveSideStar.svg.js +4 -0
- package/dist/icons/assets/fiveSideStar.svg2.js +5 -0
- package/dist/icons/assets/floppy.svg.js +4 -0
- package/dist/icons/assets/floppy.svg2.js +5 -0
- package/dist/icons/assets/font.svg.js +4 -0
- package/dist/icons/assets/font.svg2.js +5 -0
- package/dist/icons/assets/funnel-hide.svg.js +4 -0
- package/dist/icons/assets/funnel-hide.svg2.js +5 -0
- package/dist/icons/assets/funnel-show.svg.js +4 -0
- package/dist/icons/assets/funnel-show.svg2.js +5 -0
- package/dist/icons/assets/globe.svg.js +4 -0
- package/dist/icons/assets/globe.svg2.js +5 -0
- package/dist/icons/assets/hamburger-closed.svg.js +4 -0
- package/dist/icons/assets/hamburger-closed.svg2.js +5 -0
- package/dist/icons/assets/hamburger-open.svg.js +4 -0
- package/dist/icons/assets/hamburger-open.svg2.js +5 -0
- package/dist/icons/assets/help-icon.svg.js +4 -0
- package/dist/icons/assets/help-icon.svg2.js +5 -0
- package/dist/icons/assets/ia-logo.svg.js +4 -0
- package/dist/icons/assets/ia-logo.svg2.js +5 -0
- package/dist/icons/assets/illustration_1.svg.js +4 -0
- package/dist/icons/assets/illustration_1.svg2.js +5 -0
- package/dist/icons/assets/info-icon.svg.js +4 -0
- package/dist/icons/assets/info-icon.svg2.js +5 -0
- package/dist/icons/assets/loadingSpinner.svg.js +4 -0
- package/dist/icons/assets/loadingSpinner.svg2.js +5 -0
- package/dist/icons/assets/locked.svg.js +4 -0
- package/dist/icons/assets/locked.svg2.js +5 -0
- package/dist/icons/assets/loginArrow.svg.js +4 -0
- package/dist/icons/assets/loginArrow.svg2.js +5 -0
- package/dist/icons/assets/matchWith.svg.js +4 -0
- package/dist/icons/assets/matchWith.svg2.js +5 -0
- package/dist/icons/assets/message-icon.svg.js +4 -0
- package/dist/icons/assets/message-icon.svg2.js +5 -0
- package/dist/icons/assets/more.svg.js +4 -0
- package/dist/icons/assets/more.svg2.js +5 -0
- package/dist/icons/assets/multi-color-filter.svg.js +4 -0
- package/dist/icons/assets/multi-color-filter.svg2.js +5 -0
- package/dist/icons/assets/paperrocket.svg.js +4 -0
- package/dist/icons/assets/paperrocket.svg2.js +5 -0
- package/dist/icons/assets/pencil.svg.js +4 -0
- package/dist/icons/assets/pencil.svg2.js +5 -0
- package/dist/icons/assets/person.svg.js +4 -0
- package/dist/icons/assets/person.svg2.js +5 -0
- package/dist/icons/assets/pin.svg.js +4 -0
- package/dist/icons/assets/pin.svg2.js +5 -0
- package/dist/icons/assets/plus.svg.js +4 -0
- package/dist/icons/assets/plus.svg2.js +5 -0
- package/dist/icons/assets/reset.svg.js +4 -0
- package/dist/icons/assets/reset.svg2.js +5 -0
- package/dist/icons/assets/rocket.svg.js +4 -0
- package/dist/icons/assets/rocket.svg2.js +5 -0
- package/dist/icons/assets/search.svg.js +4 -0
- package/dist/icons/assets/search.svg2.js +5 -0
- package/dist/icons/assets/settings.svg.js +4 -0
- package/dist/icons/assets/settings.svg2.js +5 -0
- package/dist/icons/assets/shapes.svg.js +4 -0
- package/dist/icons/assets/shapes.svg2.js +5 -0
- package/dist/icons/assets/stack-comfort.svg.js +4 -0
- package/dist/icons/assets/stack-comfort.svg2.js +5 -0
- package/dist/icons/assets/stack-compact.svg.js +4 -0
- package/dist/icons/assets/stack-compact.svg2.js +5 -0
- package/dist/icons/assets/stack.svg.js +4 -0
- package/dist/icons/assets/stack.svg2.js +5 -0
- package/dist/icons/assets/store.svg.js +4 -0
- package/dist/icons/assets/store.svg2.js +5 -0
- package/dist/icons/assets/table.svg.js +4 -0
- package/dist/icons/assets/table.svg2.js +5 -0
- package/dist/icons/assets/three-dots.svg.js +4 -0
- package/dist/icons/assets/three-dots.svg2.js +5 -0
- package/dist/icons/assets/trendingDown.svg.js +4 -0
- package/dist/icons/assets/trendingDown.svg2.js +5 -0
- package/dist/icons/assets/trendingFlat.svg.js +4 -0
- package/dist/icons/assets/trendingFlat.svg2.js +5 -0
- package/dist/icons/assets/trendingNeutral.svg.js +4 -0
- package/dist/icons/assets/trendingNeutral.svg2.js +5 -0
- package/dist/icons/assets/trendingUp.svg.js +4 -0
- package/dist/icons/assets/trendingUp.svg2.js +5 -0
- package/dist/icons/assets/unpin.svg.js +4 -0
- package/dist/icons/assets/unpin.svg2.js +5 -0
- package/dist/icons/assets/upload.svg.js +4 -0
- package/dist/icons/assets/upload.svg2.js +5 -0
- package/dist/icons/assets/webp/bill-or-receipt.webp.js +4 -0
- package/dist/icons/assets/webp/checklist-with-pen.webp.js +4 -0
- package/dist/icons/assets/webp/click-me-arrow.webp.js +4 -0
- package/dist/icons/assets/webp/csv-logo.webp.js +4 -0
- package/dist/icons/assets/webp/dollar.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-1.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-2.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-3.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-4.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-5.webp.js +4 -0
- package/dist/icons/assets/webp/empty-state-6.webp.js +4 -0
- package/dist/icons/assets/webp/excel-logo.webp.js +4 -0
- package/dist/icons/assets/webp/file-upload.webp.js +4 -0
- package/dist/icons/assets/webp/inventory-adjustment.webp.js +4 -0
- package/dist/icons/assets/webp/multicolor-bell.webp.js +4 -0
- package/dist/icons/assets/webp/price-tag.webp.js +4 -0
- package/dist/icons/assets/webp/receipts-stack.webp.js +4 -0
- package/dist/icons/assets/webp/recommended-receipt.webp.js +4 -0
- package/dist/icons/assets/webp/return-carton.webp.js +4 -0
- package/dist/icons/assets/webp/shipping-container.webp.js +4 -0
- package/dist/icons/assets/webp/stack-of-packaged-boxes.webp.js +4 -0
- package/dist/icons/assets/webp/text-logo.webp.js +4 -0
- package/dist/icons/assets/webp/two-stacked-packaged-boxes.webp.js +4 -0
- package/dist/icons/assets/webp/warranty.webp.js +4 -0
- package/dist/icons/index.d.ts +119 -0
- package/dist/icons/index.js +382 -0
- package/dist/impact-nova.css +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.js +340 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.js +18 -0
- package/dist/main.d.ts +0 -0
- package/dist/vite.svg +1 -0
- package/package.json +515 -0
- package/tailwind.config.d.ts +6 -0
- package/tailwind.config.js +182 -0
package/README.md
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
# Impact Nova 🚀
|
|
2
|
+
|
|
3
|
+
**Impact Nova** is a comprehensive, enterprise-grade React design system engineered for scalability, performance, and accessibility. Built on the modern stack of **React 19**, **Vite**, and **Tailwind CSS**, it empowers developers to build complex, data-rich applications with speed and precision.
|
|
4
|
+
|
|
5
|
+
> "Design is not just what it looks like and feels like. Design is how it works."
|
|
6
|
+
|
|
7
|
+
<div align="center">
|
|
8
|
+
|
|
9
|
+
[](https://opensource.org/licenses/MIT)
|
|
10
|
+
[](https://react.dev)
|
|
11
|
+
[](https://www.typescriptlang.org/)
|
|
12
|
+
[](https://tailwindcss.com/)
|
|
13
|
+
[](https://www.radix-ui.com/)
|
|
14
|
+
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 🎯 Objectives & Benefits
|
|
20
|
+
|
|
21
|
+
Impact Nova is designed to solve common challenges in enterprise application development.
|
|
22
|
+
|
|
23
|
+
- **Consistency**: A single source of truth for UI components ensures a unified look and feel across all products.
|
|
24
|
+
- **Velocity**: Ready-to-use, tested components allow developers to focus on feature logic rather than pixel-pushing.
|
|
25
|
+
- **Quality**: Built-in accessibility and rigorous testing raise the baseline quality of every application.
|
|
26
|
+
- **Scalability**: The system is architected to grow with the business, supporting new features and distinct brand themes.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 📐 Design Principles
|
|
31
|
+
|
|
32
|
+
Impact Nova is built upon four core pillars that guide every component application:
|
|
33
|
+
|
|
34
|
+
1. **Accessibility First**: Components are built on **Radix UI** primitives, ensuring full WAI-ARIA compliance, keyboard support, and screen reader compatibility.
|
|
35
|
+
2. **Composition over Inheritance**: We favor composition. Use sub-components (e.g., `Dialog.Content`) for full control without prop drilling.
|
|
36
|
+
3. **Design Tokens**: Styling is driven by tokens (colors, typography, spacing) mapped via Tailwind CSS, ensuring pixel-perfect consistency.
|
|
37
|
+
4. **Developer Experience**: Built for speed with strict TypeScript, intuitive naming, and comprehensive documentation to help you move fast.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 🚀 Getting Started
|
|
42
|
+
|
|
43
|
+
Everything you need to install, configure, and start building with **Impact Nova**.
|
|
44
|
+
|
|
45
|
+
### Installation
|
|
46
|
+
|
|
47
|
+
Install the package via your preferred package manager. Impact Nova requires React 19 or later.
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm install impact-nova
|
|
51
|
+
# or
|
|
52
|
+
pnpm add impact-nova
|
|
53
|
+
# or
|
|
54
|
+
yarn add impact-nova
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
> **Note on Peer Dependencies**:
|
|
58
|
+
> You must also ensure `react`, `react-dom`, `ag-grid-react`, `ag-grid-enterprise`, and `highcharts` (if used) are installed in your project, as these are peer dependencies.
|
|
59
|
+
|
|
60
|
+
### Styles & Configuration
|
|
61
|
+
|
|
62
|
+
Import the bundled CSS in your root entry file (e.g., `main.tsx`, `App.tsx`, or `layout.tsx`).
|
|
63
|
+
|
|
64
|
+
```tsx
|
|
65
|
+
import React from 'react';
|
|
66
|
+
import ReactDOM from 'react-dom/client';
|
|
67
|
+
|
|
68
|
+
// ⚠️ Import styles before your App
|
|
69
|
+
import 'impact-nova/dist/impact-nova.css';
|
|
70
|
+
|
|
71
|
+
import App from './App';
|
|
72
|
+
|
|
73
|
+
ReactDOM.createRoot(document.getElementById('root')!).render(
|
|
74
|
+
<App />
|
|
75
|
+
);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Typography
|
|
79
|
+
|
|
80
|
+
Impact Nova looks best with **Manrope**. We recommend adding it to your project:
|
|
81
|
+
|
|
82
|
+
1. **Import Font**:
|
|
83
|
+
```html
|
|
84
|
+
<link href="https://fonts.googleapis.com/css2?family=Manrope:wght@200..800&display=swap" rel="stylesheet" />
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
2. **Configure Tailwind**:
|
|
88
|
+
```css
|
|
89
|
+
@layer base {
|
|
90
|
+
body {
|
|
91
|
+
font-family: 'Manrope', sans-serif;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 🔨 Usage
|
|
99
|
+
|
|
100
|
+
Import components directly from the package. All components export strong TypeScript definitions for props and events.
|
|
101
|
+
|
|
102
|
+
### Core Components
|
|
103
|
+
|
|
104
|
+
```tsx
|
|
105
|
+
import { Button, Card, DatePicker } from 'impact-nova';
|
|
106
|
+
|
|
107
|
+
export default function MyPage() {
|
|
108
|
+
return (
|
|
109
|
+
<Card className="p-6">
|
|
110
|
+
<h1 className="text-xl font-bold mb-4">Dashboard</h1>
|
|
111
|
+
<div className="flex gap-4">
|
|
112
|
+
<DatePicker />
|
|
113
|
+
<Button variant="primary">Save Changes</Button>
|
|
114
|
+
</div>
|
|
115
|
+
</Card>
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Using Icons
|
|
121
|
+
|
|
122
|
+
Impact Nova includes a custom-built icon library. Icons are treeshakeable and accept standard SVG props.
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
import { Icons } from 'impact-nova';
|
|
126
|
+
|
|
127
|
+
export function StatusBadge() {
|
|
128
|
+
return (
|
|
129
|
+
<div className="flex items-center gap-2 text-green-600">
|
|
130
|
+
<Icons.CheckCircle size={16} />
|
|
131
|
+
<span>Operation Successful</span>
|
|
132
|
+
</div>
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Type Safety
|
|
138
|
+
|
|
139
|
+
You can import component props to ensure type safety in your own interfaces.
|
|
140
|
+
|
|
141
|
+
```tsx
|
|
142
|
+
import { Button, type ButtonProps } from 'impact-nova';
|
|
143
|
+
|
|
144
|
+
interface CustomActionProps extends ButtonProps {
|
|
145
|
+
analyticsId: string;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export const CustomAction = ({ analyticsId, ...props }: CustomActionProps) => {
|
|
149
|
+
return <Button {...props} onClick={() => track(analyticsId)} />;
|
|
150
|
+
};
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## 🏗️ Architecture
|
|
156
|
+
|
|
157
|
+
The library utilizes a modern, headless architecture pattern:
|
|
158
|
+
|
|
159
|
+
1. **Logic Layer**: Headless state management and interactions powered by Radix UI and internal hooks.
|
|
160
|
+
2. **Styling Layer**: Utility-first CSS using **Tailwind CSS** and **class-variance-authority (CVA)** for scalable, type-safe component variant management.
|
|
161
|
+
3. **Build System**: High-performance tooling with Vite and React 19 for instant HMR.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## � Component Library
|
|
166
|
+
|
|
167
|
+
Impact Nova provides a rich set of components structured for any enterprise use-case.
|
|
168
|
+
|
|
169
|
+
### 📝 Forms & Inputs
|
|
170
|
+
- Button, Button Group
|
|
171
|
+
- Checkbox, Radio Group, Switch
|
|
172
|
+
- Input, Smart Input, Textarea
|
|
173
|
+
- Select, Slider
|
|
174
|
+
- File Upload
|
|
175
|
+
- Date Picker, Date Range Picker
|
|
176
|
+
- Month Picker, Week Picker
|
|
177
|
+
- Prompt, Form Group
|
|
178
|
+
|
|
179
|
+
### 🧭 Navigation
|
|
180
|
+
- Sidebar, Navigation Bar
|
|
181
|
+
- Tabs, Breadcrumb, Stepper
|
|
182
|
+
- Card, Accordion, Nested List
|
|
183
|
+
- Header, Separator
|
|
184
|
+
- Dynamic Layout
|
|
185
|
+
|
|
186
|
+
### 💬 Feedback & Overlay
|
|
187
|
+
- Alert, Alert Dialog, Dialog
|
|
188
|
+
- Sheet, Drawer, Modal
|
|
189
|
+
- Toast, Tooltip, Popover
|
|
190
|
+
- Hover Card, Dropdown Menu
|
|
191
|
+
- Loader, Skeleton, Progress Bar
|
|
192
|
+
|
|
193
|
+
### 📊 Data Display
|
|
194
|
+
- Avatar, Badge, Tag, Chips
|
|
195
|
+
- Calendar, Chart
|
|
196
|
+
- Empty Container, Notification Panel
|
|
197
|
+
- Table (AG Grid), Data Table
|
|
198
|
+
- Product Tile, Value With Unit
|
|
199
|
+
|
|
200
|
+
---
|
|
201
|
+
|
|
202
|
+
## 📞 Support & Community
|
|
203
|
+
|
|
204
|
+
- **Issue Reporting**: Submit bugs or feature requests to our [Jira Board](https://impactanalytics.atlassian.net/jira/software/c/projects/DES/issues).
|
|
205
|
+
- **Community**: Join `#design-system-support` on [Slack](https://teamimpactanalytics.slack.com/archives/C05U9SU8FB8) for quick questions and integration help.
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## ✨ Credits & Contributors
|
|
210
|
+
|
|
211
|
+
**Core Development**
|
|
212
|
+
- Anil M
|
|
213
|
+
- Ritesh Ranjan
|
|
214
|
+
|
|
215
|
+
**Design Architecture**
|
|
216
|
+
- Jaymin Pancholi
|
|
217
|
+
- Sudip Sarkar
|
|
218
|
+
|
|
219
|
+
**UX & Product UI**
|
|
220
|
+
- Kalyan
|
|
221
|
+
- Vikram
|
|
222
|
+
- Aditi Chaudhary
|
|
223
|
+
|
|
224
|
+
**Inspiration**
|
|
225
|
+
- Impact UI
|
|
226
|
+
|
|
227
|
+
**Special Thanks**
|
|
228
|
+
- Girish Pattana Setty
|
|
229
|
+
- Himanshu K
|
|
230
|
+
- Harish V
|
|
231
|
+
|
|
232
|
+
---
|
|
233
|
+
|
|
234
|
+
## 📄 License
|
|
235
|
+
|
|
236
|
+
Impact Nova is licensed under the [MIT License](LICENSE).
|
|
237
|
+
|
package/dist/App.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(){"use strict";let V=[],P=0,p=!1,A=!1;const L=new Map;let y=null;self.onmessage=_=>{const{type:N,payload:R,id:x,config:z}=_.data;if(N==="SET_OPTIONS"){V=R,z&&(p=z.enableSubMenus??!1,A=z.enableGroups??!1),L.clear(),y=null;let a=0;const c=f=>{f.forEach(d=>{A&&"options"in d?c(d.options):p&&"children"in d&&Array.isArray(d.children)?c(d.children):d.isDisabled||a++})};c(V),P=a;return}if(N==="SEARCH"){const{searchValue:a,config:{ignoreCase:c=!0,ignoreAccents:f=!1,matchFrom:d="any",trim:b=!0,enableSubMenus:v,enableGroups:M}={}}=R;v!==void 0&&(p=v),M!==void 0&&(A=M);let t=a;b&&(t=t.trim()),c&&(t=t.toLowerCase()),f&&(t=t.normalize("NFD").replace(/[\u0300-\u036f]/g,""));const G={ignoreCase:c,ignoreAccents:f,trim:b};(!y||y.ignoreCase!==c||y.ignoreAccents!==f||y.trim!==b)&&(L.clear(),y=G);const F=i=>{const s=i.label;return typeof s=="string"?s:String(s)},I=i=>{const s=L.get(i);if(s!==void 0)return s;let e=F(i);return b&&(e=e.trim()),c&&(e=e.toLowerCase()),f&&(e=e.normalize("NFD").replace(/[\u0300-\u036f]/g,"")),L.set(i,e),e},o=i=>{if(!t)return!0;const s=I(i);return t.length>s.length?!1:d==="start"?s.startsWith(t):s.includes(t)},m=i=>o(i);let w=0;const C=(i,s=0)=>{const l=[];return i.forEach(e=>{let r=[];"options"in e&&(r=e.options);let n=[];"children"in e&&Array.isArray(e.children)&&(n=e.children);const u=r.length>0,S=n.length>0;let E;!u&&!S&&!e.isDisabled&&(w++,E=w);const D=!u&&m(e);if(u){const g=C(r,s),O=g.length>0;(D||O)&&(l.push({...e,depth:s,isGroup:!0,isSubmenuParent:!1,original:e}),l.push(...g))}else{let g=!1;if(S&&t){const O=k=>k.some(T=>m(T)?!0:"children"in T&&Array.isArray(T.children)?O(T.children):!1);g=O(n)}(D||g||!t&&S)&&l.push({...e,depth:s,isGroup:!1,isSubmenuParent:S,original:e,naturalIndex:E})}}),l},h=C(V);self.postMessage({type:"SEARCH_RESULT",id:x,result:{result:h,totalLeafCount:P}})}if(N==="SELECT_ALL"){const{currentValues:a,isAllSelected:c,maxSelectableOptions:f,searchValue:d,config:{ignoreCase:b=!0,ignoreAccents:v=!1,matchFrom:M="any",trim:t=!0,enableSubMenus:G,enableGroups:F}={}}=R;G!==void 0&&(p=G),F!==void 0&&(A=F);const I=l=>{if(c){const r=a;return r&&"isAllSelected"in r&&r.isAllSelected&&"excludedValues"in r?!r.excludedValues.includes(l):!1}const e=a;return Array.isArray(e)?e.some(r=>r.value===l):!1};let o=d||"";t&&(o=o.trim()),b&&(o=o.toLowerCase()),v&&(o=o.normalize("NFD").replace(/[\u0300-\u036f]/g,""));const m=l=>{const e=l.label;return typeof e=="string"?e:String(e)},w=l=>{let r=m(l);return t&&(r=r.trim()),b&&(r=r.toLowerCase()),v&&(r=r.normalize("NFD").replace(/[\u0300-\u036f]/g,"")),r},C=l=>{if(!o)return!0;const e=w(l);return M==="start"?e.startsWith(o):e.includes(o)},h=[],i=l=>{l.forEach(e=>{let r=[];A&&"options"in e&&(r=e.options);let n=[];p&&"children"in e&&Array.isArray(e.children)&&(n=e.children);const u=A&&r.length>0,S=p&&n.length>0;if(u)i(r);else if(S)if(o){const E=D=>{D.forEach(g=>{C(g)&&h.push(g),"children"in g&&Array.isArray(g.children)&&E(g.children)})};E(n)}else i(n);else!e.isDisabled&&C(e)&&h.push(e)})};i(V);let s;if(d){if(h.length===0){self.postMessage({id:x,result:a});return}const l=h.every(e=>I(e.value));if(c){const e=a;let n=[...e&&"excludedValues"in e?e.excludedValues:[]];l?h.forEach(u=>{n.includes(u.value)||n.push(u.value)}):n=n.filter(u=>!h.some(S=>S.value===u)),s={isAllSelected:!0,excludedValues:n}}else{let r=[...Array.isArray(a)?a:[]];if(l?r=r.filter(n=>!h.some(u=>u.value===n.value)):h.forEach(n=>{r.some(u=>u.value===n.value)||r.push(n)}),f&&r.length>f){self.postMessage({id:x,result:a});return}s=r}}else if(f)(a||[]).length>0?s=[]:s=h.slice(0,f);else{const l=a;c&&l&&"excludedValues"in l&&l.excludedValues.length===0?s=[]:s={isAllSelected:!0,excludedValues:[]}}self.postMessage({type:"SELECT_ALL_RESULT",id:x,result:s})}}})();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
interface DashboardLayoutProps extends React.ComponentProps<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* The Sidebar component (e.g. <AppSidebar />)
|
|
5
|
+
*/
|
|
6
|
+
sidebar: React.ReactNode;
|
|
7
|
+
/**
|
|
8
|
+
* The Header component (e.g. <Header />)
|
|
9
|
+
*/
|
|
10
|
+
header: React.ReactNode;
|
|
11
|
+
/**
|
|
12
|
+
* Optional Breadcrumb component
|
|
13
|
+
*/
|
|
14
|
+
breadcrumb?: React.ReactNode;
|
|
15
|
+
/**
|
|
16
|
+
* Optional FilterStrip component
|
|
17
|
+
*/
|
|
18
|
+
filterStrip?: React.ReactNode;
|
|
19
|
+
/**
|
|
20
|
+
* Main content (e.g. <Outlet /> or page content)
|
|
21
|
+
*/
|
|
22
|
+
children: React.ReactNode;
|
|
23
|
+
}
|
|
24
|
+
export declare function DashboardLayout({ sidebar, header, breadcrumb, filterStrip, children, className, ...props }: DashboardLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { jsxs as o, jsx as r } from "react/jsx-runtime";
|
|
2
|
+
import { useState as W, useCallback as s, useMemo as _ } from "react";
|
|
3
|
+
import { Accordion as q, AccordionItem as z, AccordionTrigger as F, AccordionContent as G } from "../accordion.js";
|
|
4
|
+
import { Button as A } from "../button.js";
|
|
5
|
+
import { NestedList as H } from "../nested-list/nested-list.js";
|
|
6
|
+
import { useAccordionNestedListState as J } from "./hooks/useAccordionNestedListState.js";
|
|
7
|
+
import { SelectionMode as K } from "../types/nested-list.types.js";
|
|
8
|
+
import { cn as P } from "../../../lib/utils.js";
|
|
9
|
+
const re = ({
|
|
10
|
+
sections: t,
|
|
11
|
+
onChange: d,
|
|
12
|
+
onSubmit: h,
|
|
13
|
+
onCancel: m,
|
|
14
|
+
enableApplyDiscard: g = !0,
|
|
15
|
+
submitButtonLabel: N = "Apply",
|
|
16
|
+
cancelButtonLabel: C = "Reset",
|
|
17
|
+
className: v = "",
|
|
18
|
+
enableSearch: S = !0,
|
|
19
|
+
enableDragDrop: y = !0,
|
|
20
|
+
enableSelectAll: b = !0,
|
|
21
|
+
selectionMode: x = K.CASCADE_DOWN,
|
|
22
|
+
searchPlaceholder: k = "Search...",
|
|
23
|
+
value: D,
|
|
24
|
+
onValueChange: V,
|
|
25
|
+
isMultiExpanded: n = !0,
|
|
26
|
+
defaultCollapseAll: j = !1,
|
|
27
|
+
validateApply: i
|
|
28
|
+
}) => {
|
|
29
|
+
const {
|
|
30
|
+
currentSections: l,
|
|
31
|
+
hasChanges: c,
|
|
32
|
+
setCurrentSection: u,
|
|
33
|
+
saveAllSections: f,
|
|
34
|
+
discardAllSections: p
|
|
35
|
+
} = J({ sections: t }), [L, w] = W(() => j ? n ? [] : "" : t.length > 0 ? n ? [t[0].id] : t[0].id : n ? [] : ""), B = D ?? L, I = V ?? w, M = s(
|
|
36
|
+
(e, a) => {
|
|
37
|
+
u(e, a), d?.(e, a);
|
|
38
|
+
},
|
|
39
|
+
[d, u]
|
|
40
|
+
), O = s(() => {
|
|
41
|
+
f(), h?.(l);
|
|
42
|
+
}, [l, h, f]), R = s(() => {
|
|
43
|
+
p(), m?.();
|
|
44
|
+
}, [p, m]), T = _(() => c ? i ? i(l) : !0 : !1, [c, i, l]);
|
|
45
|
+
return /* @__PURE__ */ o(
|
|
46
|
+
"div",
|
|
47
|
+
{
|
|
48
|
+
className: P("flex flex-col h-full", v),
|
|
49
|
+
"data-testid": "accordion-nested-list-container",
|
|
50
|
+
children: [
|
|
51
|
+
/* @__PURE__ */ r("div", { className: "flex-1 min-h-0 overflow-hidden", children: /* @__PURE__ */ r(
|
|
52
|
+
q,
|
|
53
|
+
{
|
|
54
|
+
type: n ? "multiple" : "single",
|
|
55
|
+
value: B,
|
|
56
|
+
onValueChange: I,
|
|
57
|
+
className: "space-y-4",
|
|
58
|
+
children: t.map((e) => /* @__PURE__ */ o(z, { value: e.id, children: [
|
|
59
|
+
/* @__PURE__ */ r(F, { children: e.label }),
|
|
60
|
+
/* @__PURE__ */ r(G, { className: "min-h-0 h-full", children: /* @__PURE__ */ r("div", { className: "h-full min-h-0 pb-2", children: /* @__PURE__ */ r(
|
|
61
|
+
H,
|
|
62
|
+
{
|
|
63
|
+
items: l[e.id] || [],
|
|
64
|
+
onChange: (a) => M(e.id, a),
|
|
65
|
+
enableApplyDiscard: !1,
|
|
66
|
+
enableSearch: S,
|
|
67
|
+
enableDragDrop: y,
|
|
68
|
+
enableSelectAll: b,
|
|
69
|
+
selectionMode: e.selectionMode ?? x,
|
|
70
|
+
searchPlaceholder: k,
|
|
71
|
+
className: "h-full"
|
|
72
|
+
}
|
|
73
|
+
) }) })
|
|
74
|
+
] }, e.id))
|
|
75
|
+
}
|
|
76
|
+
) }),
|
|
77
|
+
g && /* @__PURE__ */ o("div", { className: "flex-shrink-0 flex justify-end gap-2 pt-4 border-t mt-4", children: [
|
|
78
|
+
/* @__PURE__ */ r(
|
|
79
|
+
A,
|
|
80
|
+
{
|
|
81
|
+
variant: "tertiary",
|
|
82
|
+
onClick: R,
|
|
83
|
+
disabled: !c,
|
|
84
|
+
"data-testid": "discard-changes",
|
|
85
|
+
children: C
|
|
86
|
+
}
|
|
87
|
+
),
|
|
88
|
+
/* @__PURE__ */ r(
|
|
89
|
+
A,
|
|
90
|
+
{
|
|
91
|
+
variant: "default",
|
|
92
|
+
onClick: O,
|
|
93
|
+
disabled: !T,
|
|
94
|
+
"data-testid": "apply-changes",
|
|
95
|
+
children: N
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
] })
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
export {
|
|
104
|
+
re as AccordionNestedList
|
|
105
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { NestedListItem } from '../../types/nested-list.types';
|
|
2
|
+
import { AccordionNestedListSection } from '../../types/accordion-nested-list.types';
|
|
3
|
+
interface UseAccordionNestedListStateProps {
|
|
4
|
+
sections: AccordionNestedListSection[];
|
|
5
|
+
}
|
|
6
|
+
interface UseAccordionNestedListStateReturn {
|
|
7
|
+
currentSections: Record<string, NestedListItem[]>;
|
|
8
|
+
savedSections: Record<string, NestedListItem[]>;
|
|
9
|
+
hasChanges: boolean;
|
|
10
|
+
setCurrentSection: (sectionId: string, items: NestedListItem[]) => void;
|
|
11
|
+
saveAllSections: () => void;
|
|
12
|
+
discardAllSections: () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Hook to manage state for AccordionNestedList
|
|
16
|
+
* Tracks current and saved state for all sections
|
|
17
|
+
*/
|
|
18
|
+
export declare const useAccordionNestedListState: ({ sections, }: UseAccordionNestedListStateProps) => UseAccordionNestedListStateReturn;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { useMemo as a, useState as u, useEffect as O } from "react";
|
|
2
|
+
const g = ({
|
|
3
|
+
sections: n
|
|
4
|
+
}) => {
|
|
5
|
+
const o = a(() => {
|
|
6
|
+
const t = {};
|
|
7
|
+
return n.forEach((s) => {
|
|
8
|
+
t[s.id] = JSON.parse(JSON.stringify(s.items));
|
|
9
|
+
}), t;
|
|
10
|
+
}, [n]), [e, i] = u(o), [r, S] = u(o);
|
|
11
|
+
O(() => {
|
|
12
|
+
const t = {};
|
|
13
|
+
n.forEach((s) => {
|
|
14
|
+
t[s.id] = JSON.parse(JSON.stringify(s.items));
|
|
15
|
+
}), i(t), S(t);
|
|
16
|
+
}, [n]);
|
|
17
|
+
const N = a(() => Object.keys(e).some((t) => {
|
|
18
|
+
const s = JSON.stringify(e[t]), c = JSON.stringify(r[t]);
|
|
19
|
+
return s !== c;
|
|
20
|
+
}), [e, r]);
|
|
21
|
+
return {
|
|
22
|
+
currentSections: e,
|
|
23
|
+
savedSections: r,
|
|
24
|
+
hasChanges: N,
|
|
25
|
+
setCurrentSection: (t, s) => {
|
|
26
|
+
i((c) => ({
|
|
27
|
+
...c,
|
|
28
|
+
[t]: JSON.parse(JSON.stringify(s))
|
|
29
|
+
}));
|
|
30
|
+
},
|
|
31
|
+
saveAllSections: () => {
|
|
32
|
+
S(JSON.parse(JSON.stringify(e)));
|
|
33
|
+
},
|
|
34
|
+
discardAllSections: () => {
|
|
35
|
+
i(JSON.parse(JSON.stringify(r)));
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export {
|
|
40
|
+
g as useAccordionNestedListState
|
|
41
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import * as AccordionPrimitive from "@radix-ui/react-accordion";
|
|
3
|
+
declare const Accordion: React.ForwardRefExoticComponent<(AccordionPrimitive.AccordionSingleProps | AccordionPrimitive.AccordionMultipleProps) & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const AccordionItem: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionItemProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const AccordionTrigger: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionTriggerProps & React.RefAttributes<HTMLButtonElement>, "ref"> & {
|
|
6
|
+
badge?: React.ReactNode;
|
|
7
|
+
rightActions?: React.ReactNode;
|
|
8
|
+
} & React.RefAttributes<HTMLButtonElement>>;
|
|
9
|
+
declare const AccordionContent: React.ForwardRefExoticComponent<Omit<AccordionPrimitive.AccordionContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export { Accordion, AccordionItem, AccordionTrigger, AccordionContent };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx as t, jsxs as n } from "react/jsx-runtime";
|
|
2
|
+
import * as s from "react";
|
|
3
|
+
import * as e from "@radix-ui/react-accordion";
|
|
4
|
+
import { ChevronRight as l } from "lucide-react";
|
|
5
|
+
import { cn as d } from "../../lib/utils.js";
|
|
6
|
+
const v = e.Root, f = s.forwardRef(({ className: r, ...o }, a) => /* @__PURE__ */ t(
|
|
7
|
+
e.Item,
|
|
8
|
+
{
|
|
9
|
+
ref: a,
|
|
10
|
+
className: d("border-b rounded-lg bg-white overflow-hidden border-b-[#D9DDE7]", r),
|
|
11
|
+
...o
|
|
12
|
+
}
|
|
13
|
+
));
|
|
14
|
+
f.displayName = "AccordionItem";
|
|
15
|
+
const p = s.forwardRef(({ className: r, children: o, badge: a, rightActions: i, ...c }, m) => /* @__PURE__ */ t(e.Header, { className: "flex", children: /* @__PURE__ */ n(
|
|
16
|
+
e.Trigger,
|
|
17
|
+
{
|
|
18
|
+
ref: m,
|
|
19
|
+
className: d(
|
|
20
|
+
"flex flex-1 items-center gap-3 px-4 py-2 text-sm font-semibold transition-all text-left [&[data-state=open]>div>svg]:-rotate-90",
|
|
21
|
+
r
|
|
22
|
+
),
|
|
23
|
+
...c,
|
|
24
|
+
children: [
|
|
25
|
+
/* @__PURE__ */ t("div", { className: "flex items-center justify-center h-8 w-8 shrink-0 rounded-lg bg-secondary text-secondary-foreground transition-transform duration-200", children: /* @__PURE__ */ t(l, { className: "h-4 w-4 transition-transform duration-200" }) }),
|
|
26
|
+
/* @__PURE__ */ n("div", { className: "flex flex-1 items-center justify-between", children: [
|
|
27
|
+
/* @__PURE__ */ n("div", { className: "flex items-center gap-3", children: [
|
|
28
|
+
o,
|
|
29
|
+
a
|
|
30
|
+
] }),
|
|
31
|
+
i
|
|
32
|
+
] })
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
) }));
|
|
36
|
+
p.displayName = e.Trigger.displayName;
|
|
37
|
+
const x = s.forwardRef(({ className: r, children: o, ...a }, i) => /* @__PURE__ */ t(
|
|
38
|
+
e.Content,
|
|
39
|
+
{
|
|
40
|
+
ref: i,
|
|
41
|
+
className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
|
|
42
|
+
...a,
|
|
43
|
+
children: /* @__PURE__ */ t("div", { className: d("px-4 pb-4 pt-2", r), children: o })
|
|
44
|
+
}
|
|
45
|
+
));
|
|
46
|
+
x.displayName = e.Content.displayName;
|
|
47
|
+
export {
|
|
48
|
+
v as Accordion,
|
|
49
|
+
x as AccordionContent,
|
|
50
|
+
f as AccordionItem,
|
|
51
|
+
p as AccordionTrigger
|
|
52
|
+
};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { ICellRendererParams } from 'ag-grid-community';
|
|
2
|
+
import { ActionButton } from './types';
|
|
3
|
+
export interface ActionsCellRendererProps extends ICellRendererParams {
|
|
4
|
+
/** Array of action button configurations */
|
|
5
|
+
actions: ActionButton[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* ActionsCellRenderer - Display-only renderer showing action buttons.
|
|
9
|
+
*
|
|
10
|
+
* Stateless: renders buttons from the `actions` array config.
|
|
11
|
+
* Each button's onClick receives the row data.
|
|
12
|
+
*
|
|
13
|
+
* Usage in colDef:
|
|
14
|
+
* ```ts
|
|
15
|
+
* {
|
|
16
|
+
* headerName: 'Actions',
|
|
17
|
+
* cellRenderer: ActionsCellRenderer,
|
|
18
|
+
* cellRendererParams: {
|
|
19
|
+
* actions: [
|
|
20
|
+
* { label: 'Edit', onClick: (data) => editRow(data), variant: 'outline', size: 'sm' },
|
|
21
|
+
* { label: 'Delete', onClick: (data) => deleteRow(data), variant: 'destructive', size: 'sm' },
|
|
22
|
+
* ]
|
|
23
|
+
* }
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export declare const ActionsCellRenderer: {
|
|
28
|
+
(props: ActionsCellRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
29
|
+
displayName: string;
|
|
30
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as r, jsxs as s, Fragment as n } from "react/jsx-runtime";
|
|
2
|
+
import { Button as m } from "../../button.js";
|
|
3
|
+
const t = (i) => {
|
|
4
|
+
const { actions: l, data: a } = i;
|
|
5
|
+
return !l || l.length === 0 ? null : /* @__PURE__ */ r("div", { className: "flex gap-2 items-center h-full w-full ag-cell-inner-padding", children: l.map((e, d) => /* @__PURE__ */ r(
|
|
6
|
+
m,
|
|
7
|
+
{
|
|
8
|
+
onClick: () => e.onClick(a),
|
|
9
|
+
variant: e.variant ?? "default",
|
|
10
|
+
size: e.size ?? "sm",
|
|
11
|
+
className: e.className,
|
|
12
|
+
disabled: e.disabled,
|
|
13
|
+
children: e.iconPlacement === "right" ? /* @__PURE__ */ s(n, { children: [
|
|
14
|
+
e.label,
|
|
15
|
+
e.icon
|
|
16
|
+
] }) : /* @__PURE__ */ s(n, { children: [
|
|
17
|
+
e.icon,
|
|
18
|
+
e.label
|
|
19
|
+
] })
|
|
20
|
+
},
|
|
21
|
+
d
|
|
22
|
+
)) });
|
|
23
|
+
};
|
|
24
|
+
t.displayName = "ActionsCellRenderer";
|
|
25
|
+
export {
|
|
26
|
+
t as ActionsCellRenderer
|
|
27
|
+
};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { ICellRendererParams } from 'ag-grid-community';
|
|
2
|
+
export interface BadgeCellRendererProps extends ICellRendererParams {
|
|
3
|
+
/** Badge variant: 'filled' | 'stroke' | 'subtle' (mapped to impact-nova variants) */
|
|
4
|
+
variant?: string;
|
|
5
|
+
variantField?: string;
|
|
6
|
+
/** Badge color: 'default' | 'info' | 'success' | 'warning' | 'error' (mapped to impact-nova colors) */
|
|
7
|
+
color?: string;
|
|
8
|
+
colorField?: string;
|
|
9
|
+
/** Whether to show an icon inside the badge */
|
|
10
|
+
isIcon?: boolean;
|
|
11
|
+
isIconField?: string;
|
|
12
|
+
/** Icon element to display inside the badge */
|
|
13
|
+
icon?: React.ReactNode;
|
|
14
|
+
iconField?: string;
|
|
15
|
+
/** Badge label (overrides cell value) */
|
|
16
|
+
badgeLabel?: string;
|
|
17
|
+
badgeLabelField?: string;
|
|
18
|
+
/** Badge size */
|
|
19
|
+
size?: 'small' | 'default';
|
|
20
|
+
sizeField?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* BadgeCellRenderer - Display-only renderer showing a Badge component.
|
|
24
|
+
*
|
|
25
|
+
* Stateless: derives everything from props and row data.
|
|
26
|
+
* Supports both static props and dynamic field-driven values.
|
|
27
|
+
*
|
|
28
|
+
* Usage in colDef:
|
|
29
|
+
* ```ts
|
|
30
|
+
* {
|
|
31
|
+
* field: 'status',
|
|
32
|
+
* cellRenderer: BadgeCellRenderer,
|
|
33
|
+
* cellRendererParams: {
|
|
34
|
+
* variant: 'subtle',
|
|
35
|
+
* colorField: 'statusColor', // reads color from rowData.statusColor
|
|
36
|
+
* badgeLabelField: 'statusLabel',
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare const BadgeCellRenderer: {
|
|
42
|
+
(props: BadgeCellRendererProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
displayName: string;
|
|
44
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as d, jsxs as s } from "react/jsx-runtime";
|
|
2
|
+
import { Badge as f } from "../../badge.js";
|
|
3
|
+
import { getFieldValue as a, mapBadgeColor as g, mapBadgeVariant as u } from "./types.js";
|
|
4
|
+
const x = (e) => {
|
|
5
|
+
const { data: l, value: n } = e, i = a(e.badgeLabelField, e.badgeLabel, l) ?? (n != null ? String(n) : void 0), c = a(e.variantField, e.variant, l) ?? "filled", o = a(e.colorField, e.color, l) ?? "default", r = a(e.isIconField, e.isIcon, l), t = a(e.iconField, e.icon, l), m = a(e.sizeField, e.size, l);
|
|
6
|
+
return i ? /* @__PURE__ */ d("div", { className: "w-full h-full flex items-center justify-start ag-cell-inner-padding", children: /* @__PURE__ */ d(
|
|
7
|
+
f,
|
|
8
|
+
{
|
|
9
|
+
variant: u(c),
|
|
10
|
+
color: g(o),
|
|
11
|
+
className: m === "small" ? "h-5 text-xs px-1.5 font-medium" : "font-medium",
|
|
12
|
+
children: r && t ? /* @__PURE__ */ s("span", { className: "flex items-center gap-1", children: [
|
|
13
|
+
t,
|
|
14
|
+
i
|
|
15
|
+
] }) : i
|
|
16
|
+
}
|
|
17
|
+
) }) : null;
|
|
18
|
+
};
|
|
19
|
+
x.displayName = "BadgeCellRenderer";
|
|
20
|
+
export {
|
|
21
|
+
x as BadgeCellRenderer
|
|
22
|
+
};
|