@portnet/ui 5.0.28 → 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 -76
- 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 -4167
- 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,281 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
|
|
9
|
+
var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
|
|
10
|
+
var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
|
|
11
|
+
var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
|
|
12
|
+
var _IconButton = _interopRequireDefault(require("@mui/material/IconButton"));
|
|
13
|
+
var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
|
|
14
|
+
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
15
|
+
var _useMediaQuery = _interopRequireDefault(require("@mui/material/useMediaQuery"));
|
|
16
|
+
var _styles = require("@mui/material/styles");
|
|
17
|
+
var _tokens = require("../tokens");
|
|
18
|
+
var _useFocusTrap = _interopRequireDefault(require("../hooks/useFocusTrap"));
|
|
19
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
21
|
+
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); }
|
|
22
|
+
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; }
|
|
23
|
+
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); }
|
|
24
|
+
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; }
|
|
25
|
+
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; }
|
|
26
|
+
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; }
|
|
27
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
28
|
+
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); } /**
|
|
29
|
+
* Modal - Portnet UI v2
|
|
30
|
+
*
|
|
31
|
+
* Charter §03 · Component "Modal · Dialog".
|
|
32
|
+
*
|
|
33
|
+
* R-M.1 - Closable via Esc + backdrop click + explicit X button.
|
|
34
|
+
* R-M.2 - Focus trap when open, focus restored to trigger on close.
|
|
35
|
+
* Backed by the v2 useFocusTrap hook (Batch 3) - honours
|
|
36
|
+
* [autofocus] and [data-autofocus] markers, coordinates
|
|
37
|
+
* with nested traps via a module-level trapStack, and
|
|
38
|
+
* filters disabled/hidden/inert subtrees.
|
|
39
|
+
* R-M.3 - role="dialog" + aria-modal="true" + aria-labelledby.
|
|
40
|
+
* R-M.4 - No modal inside modal - use stepper flow.
|
|
41
|
+
* R-M.5 - Use Drawer (not Modal) for ≥ 3 fields or long scroll.
|
|
42
|
+
* R-M.6 - Action principale à droite, secondaire à gauche.
|
|
43
|
+
* R-RS.2 - Below the `sm` breakpoint token (< 481px) the dialog goes
|
|
44
|
+
* FULL-SCREEN by default. A md/lg/xl modal centred with its
|
|
45
|
+
* token max-width left only a thin sliver of usable width at
|
|
46
|
+
* 320–375px; full-screen restores a usable reading column and
|
|
47
|
+
* keeps the footer actions reachable (WCAG 1.4.10 Reflow).
|
|
48
|
+
* Opt out with fullScreenOnMobile={false} for genuinely tiny
|
|
49
|
+
* confirm dialogs that read better centred.
|
|
50
|
+
*
|
|
51
|
+
* <Modal open={open} onClose={close} title="Confirmation" size="sm"
|
|
52
|
+
* footer={<><Button variant="ghost" onClick={close}>Annuler</Button>
|
|
53
|
+
* <Button variant="primary">OK</Button></>}>
|
|
54
|
+
* Body content here.
|
|
55
|
+
* </Modal>
|
|
56
|
+
*
|
|
57
|
+
* Accessible name (R-Ar.5 / R-M.3):
|
|
58
|
+
* `aria-labelledby` points at the title <Typography> (id=titleId), so the
|
|
59
|
+
* dialog's accessible name is the title text ONLY — the close button and
|
|
60
|
+
* subtitle are not part of it. When no `title` is provided, pass `ariaLabel`
|
|
61
|
+
* to name the dialog; otherwise it would have no accessible name.
|
|
62
|
+
*
|
|
63
|
+
* Initial focus targeting (R-Ar.4):
|
|
64
|
+
* By default the FIRST focusable element of the dialog gets focus on
|
|
65
|
+
* open. To opt a specific control in (e.g. the destructive "Delete"
|
|
66
|
+
* button which intentionally is NOT first), mark it with either:
|
|
67
|
+
* - React's <button autoFocus> attribute (standard), or
|
|
68
|
+
* - <button data-autofocus> (v2 marker, identical effect).
|
|
69
|
+
* Both are matched by useFocusTrap's AUTOFOCUS_SELECTORS.
|
|
70
|
+
*
|
|
71
|
+
* Stacking:
|
|
72
|
+
* The modal's portal layer uses the v2 `zIndex.modal` token (100), so
|
|
73
|
+
* it stacks ABOVE a Drawer (zIndex.drawer:80) when opened from inside
|
|
74
|
+
* one (e.g. a ReferentielField search launched from the filters Drawer)
|
|
75
|
+
* and BELOW snackbar:150 / toast:200 / tooltip:250 so notifications and
|
|
76
|
+
* tooltips fired from a modal action stay on top. MUI popups rendered
|
|
77
|
+
* inside the modal — Combobox/Autocomplete listboxes and X date-picker
|
|
78
|
+
* calendars — also render at theme.zIndex.modal (100) and, opening
|
|
79
|
+
* after the dialog, paint above it by DOM order (MUI's own
|
|
80
|
+
* Dialog+Autocomplete contract). A previous build hardcoded 1350 here
|
|
81
|
+
* (a leftover from MUI's 1100..1500 scale before the v2 remap to
|
|
82
|
+
* 0..250); that buried those in-modal popups (at 100) behind the modal
|
|
83
|
+
* and pushed the modal above toasts/tooltips.
|
|
84
|
+
*/ /* ── Hoisted static sx (D5) ────────────────────────────────────────────
|
|
85
|
+
* Frozen at module load. Same emotion / allocation rationale as Tabs +
|
|
86
|
+
* DataGrid hoisting. The paper slotProps cannot be fully hoisted because
|
|
87
|
+
* it embeds the dynamic `maxWidth` (size-driven) and the `ref` (per
|
|
88
|
+
* Modal instance) — its static base is hoisted and the dynamic
|
|
89
|
+
* additions are layered via useMemo at the call site.
|
|
90
|
+
*/
|
|
91
|
+
var DIALOG_ROOT_SX = Object.freeze({
|
|
92
|
+
// v2 z-index token (zIndex.js). modal:100 sits ABOVE drawer:80 (so a
|
|
93
|
+
// Modal opened from inside a Drawer stacks correctly) and BELOW
|
|
94
|
+
// snackbar:150 / toast:200 / tooltip:250. In-modal MUI popups
|
|
95
|
+
// (Combobox listboxes, X date-picker calendars) also use
|
|
96
|
+
// theme.zIndex.modal and paint above the dialog by DOM order. The
|
|
97
|
+
// previous hardcoded 1350 predated the v2 remap of MUI's 1100..1500
|
|
98
|
+
// scale down to 0..250.
|
|
99
|
+
zIndex: _tokens.zIndex.modal
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
// MUI v9: backdrop forwarded via slotProps.backdrop (was BackdropProps
|
|
103
|
+
// at the Dialog top-level in v5/v6/v7, removed in v9). The content
|
|
104
|
+
// `{ sx: {...} }` is unchanged — the backdrop slot receives the same
|
|
105
|
+
// shape.
|
|
106
|
+
var BACKDROP_SLOT_PROPS = Object.freeze({
|
|
107
|
+
// R-AI.1 - backdrop derived from the live --fg token instead of hard
|
|
108
|
+
// rgba(15,21,37,...). Adapts to any future theme override.
|
|
109
|
+
sx: {
|
|
110
|
+
backgroundColor: "color-mix(in srgb, var(--fg) 45%, transparent)"
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
var PAPER_BASE_SX = Object.freeze({
|
|
114
|
+
width: "100%",
|
|
115
|
+
borderRadius: "var(--r-lg)",
|
|
116
|
+
boxShadow: "var(--shadow-lg)"
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
/* R-RS.2 — full-screen paper sx for the mobile (< sm token) branch.
|
|
120
|
+
* Drops the rounded corners + shadow (no longer floating) and lets the
|
|
121
|
+
* paper fill the viewport. maxWidth is forced to 100% so the size-driven
|
|
122
|
+
* token max-width can't re-clamp it. Kept as a frozen module constant so
|
|
123
|
+
* the reference is stable across renders. */
|
|
124
|
+
var PAPER_FULLSCREEN_SX = Object.freeze({
|
|
125
|
+
width: "100%",
|
|
126
|
+
maxWidth: "100%",
|
|
127
|
+
borderRadius: 0,
|
|
128
|
+
boxShadow: "none"
|
|
129
|
+
});
|
|
130
|
+
var DIALOG_TITLE_SX = Object.freeze({
|
|
131
|
+
padding: "var(--s-4) var(--s-5) var(--s-2)",
|
|
132
|
+
display: "flex",
|
|
133
|
+
alignItems: "flex-start",
|
|
134
|
+
justifyContent: "space-between",
|
|
135
|
+
gap: "var(--s-2)"
|
|
136
|
+
});
|
|
137
|
+
var TITLE_TYPOGRAPHY_SX = Object.freeze({
|
|
138
|
+
fontSize: "var(--text-h3)",
|
|
139
|
+
fontWeight: "var(--fw-bold)",
|
|
140
|
+
color: "var(--fg)"
|
|
141
|
+
});
|
|
142
|
+
var SUBTITLE_TYPOGRAPHY_SX = Object.freeze({
|
|
143
|
+
fontSize: "var(--text-sm)",
|
|
144
|
+
color: "var(--fg-muted)",
|
|
145
|
+
marginTop: "var(--s-1)"
|
|
146
|
+
});
|
|
147
|
+
var CLOSE_ICON_BUTTON_SX = Object.freeze({
|
|
148
|
+
color: "var(--fg-subtle)",
|
|
149
|
+
marginRight: "calc(-1 * var(--s-1))",
|
|
150
|
+
marginTop: "calc(-1 * var(--s-1))"
|
|
151
|
+
});
|
|
152
|
+
var DIALOG_CONTENT_SX = Object.freeze({
|
|
153
|
+
padding: "var(--s-4) var(--s-5)",
|
|
154
|
+
borderColor: "var(--border)"
|
|
155
|
+
});
|
|
156
|
+
var DIALOG_ACTIONS_SX = Object.freeze({
|
|
157
|
+
padding: "var(--s-3) var(--s-5) var(--s-4)",
|
|
158
|
+
gap: "var(--s-2)"
|
|
159
|
+
});
|
|
160
|
+
function Modal(_ref) {
|
|
161
|
+
var open = _ref.open,
|
|
162
|
+
onClose = _ref.onClose,
|
|
163
|
+
title = _ref.title,
|
|
164
|
+
subtitle = _ref.subtitle,
|
|
165
|
+
children = _ref.children,
|
|
166
|
+
footer = _ref.footer,
|
|
167
|
+
_ref$size = _ref.size,
|
|
168
|
+
size = _ref$size === void 0 ? "md" : _ref$size,
|
|
169
|
+
_ref$disableBackdropC = _ref.disableBackdropClick,
|
|
170
|
+
disableBackdropClick = _ref$disableBackdropC === void 0 ? false : _ref$disableBackdropC,
|
|
171
|
+
_ref$disableEscape = _ref.disableEscape,
|
|
172
|
+
disableEscape = _ref$disableEscape === void 0 ? false : _ref$disableEscape,
|
|
173
|
+
_ref$fullScreenOnMobi = _ref.fullScreenOnMobile,
|
|
174
|
+
fullScreenOnMobile = _ref$fullScreenOnMobi === void 0 ? true : _ref$fullScreenOnMobi,
|
|
175
|
+
ariaLabel = _ref.ariaLabel,
|
|
176
|
+
_ref$ariaLabelClose = _ref.ariaLabelClose,
|
|
177
|
+
ariaLabelClose = _ref$ariaLabelClose === void 0 ? "Fermer la boîte de dialogue" : _ref$ariaLabelClose;
|
|
178
|
+
// R-Ar.5 - stable, per-instance, collision-safe ID for aria-labelledby.
|
|
179
|
+
var titleId = React.useId();
|
|
180
|
+
|
|
181
|
+
// R-F.2 / R-M.2 - the v2 trap is wired on the Dialog Paper element,
|
|
182
|
+
// activated only while the modal is open. MUI's own trap is disabled
|
|
183
|
+
// via the disable*Focus props on Dialog below so the two implementations
|
|
184
|
+
// don't compete for the same DOM event stream.
|
|
185
|
+
var paperRef = React.useRef(null);
|
|
186
|
+
(0, _useFocusTrap["default"])(paperRef, !!open);
|
|
187
|
+
|
|
188
|
+
// R-RS.2 — full-screen below the `sm` breakpoint TOKEN (< 481px now
|
|
189
|
+
// that tokens are wired into the theme). Reads the live theme so a host
|
|
190
|
+
// breakpoint override is honoured. Gated behind fullScreenOnMobile so a
|
|
191
|
+
// caller can keep a small confirm dialog centred on phones.
|
|
192
|
+
var theme = (0, _styles.useTheme)();
|
|
193
|
+
var isMobile = (0, _useMediaQuery["default"])(theme.breakpoints.down("sm"));
|
|
194
|
+
var fullScreen = fullScreenOnMobile && isMobile;
|
|
195
|
+
var handleClose = function handleClose(_e, reason) {
|
|
196
|
+
if (reason === "backdropClick" && disableBackdropClick) return;
|
|
197
|
+
if (reason === "escapeKeyDown" && disableEscape) return;
|
|
198
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
199
|
+
};
|
|
200
|
+
|
|
201
|
+
// R-AI.1 - modal sizing is owned by the token system (layout.modal),
|
|
202
|
+
// not duplicated here. See src/lib/v2/tokens/density.js.
|
|
203
|
+
var maxWidth = _tokens.layout.modal[size] || _tokens.layout.modal.md;
|
|
204
|
+
|
|
205
|
+
// MUI v9: paper slot is forwarded through slotProps.paper. The slot
|
|
206
|
+
// cannot be fully hoisted — embeds the dynamic maxWidth (size-driven)
|
|
207
|
+
// and the per-instance ref. Memo on [maxWidth, fullScreen] so the
|
|
208
|
+
// reference is stable until either the size or the mobile branch flips.
|
|
209
|
+
var slotProps = React.useMemo(function () {
|
|
210
|
+
return {
|
|
211
|
+
paper: {
|
|
212
|
+
ref: paperRef,
|
|
213
|
+
sx: fullScreen ? _objectSpread({}, PAPER_FULLSCREEN_SX) : _objectSpread(_objectSpread({}, PAPER_BASE_SX), {}, {
|
|
214
|
+
maxWidth: maxWidth
|
|
215
|
+
})
|
|
216
|
+
},
|
|
217
|
+
backdrop: BACKDROP_SLOT_PROPS
|
|
218
|
+
};
|
|
219
|
+
}, [maxWidth, fullScreen]);
|
|
220
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Dialog["default"], {
|
|
221
|
+
open: !!open,
|
|
222
|
+
onClose: handleClose,
|
|
223
|
+
role: "dialog",
|
|
224
|
+
"aria-modal": "true"
|
|
225
|
+
// Name = title text only (id is on the title Typography). Falls back
|
|
226
|
+
// to ariaLabel when the dialog has no title.
|
|
227
|
+
,
|
|
228
|
+
"aria-labelledby": title != null ? titleId : undefined,
|
|
229
|
+
"aria-label": title == null ? ariaLabel : undefined,
|
|
230
|
+
maxWidth: false
|
|
231
|
+
// R-RS.2 — hand the full-screen decision to MUI's own prop so it
|
|
232
|
+
// applies the correct fullscreen paper geometry (100vw/100vh,
|
|
233
|
+
// no margin); our PAPER_FULLSCREEN_SX only relaxes radius/shadow.
|
|
234
|
+
,
|
|
235
|
+
fullScreen: fullScreen
|
|
236
|
+
// Hand over focus management to useFocusTrap above. Dialog still
|
|
237
|
+
// owns the Portal, Backdrop, scroll lock, transitions, and Esc
|
|
238
|
+
// wiring - just not the focus trap itself.
|
|
239
|
+
,
|
|
240
|
+
disableAutoFocus: true,
|
|
241
|
+
disableEnforceFocus: true,
|
|
242
|
+
disableRestoreFocus: true
|
|
243
|
+
// Root sx anchors the portal at the v2 zIndex.modal token — above
|
|
244
|
+
// the Drawer, below snackbar/toast/tooltip. See DIALOG_ROOT_SX.
|
|
245
|
+
,
|
|
246
|
+
sx: DIALOG_ROOT_SX,
|
|
247
|
+
slotProps: slotProps,
|
|
248
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_DialogTitle["default"], {
|
|
249
|
+
sx: DIALOG_TITLE_SX,
|
|
250
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
|
|
251
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography["default"], {
|
|
252
|
+
id: titleId,
|
|
253
|
+
variant: "h3",
|
|
254
|
+
component: "h2",
|
|
255
|
+
sx: TITLE_TYPOGRAPHY_SX,
|
|
256
|
+
children: title
|
|
257
|
+
}), subtitle && /*#__PURE__*/(0, _jsxRuntime.jsx)(_Typography["default"], {
|
|
258
|
+
sx: SUBTITLE_TYPOGRAPHY_SX,
|
|
259
|
+
children: subtitle
|
|
260
|
+
})]
|
|
261
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_IconButton["default"], {
|
|
262
|
+
"aria-label": ariaLabelClose,
|
|
263
|
+
onClick: onClose,
|
|
264
|
+
size: "small",
|
|
265
|
+
sx: CLOSE_ICON_BUTTON_SX,
|
|
266
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Close["default"], {
|
|
267
|
+
fontSize: "small"
|
|
268
|
+
})
|
|
269
|
+
})]
|
|
270
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogContent["default"], {
|
|
271
|
+
dividers: !!footer,
|
|
272
|
+
sx: DIALOG_CONTENT_SX,
|
|
273
|
+
children: children
|
|
274
|
+
}), footer && /*#__PURE__*/(0, _jsxRuntime.jsx)(_DialogActions["default"], {
|
|
275
|
+
sx: DIALOG_ACTIONS_SX,
|
|
276
|
+
children: footer
|
|
277
|
+
})]
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
var _default = exports["default"] = Modal;
|
|
281
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.js","names":["React","_interopRequireWildcard","require","_Dialog","_interopRequireDefault","_DialogTitle","_DialogContent","_DialogActions","_IconButton","_Close","_Typography","_useMediaQuery","_styles","_tokens","_useFocusTrap","_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","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","value","_toPropertyKey","configurable","writable","arg","_toPrimitive","String","input","hint","prim","toPrimitive","undefined","res","TypeError","Number","DIALOG_ROOT_SX","freeze","zIndex","modal","BACKDROP_SLOT_PROPS","sx","backgroundColor","PAPER_BASE_SX","width","borderRadius","boxShadow","PAPER_FULLSCREEN_SX","maxWidth","DIALOG_TITLE_SX","padding","display","alignItems","justifyContent","gap","TITLE_TYPOGRAPHY_SX","fontSize","fontWeight","color","SUBTITLE_TYPOGRAPHY_SX","marginTop","CLOSE_ICON_BUTTON_SX","marginRight","DIALOG_CONTENT_SX","borderColor","DIALOG_ACTIONS_SX","Modal","_ref","open","onClose","title","subtitle","children","footer","_ref$size","size","_ref$disableBackdropC","disableBackdropClick","_ref$disableEscape","disableEscape","_ref$fullScreenOnMobi","fullScreenOnMobile","ariaLabel","_ref$ariaLabelClose","ariaLabelClose","titleId","useId","paperRef","useRef","useFocusTrap","theme","useTheme","isMobile","useMediaQuery","breakpoints","down","fullScreen","handleClose","_e","reason","layout","md","slotProps","useMemo","paper","ref","backdrop","jsxs","role","disableAutoFocus","disableEnforceFocus","disableRestoreFocus","jsx","id","variant","component","onClick","dividers","_default","exports"],"sources":["../../../src/lib/v2/components/Modal.tsx"],"sourcesContent":["import * as React from \"react\";\r\nimport Dialog from \"@mui/material/Dialog\";\r\nimport DialogTitle from \"@mui/material/DialogTitle\";\r\nimport DialogContent from \"@mui/material/DialogContent\";\r\nimport DialogActions from \"@mui/material/DialogActions\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { layout, zIndex } from \"../tokens\";\r\nimport useFocusTrap from \"../hooks/useFocusTrap\";\r\n\r\n/**\r\n * Modal - Portnet UI v2\r\n *\r\n * Charter §03 · Component \"Modal · Dialog\".\r\n *\r\n * R-M.1 - Closable via Esc + backdrop click + explicit X button.\r\n * R-M.2 - Focus trap when open, focus restored to trigger on close.\r\n * Backed by the v2 useFocusTrap hook (Batch 3) - honours\r\n * [autofocus] and [data-autofocus] markers, coordinates\r\n * with nested traps via a module-level trapStack, and\r\n * filters disabled/hidden/inert subtrees.\r\n * R-M.3 - role=\"dialog\" + aria-modal=\"true\" + aria-labelledby.\r\n * R-M.4 - No modal inside modal - use stepper flow.\r\n * R-M.5 - Use Drawer (not Modal) for ≥ 3 fields or long scroll.\r\n * R-M.6 - Action principale à droite, secondaire à gauche.\r\n * R-RS.2 - Below the `sm` breakpoint token (< 481px) the dialog goes\r\n * FULL-SCREEN by default. A md/lg/xl modal centred with its\r\n * token max-width left only a thin sliver of usable width at\r\n * 320–375px; full-screen restores a usable reading column and\r\n * keeps the footer actions reachable (WCAG 1.4.10 Reflow).\r\n * Opt out with fullScreenOnMobile={false} for genuinely tiny\r\n * confirm dialogs that read better centred.\r\n *\r\n * <Modal open={open} onClose={close} title=\"Confirmation\" size=\"sm\"\r\n * footer={<><Button variant=\"ghost\" onClick={close}>Annuler</Button>\r\n * <Button variant=\"primary\">OK</Button></>}>\r\n * Body content here.\r\n * </Modal>\r\n *\r\n * Accessible name (R-Ar.5 / R-M.3):\r\n * `aria-labelledby` points at the title <Typography> (id=titleId), so the\r\n * dialog's accessible name is the title text ONLY — the close button and\r\n * subtitle are not part of it. When no `title` is provided, pass `ariaLabel`\r\n * to name the dialog; otherwise it would have no accessible name.\r\n *\r\n * Initial focus targeting (R-Ar.4):\r\n * By default the FIRST focusable element of the dialog gets focus on\r\n * open. To opt a specific control in (e.g. the destructive \"Delete\"\r\n * button which intentionally is NOT first), mark it with either:\r\n * - React's <button autoFocus> attribute (standard), or\r\n * - <button data-autofocus> (v2 marker, identical effect).\r\n * Both are matched by useFocusTrap's AUTOFOCUS_SELECTORS.\r\n *\r\n * Stacking:\r\n * The modal's portal layer uses the v2 `zIndex.modal` token (100), so\r\n * it stacks ABOVE a Drawer (zIndex.drawer:80) when opened from inside\r\n * one (e.g. a ReferentielField search launched from the filters Drawer)\r\n * and BELOW snackbar:150 / toast:200 / tooltip:250 so notifications and\r\n * tooltips fired from a modal action stay on top. MUI popups rendered\r\n * inside the modal — Combobox/Autocomplete listboxes and X date-picker\r\n * calendars — also render at theme.zIndex.modal (100) and, opening\r\n * after the dialog, paint above it by DOM order (MUI's own\r\n * Dialog+Autocomplete contract). A previous build hardcoded 1350 here\r\n * (a leftover from MUI's 1100..1500 scale before the v2 remap to\r\n * 0..250); that buried those in-modal popups (at 100) behind the modal\r\n * and pushed the modal above toasts/tooltips.\r\n */\r\n\r\n/* ── Hoisted static sx (D5) ────────────────────────────────────────────\r\n * Frozen at module load. Same emotion / allocation rationale as Tabs +\r\n * DataGrid hoisting. The paper slotProps cannot be fully hoisted because\r\n * it embeds the dynamic `maxWidth` (size-driven) and the `ref` (per\r\n * Modal instance) — its static base is hoisted and the dynamic\r\n * additions are layered via useMemo at the call site.\r\n */\r\n\r\nconst DIALOG_ROOT_SX = Object.freeze({\r\n // v2 z-index token (zIndex.js). modal:100 sits ABOVE drawer:80 (so a\r\n // Modal opened from inside a Drawer stacks correctly) and BELOW\r\n // snackbar:150 / toast:200 / tooltip:250. In-modal MUI popups\r\n // (Combobox listboxes, X date-picker calendars) also use\r\n // theme.zIndex.modal and paint above the dialog by DOM order. The\r\n // previous hardcoded 1350 predated the v2 remap of MUI's 1100..1500\r\n // scale down to 0..250.\r\n zIndex: zIndex.modal,\r\n});\r\n\r\n// MUI v9: backdrop forwarded via slotProps.backdrop (was BackdropProps\r\n// at the Dialog top-level in v5/v6/v7, removed in v9). The content\r\n// `{ sx: {...} }` is unchanged — the backdrop slot receives the same\r\n// shape.\r\nconst BACKDROP_SLOT_PROPS = Object.freeze({\r\n // R-AI.1 - backdrop derived from the live --fg token instead of hard\r\n // rgba(15,21,37,...). Adapts to any future theme override.\r\n sx: { backgroundColor: \"color-mix(in srgb, var(--fg) 45%, transparent)\" },\r\n});\r\n\r\nconst PAPER_BASE_SX = Object.freeze({\r\n width: \"100%\",\r\n borderRadius: \"var(--r-lg)\",\r\n boxShadow: \"var(--shadow-lg)\",\r\n});\r\n\r\n/* R-RS.2 — full-screen paper sx for the mobile (< sm token) branch.\r\n * Drops the rounded corners + shadow (no longer floating) and lets the\r\n * paper fill the viewport. maxWidth is forced to 100% so the size-driven\r\n * token max-width can't re-clamp it. Kept as a frozen module constant so\r\n * the reference is stable across renders. */\r\nconst PAPER_FULLSCREEN_SX = Object.freeze({\r\n width: \"100%\",\r\n maxWidth: \"100%\",\r\n borderRadius: 0,\r\n boxShadow: \"none\",\r\n});\r\n\r\nconst DIALOG_TITLE_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5) var(--s-2)\",\r\n display: \"flex\",\r\n alignItems: \"flex-start\",\r\n justifyContent: \"space-between\",\r\n gap: \"var(--s-2)\",\r\n} satisfies SxProps<Theme>);\r\n\r\nconst TITLE_TYPOGRAPHY_SX = Object.freeze({\r\n fontSize: \"var(--text-h3)\",\r\n fontWeight: \"var(--fw-bold)\",\r\n color: \"var(--fg)\",\r\n});\r\n\r\nconst SUBTITLE_TYPOGRAPHY_SX = Object.freeze({\r\n fontSize: \"var(--text-sm)\",\r\n color: \"var(--fg-muted)\",\r\n marginTop: \"var(--s-1)\",\r\n});\r\n\r\nconst CLOSE_ICON_BUTTON_SX = Object.freeze({\r\n color: \"var(--fg-subtle)\",\r\n marginRight: \"calc(-1 * var(--s-1))\",\r\n marginTop: \"calc(-1 * var(--s-1))\",\r\n});\r\n\r\nconst DIALOG_CONTENT_SX = Object.freeze({\r\n padding: \"var(--s-4) var(--s-5)\",\r\n borderColor: \"var(--border)\",\r\n});\r\n\r\nconst DIALOG_ACTIONS_SX = Object.freeze({\r\n padding: \"var(--s-3) var(--s-5) var(--s-4)\",\r\n gap: \"var(--s-2)\",\r\n});\r\n\r\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\";\r\n\r\nexport interface ModalProps {\r\n open?: boolean;\r\n onClose?: () => void;\r\n title?: React.ReactNode;\r\n subtitle?: React.ReactNode;\r\n children?: React.ReactNode;\r\n footer?: React.ReactNode;\r\n size?: ModalSize;\r\n disableBackdropClick?: boolean;\r\n disableEscape?: boolean;\r\n /** R-RS.2 — go full-screen below the `sm` token (< 481px). Default true. */\r\n fullScreenOnMobile?: boolean;\r\n /** Accessible name for the dialog when no `title` is rendered (R-M.3). */\r\n ariaLabel?: string;\r\n ariaLabelClose?: string;\r\n}\r\n\r\nfunction Modal({\r\n open,\r\n onClose,\r\n title,\r\n subtitle,\r\n children,\r\n footer,\r\n size = \"md\",\r\n disableBackdropClick = false,\r\n disableEscape = false,\r\n fullScreenOnMobile = true,\r\n ariaLabel,\r\n ariaLabelClose = \"Fermer la boîte de dialogue\",\r\n}: ModalProps) {\r\n // R-Ar.5 - stable, per-instance, collision-safe ID for aria-labelledby.\r\n const titleId = React.useId();\r\n\r\n // R-F.2 / R-M.2 - the v2 trap is wired on the Dialog Paper element,\r\n // activated only while the modal is open. MUI's own trap is disabled\r\n // via the disable*Focus props on Dialog below so the two implementations\r\n // don't compete for the same DOM event stream.\r\n const paperRef = React.useRef<HTMLDivElement>(null);\r\n useFocusTrap(paperRef, !!open);\r\n\r\n // R-RS.2 — full-screen below the `sm` breakpoint TOKEN (< 481px now\r\n // that tokens are wired into the theme). Reads the live theme so a host\r\n // breakpoint override is honoured. Gated behind fullScreenOnMobile so a\r\n // caller can keep a small confirm dialog centred on phones.\r\n const theme = useTheme();\r\n const isMobile = useMediaQuery(theme.breakpoints.down(\"sm\"));\r\n const fullScreen = fullScreenOnMobile && isMobile;\r\n\r\n const handleClose = (_e: unknown, reason: \"backdropClick\" | \"escapeKeyDown\") => {\r\n if (reason === \"backdropClick\" && disableBackdropClick) return;\r\n if (reason === \"escapeKeyDown\" && disableEscape) return;\r\n onClose?.();\r\n };\r\n\r\n // R-AI.1 - modal sizing is owned by the token system (layout.modal),\r\n // not duplicated here. See src/lib/v2/tokens/density.js.\r\n const maxWidth = layout.modal[size] || layout.modal.md;\r\n\r\n // MUI v9: paper slot is forwarded through slotProps.paper. The slot\r\n // cannot be fully hoisted — embeds the dynamic maxWidth (size-driven)\r\n // and the per-instance ref. Memo on [maxWidth, fullScreen] so the\r\n // reference is stable until either the size or the mobile branch flips.\r\n const slotProps = React.useMemo(\r\n () => ({\r\n paper: {\r\n ref: paperRef,\r\n sx: fullScreen\r\n ? { ...PAPER_FULLSCREEN_SX }\r\n : { ...PAPER_BASE_SX, maxWidth },\r\n },\r\n backdrop: BACKDROP_SLOT_PROPS,\r\n }),\r\n [maxWidth, fullScreen]\r\n );\r\n\r\n return (\r\n <Dialog\r\n open={!!open}\r\n onClose={handleClose}\r\n role=\"dialog\"\r\n aria-modal=\"true\"\r\n // Name = title text only (id is on the title Typography). Falls back\r\n // to ariaLabel when the dialog has no title.\r\n aria-labelledby={title != null ? titleId : undefined}\r\n aria-label={title == null ? ariaLabel : undefined}\r\n maxWidth={false}\r\n // R-RS.2 — hand the full-screen decision to MUI's own prop so it\r\n // applies the correct fullscreen paper geometry (100vw/100vh,\r\n // no margin); our PAPER_FULLSCREEN_SX only relaxes radius/shadow.\r\n fullScreen={fullScreen}\r\n // Hand over focus management to useFocusTrap above. Dialog still\r\n // owns the Portal, Backdrop, scroll lock, transitions, and Esc\r\n // wiring - just not the focus trap itself.\r\n disableAutoFocus\r\n disableEnforceFocus\r\n disableRestoreFocus\r\n // Root sx anchors the portal at the v2 zIndex.modal token — above\r\n // the Drawer, below snackbar/toast/tooltip. See DIALOG_ROOT_SX.\r\n sx={DIALOG_ROOT_SX}\r\n slotProps={slotProps}\r\n >\r\n <DialogTitle sx={DIALOG_TITLE_SX}>\r\n <div>\r\n <Typography id={titleId} variant=\"h3\" component=\"h2\" sx={TITLE_TYPOGRAPHY_SX}>\r\n {title}\r\n </Typography>\r\n {subtitle && (\r\n <Typography sx={SUBTITLE_TYPOGRAPHY_SX}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </div>\r\n <IconButton\r\n aria-label={ariaLabelClose}\r\n onClick={onClose}\r\n size=\"small\"\r\n sx={CLOSE_ICON_BUTTON_SX}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent dividers={!!footer} sx={DIALOG_CONTENT_SX}>\r\n {children}\r\n </DialogContent>\r\n\r\n {footer && (\r\n <DialogActions sx={DIALOG_ACTIONS_SX}>\r\n {footer}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n}\r\n\r\nexport default Modal;\r\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface NetworkErrorPageProps {
|
|
2
|
+
/** Callback for the back button (top-bar arrow). */
|
|
3
|
+
onBack: () => void;
|
|
4
|
+
/** Callback for the primary "Retour à l'accueil" CTA. */
|
|
5
|
+
onHome: () => void;
|
|
6
|
+
/** Optional retry callback. When omitted, the Réessayer button is hidden. */
|
|
7
|
+
onRetry?: () => void;
|
|
8
|
+
}
|
|
9
|
+
declare function NetworkErrorPage({ onBack, onHome, onRetry }: NetworkErrorPageProps): import("react").JSX.Element;
|
|
10
|
+
export default NetworkErrorPage;
|
|
11
|
+
//# sourceMappingURL=NetworkErrorPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkErrorPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NetworkErrorPage.tsx"],"names":[],"mappings":"AAqCA,MAAM,WAAW,qBAAqB;IACpC,oDAAoD;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,iBAAS,gBAAgB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,qBAAqB,+BAiC3E;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
8
|
+
var _ArrowBack = _interopRequireDefault(require("@mui/icons-material/ArrowBack"));
|
|
9
|
+
var _WifiOff = _interopRequireDefault(require("@mui/icons-material/WifiOff"));
|
|
10
|
+
var _ActionBar = _interopRequireDefault(require("../patterns/ActionBar"));
|
|
11
|
+
var _Button = _interopRequireDefault(require("./Button"));
|
|
12
|
+
var _ErrorPageBody = _interopRequireDefault(require("./_ErrorPageBody"));
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
/**
|
|
16
|
+
* NetworkErrorPage — Portnet UI v2 (component)
|
|
17
|
+
*
|
|
18
|
+
* Charter §07 · Connexion perdue.
|
|
19
|
+
*
|
|
20
|
+
* Same contract as ServerErrorPage: router-agnostic with required
|
|
21
|
+
* onBack + onHome and an optional onRetry. The code heading reads
|
|
22
|
+
* "—" since there is no HTTP status to surface.
|
|
23
|
+
*
|
|
24
|
+
* import { NetworkErrorPage } from "@portnet/ui/lib/v2";
|
|
25
|
+
* import { useNavigate } from "react-router-dom";
|
|
26
|
+
*
|
|
27
|
+
* function NetworkErrorRoute() {
|
|
28
|
+
* const navigate = useNavigate();
|
|
29
|
+
* return (
|
|
30
|
+
* <NetworkErrorPage
|
|
31
|
+
* onBack={() => navigate(-1)}
|
|
32
|
+
* onHome={() => navigate("/")}
|
|
33
|
+
* onRetry={() => window.location.reload()}
|
|
34
|
+
* />
|
|
35
|
+
* );
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* NB: for TRANSIENT connection drops during normal navigation, the
|
|
39
|
+
* v2.NetworkErrorBanner (top of the page, with inline Retry CTA)
|
|
40
|
+
* is the charter-preferred pattern — Charter R-A.3 explicitly
|
|
41
|
+
* forbids forced navigation to a full error page on transient
|
|
42
|
+
* network failure, since it destroys the user's current context.
|
|
43
|
+
* This page is for the explicit /network-error route only.
|
|
44
|
+
*/
|
|
45
|
+
|
|
46
|
+
function NetworkErrorPage(_ref) {
|
|
47
|
+
var onBack = _ref.onBack,
|
|
48
|
+
onHome = _ref.onHome,
|
|
49
|
+
onRetry = _ref.onRetry;
|
|
50
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
51
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar["default"], {
|
|
52
|
+
back: onBack,
|
|
53
|
+
breadcrumb: ["Erreur", "Connexion perdue"],
|
|
54
|
+
title: "Connexion perdue"
|
|
55
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorPageBody["default"], {
|
|
56
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_WifiOff["default"], {
|
|
57
|
+
sx: {
|
|
58
|
+
fontSize: 64,
|
|
59
|
+
color: "var(--warning)"
|
|
60
|
+
}
|
|
61
|
+
}),
|
|
62
|
+
code: "\u2014",
|
|
63
|
+
title: "Aucune connexion au serveur",
|
|
64
|
+
description: "V\xE9rifiez votre connexion r\xE9seau, puis r\xE9essayez. Si vous \xEAtes connect\xE9, le service est peut-\xEAtre momentan\xE9ment interrompu."
|
|
65
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_Box["default"], {
|
|
66
|
+
sx: {
|
|
67
|
+
display: "flex",
|
|
68
|
+
justifyContent: "center",
|
|
69
|
+
gap: "var(--s-3)",
|
|
70
|
+
paddingBottom: "var(--s-7)"
|
|
71
|
+
},
|
|
72
|
+
children: [onRetry ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
73
|
+
variant: "ghost",
|
|
74
|
+
onClick: onRetry,
|
|
75
|
+
children: "R\xE9essayer"
|
|
76
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
77
|
+
variant: "primary",
|
|
78
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack["default"], {}),
|
|
79
|
+
onClick: onHome,
|
|
80
|
+
children: "Retour \xE0 l'accueil"
|
|
81
|
+
})]
|
|
82
|
+
})]
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
var _default = exports["default"] = NetworkErrorPage;
|
|
86
|
+
//# sourceMappingURL=NetworkErrorPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NetworkErrorPage.js","names":["_Box","_interopRequireDefault","require","_ArrowBack","_WifiOff","_ActionBar","_Button","_ErrorPageBody","_jsxRuntime","obj","__esModule","NetworkErrorPage","_ref","onBack","onHome","onRetry","jsxs","Fragment","children","jsx","back","breadcrumb","title","icon","sx","fontSize","color","code","description","display","justifyContent","gap","paddingBottom","variant","onClick","_default","exports"],"sources":["../../../src/lib/v2/components/NetworkErrorPage.tsx"],"sourcesContent":["/**\r\n * NetworkErrorPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · Connexion perdue.\r\n *\r\n * Same contract as ServerErrorPage: router-agnostic with required\r\n * onBack + onHome and an optional onRetry. The code heading reads\r\n * \"—\" since there is no HTTP status to surface.\r\n *\r\n * import { NetworkErrorPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function NetworkErrorRoute() {\r\n * const navigate = useNavigate();\r\n * return (\r\n * <NetworkErrorPage\r\n * onBack={() => navigate(-1)}\r\n * onHome={() => navigate(\"/\")}\r\n * onRetry={() => window.location.reload()}\r\n * />\r\n * );\r\n * }\r\n *\r\n * NB: for TRANSIENT connection drops during normal navigation, the\r\n * v2.NetworkErrorBanner (top of the page, with inline Retry CTA)\r\n * is the charter-preferred pattern — Charter R-A.3 explicitly\r\n * forbids forced navigation to a full error page on transient\r\n * network failure, since it destroys the user's current context.\r\n * This page is for the explicit /network-error route only.\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport WifiOff from \"@mui/icons-material/WifiOff\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\n\r\nexport interface NetworkErrorPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n /** Optional retry callback. When omitted, the Réessayer button is hidden. */\r\n onRetry?: () => void;\r\n}\r\n\r\nfunction NetworkErrorPage({ onBack, onHome, onRetry }: NetworkErrorPageProps) {\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[\"Erreur\", \"Connexion perdue\"]}\r\n title=\"Connexion perdue\"\r\n />\r\n <ErrorPageBody\r\n icon={<WifiOff sx={{ fontSize: 64, color: \"var(--warning)\" }} />}\r\n code=\"—\"\r\n title=\"Aucune connexion au serveur\"\r\n description=\"Vérifiez votre connexion réseau, puis réessayez. Si vous êtes connecté, le service est peut-être momentanément interrompu.\"\r\n />\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n gap: \"var(--s-3)\",\r\n paddingBottom: \"var(--s-7)\",\r\n }}\r\n >\r\n {onRetry ? (\r\n <Button variant=\"ghost\" onClick={onRetry}>\r\n Réessayer\r\n </Button>\r\n ) : null}\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n Retour à l'accueil\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default NetworkErrorPage;\r\n"],"mappings":";;;;;;AA8BA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA6C,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAnC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA,SAASE,gBAAgBA,CAAAC,IAAA,EAAqD;EAAA,IAAlDC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;IAAEC,OAAO,GAAAH,IAAA,CAAPG,OAAO;EACjD,oBACE,IAAAP,WAAA,CAAAQ,IAAA,EAAAR,WAAA,CAAAS,QAAA;IAAAC,QAAA,gBACE,IAAAV,WAAA,CAAAW,GAAA,EAACd,UAAA,WAAS;MACRe,IAAI,EAAEP,MAAO;MACbQ,UAAU,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAE;MAC3CC,KAAK,EAAC;IAAkB,CACzB,CAAC,eACF,IAAAd,WAAA,CAAAW,GAAA,EAACZ,cAAA,WAAa;MACZgB,IAAI,eAAE,IAAAf,WAAA,CAAAW,GAAA,EAACf,QAAA,WAAO;QAACoB,EAAE,EAAE;UAAEC,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAiB;MAAE,CAAE,CAAE;MACjEC,IAAI,EAAC,QAAG;MACRL,KAAK,EAAC,6BAA6B;MACnCM,WAAW,EAAC;IAA4H,CACzI,CAAC,eACF,IAAApB,WAAA,CAAAQ,IAAA,EAAChB,IAAA,WAAG;MACFwB,EAAE,EAAE;QACFK,OAAO,EAAS,MAAM;QACtBC,cAAc,EAAE,QAAQ;QACxBC,GAAG,EAAa,YAAY;QAC5BC,aAAa,EAAG;MAClB,CAAE;MAAAd,QAAA,GAEDH,OAAO,gBACN,IAAAP,WAAA,CAAAW,GAAA,EAACb,OAAA,WAAM;QAAC2B,OAAO,EAAC,OAAO;QAACC,OAAO,EAAEnB,OAAQ;QAAAG,QAAA,EAAC;MAE1C,CAAQ,CAAC,GACP,IAAI,eACR,IAAAV,WAAA,CAAAW,GAAA,EAACb,OAAA,WAAM;QAAC2B,OAAO,EAAC,SAAS;QAACV,IAAI,eAAE,IAAAf,WAAA,CAAAW,GAAA,EAAChB,UAAA,WAAS,IAAE,CAAE;QAAC+B,OAAO,EAAEpB,MAAO;QAAAI,QAAA,EAAC;MAEhE,CAAQ,CAAC;IAAA,CACN,CAAC;EAAA,CACN,CAAC;AAEP;AAAC,IAAAiB,QAAA,GAAAC,OAAA,cAEczB,gBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface NotFoundPageProps {
|
|
2
|
+
/** Callback for the back button (top-bar arrow). */
|
|
3
|
+
onBack: () => void;
|
|
4
|
+
/** Callback for the primary "Retour à l'accueil" CTA. */
|
|
5
|
+
onHome: () => void;
|
|
6
|
+
}
|
|
7
|
+
declare function NotFoundPage({ onBack, onHome }: NotFoundPageProps): import("react").JSX.Element;
|
|
8
|
+
export default NotFoundPage;
|
|
9
|
+
//# sourceMappingURL=NotFoundPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotFoundPage.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NotFoundPage.tsx"],"names":[],"mappings":"AAuBA,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,yDAAyD;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,iBAAS,YAAY,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,iBAAiB,+BAqB1D;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
var _Box = _interopRequireDefault(require("@mui/material/Box"));
|
|
8
|
+
var _ArrowBack = _interopRequireDefault(require("@mui/icons-material/ArrowBack"));
|
|
9
|
+
var _SearchOff = _interopRequireDefault(require("@mui/icons-material/SearchOff"));
|
|
10
|
+
var _ActionBar = _interopRequireDefault(require("../patterns/ActionBar"));
|
|
11
|
+
var _Button = _interopRequireDefault(require("./Button"));
|
|
12
|
+
var _ErrorPageBody = _interopRequireDefault(require("./_ErrorPageBody"));
|
|
13
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
+
/**
|
|
16
|
+
* NotFoundPage — Portnet UI v2 (component)
|
|
17
|
+
*
|
|
18
|
+
* Charter §07 · 404 / Page introuvable.
|
|
19
|
+
*
|
|
20
|
+
* Router-agnostic. See ForbiddenPage.js for the full contract and
|
|
21
|
+
* design rationale (onBack + onHome callback props).
|
|
22
|
+
*
|
|
23
|
+
* import { NotFoundPage } from "@portnet/ui/lib/v2";
|
|
24
|
+
* import { useNavigate } from "react-router-dom";
|
|
25
|
+
*
|
|
26
|
+
* function NotFoundRoute() {
|
|
27
|
+
* const navigate = useNavigate();
|
|
28
|
+
* return <NotFoundPage onBack={() => navigate(-1)} onHome={() => navigate("/")} />;
|
|
29
|
+
* }
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
function NotFoundPage(_ref) {
|
|
33
|
+
var onBack = _ref.onBack,
|
|
34
|
+
onHome = _ref.onHome;
|
|
35
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
|
|
36
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_ActionBar["default"], {
|
|
37
|
+
back: onBack,
|
|
38
|
+
breadcrumb: ["Erreur", "Page introuvable"],
|
|
39
|
+
title: "Page introuvable"
|
|
40
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ErrorPageBody["default"], {
|
|
41
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_SearchOff["default"], {
|
|
42
|
+
sx: {
|
|
43
|
+
fontSize: 64,
|
|
44
|
+
color: "var(--info)"
|
|
45
|
+
}
|
|
46
|
+
}),
|
|
47
|
+
code: "404",
|
|
48
|
+
title: "La page demand\xE9e n'existe pas",
|
|
49
|
+
description: "Le lien suivi est peut-\xEAtre obsol\xE8te, ou la page a \xE9t\xE9 d\xE9plac\xE9e. V\xE9rifiez l'adresse, ou retournez \xE0 l'accueil pour reprendre votre navigation."
|
|
50
|
+
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box["default"], {
|
|
51
|
+
sx: {
|
|
52
|
+
display: "flex",
|
|
53
|
+
justifyContent: "center",
|
|
54
|
+
paddingBottom: "var(--s-7)"
|
|
55
|
+
},
|
|
56
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_Button["default"], {
|
|
57
|
+
variant: "primary",
|
|
58
|
+
icon: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowBack["default"], {}),
|
|
59
|
+
onClick: onHome,
|
|
60
|
+
children: "Retour \xE0 l'accueil"
|
|
61
|
+
})
|
|
62
|
+
})]
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
var _default = exports["default"] = NotFoundPage;
|
|
66
|
+
//# sourceMappingURL=NotFoundPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotFoundPage.js","names":["_Box","_interopRequireDefault","require","_ArrowBack","_SearchOff","_ActionBar","_Button","_ErrorPageBody","_jsxRuntime","obj","__esModule","NotFoundPage","_ref","onBack","onHome","jsxs","Fragment","children","jsx","back","breadcrumb","title","icon","sx","fontSize","color","code","description","display","justifyContent","paddingBottom","variant","onClick","_default","exports"],"sources":["../../../src/lib/v2/components/NotFoundPage.tsx"],"sourcesContent":["/**\r\n * NotFoundPage — Portnet UI v2 (component)\r\n *\r\n * Charter §07 · 404 / Page introuvable.\r\n *\r\n * Router-agnostic. See ForbiddenPage.js for the full contract and\r\n * design rationale (onBack + onHome callback props).\r\n *\r\n * import { NotFoundPage } from \"@portnet/ui/lib/v2\";\r\n * import { useNavigate } from \"react-router-dom\";\r\n *\r\n * function NotFoundRoute() {\r\n * const navigate = useNavigate();\r\n * return <NotFoundPage onBack={() => navigate(-1)} onHome={() => navigate(\"/\")} />;\r\n * }\r\n */\r\nimport Box from \"@mui/material/Box\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport SearchOff from \"@mui/icons-material/SearchOff\";\r\nimport ActionBar from \"../patterns/ActionBar\";\r\nimport Button from \"./Button\";\r\nimport ErrorPageBody from \"./_ErrorPageBody\";\r\n\r\nexport interface NotFoundPageProps {\r\n /** Callback for the back button (top-bar arrow). */\r\n onBack: () => void;\r\n /** Callback for the primary \"Retour à l'accueil\" CTA. */\r\n onHome: () => void;\r\n}\r\n\r\nfunction NotFoundPage({ onBack, onHome }: NotFoundPageProps) {\r\n return (\r\n <>\r\n <ActionBar\r\n back={onBack}\r\n breadcrumb={[\"Erreur\", \"Page introuvable\"]}\r\n title=\"Page introuvable\"\r\n />\r\n <ErrorPageBody\r\n icon={<SearchOff sx={{ fontSize: 64, color: \"var(--info)\" }} />}\r\n code=\"404\"\r\n title=\"La page demandée n'existe pas\"\r\n description=\"Le lien suivi est peut-être obsolète, ou la page a été déplacée. Vérifiez l'adresse, ou retournez à l'accueil pour reprendre votre navigation.\"\r\n />\r\n <Box sx={{ display: \"flex\", justifyContent: \"center\", paddingBottom: \"var(--s-7)\" }}>\r\n <Button variant=\"primary\" icon={<ArrowBack />} onClick={onHome}>\r\n Retour à l'accueil\r\n </Button>\r\n </Box>\r\n </>\r\n );\r\n}\r\n\r\nexport default NotFoundPage;\r\n"],"mappings":";;;;;;AAgBA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,OAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AAA6C,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AArB7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA,SAASE,YAAYA,CAAAC,IAAA,EAAwC;EAAA,IAArCC,MAAM,GAAAD,IAAA,CAANC,MAAM;IAAEC,MAAM,GAAAF,IAAA,CAANE,MAAM;EACpC,oBACE,IAAAN,WAAA,CAAAO,IAAA,EAAAP,WAAA,CAAAQ,QAAA;IAAAC,QAAA,gBACE,IAAAT,WAAA,CAAAU,GAAA,EAACb,UAAA,WAAS;MACRc,IAAI,EAAEN,MAAO;MACbO,UAAU,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAE;MAC3CC,KAAK,EAAC;IAAkB,CACzB,CAAC,eACF,IAAAb,WAAA,CAAAU,GAAA,EAACX,cAAA,WAAa;MACZe,IAAI,eAAE,IAAAd,WAAA,CAAAU,GAAA,EAACd,UAAA,WAAS;QAACmB,EAAE,EAAE;UAAEC,QAAQ,EAAE,EAAE;UAAEC,KAAK,EAAE;QAAc;MAAE,CAAE,CAAE;MAChEC,IAAI,EAAC,KAAK;MACVL,KAAK,EAAC,kCAA+B;MACrCM,WAAW,EAAC;IAAgJ,CAC7J,CAAC,eACF,IAAAnB,WAAA,CAAAU,GAAA,EAAClB,IAAA,WAAG;MAACuB,EAAE,EAAE;QAAEK,OAAO,EAAE,MAAM;QAAEC,cAAc,EAAE,QAAQ;QAAEC,aAAa,EAAE;MAAa,CAAE;MAAAb,QAAA,eAClF,IAAAT,WAAA,CAAAU,GAAA,EAACZ,OAAA,WAAM;QAACyB,OAAO,EAAC,SAAS;QAACT,IAAI,eAAE,IAAAd,WAAA,CAAAU,GAAA,EAACf,UAAA,WAAS,IAAE,CAAE;QAAC6B,OAAO,EAAElB,MAAO;QAAAG,QAAA,EAAC;MAEhE,CAAQ;IAAC,CACN,CAAC;EAAA,CACN,CAAC;AAEP;AAAC,IAAAgB,QAAA,GAAAC,OAAA,cAEcvB,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { OutlinedInputProps } from "@mui/material/OutlinedInput";
|
|
3
|
+
/**
|
|
4
|
+
* NumberInput — Portnet UI v2
|
|
5
|
+
*
|
|
6
|
+
* Charter §03 · Component "NumberInput". Locale-aware numeric input.
|
|
7
|
+
*
|
|
8
|
+
* <Field label="Montant">
|
|
9
|
+
* <NumberInput
|
|
10
|
+
* value={amount} onChange={setAmount}
|
|
11
|
+
* min={0} max={1000000} decimals={2} suffix="MAD"
|
|
12
|
+
* />
|
|
13
|
+
* </Field>
|
|
14
|
+
*
|
|
15
|
+
* Locale (multi-locale platform — FR / EN / AR)
|
|
16
|
+
* <NumberInput
|
|
17
|
+
* locale="en-US"
|
|
18
|
+
* labels={{ decrement: "Decrease", increment: "Increase" }}
|
|
19
|
+
* value={amount} onChange={setAmount}
|
|
20
|
+
* />
|
|
21
|
+
*
|
|
22
|
+
* - `locale` controls DISPLAY formatting only. Parsing is
|
|
23
|
+
* permissive: `,` and `.` both accepted as decimal separator,
|
|
24
|
+
* all whitespace stripped — pasting from any locale just works.
|
|
25
|
+
* - `labels` overrides the FR defaults on the spinner buttons.
|
|
26
|
+
*
|
|
27
|
+
* Value contract:
|
|
28
|
+
* onChange(null) on empty input
|
|
29
|
+
* onChange(123.45) on valid number
|
|
30
|
+
* Display formatting (separators, decimals) is purely visual,
|
|
31
|
+
* reapplied on blur.
|
|
32
|
+
*
|
|
33
|
+
* A11y (aria-valuetext):
|
|
34
|
+
* aria-valuenow holds the raw number; aria-valuetext holds the
|
|
35
|
+
* localised, suffix-bearing string ("1 234,56 MAD") so SR users
|
|
36
|
+
* hear the same thing sighted users see.
|
|
37
|
+
*
|
|
38
|
+
* MUI v9 surface notes (audit Batch 3):
|
|
39
|
+
* The spinbutton aria contract (role + aria-value*) is injected
|
|
40
|
+
* via slotProps.input — MUI v9 idiomatic location for native
|
|
41
|
+
* <input/> attributes on OutlinedInput. Migrated from the
|
|
42
|
+
* deprecated `inputProps={...}` form to match the rest of the
|
|
43
|
+
* v2 surface (Switch, Combobox, DataGrid family).
|
|
44
|
+
* Consumer-passed `inputProps` remains merged in via spread —
|
|
45
|
+
* same order as the pre-migration code, so override semantics
|
|
46
|
+
* are preserved bit-for-bit.
|
|
47
|
+
*
|
|
48
|
+
* Tactile contract — known R-Tg.1 deviation (charter exception):
|
|
49
|
+
* The stepper buttons (showSpinner) are sized to 24 × 24 — the
|
|
50
|
+
* WCAG 2.5.8 AA floor — NOT the 44 × 44 R-Tg.1 AAA floor. The
|
|
51
|
+
* stepper is opt-in convenience UI on top of the keyboard
|
|
52
|
+
* ArrowUp / ArrowDown handler that the input itself provides;
|
|
53
|
+
* users requiring larger targets can type or use keyboard nav.
|
|
54
|
+
* Documented exception, see Batch 14 charter-exceptions log.
|
|
55
|
+
*/
|
|
56
|
+
export interface NumberInputLabels {
|
|
57
|
+
decrement?: string;
|
|
58
|
+
increment?: string;
|
|
59
|
+
}
|
|
60
|
+
export interface NumberInputValidateResult {
|
|
61
|
+
value: number | null;
|
|
62
|
+
clamped: number | null;
|
|
63
|
+
violation: "min" | "max" | null;
|
|
64
|
+
}
|
|
65
|
+
export interface NumberInputProps extends Omit<OutlinedInputProps, "value" | "onChange" | "prefix" | "suffix"> {
|
|
66
|
+
value?: number | null;
|
|
67
|
+
onChange?: (value: number | null) => void;
|
|
68
|
+
min?: number;
|
|
69
|
+
max?: number;
|
|
70
|
+
step?: number;
|
|
71
|
+
decimals?: number;
|
|
72
|
+
showSpinner?: boolean;
|
|
73
|
+
prefix?: React.ReactNode;
|
|
74
|
+
suffix?: React.ReactNode;
|
|
75
|
+
onValidate?: (result: NumberInputValidateResult) => void;
|
|
76
|
+
locale?: string;
|
|
77
|
+
labels?: NumberInputLabels;
|
|
78
|
+
}
|
|
79
|
+
declare const NumberInput: React.ForwardRefExoticComponent<Omit<NumberInputProps, "ref"> & React.RefAttributes<unknown>>;
|
|
80
|
+
export declare const FR_DECIMAL_SEPARATOR = ",";
|
|
81
|
+
export declare const FR_THOUSAND_SEPARATOR = " ";
|
|
82
|
+
export default NumberInput;
|
|
83
|
+
//# sourceMappingURL=NumberInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumberInput.d.ts","sourceRoot":"","sources":["../../../src/lib/v2/components/NumberInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAMtE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,gBACf,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC5E,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5B;AA4CD,QAAA,MAAM,WAAW,+FAsKf,CAAC;AAKH,eAAO,MAAM,oBAAoB,MAAiB,CAAC;AACnD,eAAO,MAAM,qBAAqB,MAAkB,CAAC;AAErD,eAAe,WAAW,CAAC"}
|