@portnet/ui 5.0.27 → 6.0.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/CHANGELOG.md +524 -0
- package/README.md +101 -38
- package/dist/index.d.ts +59 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +174 -203
- package/dist/index.js.map +1 -0
- package/dist/v2/__tests__/MobileRowCard.test.js +337 -0
- package/dist/v2/__tests__/MobileRowCard.test.js.map +1 -0
- package/dist/v2/__tests__/apiError.test.js +182 -0
- package/dist/v2/__tests__/apiError.test.js.map +1 -0
- package/dist/v2/__tests__/banned-patterns.test.js +272 -0
- package/dist/v2/__tests__/banned-patterns.test.js.map +1 -0
- package/dist/v2/__tests__/contrast-palette.test.js +225 -0
- package/dist/v2/__tests__/contrast-palette.test.js.map +1 -0
- package/dist/v2/__tests__/cssVariables.test.js +158 -0
- package/dist/v2/__tests__/cssVariables.test.js.map +1 -0
- package/dist/v2/__tests__/labels-merge.test.js +153 -0
- package/dist/v2/__tests__/labels-merge.test.js.map +1 -0
- package/dist/v2/__tests__/locale-fallback.test.js +111 -0
- package/dist/v2/__tests__/locale-fallback.test.js.map +1 -0
- package/dist/v2/__tests__/useFocusTrap.test.js +517 -0
- package/dist/v2/__tests__/useFocusTrap.test.js.map +1 -0
- package/dist/v2/components/Accordion.d.ts +56 -0
- package/dist/v2/components/Accordion.d.ts.map +1 -0
- package/dist/v2/components/Accordion.js +238 -0
- package/dist/v2/components/Accordion.js.map +1 -0
- package/dist/v2/components/ActionStrip.d.ts +67 -0
- package/dist/v2/components/ActionStrip.d.ts.map +1 -0
- package/dist/v2/components/ActionStrip.js +154 -0
- package/dist/v2/components/ActionStrip.js.map +1 -0
- package/dist/v2/components/Banner.d.ts +49 -0
- package/dist/v2/components/Banner.d.ts.map +1 -0
- package/dist/v2/components/Banner.js +183 -0
- package/dist/v2/components/Banner.js.map +1 -0
- package/dist/v2/components/Busy.d.ts +18 -0
- package/dist/v2/components/Busy.d.ts.map +1 -0
- package/dist/v2/components/Busy.js +104 -0
- package/dist/v2/components/Busy.js.map +1 -0
- package/dist/v2/components/Button.d.ts +36 -0
- package/dist/v2/components/Button.d.ts.map +1 -0
- package/dist/v2/components/Button.js +122 -0
- package/dist/v2/components/Button.js.map +1 -0
- package/dist/v2/components/CategoryTag.d.ts +45 -0
- package/dist/v2/components/CategoryTag.d.ts.map +1 -0
- package/dist/v2/components/CategoryTag.js +89 -0
- package/dist/v2/components/CategoryTag.js.map +1 -0
- package/dist/v2/components/Checkbox.d.ts +59 -0
- package/dist/v2/components/Checkbox.d.ts.map +1 -0
- package/dist/v2/components/Checkbox.js +134 -0
- package/dist/v2/components/Checkbox.js.map +1 -0
- package/dist/v2/components/Chip.d.ts +48 -0
- package/dist/v2/components/Chip.d.ts.map +1 -0
- package/dist/v2/components/Chip.js +131 -0
- package/dist/v2/components/Chip.js.map +1 -0
- package/dist/v2/components/Combobox.d.ts +134 -0
- package/dist/v2/components/Combobox.d.ts.map +1 -0
- package/dist/v2/components/Combobox.js +399 -0
- package/dist/v2/components/Combobox.js.map +1 -0
- package/dist/v2/components/CommandPalette.d.ts +36 -0
- package/dist/v2/components/CommandPalette.d.ts.map +1 -0
- package/dist/v2/components/CommandPalette.js +672 -0
- package/dist/v2/components/CommandPalette.js.map +1 -0
- package/dist/v2/components/ConfirmDialog.d.ts +23 -0
- package/dist/v2/components/ConfirmDialog.d.ts.map +1 -0
- package/dist/v2/components/ConfirmDialog.js +150 -0
- package/dist/v2/components/ConfirmDialog.js.map +1 -0
- package/dist/v2/components/DatePicker.d.ts +21 -0
- package/dist/v2/components/DatePicker.d.ts.map +1 -0
- package/dist/v2/components/DatePicker.js +207 -0
- package/dist/v2/components/DatePicker.js.map +1 -0
- package/dist/v2/components/DateRangePicker.d.ts +81 -0
- package/dist/v2/components/DateRangePicker.d.ts.map +1 -0
- package/dist/v2/components/DateRangePicker.js +295 -0
- package/dist/v2/components/DateRangePicker.js.map +1 -0
- package/dist/v2/components/DateTimePicker.d.ts +21 -0
- package/dist/v2/components/DateTimePicker.d.ts.map +1 -0
- package/dist/v2/components/DateTimePicker.js +189 -0
- package/dist/v2/components/DateTimePicker.js.map +1 -0
- package/dist/v2/components/Drawer.d.ts +34 -0
- package/dist/v2/components/Drawer.d.ts.map +1 -0
- package/dist/v2/components/Drawer.js +339 -0
- package/dist/v2/components/Drawer.js.map +1 -0
- package/dist/v2/components/Dropzone.d.ts +150 -0
- package/dist/v2/components/Dropzone.d.ts.map +1 -0
- package/dist/v2/components/Dropzone.js +539 -0
- package/dist/v2/components/Dropzone.js.map +1 -0
- package/dist/v2/components/EmptyState.d.ts +36 -0
- package/dist/v2/components/EmptyState.d.ts.map +1 -0
- package/dist/v2/components/EmptyState.js +112 -0
- package/dist/v2/components/EmptyState.js.map +1 -0
- package/dist/v2/components/FavoriteToggle.d.ts +22 -0
- package/dist/v2/components/FavoriteToggle.d.ts.map +1 -0
- package/dist/v2/components/FavoriteToggle.js +134 -0
- package/dist/v2/components/FavoriteToggle.js.map +1 -0
- package/dist/v2/components/Field.d.ts +58 -0
- package/dist/v2/components/Field.d.ts.map +1 -0
- package/dist/v2/components/Field.js +186 -0
- package/dist/v2/components/Field.js.map +1 -0
- package/dist/v2/components/FieldHelp.d.ts +54 -0
- package/dist/v2/components/FieldHelp.d.ts.map +1 -0
- package/dist/v2/components/FieldHelp.js +209 -0
- package/dist/v2/components/FieldHelp.js.map +1 -0
- package/dist/v2/components/FilterTab.d.ts +35 -0
- package/dist/v2/components/FilterTab.d.ts.map +1 -0
- package/dist/v2/components/FilterTab.js +144 -0
- package/dist/v2/components/FilterTab.js.map +1 -0
- package/dist/v2/components/ForbiddenPage.d.ts +40 -0
- package/dist/v2/components/ForbiddenPage.d.ts.map +1 -0
- package/dist/v2/components/ForbiddenPage.js +81 -0
- package/dist/v2/components/ForbiddenPage.js.map +1 -0
- package/dist/v2/components/FormGrid.d.ts +76 -0
- package/dist/v2/components/FormGrid.d.ts.map +1 -0
- package/dist/v2/components/FormGrid.js +177 -0
- package/dist/v2/components/FormGrid.js.map +1 -0
- package/dist/v2/components/FormikDisplay.d.ts +38 -0
- package/dist/v2/components/FormikDisplay.d.ts.map +1 -0
- package/dist/v2/components/FormikDisplay.js +125 -0
- package/dist/v2/components/FormikDisplay.js.map +1 -0
- package/dist/v2/components/Input.d.ts +62 -0
- package/dist/v2/components/Input.d.ts.map +1 -0
- package/dist/v2/components/Input.js +115 -0
- package/dist/v2/components/Input.js.map +1 -0
- package/dist/v2/components/KPICard.d.ts +22 -0
- package/dist/v2/components/KPICard.d.ts.map +1 -0
- package/dist/v2/components/KPICard.js +205 -0
- package/dist/v2/components/KPICard.js.map +1 -0
- package/dist/v2/components/KV.d.ts +25 -0
- package/dist/v2/components/KV.d.ts.map +1 -0
- package/dist/v2/components/KV.js +82 -0
- package/dist/v2/components/KV.js.map +1 -0
- package/dist/v2/components/KVGrid.d.ts +44 -0
- package/dist/v2/components/KVGrid.d.ts.map +1 -0
- package/dist/v2/components/KVGrid.js +73 -0
- package/dist/v2/components/KVGrid.js.map +1 -0
- package/dist/v2/components/Layout.d.ts +78 -0
- package/dist/v2/components/Layout.d.ts.map +1 -0
- package/dist/v2/components/Layout.js +284 -0
- package/dist/v2/components/Layout.js.map +1 -0
- package/dist/v2/components/MobileRowCard.d.ts +63 -0
- package/dist/v2/components/MobileRowCard.d.ts.map +1 -0
- package/dist/v2/components/MobileRowCard.js +321 -0
- package/dist/v2/components/MobileRowCard.js.map +1 -0
- package/dist/v2/components/Modal.d.ts +21 -0
- package/dist/v2/components/Modal.d.ts.map +1 -0
- package/dist/v2/components/Modal.js +281 -0
- package/dist/v2/components/Modal.js.map +1 -0
- package/dist/v2/components/NetworkErrorPage.d.ts +11 -0
- package/dist/v2/components/NetworkErrorPage.d.ts.map +1 -0
- package/dist/v2/components/NetworkErrorPage.js +86 -0
- package/dist/v2/components/NetworkErrorPage.js.map +1 -0
- package/dist/v2/components/NotFoundPage.d.ts +9 -0
- package/dist/v2/components/NotFoundPage.d.ts.map +1 -0
- package/dist/v2/components/NotFoundPage.js +66 -0
- package/dist/v2/components/NotFoundPage.js.map +1 -0
- package/dist/v2/components/NumberInput.d.ts +83 -0
- package/dist/v2/components/NumberInput.d.ts.map +1 -0
- package/dist/v2/components/NumberInput.js +316 -0
- package/dist/v2/components/NumberInput.js.map +1 -0
- package/dist/v2/components/OverflowMenu.d.ts +55 -0
- package/dist/v2/components/OverflowMenu.d.ts.map +1 -0
- package/dist/v2/components/OverflowMenu.js +196 -0
- package/dist/v2/components/OverflowMenu.js.map +1 -0
- package/dist/v2/components/PdfViewer.d.ts +56 -0
- package/dist/v2/components/PdfViewer.d.ts.map +1 -0
- package/dist/v2/components/PdfViewer.js +132 -0
- package/dist/v2/components/PdfViewer.js.map +1 -0
- package/dist/v2/components/ProgressBar.d.ts +53 -0
- package/dist/v2/components/ProgressBar.d.ts.map +1 -0
- package/dist/v2/components/ProgressBar.js +209 -0
- package/dist/v2/components/ProgressBar.js.map +1 -0
- package/dist/v2/components/Radio.d.ts +78 -0
- package/dist/v2/components/Radio.d.ts.map +1 -0
- package/dist/v2/components/Radio.js +238 -0
- package/dist/v2/components/Radio.js.map +1 -0
- package/dist/v2/components/SectionHeader.d.ts +53 -0
- package/dist/v2/components/SectionHeader.d.ts.map +1 -0
- package/dist/v2/components/SectionHeader.js +140 -0
- package/dist/v2/components/SectionHeader.js.map +1 -0
- package/dist/v2/components/Segmented.d.ts +61 -0
- package/dist/v2/components/Segmented.d.ts.map +1 -0
- package/dist/v2/components/Segmented.js +261 -0
- package/dist/v2/components/Segmented.js.map +1 -0
- package/dist/v2/components/Select.d.ts +72 -0
- package/dist/v2/components/Select.d.ts.map +1 -0
- package/dist/v2/components/Select.js +382 -0
- package/dist/v2/components/Select.js.map +1 -0
- package/dist/v2/components/ServerErrorPage.d.ts +11 -0
- package/dist/v2/components/ServerErrorPage.d.ts.map +1 -0
- package/dist/v2/components/ServerErrorPage.js +82 -0
- package/dist/v2/components/ServerErrorPage.js.map +1 -0
- package/dist/v2/components/Skeleton.d.ts +56 -0
- package/dist/v2/components/Skeleton.d.ts.map +1 -0
- package/dist/v2/components/Skeleton.js +281 -0
- package/dist/v2/components/Skeleton.js.map +1 -0
- package/dist/v2/components/SkipLink.d.ts +30 -0
- package/dist/v2/components/SkipLink.d.ts.map +1 -0
- package/dist/v2/components/SkipLink.js +58 -0
- package/dist/v2/components/SkipLink.js.map +1 -0
- package/dist/v2/components/Spinner.d.ts +40 -0
- package/dist/v2/components/Spinner.d.ts.map +1 -0
- package/dist/v2/components/Spinner.js +76 -0
- package/dist/v2/components/Spinner.js.map +1 -0
- package/dist/v2/components/Status.d.ts +42 -0
- package/dist/v2/components/Status.d.ts.map +1 -0
- package/dist/v2/components/Status.js +71 -0
- package/dist/v2/components/Status.js.map +1 -0
- package/dist/v2/components/Stepper.d.ts +136 -0
- package/dist/v2/components/Stepper.d.ts.map +1 -0
- package/dist/v2/components/Stepper.js +415 -0
- package/dist/v2/components/Stepper.js.map +1 -0
- package/dist/v2/components/Switch.d.ts +30 -0
- package/dist/v2/components/Switch.d.ts.map +1 -0
- package/dist/v2/components/Switch.js +136 -0
- package/dist/v2/components/Switch.js.map +1 -0
- package/dist/v2/components/Tabs.d.ts +49 -0
- package/dist/v2/components/Tabs.d.ts.map +1 -0
- package/dist/v2/components/Tabs.js +160 -0
- package/dist/v2/components/Tabs.js.map +1 -0
- package/dist/v2/components/TelInput.d.ts +33 -0
- package/dist/v2/components/TelInput.d.ts.map +1 -0
- package/dist/v2/components/TelInput.js +282 -0
- package/dist/v2/components/TelInput.js.map +1 -0
- package/dist/v2/components/Textarea.d.ts +23 -0
- package/dist/v2/components/Textarea.d.ts.map +1 -0
- package/dist/v2/components/Textarea.js +80 -0
- package/dist/v2/components/Textarea.js.map +1 -0
- package/dist/v2/components/TimePicker.d.ts +21 -0
- package/dist/v2/components/TimePicker.d.ts.map +1 -0
- package/dist/v2/components/TimePicker.js +141 -0
- package/dist/v2/components/TimePicker.js.map +1 -0
- package/dist/v2/components/Toast.d.ts +32 -0
- package/dist/v2/components/Toast.d.ts.map +1 -0
- package/dist/v2/components/Toast.js +384 -0
- package/dist/v2/components/Toast.js.map +1 -0
- package/dist/v2/components/Tooltip.d.ts +9 -0
- package/dist/v2/components/Tooltip.d.ts.map +1 -0
- package/dist/v2/components/Tooltip.js +169 -0
- package/dist/v2/components/Tooltip.js.map +1 -0
- package/dist/v2/components/_ErrorPageBody.d.ts +48 -0
- package/dist/v2/components/_ErrorPageBody.d.ts.map +1 -0
- package/dist/v2/components/_ErrorPageBody.js +96 -0
- package/dist/v2/components/_ErrorPageBody.js.map +1 -0
- package/dist/v2/components/_pickerShared.d.ts +47 -0
- package/dist/v2/components/_pickerShared.d.ts.map +1 -0
- package/dist/v2/components/_pickerShared.js +68 -0
- package/dist/v2/components/_pickerShared.js.map +1 -0
- package/dist/v2/components/index.d.ts +83 -0
- package/dist/v2/components/index.d.ts.map +1 -0
- package/dist/v2/components/index.js +477 -0
- package/dist/v2/components/index.js.map +1 -0
- package/dist/v2/hooks/index.d.ts +11 -0
- package/dist/v2/hooks/index.d.ts.map +1 -0
- package/dist/v2/hooks/index.js +85 -0
- package/dist/v2/hooks/index.js.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.d.ts +22 -0
- package/dist/v2/hooks/useDelayedFlag.d.ts.map +1 -0
- package/dist/v2/hooks/useDelayedFlag.js +60 -0
- package/dist/v2/hooks/useDelayedFlag.js.map +1 -0
- package/dist/v2/hooks/useDensity.d.ts +23 -0
- package/dist/v2/hooks/useDensity.d.ts.map +1 -0
- package/dist/v2/hooks/useDensity.js +124 -0
- package/dist/v2/hooks/useDensity.js.map +1 -0
- package/dist/v2/hooks/useFocusFirstError.d.ts +121 -0
- package/dist/v2/hooks/useFocusFirstError.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusFirstError.js +203 -0
- package/dist/v2/hooks/useFocusFirstError.js.map +1 -0
- package/dist/v2/hooks/useFocusTrap.d.ts +3 -0
- package/dist/v2/hooks/useFocusTrap.d.ts.map +1 -0
- package/dist/v2/hooks/useFocusTrap.js +207 -0
- package/dist/v2/hooks/useFocusTrap.js.map +1 -0
- package/dist/v2/hooks/useFormAutoSave.d.ts +42 -0
- package/dist/v2/hooks/useFormAutoSave.d.ts.map +1 -0
- package/dist/v2/hooks/useFormAutoSave.js +186 -0
- package/dist/v2/hooks/useFormAutoSave.js.map +1 -0
- package/dist/v2/hooks/useFormCompletionProgress.d.ts +52 -0
- package/dist/v2/hooks/useFormCompletionProgress.d.ts.map +1 -0
- package/dist/v2/hooks/useFormCompletionProgress.js +136 -0
- package/dist/v2/hooks/useFormCompletionProgress.js.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.d.ts +31 -0
- package/dist/v2/hooks/useResolvedDensity.d.ts.map +1 -0
- package/dist/v2/hooks/useResolvedDensity.js +50 -0
- package/dist/v2/hooks/useResolvedDensity.js.map +1 -0
- package/dist/v2/hooks/useSortedRows.d.ts +25 -0
- package/dist/v2/hooks/useSortedRows.d.ts.map +1 -0
- package/dist/v2/hooks/useSortedRows.js +38 -0
- package/dist/v2/hooks/useSortedRows.js.map +1 -0
- package/dist/v2/hooks/useTabLoading.d.ts +39 -0
- package/dist/v2/hooks/useTabLoading.d.ts.map +1 -0
- package/dist/v2/hooks/useTabLoading.js +85 -0
- package/dist/v2/hooks/useTabLoading.js.map +1 -0
- package/dist/v2/index.d.ts +115 -0
- package/dist/v2/index.d.ts.map +1 -0
- package/dist/v2/index.js +1127 -0
- package/dist/v2/index.js.map +1 -0
- package/dist/v2/modalContext.d.ts +96 -0
- package/dist/v2/modalContext.d.ts.map +1 -0
- package/dist/v2/modalContext.js +113 -0
- package/dist/v2/modalContext.js.map +1 -0
- package/dist/v2/models/favorite.d.ts +14 -0
- package/dist/v2/models/favorite.d.ts.map +1 -0
- package/dist/v2/models/favorite.js +6 -0
- package/dist/v2/models/favorite.js.map +1 -0
- package/dist/v2/models/index.d.ts +11 -0
- package/dist/v2/models/index.d.ts.map +1 -0
- package/dist/v2/models/index.js +50 -0
- package/dist/v2/models/index.js.map +1 -0
- package/dist/v2/models/personalization.d.ts +65 -0
- package/dist/v2/models/personalization.d.ts.map +1 -0
- package/dist/v2/models/personalization.js +6 -0
- package/dist/v2/models/personalization.js.map +1 -0
- package/dist/v2/models/referentiel.d.ts +67 -0
- package/dist/v2/models/referentiel.d.ts.map +1 -0
- package/dist/v2/models/referentiel.js +6 -0
- package/dist/v2/models/referentiel.js.map +1 -0
- package/dist/v2/models/savedFilter.d.ts +22 -0
- package/dist/v2/models/savedFilter.d.ts.map +1 -0
- package/dist/v2/models/savedFilter.js +6 -0
- package/dist/v2/models/savedFilter.js.map +1 -0
- package/dist/v2/patterns/ActionBar.d.ts +137 -0
- package/dist/v2/patterns/ActionBar.d.ts.map +1 -0
- package/dist/v2/patterns/ActionBar.js +601 -0
- package/dist/v2/patterns/ActionBar.js.map +1 -0
- package/dist/v2/patterns/BulkActionBar.d.ts +63 -0
- package/dist/v2/patterns/BulkActionBar.d.ts.map +1 -0
- package/dist/v2/patterns/BulkActionBar.js +153 -0
- package/dist/v2/patterns/BulkActionBar.js.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts +62 -0
- package/dist/v2/patterns/CollapsibleDataGrid.d.ts.map +1 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js +306 -0
- package/dist/v2/patterns/CollapsibleDataGrid.js.map +1 -0
- package/dist/v2/patterns/ColumnsToggle.d.ts +55 -0
- package/dist/v2/patterns/ColumnsToggle.d.ts.map +1 -0
- package/dist/v2/patterns/ColumnsToggle.js +314 -0
- package/dist/v2/patterns/ColumnsToggle.js.map +1 -0
- package/dist/v2/patterns/DataGrid.d.ts +7 -0
- package/dist/v2/patterns/DataGrid.d.ts.map +1 -0
- package/dist/v2/patterns/DataGrid.js +834 -0
- package/dist/v2/patterns/DataGrid.js.map +1 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts +68 -0
- package/dist/v2/patterns/DataGridSettingsMenu.d.ts.map +1 -0
- package/dist/v2/patterns/DataGridSettingsMenu.js +381 -0
- package/dist/v2/patterns/DataGridSettingsMenu.js.map +1 -0
- package/dist/v2/patterns/DataGridToolbar.d.ts +81 -0
- package/dist/v2/patterns/DataGridToolbar.d.ts.map +1 -0
- package/dist/v2/patterns/DataGridToolbar.js +255 -0
- package/dist/v2/patterns/DataGridToolbar.js.map +1 -0
- package/dist/v2/patterns/DataGridVirtualized.d.ts +76 -0
- package/dist/v2/patterns/DataGridVirtualized.d.ts.map +1 -0
- package/dist/v2/patterns/DataGridVirtualized.js +528 -0
- package/dist/v2/patterns/DataGridVirtualized.js.map +1 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts +46 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.d.ts.map +1 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js +77 -0
- package/dist/v2/patterns/DeleteResourceConfirmDialog.js.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts +72 -0
- package/dist/v2/patterns/FavoriteColumn.d.ts.map +1 -0
- package/dist/v2/patterns/FavoriteColumn.js +171 -0
- package/dist/v2/patterns/FavoriteColumn.js.map +1 -0
- package/dist/v2/patterns/FavoritesFilter.d.ts +51 -0
- package/dist/v2/patterns/FavoritesFilter.d.ts.map +1 -0
- package/dist/v2/patterns/FavoritesFilter.js +97 -0
- package/dist/v2/patterns/FavoritesFilter.js.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.d.ts +39 -0
- package/dist/v2/patterns/FormErrorSummary.d.ts.map +1 -0
- package/dist/v2/patterns/FormErrorSummary.js +111 -0
- package/dist/v2/patterns/FormErrorSummary.js.map +1 -0
- package/dist/v2/patterns/FormPageShell.d.ts +55 -0
- package/dist/v2/patterns/FormPageShell.d.ts.map +1 -0
- package/dist/v2/patterns/FormPageShell.js +133 -0
- package/dist/v2/patterns/FormPageShell.js.map +1 -0
- package/dist/v2/patterns/FormSection.d.ts +53 -0
- package/dist/v2/patterns/FormSection.d.ts.map +1 -0
- package/dist/v2/patterns/FormSection.js +162 -0
- package/dist/v2/patterns/FormSection.js.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts +51 -0
- package/dist/v2/patterns/FormikCheckboxGroup.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCheckboxGroup.js +117 -0
- package/dist/v2/patterns/FormikCheckboxGroup.js.map +1 -0
- package/dist/v2/patterns/FormikCombobox.d.ts +43 -0
- package/dist/v2/patterns/FormikCombobox.d.ts.map +1 -0
- package/dist/v2/patterns/FormikCombobox.js +121 -0
- package/dist/v2/patterns/FormikCombobox.js.map +1 -0
- package/dist/v2/patterns/FormikDatePicker.d.ts +87 -0
- package/dist/v2/patterns/FormikDatePicker.d.ts.map +1 -0
- package/dist/v2/patterns/FormikDatePicker.js +177 -0
- package/dist/v2/patterns/FormikDatePicker.js.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.d.ts +59 -0
- package/dist/v2/patterns/FormikErrorFocus.d.ts.map +1 -0
- package/dist/v2/patterns/FormikErrorFocus.js +83 -0
- package/dist/v2/patterns/FormikErrorFocus.js.map +1 -0
- package/dist/v2/patterns/FormikFile.d.ts +43 -0
- package/dist/v2/patterns/FormikFile.d.ts.map +1 -0
- package/dist/v2/patterns/FormikFile.js +156 -0
- package/dist/v2/patterns/FormikFile.js.map +1 -0
- package/dist/v2/patterns/FormikInput.d.ts +37 -0
- package/dist/v2/patterns/FormikInput.d.ts.map +1 -0
- package/dist/v2/patterns/FormikInput.js +87 -0
- package/dist/v2/patterns/FormikInput.js.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts +33 -0
- package/dist/v2/patterns/FormikReferentielField.d.ts.map +1 -0
- package/dist/v2/patterns/FormikReferentielField.js +124 -0
- package/dist/v2/patterns/FormikReferentielField.js.map +1 -0
- package/dist/v2/patterns/FormikSelect.d.ts +40 -0
- package/dist/v2/patterns/FormikSelect.d.ts.map +1 -0
- package/dist/v2/patterns/FormikSelect.js +139 -0
- package/dist/v2/patterns/FormikSelect.js.map +1 -0
- package/dist/v2/patterns/FormikTextarea.d.ts +31 -0
- package/dist/v2/patterns/FormikTextarea.d.ts.map +1 -0
- package/dist/v2/patterns/FormikTextarea.js +84 -0
- package/dist/v2/patterns/FormikTextarea.js.map +1 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts +44 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.d.ts.map +1 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.js +207 -0
- package/dist/v2/patterns/KeyboardShortcutsHelp.js.map +1 -0
- package/dist/v2/patterns/NetworkErrorBanner.d.ts +26 -0
- package/dist/v2/patterns/NetworkErrorBanner.d.ts.map +1 -0
- package/dist/v2/patterns/NetworkErrorBanner.js +82 -0
- package/dist/v2/patterns/NetworkErrorBanner.js.map +1 -0
- package/dist/v2/patterns/PageContent.d.ts +40 -0
- package/dist/v2/patterns/PageContent.d.ts.map +1 -0
- package/dist/v2/patterns/PageContent.js +69 -0
- package/dist/v2/patterns/PageContent.js.map +1 -0
- package/dist/v2/patterns/ReferentielField.d.ts +118 -0
- package/dist/v2/patterns/ReferentielField.d.ts.map +1 -0
- package/dist/v2/patterns/ReferentielField.js +617 -0
- package/dist/v2/patterns/ReferentielField.js.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.d.ts +68 -0
- package/dist/v2/patterns/SaveFilterDialog.d.ts.map +1 -0
- package/dist/v2/patterns/SaveFilterDialog.js +203 -0
- package/dist/v2/patterns/SaveFilterDialog.js.map +1 -0
- package/dist/v2/patterns/SavedFiltersMenu.d.ts +74 -0
- package/dist/v2/patterns/SavedFiltersMenu.d.ts.map +1 -0
- package/dist/v2/patterns/SavedFiltersMenu.js +412 -0
- package/dist/v2/patterns/SavedFiltersMenu.js.map +1 -0
- package/dist/v2/patterns/SkeletonPageShell.d.ts +76 -0
- package/dist/v2/patterns/SkeletonPageShell.d.ts.map +1 -0
- package/dist/v2/patterns/SkeletonPageShell.js +347 -0
- package/dist/v2/patterns/SkeletonPageShell.js.map +1 -0
- package/dist/v2/patterns/SortableHeader.d.ts +47 -0
- package/dist/v2/patterns/SortableHeader.d.ts.map +1 -0
- package/dist/v2/patterns/SortableHeader.js +193 -0
- package/dist/v2/patterns/SortableHeader.js.map +1 -0
- package/dist/v2/patterns/Tour.d.ts +55 -0
- package/dist/v2/patterns/Tour.d.ts.map +1 -0
- package/dist/v2/patterns/Tour.js +473 -0
- package/dist/v2/patterns/Tour.js.map +1 -0
- package/dist/v2/patterns/_dataGridShared.d.ts +125 -0
- package/dist/v2/patterns/_dataGridShared.d.ts.map +1 -0
- package/dist/v2/patterns/_dataGridShared.js +406 -0
- package/dist/v2/patterns/_dataGridShared.js.map +1 -0
- package/dist/v2/patterns/_sort.d.ts +22 -0
- package/dist/v2/patterns/_sort.d.ts.map +1 -0
- package/dist/v2/patterns/_sort.js +118 -0
- package/dist/v2/patterns/_sort.js.map +1 -0
- package/dist/v2/patterns/_useColumnReorder.d.ts +69 -0
- package/dist/v2/patterns/_useColumnReorder.d.ts.map +1 -0
- package/dist/v2/patterns/_useColumnReorder.js +264 -0
- package/dist/v2/patterns/_useColumnReorder.js.map +1 -0
- package/dist/v2/patterns/_useColumnResize.d.ts +49 -0
- package/dist/v2/patterns/_useColumnResize.d.ts.map +1 -0
- package/dist/v2/patterns/_useColumnResize.js +198 -0
- package/dist/v2/patterns/_useColumnResize.js.map +1 -0
- package/dist/v2/patterns/index.d.ts +62 -0
- package/dist/v2/patterns/index.d.ts.map +1 -0
- package/dist/v2/patterns/index.js +246 -0
- package/dist/v2/patterns/index.js.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts +80 -0
- package/dist/v2/personalization/PersonalizationProvider.d.ts.map +1 -0
- package/dist/v2/personalization/PersonalizationProvider.js +177 -0
- package/dist/v2/personalization/PersonalizationProvider.js.map +1 -0
- package/dist/v2/personalization/adapters/_storageKey.d.ts +35 -0
- package/dist/v2/personalization/adapters/_storageKey.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/_storageKey.js +69 -0
- package/dist/v2/personalization/adapters/_storageKey.js.map +1 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts +31 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js +128 -0
- package/dist/v2/personalization/adapters/createLocalStorageAdapter.js.map +1 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts +25 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.js +76 -0
- package/dist/v2/personalization/adapters/createMemoryAdapter.js.map +1 -0
- package/dist/v2/personalization/adapters/index.d.ts +10 -0
- package/dist/v2/personalization/adapters/index.d.ts.map +1 -0
- package/dist/v2/personalization/adapters/index.js +21 -0
- package/dist/v2/personalization/adapters/index.js.map +1 -0
- package/dist/v2/personalization/capabilities/favorites.d.ts +53 -0
- package/dist/v2/personalization/capabilities/favorites.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/favorites.js +223 -0
- package/dist/v2/personalization/capabilities/favorites.js.map +1 -0
- package/dist/v2/personalization/capabilities/favoritesView.d.ts +58 -0
- package/dist/v2/personalization/capabilities/favoritesView.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/favoritesView.js +121 -0
- package/dist/v2/personalization/capabilities/favoritesView.js.map +1 -0
- package/dist/v2/personalization/capabilities/index.d.ts +16 -0
- package/dist/v2/personalization/capabilities/index.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/index.js +69 -0
- package/dist/v2/personalization/capabilities/index.js.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.d.ts +61 -0
- package/dist/v2/personalization/capabilities/savedFilters.d.ts.map +1 -0
- package/dist/v2/personalization/capabilities/savedFilters.js +297 -0
- package/dist/v2/personalization/capabilities/savedFilters.js.map +1 -0
- package/dist/v2/personalization/createPersonalizationStore.d.ts +76 -0
- package/dist/v2/personalization/createPersonalizationStore.d.ts.map +1 -0
- package/dist/v2/personalization/createPersonalizationStore.js +475 -0
- package/dist/v2/personalization/createPersonalizationStore.js.map +1 -0
- package/dist/v2/personalization/index.d.ts +33 -0
- package/dist/v2/personalization/index.d.ts.map +1 -0
- package/dist/v2/personalization/index.js +111 -0
- package/dist/v2/personalization/index.js.map +1 -0
- package/dist/v2/personalization/personalizationContext.d.ts +78 -0
- package/dist/v2/personalization/personalizationContext.d.ts.map +1 -0
- package/dist/v2/personalization/personalizationContext.js +121 -0
- package/dist/v2/personalization/personalizationContext.js.map +1 -0
- package/dist/v2/personalization/schema.d.ts +60 -0
- package/dist/v2/personalization/schema.d.ts.map +1 -0
- package/dist/v2/personalization/schema.js +102 -0
- package/dist/v2/personalization/schema.js.map +1 -0
- package/dist/v2/personalization/types.d.ts +81 -0
- package/dist/v2/personalization/types.d.ts.map +1 -0
- package/dist/v2/personalization/types.js +6 -0
- package/dist/v2/personalization/types.js.map +1 -0
- package/dist/v2/referentiel/ReferentielProvider.d.ts +53 -0
- package/dist/v2/referentiel/ReferentielProvider.d.ts.map +1 -0
- package/dist/v2/referentiel/ReferentielProvider.js +94 -0
- package/dist/v2/referentiel/ReferentielProvider.js.map +1 -0
- package/dist/v2/referentiel/index.d.ts +18 -0
- package/dist/v2/referentiel/index.d.ts.map +1 -0
- package/dist/v2/referentiel/index.js +44 -0
- package/dist/v2/referentiel/index.js.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.d.ts +15 -0
- package/dist/v2/referentiel/useReferentielClient.d.ts.map +1 -0
- package/dist/v2/referentiel/useReferentielClient.js +46 -0
- package/dist/v2/referentiel/useReferentielClient.js.map +1 -0
- package/dist/v2/referentiel/useReferentielOptions.d.ts +40 -0
- package/dist/v2/referentiel/useReferentielOptions.d.ts.map +1 -0
- package/dist/v2/referentiel/useReferentielOptions.js +177 -0
- package/dist/v2/referentiel/useReferentielOptions.js.map +1 -0
- package/dist/v2/referentiel/useReferentielSearch.d.ts +76 -0
- package/dist/v2/referentiel/useReferentielSearch.d.ts.map +1 -0
- package/dist/v2/referentiel/useReferentielSearch.js +140 -0
- package/dist/v2/referentiel/useReferentielSearch.js.map +1 -0
- package/dist/v2/styles/base.css +425 -0
- package/dist/v2/styles/css.d.ts +10 -0
- package/dist/v2/styles/index.d.ts +12 -0
- package/dist/v2/styles/index.d.ts.map +1 -0
- package/dist/v2/styles/index.js +4 -0
- package/dist/v2/styles/index.js.map +1 -0
- package/dist/v2/theme/_brand.d.ts +29 -0
- package/dist/v2/theme/_brand.d.ts.map +1 -0
- package/dist/v2/theme/_brand.js +69 -0
- package/dist/v2/theme/_brand.js.map +1 -0
- package/dist/v2/theme/_brandSecondary.d.ts +26 -0
- package/dist/v2/theme/_brandSecondary.d.ts.map +1 -0
- package/dist/v2/theme/_brandSecondary.js +65 -0
- package/dist/v2/theme/_brandSecondary.js.map +1 -0
- package/dist/v2/theme/createPortnetTheme.d.ts +50 -0
- package/dist/v2/theme/createPortnetTheme.d.ts.map +1 -0
- package/dist/v2/theme/createPortnetTheme.js +529 -0
- package/dist/v2/theme/createPortnetTheme.js.map +1 -0
- package/dist/v2/theme/cssVariables.d.ts +41 -0
- package/dist/v2/theme/cssVariables.d.ts.map +1 -0
- package/dist/v2/theme/cssVariables.js +205 -0
- package/dist/v2/theme/cssVariables.js.map +1 -0
- package/dist/v2/theme/index.d.ts +33 -0
- package/dist/v2/theme/index.d.ts.map +1 -0
- package/dist/v2/theme/index.js +60 -0
- package/dist/v2/theme/index.js.map +1 -0
- package/dist/v2/tokens/breakpoints.d.ts +74 -0
- package/dist/v2/tokens/breakpoints.d.ts.map +1 -0
- package/dist/v2/tokens/breakpoints.js +114 -0
- package/dist/v2/tokens/breakpoints.js.map +1 -0
- package/dist/v2/tokens/colors.d.ts +228 -0
- package/dist/v2/tokens/colors.d.ts.map +1 -0
- package/dist/v2/tokens/colors.js +225 -0
- package/dist/v2/tokens/colors.js.map +1 -0
- package/dist/v2/tokens/density.d.ts +142 -0
- package/dist/v2/tokens/density.d.ts.map +1 -0
- package/dist/v2/tokens/density.js +111 -0
- package/dist/v2/tokens/density.js.map +1 -0
- package/dist/v2/tokens/index.d.ts +556 -0
- package/dist/v2/tokens/index.d.ts.map +1 -0
- package/dist/v2/tokens/index.js +313 -0
- package/dist/v2/tokens/index.js.map +1 -0
- package/dist/v2/tokens/motion.d.ts +85 -0
- package/dist/v2/tokens/motion.d.ts.map +1 -0
- package/dist/v2/tokens/motion.js +94 -0
- package/dist/v2/tokens/motion.js.map +1 -0
- package/dist/v2/tokens/radius.d.ts +18 -0
- package/dist/v2/tokens/radius.d.ts.map +1 -0
- package/dist/v2/tokens/radius.js +28 -0
- package/dist/v2/tokens/radius.js.map +1 -0
- package/dist/v2/tokens/shadows.d.ts +25 -0
- package/dist/v2/tokens/shadows.d.ts.map +1 -0
- package/dist/v2/tokens/shadows.js +46 -0
- package/dist/v2/tokens/shadows.js.map +1 -0
- package/dist/v2/tokens/spacing.d.ts +38 -0
- package/dist/v2/tokens/spacing.d.ts.map +1 -0
- package/dist/v2/tokens/spacing.js +57 -0
- package/dist/v2/tokens/spacing.js.map +1 -0
- package/dist/v2/tokens/state.d.ts +40 -0
- package/dist/v2/tokens/state.d.ts.map +1 -0
- package/dist/v2/tokens/state.js +47 -0
- package/dist/v2/tokens/state.js.map +1 -0
- package/dist/v2/tokens/statusPalette.d.ts +54 -0
- package/dist/v2/tokens/statusPalette.d.ts.map +1 -0
- package/dist/v2/tokens/statusPalette.js +72 -0
- package/dist/v2/tokens/statusPalette.js.map +1 -0
- package/dist/v2/tokens/tokens.json +153 -0
- package/dist/v2/tokens/typography.d.ts +206 -0
- package/dist/v2/tokens/typography.d.ts.map +1 -0
- package/dist/v2/tokens/typography.js +155 -0
- package/dist/v2/tokens/typography.js.map +1 -0
- package/dist/v2/tokens/zIndex.d.ts +33 -0
- package/dist/v2/tokens/zIndex.d.ts.map +1 -0
- package/dist/v2/tokens/zIndex.js +50 -0
- package/dist/v2/tokens/zIndex.js.map +1 -0
- package/dist/v2/types/common.d.ts +24 -0
- package/dist/v2/types/common.d.ts.map +1 -0
- package/dist/v2/types/common.js +6 -0
- package/dist/v2/types/common.js.map +1 -0
- package/dist/v2/types/datagrid.d.ts +131 -0
- package/dist/v2/types/datagrid.d.ts.map +1 -0
- package/dist/v2/types/datagrid.js +6 -0
- package/dist/v2/types/datagrid.js.map +1 -0
- package/dist/v2/types/index.d.ts +11 -0
- package/dist/v2/types/index.d.ts.map +1 -0
- package/dist/v2/types/index.js +28 -0
- package/dist/v2/types/index.js.map +1 -0
- package/dist/v2/utils/apiError.d.ts +90 -0
- package/dist/v2/utils/apiError.d.ts.map +1 -0
- package/dist/v2/utils/apiError.js +227 -0
- package/dist/v2/utils/apiError.js.map +1 -0
- package/dist/v2/utils/contrast.d.ts +68 -0
- package/dist/v2/utils/contrast.d.ts.map +1 -0
- package/dist/v2/utils/contrast.js +167 -0
- package/dist/v2/utils/contrast.js.map +1 -0
- package/dist/v2/utils/cx.d.ts +9 -0
- package/dist/v2/utils/cx.d.ts.map +1 -0
- package/dist/v2/utils/cx.js +45 -0
- package/dist/v2/utils/cx.js.map +1 -0
- package/dist/v2/utils/fileDownload.d.ts +94 -0
- package/dist/v2/utils/fileDownload.d.ts.map +1 -0
- package/dist/v2/utils/fileDownload.js +236 -0
- package/dist/v2/utils/fileDownload.js.map +1 -0
- package/dist/v2/utils/fmtMoney.d.ts +28 -0
- package/dist/v2/utils/fmtMoney.d.ts.map +1 -0
- package/dist/v2/utils/fmtMoney.js +84 -0
- package/dist/v2/utils/fmtMoney.js.map +1 -0
- package/dist/v2/utils/index.d.ts +8 -0
- package/dist/v2/utils/index.d.ts.map +1 -0
- package/dist/v2/utils/index.js +90 -0
- package/dist/v2/utils/index.js.map +1 -0
- package/dist/v2/utils/networkStatus.d.ts +88 -0
- package/dist/v2/utils/networkStatus.d.ts.map +1 -0
- package/dist/v2/utils/networkStatus.js +121 -0
- package/dist/v2/utils/networkStatus.js.map +1 -0
- package/package.json +191 -73
- package/dist/api/guideApi.js +0 -12
- package/dist/api/guideImageService.js +0 -119
- package/dist/api/reclamationApi.js +0 -102
- package/dist/assets/guides/FAQ.json +0 -118
- package/dist/assets/guides/index.js +0 -11
- package/dist/assets/images/tijariaLogo.ico +0 -0
- package/dist/components/buttons/PuiButton.js +0 -217
- package/dist/components/buttons/PuiIconButton.js +0 -98
- package/dist/components/common/PuiAlertContext.js +0 -12
- package/dist/components/common/PuiHelpWidgetContext.js +0 -17
- package/dist/components/common/StyledMuiButton.js +0 -48
- package/dist/components/common/StyledMuiTextField.js +0 -180
- package/dist/components/inputs/PuiAutocomplete.js +0 -352
- package/dist/components/inputs/PuiCheckbox.js +0 -308
- package/dist/components/inputs/PuiCheckboxGroup.js +0 -215
- package/dist/components/inputs/PuiCheckboxItem.js +0 -162
- package/dist/components/inputs/PuiDateField.js +0 -280
- package/dist/components/inputs/PuiDateTimeField.js +0 -276
- package/dist/components/inputs/PuiFileField.js +0 -265
- package/dist/components/inputs/PuiRadioGroup.js +0 -197
- package/dist/components/inputs/PuiRadioItem.js +0 -100
- package/dist/components/inputs/PuiSelect.js +0 -427
- package/dist/components/inputs/PuiTextField.js +0 -263
- package/dist/components/others/PuiBadge.js +0 -58
- package/dist/components/others/PuiChip.js +0 -150
- package/dist/components/others/PuiDialog.js +0 -102
- package/dist/components/others/PuiFormikForm.js +0 -70
- package/dist/components/others/PuiGrid.js +0 -23
- package/dist/components/others/PuiIcon.js +0 -92
- package/dist/components/others/PuiLoadingBackdrop.js +0 -32
- package/dist/components/others/PuiMainContainer.js +0 -41
- package/dist/components/others/PuiNavigation.js +0 -68
- package/dist/components/others/PuiSection.js +0 -187
- package/dist/components/others/PuiTooltip.js +0 -86
- package/dist/components/providers/PuiAlertProvider.js +0 -134
- package/dist/components/providers/PuiHelpWidgetProvider.js +0 -91
- package/dist/components/providers/PuiLocalizationProvider.js +0 -34
- package/dist/components/referentiel/common/ReferetielContext.js +0 -12
- package/dist/components/referentiel/common/constants/specificReferentielsApis.js +0 -22
- package/dist/components/referentiel/common/constants/specificReferentielsBaseColumns.js +0 -691
- package/dist/components/referentiel/common/constants/specificReferentielsBaseFilters.js +0 -598
- package/dist/components/referentiel/common/constants/specificReferentielsInitialValues.js +0 -80
- package/dist/components/referentiel/common/constants/specificReferentielsKeys.js +0 -18
- package/dist/components/referentiel/common/constants/specificReferentielsTitles.js +0 -22
- package/dist/components/referentiel/common/constants/specificReferentielsValidationSchemas.js +0 -85
- package/dist/components/referentiel/components/PuiBasePopupReferentielField.js +0 -356
- package/dist/components/referentiel/components/PuiCustomPopupReferentielField.js +0 -181
- package/dist/components/referentiel/components/PuiSimplePopupReferentielField.js +0 -325
- package/dist/components/referentiel/components/PuiSimpleReferentielField.js +0 -203
- package/dist/components/referentiel/components/PuiSpecificReferentielField.js +0 -352
- package/dist/components/referentiel/providers/PuiReferentielProvider.js +0 -66
- package/dist/components/tab/PuiTab.js +0 -25
- package/dist/components/tab/PuiTabs.js +0 -148
- package/dist/components/table/PuiTable.js +0 -643
- package/dist/components/table/PuiTableAction.js +0 -75
- package/dist/components/typography/PuiDefinition.js +0 -42
- package/dist/components/typography/PuiIndication.js +0 -80
- package/dist/components/typography/PuiMainTitle.js +0 -144
- package/dist/components/ui/dialogs/PuiSearchDialog.js +0 -106
- package/dist/components/ui/pages/errors/PuiErrorBasePage.js +0 -73
- package/dist/components/ui/pages/errors/PuiForbiddenErrorPage.js +0 -36
- package/dist/components/ui/pages/errors/PuiNetworkErrorPage.js +0 -36
- package/dist/components/ui/pages/errors/PuiNotFoundErrorPage.js +0 -30
- package/dist/components/ui/pages/errors/PuiServerErrorPage.js +0 -37
- package/dist/components/ui/pages/general/PuiDefaultPage.js +0 -68
- package/dist/components/ui/pages/general/PuiSearchPage.js +0 -203
- package/dist/components/widgets/GuideImage.js +0 -251
- package/dist/components/widgets/PuiHelpWidget.js +0 -4153
- package/dist/config/apperance.js +0 -26
- package/dist/config/mapping.js +0 -26
- package/dist/config/referentiel.js +0 -10
- package/dist/general/yupValidationErrors.js +0 -8
- package/dist/hooks/useAlert.js +0 -19
- package/dist/hooks/useAxios.js +0 -23
- package/dist/hooks/useQuery.js +0 -21
- package/dist/hooks/useReclamation.js +0 -100
- package/dist/styles/ReclamationFormModal.css +0 -629
- package/dist/styles/help-widget.css +0 -621
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_dataGridShared.js","names":["React","_interopRequireWildcard","require","_Box","_interopRequireDefault","_IconButton","_KeyboardArrowLeft","_KeyboardArrowRight","_FirstPage","_LastPage","_Select","_MenuItem","_jsxRuntime","obj","__esModule","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","_typeof","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Symbol","iterator","constructor","_createForOfIteratorHelper","o","allowArrayLike","it","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","minLen","_arrayLikeToArray","toString","slice","name","from","test","arr","len","arr2","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","Number","DEFAULT_PAGE_SIZES","exports","DEFAULT_MAX_BODY_HEIGHT","DEFAULT_LABELS","freeze","tableAria","selectAll","selectRow","id","concat","actionsHeader","pagination","loading","rowsPerPage","firstPage","previousPage","nextPage","lastPage","navLabel","rangeOf","to","total","fmt","mergeLabels","labels","makeNumberFormatter","locale","Intl","NumberFormat","_unused","applyColumnOrder","columns","columnOrder","byKey","Map","map","c","ordered","_iterator","_step","col","_iterator2","values","_step2","columnsSignature","join","useColumnsStabilityWarn","prevColumnsRef","useRef","warnedRef","useEffect","process","env","current","prevSig","nextSig","console","warn","PAGINATION_ICON_SX","transform","CONTAINER_SX","background","overflow","TABLE_BASE_SX","borderCollapse","borderSpacing","backgroundColor","color","fontWeight","fontSize","textTransform","letterSpacing","borderBottom","padding","whiteSpace","TABLE_BY_DENSITY","comfortable","compact","ROW_HOVER_SELECTED_SX","boxShadow","ROW_CLICKABLE_SX","cursor","outline","outlineOffset","ROW_STATIC_SX","HEADER_CHECKBOX_CELL_SX","width","position","top","zIndex","BODY_CHECKBOX_CELL_SX","HOVER_ONLY_CELL_SX","opacity","transition","ERROR_CELL_SX","ERROR_INNER_SX","FILLER_CELL_SX","FILLER_HEAD_CELL_SX","PAGINATION_CONTAINER_SX","display","alignItems","flexWrap","gap","borderTop","PAGINATION_RANGE_SX","flex","fontVariantNumeric","PAGINATION_PAGESIZE_GROUP_SX","PAGINATION_NAV_GROUP_SX","PAGINATION_PAGE_OF_SX","minWidth","textAlign","PAGINATION_SELECT_SX","height","Pagination","_ref","page","pageSize","onPageChange","onPageSizeChange","_ref$pageSizes","pageSizes","pages","Math","max","ceil","min","go","p","useMemo","nf","format","jsxs","component","sx","children","jsx","role","size","onChange","inputProps","onClick","disabled"],"sources":["../../../src/lib/v2/patterns/_dataGridShared.tsx"],"sourcesContent":["/**\r\n * _dataGridShared — Portnet UI v2 (private)\r\n */\r\n\r\nimport * as React from \"react\";\r\nimport Box from \"@mui/material/Box\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport KeyboardArrowLeftIcon from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport KeyboardArrowRightIcon from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport FirstPageIcon from \"@mui/icons-material/FirstPage\";\r\nimport LastPageIcon from \"@mui/icons-material/LastPage\";\r\nimport Select from \"@mui/material/Select\";\r\nimport MenuItem from \"@mui/material/MenuItem\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport type { Density, RowId } from \"../types/common\";\r\nimport type { DataGridLabels, DataGridPaginationLabels } from \"../types/datagrid\";\r\n\r\n/**\r\n * Fully-resolved (all-present) label shapes. The public DataGridLabels /\r\n * DataGridPaginationLabels (../types/datagrid) are the OVERRIDE shapes (every\r\n * field optional). After mergeLabels every field is guaranteed present, so the\r\n * renderers (Pagination, DataGrid) read them without optional access.\r\n */\r\nexport type ResolvedDataGridPaginationLabels = Required<DataGridPaginationLabels>;\r\nexport type ResolvedDataGridLabels = Required<Omit<DataGridLabels, \"pagination\">> & {\r\n pagination: ResolvedDataGridPaginationLabels;\r\n};\r\n\r\nexport const DEFAULT_PAGE_SIZES = [25, 50, 100];\r\nexport const DEFAULT_MAX_BODY_HEIGHT = \"70vh\";\r\n\r\nexport const DEFAULT_LABELS: ResolvedDataGridLabels = Object.freeze({\r\n tableAria: \"Tableau\",\r\n selectAll: \"Tout sélectionner\",\r\n selectRow: (id: RowId) => `Sélectionner la ligne ${id}`,\r\n actionsHeader: \"Actions\",\r\n pagination: Object.freeze({\r\n loading: \"Chargement…\",\r\n rowsPerPage: \"Lignes par page\",\r\n firstPage: \"Première page\",\r\n previousPage: \"Page précédente\",\r\n nextPage: \"Page suivante\",\r\n lastPage: \"Dernière page\",\r\n navLabel: \"Pagination\",\r\n rangeOf: (from: number, to: number, total: number, fmt: (n: number) => string) => `${from}–${to} sur ${fmt(total)}`,\r\n }),\r\n});\r\n\r\nexport function mergeLabels(labels?: DataGridLabels): ResolvedDataGridLabels {\r\n if (!labels) return DEFAULT_LABELS;\r\n return {\r\n ...DEFAULT_LABELS,\r\n ...labels,\r\n pagination: { ...DEFAULT_LABELS.pagination, ...(labels.pagination || {}) },\r\n };\r\n}\r\n\r\nexport function makeNumberFormatter(locale?: string): Intl.NumberFormat {\r\n try { return new Intl.NumberFormat(locale); }\r\n catch { return new Intl.NumberFormat(\"fr-FR\"); }\r\n}\r\n\r\nexport function applyColumnOrder<C extends { key: string }>(\r\n columns: C[],\r\n columnOrder: string[] | null | undefined\r\n): C[] {\r\n if (!columnOrder || columnOrder.length === 0) return columns;\r\n const byKey = new Map<string, C>(columns.map((c): [string, C] => [c.key, c]));\r\n const ordered: C[] = [];\r\n for (const key of columnOrder) {\r\n const col = byKey.get(key);\r\n if (col !== undefined) { ordered.push(col); byKey.delete(key); }\r\n }\r\n for (const col of byKey.values()) ordered.push(col);\r\n return ordered;\r\n}\r\n\r\nfunction columnsSignature(columns: unknown): string {\r\n if (!Array.isArray(columns)) return \"\";\r\n return (columns as unknown[])\r\n .map((c) => (c && typeof c === \"object\" ? (c as { key?: unknown }).key : c))\r\n .join(\"|\");\r\n}\r\n\r\nexport function useColumnsStabilityWarn(columns: unknown): void {\r\n const prevColumnsRef = React.useRef(columns);\r\n const warnedRef = React.useRef(false);\r\n React.useEffect(() => {\r\n if (process.env[\"NODE_ENV\"] === \"production\") return;\r\n if (warnedRef.current) return;\r\n if (prevColumnsRef.current === columns) return;\r\n const prevSig = columnsSignature(prevColumnsRef.current);\r\n const nextSig = columnsSignature(columns);\r\n if (prevSig && prevSig === nextSig) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"[@portnet/ui v2] DataGrid received a new `columns` reference with identical column keys. Define columns outside render or wrap in useMemo.\");\r\n warnedRef.current = true;\r\n }\r\n prevColumnsRef.current = columns;\r\n });\r\n}\r\n\r\nexport const PAGINATION_ICON_SX = Object.freeze({ transform: \"scaleX(var(--pui-rtl-flip, 1))\" });\r\nexport const CONTAINER_SX = Object.freeze({ background: \"transparent\", overflow: \"hidden\" } satisfies SxProps<Theme>);\r\n\r\n/*\r\n * TABLE_BASE_SX — applied to the MUI <Table> via the sx prop.\r\n *\r\n * textTransform: \"none\" is INTENTIONALLY EXPLICIT here.\r\n *\r\n * Why not rely on the MUI theme (MuiTableCell.head.textTransform: \"none\")?\r\n *\r\n * Emotion injects sx-prop rules AFTER theme styleOverrides. Both rules\r\n * target <th> with equal specificity (1 class + 1 element). The last\r\n * one injected wins. sx wins over theme → the sx value is the truth.\r\n *\r\n * The old bug: this object had textTransform:\"uppercase\" which silently\r\n * overrode the theme's \"none\". The fix: keep explicit \"none\" here so\r\n * the correct value wins unconditionally, regardless of injection order.\r\n *\r\n * letterSpacing is reset to \"normal\" because all-caps text uses wider\r\n * tracking which looks wrong on title-case column headers.\r\n */\r\nconst TABLE_BASE_SX = Object.freeze({\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n \"& thead th\": {\r\n backgroundColor: \"var(--bg-subtle)\",\r\n color: \"var(--fg-muted)\",\r\n fontWeight: \"var(--fw-semibold)\",\r\n fontSize: \"var(--text-xs)\",\r\n textTransform: \"none\", // EXPLICIT — beats emotion injection order\r\n letterSpacing: \"normal\", // reset all-caps tracking\r\n borderBottom: \"1px solid var(--border)\",\r\n padding: \"var(--s-3) var(--s-4)\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n \"& tbody td\": {\r\n padding: \"var(--s-3) var(--s-4)\",\r\n borderBottom: \"1px solid var(--border)\",\r\n },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const TABLE_BY_DENSITY: Record<Density, SxProps<Theme>> = Object.freeze({\r\n comfortable: TABLE_BASE_SX,\r\n compact: Object.freeze({\r\n ...TABLE_BASE_SX,\r\n \"& tbody td\": { ...TABLE_BASE_SX[\"& tbody td\"], padding: \"var(--s-2) var(--s-4)\" },\r\n } satisfies SxProps<Theme>),\r\n});\r\n\r\nconst ROW_HOVER_SELECTED_SX = Object.freeze({\r\n \"&:nth-of-type(even)\": { backgroundColor: \"var(--bg-subtle)\" },\r\n \"&:hover\": { backgroundColor: \"var(--bg-hover)\" },\r\n \"&[data-selected]\": { backgroundColor: \"var(--accent-soft)\" },\r\n \"&[data-active]\": {\r\n backgroundColor: \"var(--accent-soft)\",\r\n \"& > td:first-of-type\": { boxShadow: \"inset calc(3px * var(--pui-rtl-flip, 1)) 0 0 var(--accent)\" },\r\n },\r\n});\r\n\r\nexport const ROW_CLICKABLE_SX = Object.freeze({\r\n ...ROW_HOVER_SELECTED_SX,\r\n cursor: \"pointer\",\r\n \"&:focus-visible\": { outline: \"2px solid var(--accent)\", outlineOffset: \"var(--pui-outline-offset-inset)\" },\r\n} satisfies SxProps<Theme>);\r\n\r\nexport const ROW_STATIC_SX = Object.freeze({ ...ROW_HOVER_SELECTED_SX, cursor: \"default\" } satisfies SxProps<Theme>);\r\n\r\nexport const HEADER_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\", position: \"sticky\", top: 0, zIndex: 2 } satisfies SxProps<Theme>);\r\nexport const BODY_CHECKBOX_CELL_SX = Object.freeze({ width: \"var(--tactile-min)\" });\r\n\r\nexport const HOVER_ONLY_CELL_SX = Object.freeze({\r\n opacity: 0,\r\n transition: \"opacity var(--duration-fast, 120ms) ease\",\r\n \"tr:hover &, tr:focus-within &\": { opacity: 1 },\r\n \"@media (pointer: coarse)\": { opacity: 1 },\r\n});\r\n\r\nexport const ERROR_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"none\" });\r\nexport const ERROR_INNER_SX = Object.freeze({ padding: \"var(--s-4)\" });\r\n\r\nexport const FILLER_CELL_SX = Object.freeze({ padding: 0, borderBottom: \"1px solid var(--border)\" });\r\nexport const FILLER_HEAD_CELL_SX = Object.freeze({\r\n padding: 0, position: \"sticky\", top: 0, zIndex: 1,\r\n background: \"var(--bg-subtle)\", borderBottom: \"1px solid var(--border)\",\r\n} satisfies SxProps<Theme>);\r\n\r\n/* ── Pagination ─────────────────────────────────────────────────── */\r\n\r\nconst PAGINATION_CONTAINER_SX = Object.freeze({\r\n display: \"flex\", alignItems: \"center\",\r\n // R-RS / WCAG 1.4.10 — the control groups (range / page-size / nav)\r\n // must wrap onto extra lines on narrow viewports. Their combined fixed\r\n // width (~400px+) exceeds a 320–375px phone, so without flexWrap the\r\n // bar overflowed its container and pushed the nav buttons off-screen.\r\n // rowGap (s2) keeps wrapped rows tight; columnGap (s4) is the original\r\n // inter-group spacing on a single row.\r\n flexWrap: \"wrap\", gap: \"var(--s-2) var(--s-4)\",\r\n padding: \"var(--s-2) var(--s-4)\", borderTop: \"1px solid var(--border)\",\r\n background: \"var(--surface)\", fontSize: \"var(--text-xs)\", color: \"var(--fg-muted)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst PAGINATION_RANGE_SX = Object.freeze({ flex: 1, fontVariantNumeric: \"tabular-nums\" });\r\nconst PAGINATION_PAGESIZE_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-2)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_NAV_GROUP_SX = Object.freeze({ display: \"flex\", alignItems: \"center\", gap: \"var(--s-1)\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_PAGE_OF_SX = Object.freeze({ minWidth: 56, textAlign: \"center\", fontVariantNumeric: \"tabular-nums\" } satisfies SxProps<Theme>);\r\nconst PAGINATION_SELECT_SX = Object.freeze({ fontSize: \"var(--text-xs)\", height: 28 });\r\n\r\nexport interface PaginationProps {\r\n page: number;\r\n pageSize: number;\r\n total: number;\r\n onPageChange: (page: number) => void;\r\n onPageSizeChange?: (pageSize: number) => void;\r\n pageSizes?: number[];\r\n loading?: boolean;\r\n locale?: string;\r\n labels: ResolvedDataGridPaginationLabels;\r\n}\r\n\r\nexport function Pagination({ page, pageSize, total, onPageChange, onPageSizeChange, pageSizes = DEFAULT_PAGE_SIZES, loading, locale, labels }: PaginationProps) {\r\n const pages = Math.max(1, Math.ceil(total / pageSize));\r\n const from = total === 0 ? 0 : (page - 1) * pageSize + 1;\r\n const to = Math.min(total, page * pageSize);\r\n const go = (p: number) => onPageChange(Math.min(pages, Math.max(1, p)));\r\n\r\n const fmt = React.useMemo(() => {\r\n const nf = makeNumberFormatter(locale);\r\n return (n: number) => nf.format(n);\r\n }, [locale]);\r\n\r\n return (\r\n <Box component=\"nav\" aria-label={labels.navLabel} sx={PAGINATION_CONTAINER_SX}>\r\n {/* PAGE-2 — polite, atomic live region so SR users hear the position\r\n change (\"1–25 sur 100\" → \"26–50 sur 100\") as they page. */}\r\n <Box role=\"status\" aria-live=\"polite\" aria-atomic=\"true\" sx={PAGINATION_RANGE_SX}>{loading ? labels.loading : labels.rangeOf(from, to, total, fmt)}</Box>\r\n {onPageSizeChange && (\r\n <Box sx={PAGINATION_PAGESIZE_GROUP_SX}>\r\n <span>{labels.rowsPerPage}</span>\r\n <Select size=\"small\" value={pageSize} onChange={(e) => onPageSizeChange(Number(e.target.value))} inputProps={{ \"aria-label\": String(labels.rowsPerPage) }} sx={PAGINATION_SELECT_SX}>\r\n {pageSizes.map((s) => <MenuItem key={s} value={s}>{s}</MenuItem>)}\r\n </Select>\r\n </Box>\r\n )}\r\n <Box sx={PAGINATION_NAV_GROUP_SX}>\r\n <IconButton size=\"small\" onClick={() => go(1)} disabled={page <= 1} aria-label={labels.firstPage}><FirstPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(page - 1)} disabled={page <= 1} aria-label={labels.previousPage}><KeyboardArrowLeftIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <Box sx={PAGINATION_PAGE_OF_SX}>{page} / {pages}</Box>\r\n <IconButton size=\"small\" onClick={() => go(page + 1)} disabled={page >= pages} aria-label={labels.nextPage}><KeyboardArrowRightIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n <IconButton size=\"small\" onClick={() => go(pages)} disabled={page >= pages} aria-label={labels.lastPage}><LastPageIcon fontSize=\"small\" sx={PAGINATION_ICON_SX} /></IconButton>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal: locale-correct multi-sort for DataGrid / useSortedRows.
|
|
3
|
+
*
|
|
4
|
+
* Extracted verbatim from SortableHeader (Batch 12 / C1) so the sort logic can
|
|
5
|
+
* be shared by the SortableHeader pattern (which re-exports `applySort`) and the
|
|
6
|
+
* useSortedRows hook — without a hook → component import (a .ts hook importing a
|
|
7
|
+
* still-.js component fails build:types under allowJs:false) and without
|
|
8
|
+
* duplicating the collation logic. Behaviour is unchanged.
|
|
9
|
+
*
|
|
10
|
+
* NOT part of the public surface: `applySort` is re-exported from SortableHeader
|
|
11
|
+
* (the public name / call site); getCollator + compareValues + the cache are
|
|
12
|
+
* internal implementation details that were never exported.
|
|
13
|
+
*/
|
|
14
|
+
import type { SortDescriptor } from "../types/common";
|
|
15
|
+
import type { ApplySortOptions } from "../types/datagrid";
|
|
16
|
+
/**
|
|
17
|
+
* Pure helper — applies a multi-sort state to an array of rows.
|
|
18
|
+
* Returns a NEW sorted array (input is not mutated); the original array
|
|
19
|
+
* reference is returned untouched when there is nothing to sort.
|
|
20
|
+
*/
|
|
21
|
+
export declare function applySort<T extends object>(rows: T[], sort: readonly SortDescriptor[] | null | undefined, options?: ApplySortOptions): T[];
|
|
22
|
+
//# sourceMappingURL=_sort.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_sort.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_sort.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4D1D;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACxC,IAAI,EAAE,CAAC,EAAE,EACT,IAAI,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,GAAG,SAAS,EAClD,OAAO,GAAE,gBAAqB,GAC7B,CAAC,EAAE,CAcL"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.applySort = applySort;
|
|
7
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
8
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
10
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
12
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
14
|
+
/**
|
|
15
|
+
* Internal: locale-correct multi-sort for DataGrid / useSortedRows.
|
|
16
|
+
*
|
|
17
|
+
* Extracted verbatim from SortableHeader (Batch 12 / C1) so the sort logic can
|
|
18
|
+
* be shared by the SortableHeader pattern (which re-exports `applySort`) and the
|
|
19
|
+
* useSortedRows hook — without a hook → component import (a .ts hook importing a
|
|
20
|
+
* still-.js component fails build:types under allowJs:false) and without
|
|
21
|
+
* duplicating the collation logic. Behaviour is unchanged.
|
|
22
|
+
*
|
|
23
|
+
* NOT part of the public surface: `applySort` is re-exported from SortableHeader
|
|
24
|
+
* (the public name / call site); getCollator + compareValues + the cache are
|
|
25
|
+
* internal implementation details that were never exported.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Module-level cache of Intl.Collator instances keyed by locale tag.
|
|
30
|
+
* Collator construction allocates internal locale data (≈100 µs cold)
|
|
31
|
+
* — caching matters for hosts that re-sort on every render.
|
|
32
|
+
*
|
|
33
|
+
* Using "accent" sensitivity preserves the prior toLowerCase-based
|
|
34
|
+
* behaviour (case-insensitive) while honouring proper locale collation:
|
|
35
|
+
* - FR: É sorts as if E (between Élise and Étienne, not after Z).
|
|
36
|
+
* - AR: combining marks fold correctly.
|
|
37
|
+
* - DE: Umlauts (ä) sort with their base letter.
|
|
38
|
+
* "numeric: true" makes "Item 10" sort AFTER "Item 2" (natural order),
|
|
39
|
+
* which the prior char-code comparison got backwards.
|
|
40
|
+
*/
|
|
41
|
+
var COLLATOR_CACHE = new Map();
|
|
42
|
+
function getCollator(locale) {
|
|
43
|
+
var key = locale || "fr-FR";
|
|
44
|
+
var cached = COLLATOR_CACHE.get(key);
|
|
45
|
+
if (cached) return cached;
|
|
46
|
+
var collator;
|
|
47
|
+
try {
|
|
48
|
+
collator = new Intl.Collator(key, {
|
|
49
|
+
sensitivity: "accent",
|
|
50
|
+
numeric: true
|
|
51
|
+
});
|
|
52
|
+
} catch (_unused) {
|
|
53
|
+
// Invalid BCP-47 tag — fall back to fr-FR (matches the rest of v2's
|
|
54
|
+
// graceful-locale-fallback contract from Batch 2).
|
|
55
|
+
collator = new Intl.Collator("fr-FR", {
|
|
56
|
+
sensitivity: "accent",
|
|
57
|
+
numeric: true
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
COLLATOR_CACHE.set(key, collator);
|
|
61
|
+
return collator;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Compare two cell values with locale-aware semantics. Routes through
|
|
66
|
+
* the Collator only for strings or mixed types; numeric / Date pairs
|
|
67
|
+
* use native operators (faster + exact).
|
|
68
|
+
*
|
|
69
|
+
* Null / undefined / empty-string sort FIRST (preserves the prior
|
|
70
|
+
* applySort empty-string behaviour: "" < any non-empty string).
|
|
71
|
+
*/
|
|
72
|
+
function compareValues(av, bv, collator) {
|
|
73
|
+
var aN = av == null || av === "";
|
|
74
|
+
var bN = bv == null || bv === "";
|
|
75
|
+
if (aN && bN) return 0;
|
|
76
|
+
if (aN) return -1;
|
|
77
|
+
if (bN) return 1;
|
|
78
|
+
if (typeof av === "number" && typeof bv === "number") {
|
|
79
|
+
return av - bv;
|
|
80
|
+
}
|
|
81
|
+
if (av instanceof Date && bv instanceof Date) {
|
|
82
|
+
return av.getTime() - bv.getTime();
|
|
83
|
+
}
|
|
84
|
+
// String pair — or mixed types coerced to strings. The Collator handles
|
|
85
|
+
// both cases identically and respects `numeric: true` so digit runs
|
|
86
|
+
// inside a label compare numerically.
|
|
87
|
+
return collator.compare(String(av), String(bv));
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Pure helper — applies a multi-sort state to an array of rows.
|
|
92
|
+
* Returns a NEW sorted array (input is not mutated); the original array
|
|
93
|
+
* reference is returned untouched when there is nothing to sort.
|
|
94
|
+
*/
|
|
95
|
+
function applySort(rows, sort) {
|
|
96
|
+
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
97
|
+
if (!(sort !== null && sort !== void 0 && sort.length)) return rows;
|
|
98
|
+
var collator = getCollator(options.locale);
|
|
99
|
+
return _toConsumableArray(rows).sort(function (a, b) {
|
|
100
|
+
var _iterator = _createForOfIteratorHelper(sort),
|
|
101
|
+
_step;
|
|
102
|
+
try {
|
|
103
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
104
|
+
var _step$value = _step.value,
|
|
105
|
+
key = _step$value.key,
|
|
106
|
+
dir = _step$value.dir;
|
|
107
|
+
var cmp = compareValues(a[key], b[key], collator);
|
|
108
|
+
if (cmp !== 0) return dir === "asc" ? cmp : -cmp;
|
|
109
|
+
}
|
|
110
|
+
} catch (err) {
|
|
111
|
+
_iterator.e(err);
|
|
112
|
+
} finally {
|
|
113
|
+
_iterator.f();
|
|
114
|
+
}
|
|
115
|
+
return 0;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=_sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_sort.js","names":["COLLATOR_CACHE","Map","getCollator","locale","key","cached","get","collator","Intl","Collator","sensitivity","numeric","_unused","set","compareValues","av","bv","aN","bN","Date","getTime","compare","String","applySort","rows","sort","options","arguments","length","undefined","_toConsumableArray","a","b","_iterator","_createForOfIteratorHelper","_step","s","n","done","_step$value","value","dir","cmp","err","e","f"],"sources":["../../../src/lib/v2/patterns/_sort.ts"],"sourcesContent":["/**\r\n * Internal: locale-correct multi-sort for DataGrid / useSortedRows.\r\n *\r\n * Extracted verbatim from SortableHeader (Batch 12 / C1) so the sort logic can\r\n * be shared by the SortableHeader pattern (which re-exports `applySort`) and the\r\n * useSortedRows hook — without a hook → component import (a .ts hook importing a\r\n * still-.js component fails build:types under allowJs:false) and without\r\n * duplicating the collation logic. Behaviour is unchanged.\r\n *\r\n * NOT part of the public surface: `applySort` is re-exported from SortableHeader\r\n * (the public name / call site); getCollator + compareValues + the cache are\r\n * internal implementation details that were never exported.\r\n */\r\nimport type { SortDescriptor } from \"../types/common\";\r\nimport type { ApplySortOptions } from \"../types/datagrid\";\r\n\r\n/**\r\n * Module-level cache of Intl.Collator instances keyed by locale tag.\r\n * Collator construction allocates internal locale data (≈100 µs cold)\r\n * — caching matters for hosts that re-sort on every render.\r\n *\r\n * Using \"accent\" sensitivity preserves the prior toLowerCase-based\r\n * behaviour (case-insensitive) while honouring proper locale collation:\r\n * - FR: É sorts as if E (between Élise and Étienne, not after Z).\r\n * - AR: combining marks fold correctly.\r\n * - DE: Umlauts (ä) sort with their base letter.\r\n * \"numeric: true\" makes \"Item 10\" sort AFTER \"Item 2\" (natural order),\r\n * which the prior char-code comparison got backwards.\r\n */\r\nconst COLLATOR_CACHE = new Map<string, Intl.Collator>();\r\n\r\nfunction getCollator(locale?: string): Intl.Collator {\r\n const key = locale || \"fr-FR\";\r\n const cached = COLLATOR_CACHE.get(key);\r\n if (cached) return cached;\r\n let collator: Intl.Collator;\r\n try {\r\n collator = new Intl.Collator(key, { sensitivity: \"accent\", numeric: true });\r\n } catch {\r\n // Invalid BCP-47 tag — fall back to fr-FR (matches the rest of v2's\r\n // graceful-locale-fallback contract from Batch 2).\r\n collator = new Intl.Collator(\"fr-FR\", { sensitivity: \"accent\", numeric: true });\r\n }\r\n COLLATOR_CACHE.set(key, collator);\r\n return collator;\r\n}\r\n\r\n/**\r\n * Compare two cell values with locale-aware semantics. Routes through\r\n * the Collator only for strings or mixed types; numeric / Date pairs\r\n * use native operators (faster + exact).\r\n *\r\n * Null / undefined / empty-string sort FIRST (preserves the prior\r\n * applySort empty-string behaviour: \"\" < any non-empty string).\r\n */\r\nfunction compareValues(av: unknown, bv: unknown, collator: Intl.Collator): number {\r\n const aN = av == null || av === \"\";\r\n const bN = bv == null || bv === \"\";\r\n if (aN && bN) return 0;\r\n if (aN) return -1;\r\n if (bN) return 1;\r\n\r\n if (typeof av === \"number\" && typeof bv === \"number\") {\r\n return av - bv;\r\n }\r\n if (av instanceof Date && bv instanceof Date) {\r\n return av.getTime() - bv.getTime();\r\n }\r\n // String pair — or mixed types coerced to strings. The Collator handles\r\n // both cases identically and respects `numeric: true` so digit runs\r\n // inside a label compare numerically.\r\n return collator.compare(String(av), String(bv));\r\n}\r\n\r\n/**\r\n * Pure helper — applies a multi-sort state to an array of rows.\r\n * Returns a NEW sorted array (input is not mutated); the original array\r\n * reference is returned untouched when there is nothing to sort.\r\n */\r\nexport function applySort<T extends object>(\r\n rows: T[],\r\n sort: readonly SortDescriptor[] | null | undefined,\r\n options: ApplySortOptions = {},\r\n): T[] {\r\n if (!sort?.length) return rows;\r\n const collator = getCollator(options.locale);\r\n return [...rows].sort((a, b) => {\r\n for (const { key, dir } of sort) {\r\n const cmp = compareValues(\r\n (a as Record<string, unknown>)[key],\r\n (b as Record<string, unknown>)[key],\r\n collator,\r\n );\r\n if (cmp !== 0) return dir === \"asc\" ? cmp : -cmp;\r\n }\r\n return 0;\r\n });\r\n}\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { SxProps, Theme } from "@mui/material/styles";
|
|
3
|
+
/**
|
|
4
|
+
* useColumnReorder — Portnet UI v2 (private)
|
|
5
|
+
*
|
|
6
|
+
* Internal hook for the DataGrid + DataGridVirtualized reorder
|
|
7
|
+
* feature. NOT exported from the patterns barrel.
|
|
8
|
+
*
|
|
9
|
+
* const { cellHandlers, cellSx, isReordering, moveEarlier, moveLater, handleKeyDown } =
|
|
10
|
+
* useColumnReorder(
|
|
11
|
+
* columns, // for fallback order resolution
|
|
12
|
+
* columnOrder, // host-controlled Array<key> | undefined
|
|
13
|
+
* onColumnOrderChange, // host-controlled setter
|
|
14
|
+
* { resizeIsActive } // cross-hook signal from useColumnResize
|
|
15
|
+
* );
|
|
16
|
+
*
|
|
17
|
+
* Drop semantics (pointer):
|
|
18
|
+
* The dragged column is INSERTED AT the target column's position.
|
|
19
|
+
* The remaining columns shift to accommodate. This is the standard
|
|
20
|
+
* Linear / Asana / GitHub Projects UX — the user thinks "move
|
|
21
|
+
* column X to where Y is", not "swap X and Y".
|
|
22
|
+
*
|
|
23
|
+
* Keyboard (DG-R1 / WCAG 2.1.1):
|
|
24
|
+
* moveEarlier(key) / moveLater(key) swap the column with its neighbour
|
|
25
|
+
* toward the start / end of the order (edge-safe, no-op at the ends).
|
|
26
|
+
* handleKeyDown(key) is meant for a focusable reorder control in the
|
|
27
|
+
* header: ArrowLeft/ArrowRight move the column (RTL-aware, so the motion
|
|
28
|
+
* matches the physical arrow), Home/End send it to the first/last slot.
|
|
29
|
+
* Every move commits immediately via onColumnOrderChange (no grab/drop
|
|
30
|
+
* mode). Direction-neutral names (earlier/later = toward index 0 / end)
|
|
31
|
+
* keep the API unambiguous under RTL; the physical-arrow mapping lives in
|
|
32
|
+
* handleKeyDown.
|
|
33
|
+
*
|
|
34
|
+
* Visual feedback during drag:
|
|
35
|
+
* - Dragged column header: opacity 0.5
|
|
36
|
+
* - Drop target column header: 2px inset accent outline
|
|
37
|
+
* These are returned via cellSx; the host applies them as sx
|
|
38
|
+
* fragments on each `<th>`.
|
|
39
|
+
*
|
|
40
|
+
* onDragOver MUST e.preventDefault() to allow drop. This is the
|
|
41
|
+
* single most-forgotten step of HTML5 native drag — without it,
|
|
42
|
+
* onDrop never fires.
|
|
43
|
+
*/
|
|
44
|
+
export interface UseColumnReorderOptions {
|
|
45
|
+
resizeIsActive?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface ColumnReorderCellHandlers {
|
|
48
|
+
draggable: boolean;
|
|
49
|
+
onDragStart: (e: React.DragEvent) => void;
|
|
50
|
+
onDragOver: (e: React.DragEvent) => void;
|
|
51
|
+
onDragLeave: () => void;
|
|
52
|
+
onDrop: (e: React.DragEvent) => void;
|
|
53
|
+
onDragEnd: () => void;
|
|
54
|
+
}
|
|
55
|
+
export interface UseColumnReorderResult {
|
|
56
|
+
cellHandlers: (key: string) => ColumnReorderCellHandlers;
|
|
57
|
+
cellSx: (key: string) => SxProps<Theme> | undefined;
|
|
58
|
+
isReordering: boolean;
|
|
59
|
+
/** Move the column one slot toward the start of the order (edge-safe). */
|
|
60
|
+
moveEarlier: (key: string) => void;
|
|
61
|
+
/** Move the column one slot toward the end of the order (edge-safe). */
|
|
62
|
+
moveLater: (key: string) => void;
|
|
63
|
+
/** onKeyDown for a focusable reorder control: Arrow (RTL-aware) / Home / End. */
|
|
64
|
+
handleKeyDown: (key: string) => (e: React.KeyboardEvent) => void;
|
|
65
|
+
}
|
|
66
|
+
export default function useColumnReorder(columns: ReadonlyArray<{
|
|
67
|
+
key: string;
|
|
68
|
+
}>, columnOrder: string[] | undefined, onColumnOrderChange: ((order: string[]) => void) | undefined, options?: UseColumnReorderOptions): UseColumnReorderResult;
|
|
69
|
+
//# sourceMappingURL=_useColumnReorder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_useColumnReorder.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/patterns/_useColumnReorder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE3D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,MAAM,WAAW,uBAAuB;IACtC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,MAAM,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACrC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,yBAAyB,CAAC;IACzD,MAAM,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;IACpD,YAAY,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wEAAwE;IACxE,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,iFAAiF;IACjF,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI,CAAC;CAClE;AAED,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,OAAO,EAAE,aAAa,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EACvC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAS,EACjC,mBAAmB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC,GAAG,SAAS,EAC5D,OAAO,GAAE,uBAA4B,GACpC,sBAAsB,CAqOxB"}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = useColumnReorder;
|
|
8
|
+
var React = _interopRequireWildcard(require("react"));
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
12
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
13
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
15
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
16
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
17
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
19
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
20
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
21
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
22
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
23
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
24
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
25
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
26
|
+
/**
|
|
27
|
+
* useColumnReorder — Portnet UI v2 (private)
|
|
28
|
+
*
|
|
29
|
+
* Internal hook for the DataGrid + DataGridVirtualized reorder
|
|
30
|
+
* feature. NOT exported from the patterns barrel.
|
|
31
|
+
*
|
|
32
|
+
* const { cellHandlers, cellSx, isReordering, moveEarlier, moveLater, handleKeyDown } =
|
|
33
|
+
* useColumnReorder(
|
|
34
|
+
* columns, // for fallback order resolution
|
|
35
|
+
* columnOrder, // host-controlled Array<key> | undefined
|
|
36
|
+
* onColumnOrderChange, // host-controlled setter
|
|
37
|
+
* { resizeIsActive } // cross-hook signal from useColumnResize
|
|
38
|
+
* );
|
|
39
|
+
*
|
|
40
|
+
* Drop semantics (pointer):
|
|
41
|
+
* The dragged column is INSERTED AT the target column's position.
|
|
42
|
+
* The remaining columns shift to accommodate. This is the standard
|
|
43
|
+
* Linear / Asana / GitHub Projects UX — the user thinks "move
|
|
44
|
+
* column X to where Y is", not "swap X and Y".
|
|
45
|
+
*
|
|
46
|
+
* Keyboard (DG-R1 / WCAG 2.1.1):
|
|
47
|
+
* moveEarlier(key) / moveLater(key) swap the column with its neighbour
|
|
48
|
+
* toward the start / end of the order (edge-safe, no-op at the ends).
|
|
49
|
+
* handleKeyDown(key) is meant for a focusable reorder control in the
|
|
50
|
+
* header: ArrowLeft/ArrowRight move the column (RTL-aware, so the motion
|
|
51
|
+
* matches the physical arrow), Home/End send it to the first/last slot.
|
|
52
|
+
* Every move commits immediately via onColumnOrderChange (no grab/drop
|
|
53
|
+
* mode). Direction-neutral names (earlier/later = toward index 0 / end)
|
|
54
|
+
* keep the API unambiguous under RTL; the physical-arrow mapping lives in
|
|
55
|
+
* handleKeyDown.
|
|
56
|
+
*
|
|
57
|
+
* Visual feedback during drag:
|
|
58
|
+
* - Dragged column header: opacity 0.5
|
|
59
|
+
* - Drop target column header: 2px inset accent outline
|
|
60
|
+
* These are returned via cellSx; the host applies them as sx
|
|
61
|
+
* fragments on each `<th>`.
|
|
62
|
+
*
|
|
63
|
+
* onDragOver MUST e.preventDefault() to allow drop. This is the
|
|
64
|
+
* single most-forgotten step of HTML5 native drag — without it,
|
|
65
|
+
* onDrop never fires.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
function useColumnReorder(columns, columnOrder, onColumnOrderChange) {
|
|
69
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
70
|
+
var resizeIsActive = options.resizeIsActive;
|
|
71
|
+
|
|
72
|
+
// Effective order = host order, or fallback to the natural columns
|
|
73
|
+
// sequence. Memoised on the input shapes; no allocation when both
|
|
74
|
+
// refs are stable.
|
|
75
|
+
var effectiveOrder = React.useMemo(function () {
|
|
76
|
+
return columnOrder || columns.map(function (c) {
|
|
77
|
+
return c.key;
|
|
78
|
+
});
|
|
79
|
+
}, [columnOrder, columns]);
|
|
80
|
+
var _React$useState = React.useState(null),
|
|
81
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
82
|
+
dragKey = _React$useState2[0],
|
|
83
|
+
setDragKey = _React$useState2[1];
|
|
84
|
+
var _React$useState3 = React.useState(null),
|
|
85
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
86
|
+
overKey = _React$useState4[0],
|
|
87
|
+
setOverKey = _React$useState4[1];
|
|
88
|
+
|
|
89
|
+
// Refs mirror state for use inside fresh-closure handlers
|
|
90
|
+
// (the onDragEnd inside cellHandlers needs the latest dragKey
|
|
91
|
+
// even if React hasn't yet re-rendered).
|
|
92
|
+
var dragKeyRef = React.useRef(null);
|
|
93
|
+
var reset = React.useCallback(function () {
|
|
94
|
+
dragKeyRef.current = null;
|
|
95
|
+
setDragKey(null);
|
|
96
|
+
setOverKey(null);
|
|
97
|
+
}, []);
|
|
98
|
+
var onDragStart = React.useCallback(function (key) {
|
|
99
|
+
return function (e) {
|
|
100
|
+
// Cross-hook: if resize is active, abort the drag. Resize fires
|
|
101
|
+
// first via mousedown; this handler runs later via dragstart.
|
|
102
|
+
if (resizeIsActive) {
|
|
103
|
+
e.preventDefault();
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
dragKeyRef.current = key;
|
|
107
|
+
setDragKey(key);
|
|
108
|
+
// Mark the data transfer with the source key. Some browsers
|
|
109
|
+
// require a non-empty payload to allow drop (Firefox).
|
|
110
|
+
try {
|
|
111
|
+
e.dataTransfer.effectAllowed = "move";
|
|
112
|
+
e.dataTransfer.setData("text/plain", key);
|
|
113
|
+
} catch (_unused) {
|
|
114
|
+
// Older Safari throws on certain MIME types; ignored.
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
}, [resizeIsActive]);
|
|
118
|
+
var onDragOver = React.useCallback(function (key) {
|
|
119
|
+
return function (e) {
|
|
120
|
+
// CRITICAL — without preventDefault, the browser refuses the
|
|
121
|
+
// drop and onDrop never fires.
|
|
122
|
+
e.preventDefault();
|
|
123
|
+
try {
|
|
124
|
+
e.dataTransfer.dropEffect = "move";
|
|
125
|
+
} catch (_unused2) {
|
|
126
|
+
// Some browsers throw outside a trusted dragstart→drop chain.
|
|
127
|
+
}
|
|
128
|
+
if (overKey !== key) setOverKey(key);
|
|
129
|
+
};
|
|
130
|
+
}, [overKey]);
|
|
131
|
+
var onDragLeave = React.useCallback(function (key) {
|
|
132
|
+
return function () {
|
|
133
|
+
// Only clear when leaving the same key we'd entered. Without
|
|
134
|
+
// this guard, fast moves between cells flicker the highlight.
|
|
135
|
+
if (overKey === key) setOverKey(null);
|
|
136
|
+
};
|
|
137
|
+
}, [overKey]);
|
|
138
|
+
var onDrop = React.useCallback(function (targetKey) {
|
|
139
|
+
return function (e) {
|
|
140
|
+
e.preventDefault();
|
|
141
|
+
var sourceKey = e.dataTransfer && e.dataTransfer.getData("text/plain") || dragKeyRef.current;
|
|
142
|
+
if (!sourceKey || sourceKey === targetKey) {
|
|
143
|
+
reset();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
var sourceIdx = effectiveOrder.indexOf(sourceKey);
|
|
147
|
+
var targetIdx = effectiveOrder.indexOf(targetKey);
|
|
148
|
+
if (sourceIdx < 0 || targetIdx < 0) {
|
|
149
|
+
reset();
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
var newOrder = _toConsumableArray(effectiveOrder);
|
|
153
|
+
newOrder.splice(sourceIdx, 1);
|
|
154
|
+
// After splice the target index may shift by 1 if source was
|
|
155
|
+
// before target. Recompute against the post-splice array.
|
|
156
|
+
var insertIdx = newOrder.indexOf(targetKey);
|
|
157
|
+
newOrder.splice(insertIdx, 0, sourceKey);
|
|
158
|
+
if (onColumnOrderChange) onColumnOrderChange(newOrder);
|
|
159
|
+
reset();
|
|
160
|
+
};
|
|
161
|
+
}, [effectiveOrder, onColumnOrderChange, reset]);
|
|
162
|
+
var onDragEnd = React.useCallback(function () {
|
|
163
|
+
// Fires whether the drop succeeded or the user cancelled (Esc /
|
|
164
|
+
// drop on a non-target). Belt-and-suspenders cleanup.
|
|
165
|
+
reset();
|
|
166
|
+
}, [reset]);
|
|
167
|
+
var cellHandlers = React.useCallback(function (key) {
|
|
168
|
+
return {
|
|
169
|
+
draggable: true,
|
|
170
|
+
onDragStart: onDragStart(key),
|
|
171
|
+
onDragOver: onDragOver(key),
|
|
172
|
+
onDragLeave: onDragLeave(key),
|
|
173
|
+
onDrop: onDrop(key),
|
|
174
|
+
onDragEnd: onDragEnd
|
|
175
|
+
};
|
|
176
|
+
}, [onDragStart, onDragOver, onDragLeave, onDrop, onDragEnd]);
|
|
177
|
+
var cellSx = React.useCallback(function (key) {
|
|
178
|
+
var isDragSource = dragKey === key;
|
|
179
|
+
var isDropTarget = overKey === key && dragKey !== key;
|
|
180
|
+
if (!isDragSource && !isDropTarget) return undefined;
|
|
181
|
+
return _objectSpread(_objectSpread({}, isDragSource && {
|
|
182
|
+
opacity: 0.5
|
|
183
|
+
}), isDropTarget && {
|
|
184
|
+
// Inset accent outline = "drop here" visual. boxShadow not
|
|
185
|
+
// outline so it doesn't extend beyond the cell border.
|
|
186
|
+
boxShadow: "inset 0 0 0 2px var(--accent)"
|
|
187
|
+
});
|
|
188
|
+
}, [dragKey, overKey]);
|
|
189
|
+
|
|
190
|
+
// ── Keyboard reorder (DG-R1) ───────────────────────────────────
|
|
191
|
+
// Commit a reordered copy of effectiveOrder. All keyboard moves route
|
|
192
|
+
// through here; edge/no-op cases are filtered by the callers.
|
|
193
|
+
var commitOrder = React.useCallback(function (newOrder) {
|
|
194
|
+
if (onColumnOrderChange) onColumnOrderChange(newOrder);
|
|
195
|
+
}, [onColumnOrderChange]);
|
|
196
|
+
|
|
197
|
+
// Adjacent swap toward the start (dir=-1) / end (dir=+1) of the order.
|
|
198
|
+
var swap = React.useCallback(function (key, dir) {
|
|
199
|
+
var idx = effectiveOrder.indexOf(key);
|
|
200
|
+
if (idx < 0) return;
|
|
201
|
+
var target = idx + dir;
|
|
202
|
+
if (target < 0 || target >= effectiveOrder.length) return; // at edge
|
|
203
|
+
var newOrder = _toConsumableArray(effectiveOrder);
|
|
204
|
+
var a = newOrder[idx];
|
|
205
|
+
var b = newOrder[target];
|
|
206
|
+
newOrder[idx] = b;
|
|
207
|
+
newOrder[target] = a;
|
|
208
|
+
commitOrder(newOrder);
|
|
209
|
+
}, [effectiveOrder, commitOrder]);
|
|
210
|
+
var moveEarlier = React.useCallback(function (key) {
|
|
211
|
+
return swap(key, -1);
|
|
212
|
+
}, [swap]);
|
|
213
|
+
var moveLater = React.useCallback(function (key) {
|
|
214
|
+
return swap(key, 1);
|
|
215
|
+
}, [swap]);
|
|
216
|
+
|
|
217
|
+
// Send the column to the first / last slot (Home / End).
|
|
218
|
+
var moveToEdge = React.useCallback(function (key, edge) {
|
|
219
|
+
var idx = effectiveOrder.indexOf(key);
|
|
220
|
+
if (idx < 0) return;
|
|
221
|
+
if (edge === "start" && idx === 0) return;
|
|
222
|
+
if (edge === "end" && idx === effectiveOrder.length - 1) return;
|
|
223
|
+
var newOrder = _toConsumableArray(effectiveOrder);
|
|
224
|
+
var moved = newOrder.splice(idx, 1)[0];
|
|
225
|
+
if (edge === "start") newOrder.unshift(moved);else newOrder.push(moved);
|
|
226
|
+
commitOrder(newOrder);
|
|
227
|
+
}, [effectiveOrder, commitOrder]);
|
|
228
|
+
var handleKeyDown = React.useCallback(function (key) {
|
|
229
|
+
return function (e) {
|
|
230
|
+
if (resizeIsActive) return;
|
|
231
|
+
var isLeft = e.key === "ArrowLeft";
|
|
232
|
+
var isRight = e.key === "ArrowRight";
|
|
233
|
+
var isHome = e.key === "Home";
|
|
234
|
+
var isEnd = e.key === "End";
|
|
235
|
+
if (!isLeft && !isRight && !isHome && !isEnd) return;
|
|
236
|
+
e.preventDefault();
|
|
237
|
+
e.stopPropagation();
|
|
238
|
+
if (isHome) {
|
|
239
|
+
moveToEdge(key, "start");
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
if (isEnd) {
|
|
243
|
+
moveToEdge(key, "end");
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
// RTL-aware physical-arrow mapping: in RTL the visual order is
|
|
248
|
+
// reversed, so ArrowLeft advances toward the end of the order.
|
|
249
|
+
var cell = e.currentTarget.closest("th");
|
|
250
|
+
var isRtl = !!cell && typeof window !== "undefined" && typeof window.getComputedStyle === "function" && window.getComputedStyle(cell).direction === "rtl";
|
|
251
|
+
var goLater = isRtl ? isLeft : isRight;
|
|
252
|
+
if (goLater) moveLater(key);else moveEarlier(key);
|
|
253
|
+
};
|
|
254
|
+
}, [resizeIsActive, moveToEdge, moveEarlier, moveLater]);
|
|
255
|
+
return {
|
|
256
|
+
cellHandlers: cellHandlers,
|
|
257
|
+
cellSx: cellSx,
|
|
258
|
+
isReordering: dragKey != null,
|
|
259
|
+
moveEarlier: moveEarlier,
|
|
260
|
+
moveLater: moveLater,
|
|
261
|
+
handleKeyDown: handleKeyDown
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=_useColumnReorder.js.map
|