@abyss-project/commons-front-core 5.0.1 → 7.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/catalog/captures-plan.ts +91 -0
- package/catalog/catalog-entries.ts +89 -0
- package/catalog/catalog-port.ts +19 -0
- package/catalog/fixtures.tsx +845 -0
- package/catalog/frame.tsx +221 -0
- package/catalog/index.html +12 -0
- package/catalog/main.tsx +123 -0
- package/catalog/pages/ActionBar.tsx +138 -0
- package/catalog/pages/AppShell.tsx +95 -0
- package/catalog/pages/BottomSheet.tsx +90 -0
- package/catalog/pages/ChartTheme.tsx +93 -0
- package/catalog/pages/ColorField.tsx +44 -0
- package/catalog/pages/CommandPalette.tsx +93 -0
- package/catalog/pages/ConfirmDialog.tsx +42 -0
- package/catalog/pages/DataTable.tsx +208 -0
- package/catalog/pages/DateField.tsx +50 -0
- package/catalog/pages/DateRangeField.tsx +71 -0
- package/catalog/pages/Drawer.tsx +77 -0
- package/catalog/pages/FilterBar.tsx +87 -0
- package/catalog/pages/InfectedDownloadModal.tsx +39 -0
- package/catalog/pages/KeyValueList.tsx +113 -0
- package/catalog/pages/Menu.tsx +98 -0
- package/catalog/pages/MethodBadge.tsx +17 -0
- package/catalog/pages/MobileShell.tsx +180 -0
- package/catalog/pages/Modal.tsx +70 -0
- package/catalog/pages/PageHeader.tsx +84 -0
- package/catalog/pages/PageState.tsx +98 -0
- package/catalog/pages/RichSelect.tsx +116 -0
- package/catalog/pages/RoleBadge.tsx +24 -0
- package/catalog/pages/ScanBadge.tsx +29 -0
- package/catalog/pages/SceneDesktop.tsx +207 -0
- package/catalog/pages/SceneMobile.tsx +168 -0
- package/catalog/pages/Section.tsx +77 -0
- package/catalog/pages/SegmentedControl.tsx +64 -0
- package/catalog/pages/SeverityBadge.tsx +17 -0
- package/catalog/pages/Sparkline.tsx +52 -0
- package/catalog/pages/SplitView.tsx +93 -0
- package/catalog/pages/StatTile.tsx +75 -0
- package/catalog/pages/StatusBadge.tsx +33 -0
- package/catalog/pages/Surface.tsx +69 -0
- package/catalog/pages/SwipeDeck.tsx +143 -0
- package/catalog/pages/Toast.tsx +92 -0
- package/catalog/pages/ToolIcon.tsx +48 -0
- package/catalog/pages/Toolbar.tsx +73 -0
- package/catalog/pages/index.ts +79 -0
- package/catalog/parts.tsx +427 -0
- package/catalog/playwright.config.ts +36 -0
- package/catalog/specs/captures.spec.ts +67 -0
- package/catalog/specs/catalog-page.ts +42 -0
- package/catalog/specs/mobile-shell.spec.ts +122 -0
- package/catalog/specs/responsive.spec.ts +247 -0
- package/catalog/specs/write-capture-index.ts +72 -0
- package/catalog/tsconfig.json +12 -0
- package/catalog/vite.config.ts +27 -0
- package/dist/{CookieConsentSettings.component-B7HoVxDK.js → AbyssModal.component-Be9980v8.js} +2928 -2635
- package/dist/CookieConsentSettings.component-CE2qOlyC.js +299 -0
- package/dist/auth/client/abyss-login.d.ts +61 -0
- package/dist/auth/client/auth-refresh-interceptor.d.ts +41 -0
- package/dist/auth/client/index.d.ts +2 -0
- package/dist/auth/client/web-bridge.d.ts +10 -5
- package/dist/auth/components/RequireSession/RequireSession.component.d.ts +17 -0
- package/dist/auth/components/SessionBoundary/AbyssSessionBoundary.component.d.ts +27 -0
- package/dist/auth/components/SessionErrorScreen/SessionErrorScreen.component.d.ts +27 -0
- package/dist/auth/components/index.d.ts +6 -0
- package/dist/auth-client.js +33 -22
- package/dist/components/business/InfectedDownloadModal/InfectedDownloadModal.d.ts +10 -0
- package/dist/components/business/index.d.ts +1 -0
- package/dist/components/data/DataTable/DataTable.d.ts +8 -0
- package/dist/components/data/DataTable/DataTableDesktop.d.ts +6 -0
- package/dist/components/data/DataTable/DataTableMobile.d.ts +6 -0
- package/dist/components/data/DataTable/data-table.types.d.ts +67 -0
- package/dist/components/data/DataTable/use-row-navigation.d.ts +17 -0
- package/dist/components/data/KeyValueList/KeyValueList.d.ts +13 -0
- package/dist/components/data/Sparkline/Sparkline.d.ts +15 -0
- package/dist/components/data/StatTile/StatTile.d.ts +21 -0
- package/dist/components/data/chart-theme.d.ts +7 -0
- package/dist/components/data/index.d.ts +5 -0
- package/dist/components/index.d.ts +8 -20
- package/dist/components/inputs/ColorField/ColorField.d.ts +15 -0
- package/dist/components/inputs/DateField/DateField.d.ts +14 -0
- package/dist/components/inputs/DateRangeField/DateRangeField.d.ts +24 -0
- package/dist/components/inputs/RichSelect/RichSelect.d.ts +31 -0
- package/dist/components/inputs/RichSelect/rich-select-size.d.ts +11 -0
- package/dist/components/inputs/SegmentedControl/SegmentedControl.d.ts +17 -0
- package/dist/components/inputs/date-localization.d.ts +17 -0
- package/dist/components/inputs/index.d.ts +5 -0
- package/dist/components/inputs/test-support/inputs-test-harness.d.ts +1 -0
- package/dist/components/layers/CommandPalette/CommandPalette.d.ts +28 -0
- package/dist/components/layers/CommandPalette/command-registry.d.ts +38 -0
- package/dist/components/layers/ConfirmDialog/ConfirmDialog.d.ts +24 -0
- package/dist/components/layers/Drawer/Drawer.d.ts +20 -0
- package/dist/components/layers/Menu/Menu.d.ts +31 -0
- package/dist/components/layers/Modal/Modal.d.ts +23 -0
- package/dist/components/layers/Toast/Toast.d.ts +34 -0
- package/dist/components/layers/index.d.ts +6 -0
- package/dist/components/layers/test-support/layers-test-harness.d.ts +22 -0
- package/dist/components/meaning/MethodBadge/MethodBadge.d.ts +6 -0
- package/dist/components/meaning/RoleBadge/RoleBadge.d.ts +7 -0
- package/dist/components/meaning/ScanBadge/ScanBadge.d.ts +8 -0
- package/dist/components/meaning/SeverityBadge/SeverityBadge.d.ts +6 -0
- package/dist/components/meaning/StatusBadge/StatusBadge.d.ts +15 -0
- package/dist/components/meaning/ToolIcon/ToolIcon.d.ts +10 -0
- package/dist/components/meaning/index.d.ts +6 -0
- package/dist/components/meaning/meaning-tone.d.ts +9 -0
- package/dist/components/meaning/test-support/meaning-test-harness.d.ts +17 -0
- package/dist/components/mobile/ActionBar/ActionBar.d.ts +24 -0
- package/dist/components/mobile/BottomSheet/BottomSheet.d.ts +14 -0
- package/dist/components/mobile/MobileShell/MobileShell.d.ts +30 -0
- package/dist/components/mobile/MobileShell/use-pull-to-refresh.d.ts +22 -0
- package/dist/components/mobile/SwipeDeck/SwipeDeck.d.ts +28 -0
- package/dist/components/mobile/index.d.ts +4 -0
- package/dist/components/mobile/mobile-layout.d.ts +17 -0
- package/dist/components/mobile/test-support/mobile-test-harness.d.ts +18 -0
- package/dist/components/states/PageState/PageState.d.ts +33 -0
- package/dist/components/states/index.d.ts +1 -0
- package/dist/components/structure/AppShell/AppShell.d.ts +11 -0
- package/dist/components/structure/AppShell/ShellNavigation.d.ts +27 -0
- package/dist/components/structure/AppShell/SpaceSwitcher.d.ts +13 -0
- package/dist/components/structure/AppShell/app-shell.types.d.ts +70 -0
- package/dist/components/structure/FilterBar/FilterBar.d.ts +21 -0
- package/dist/components/structure/PageHeader/PageHeader.d.ts +20 -0
- package/dist/components/structure/Section/Section.d.ts +14 -0
- package/dist/components/structure/SplitView/SplitView.d.ts +16 -0
- package/dist/components/structure/Surface/Surface.d.ts +25 -0
- package/dist/components/structure/Toolbar/Toolbar.d.ts +11 -0
- package/dist/components/structure/index.d.ts +8 -0
- package/dist/components/structure/structure-layout.d.ts +13 -0
- package/dist/components/structure/test-support/structure-test-harness.d.ts +53 -0
- package/dist/cookie-consent.d.ts +1 -1
- package/dist/cookie-consent.js +15 -14
- package/dist/design-theme-BSrfO5Lg.js +9098 -0
- package/dist/fonts.css +8 -0
- package/dist/{components/Inputs/CloudImport → hooks}/cloud-picker.types.d.ts +1 -1
- package/dist/hooks/index.d.ts +3 -1
- package/dist/hooks/use-cloud-picker.hook.d.ts +1 -1
- package/dist/{components/CookieConsent → hooks}/use-cookie-consent.hook.d.ts +1 -1
- package/dist/hooks/use-rich-intl.hook.d.ts +332 -0
- package/dist/{index-D0uOg6A0.js → index-A5kt29MO.js} +4 -4
- package/dist/{index-C-ryoEBt.js → index-BLlNcpG3.js} +2 -2
- package/dist/{index-DvjhhENb.js → index-BaELetix.js} +2 -2
- package/dist/{index-Pm0jV-Wz.js → index-Bkf4H0Hz.js} +2 -2
- package/dist/{index-LoP5aAOy.js → index-BuzeZTOG.js} +2 -2
- package/dist/{index-DZ8YTYOY.js → index-BzCSI9XW.js} +2 -2
- package/dist/{index-CMfXPyXq.js → index-CHSMfNLS.js} +4 -4
- package/dist/{index-BYFdosUa.js → index-CQtuGy2v.js} +3 -3
- package/dist/{index-Db7YwEDm.js → index-C_Sk7zwR.js} +2 -2
- package/dist/{index-DwOujeYK.js → index-CfGWl_3N.js} +2 -2
- package/dist/{index-IWLHhMeY.js → index-Cnpf4y1o.js} +1 -1
- package/dist/{index-CuhdwbRD.js → index-CqYmPMRC.js} +4 -4
- package/dist/{index-BQJ_IibV.js → index-CrrfwI5H.js} +2 -2
- package/dist/{index-PxLJ-vzu.js → index-DEAXSgTl.js} +2 -2
- package/dist/{index-BCNdS_hZ.js → index-DTPUe23x.js} +2 -2
- package/dist/{index-B9j-3Wv9.js → index-Dj8ju3uH.js} +2 -2
- package/dist/{index-alA0Reco.js → index-Do1fJzj3.js} +3 -3
- package/dist/{index-DnCvSvTf.js → index-Ds5uSeS4.js} +2 -2
- package/dist/{index-vc79tKxC.js → index-DwH67Kcz.js} +74754 -87537
- package/dist/{index-DQAX2wNI.js → index-MZi-_cYy.js} +2 -2
- package/dist/{index-BlzK79bL.js → index-WQz3nM40.js} +3 -3
- package/dist/{index-CDh8wzu8.js → index-l4rCdiSM.js} +3 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.js +9578 -298
- package/dist/{components → legacy/components}/CookieConsent/AbyssCookieConsentProvider.d.ts +1 -1
- package/dist/{components → legacy/components}/CookieConsent/CookieConsentBanner.component.d.ts +1 -1
- package/dist/legacy/components/CookieConsent/index.d.ts +9 -0
- package/dist/{components → legacy/components}/Inputs/CloudImport/CloudImport.component.d.ts +1 -1
- package/dist/{components → legacy/components}/Inputs/CloudImport/index.d.ts +0 -1
- package/dist/{components → legacy/components}/Inputs/DropZone/DropZone.component.d.ts +1 -1
- package/dist/legacy/components/Inputs/DropZone/DropZone.component.spec.d.ts +1 -0
- package/dist/legacy/components/Layouts/AbyssBillingPlan/AbyssBillingPlan.component.spec.d.ts +1 -0
- package/dist/legacy/components/Layouts/AbyssFamilyBanner/AbyssFamilyBanner.logic.spec.d.ts +1 -0
- package/dist/legacy/components/Layouts/AbyssHeader/AbyssHeader.component.spec.d.ts +1 -0
- package/dist/{components → legacy/components}/Modals/ImportFromCloudModal/ImportFromCloudModal.component.d.ts +1 -1
- package/dist/legacy/components/Modals/UserSettingsModal/user-settings-modal.family.spec.d.ts +1 -0
- package/dist/legacy/components/Modals/UserSettingsModal/user-settings-modal.links.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/operations/apply.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/operations/compute-page-order.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/operations/extract.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/operations/redact.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/operations/reducer.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/operations/rotate-coords.spec.d.ts +1 -0
- package/dist/legacy/components/PdfEditor/signature/resolve-asset.spec.d.ts +1 -0
- package/dist/{components → legacy/components}/PdfEditor/types.d.ts +1 -1
- package/dist/legacy/components/QuotaGauge/bubble-placement.spec.d.ts +1 -0
- package/dist/legacy/components/QuotaGauge/gauge-highlight.spec.d.ts +1 -0
- package/dist/legacy/components/QuotaGauge/gauge-i18n-coverage.spec.d.ts +1 -0
- package/dist/legacy/components/QuotaGauge/gauge-segments.spec.d.ts +1 -0
- package/dist/legacy/components/QuotaOffer/AbyssQuotaOffer.component.spec.d.ts +1 -0
- package/dist/legacy/components/QuotaOffer/quota-offer-state.spec.d.ts +1 -0
- package/dist/legacy/components/QuotaOffer/quota-phrase-coverage.spec.d.ts +1 -0
- package/dist/{components → legacy/components}/QuotaReached/index.d.ts +0 -3
- package/dist/legacy/components/Support/SupportMessageLink.component.spec.d.ts +1 -0
- package/dist/legacy/components/Support/SupportTicketDetail.mobile-layout.spec.d.ts +1 -0
- package/dist/legacy/components/Support/SupportTicketList.week-preset.spec.d.ts +1 -0
- package/dist/legacy/components/Support/support-attachment.logic.spec.d.ts +1 -0
- package/dist/legacy/components/Support/support-author.logic.spec.d.ts +1 -0
- package/dist/legacy/components/Support/support-create-stepper.logic.spec.d.ts +1 -0
- package/dist/legacy/components/Support/support-message-input.logic.spec.d.ts +1 -0
- package/dist/legacy/components/Support/support-status-timeline.logic.spec.d.ts +1 -0
- package/dist/{components → legacy/components}/Support/types.d.ts +1 -1
- package/dist/legacy/components/Utils/AbyssFamilyMenuSection/AbyssFamilyMenuSection.spec.d.ts +1 -0
- package/dist/legacy/components/Utils/AbyssLayoutMenu/AbyssLayoutMenu.component.spec.d.ts +1 -0
- package/dist/legacy/components/Utils/AbyssLayoutNotifications/AbyssLayoutNotifications.component.spec.d.ts +1 -0
- package/dist/legacy/components/Utils/AbyssLayoutNotifications/AbyssNotifications.component.spec.d.ts +1 -0
- package/dist/{components → legacy/components}/Utils/ImportButton/ImportButton.component.d.ts +1 -1
- package/dist/legacy/components/aria-labels-i18n.spec.d.ts +1 -0
- package/dist/legacy/components/commons-labels-i18n.spec.d.ts +1 -0
- package/dist/legacy/components/index.d.ts +20 -0
- package/dist/legacy/components/theme-mode-colors.spec.d.ts +1 -0
- package/dist/legacy/fonts.css +7 -0
- package/dist/legacy/hooks/index.d.ts +1 -0
- package/dist/legacy/index.d.ts +4 -0
- package/dist/legacy/legacy-under-new-theme.spec.d.ts +1 -0
- package/dist/legacy/theme/augmentation.d.ts +84 -0
- package/dist/legacy/theme/components/buttons.d.ts +35 -0
- package/dist/legacy/theme/components/data-display.d.ts +4 -0
- package/dist/legacy/theme/components/inputs.d.ts +4 -0
- package/dist/legacy/theme/components/inputs.spec.d.ts +1 -0
- package/dist/legacy/theme/components/navigation.d.ts +4 -0
- package/dist/legacy/theme/components/surfaces.d.ts +4 -0
- package/dist/legacy/theme/disabled-contrast.spec.d.ts +1 -0
- package/dist/legacy/theme/index.d.ts +23 -0
- package/dist/legacy/theme/legacy-tokens.d.ts +3 -0
- package/dist/legacy/theme/new-components-under-legacy-theme.spec.d.ts +1 -0
- package/dist/legacy/utils/billing-colors.utils.d.ts +7 -0
- package/dist/legacy/utils/index.d.ts +3 -0
- package/dist/legacy.d.ts +2 -0
- package/dist/legacy.js +210 -0
- package/dist/theme/AbyssThemeProvider.d.ts +14 -0
- package/dist/theme/augmentation.d.ts +25 -75
- package/dist/theme/components/buttons.d.ts +2 -33
- package/dist/theme/components/data-display.d.ts +2 -2
- package/dist/theme/components/feedback.d.ts +4 -0
- package/dist/theme/components/inputs.d.ts +6 -2
- package/dist/theme/components/navigation.d.ts +2 -2
- package/dist/theme/components/shared.d.ts +22 -0
- package/dist/theme/components/surfaces.d.ts +2 -2
- package/dist/theme/create-abyss-theme.d.ts +10 -0
- package/dist/theme/create-abyss-theme.spec.d.ts +1 -0
- package/dist/theme/css-variables.d.ts +9 -0
- package/dist/theme/css-variables.spec.d.ts +1 -0
- package/dist/theme/design-theme.d.ts +8 -0
- package/dist/theme/fonts.spec.d.ts +1 -0
- package/dist/theme/index.d.ts +5 -22
- package/dist/theme/theme-switch.spec.d.ts +1 -0
- package/dist/theme/tokens/contrast.spec.d.ts +1 -0
- package/dist/theme/tokens/domain.d.ts +66 -0
- package/dist/theme/tokens/domain.spec.d.ts +1 -0
- package/dist/theme/tokens/index.d.ts +4 -0
- package/dist/theme/tokens/oklch.d.ts +27 -0
- package/dist/theme/tokens/oklch.spec.d.ts +1 -0
- package/dist/theme/tokens/primitives.d.ts +69 -0
- package/dist/theme/tokens/semantic.d.ts +12 -0
- package/dist/theme/tokens/semantic.spec.d.ts +1 -0
- package/dist/theme/tokens/soft.d.ts +2 -0
- package/dist/translations/en.d.ts +166 -0
- package/dist/translations/fr.d.ts +166 -0
- package/dist/use-auth.hook-oRxzI95f.js +469 -0
- package/dist/{components/QuotaReached/billing-quota-error.d.ts → utils/billing-quota-error.utils.d.ts} +1 -1
- package/dist/utils/billing-quota-error.utils.spec.d.ts +1 -0
- package/dist/utils/billing.utils.d.ts +1 -7
- package/dist/{components/CookieConsent/reconcile.util.d.ts → utils/cookie-consent-reconcile.utils.d.ts} +1 -1
- package/dist/utils/cookie-consent-reconcile.utils.spec.d.ts +1 -0
- package/dist/utils/cookie-storage.utils.spec.d.ts +1 -0
- package/dist/utils/index.d.ts +5 -2
- package/dist/utils/privacy-link.constant.spec.d.ts +1 -0
- package/dist/utils/project-link-wording.utils.d.ts +1 -1
- package/package.json +23 -8
- package/test-results/catalog/.last-run.json +4 -0
- package/vite.config.ts +29 -1
- package/dist/components/CookieConsent/index.d.ts +0 -9
- package/dist/use-auth.hook-DatVLGxS.js +0 -394
- /package/dist/{components/Cards/project-card-date.spec.d.ts → auth/client/abyss-login.spec.d.ts} +0 -0
- /package/dist/{components/Charts/AbyssCashFlowChart/AbyssCashFlowChart.component.spec.d.ts → auth/client/auth-refresh-interceptor.spec.d.ts} +0 -0
- /package/dist/{components/Charts/AbyssLineChart/AbyssLineChart.component.spec.d.ts → auth/components/RequireSession/RequireSession.component.spec.d.ts} +0 -0
- /package/dist/{components/CompanySearchAutocomplete/CompanySearchAutocomplete.date.spec.d.ts → auth/components/RequireSession/RequireSession.logout.spec.d.ts} +0 -0
- /package/dist/{components/CompanySearchAutocomplete/CompanySearchAutocomplete.error.spec.d.ts → auth/components/SessionBoundary/AbyssSessionBoundary.component.spec.d.ts} +0 -0
- /package/dist/components/{CookieConsent/cookie-storage.util.spec.d.ts → business/InfectedDownloadModal/InfectedDownloadModal.spec.d.ts} +0 -0
- /package/dist/components/{CookieConsent/privacy-link.spec.d.ts → data/DataTable/DataTable.spec.d.ts} +0 -0
- /package/dist/components/{CookieConsent/reconcile.util.spec.d.ts → data/KeyValueList/KeyValueList.spec.d.ts} +0 -0
- /package/dist/components/{Data/AbyssTable/AbyssTable.component.spec.d.ts → data/Sparkline/Sparkline.spec.d.ts} +0 -0
- /package/dist/components/{Data/AbyssTable/abyss-table.logic.spec.d.ts → data/StatTile/StatTile.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/AbyssMarkdownEditor/AbyssMarkdownEditor.component.spec.d.ts → data/chart-theme.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/AbyssNumberField/format.spec.d.ts → inputs/ColorField/ColorField.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/AbyssScopeSwitcher/scope-option.spec.d.ts → inputs/DateField/DateField.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/CloudImport/CloudImport.component.spec.d.ts → inputs/DateRangeField/DateRangeField.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/CloudImport/CloudImportFile.component.spec.d.ts → inputs/RichSelect/RichSelect.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/CloudImport/cloud-accept.spec.d.ts → inputs/SegmentedControl/SegmentedControl.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/DatePeriodPicker/DatePeriodPicker.granularity.spec.d.ts → layers/CommandPalette/CommandPalette.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/DatePeriodPicker/DatePeriodPicker.segmented.spec.d.ts → layers/ConfirmDialog/ConfirmDialog.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/DatePeriodPicker/date-period-i18n.spec.d.ts → layers/Drawer/Drawer.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/DatePeriodPicker/date-period-picker.logic.spec.d.ts → layers/Menu/Menu.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/DatePeriodPicker/date-period-presets.spec.d.ts → layers/Modal/Modal.spec.d.ts} +0 -0
- /package/dist/components/{Inputs/DropZone/DropZone.component.spec.d.ts → layers/Toast/Toast.spec.d.ts} +0 -0
- /package/dist/components/{Layouts/AbyssBillingPlan/AbyssBillingPlan.component.spec.d.ts → meaning/MethodBadge/MethodBadge.spec.d.ts} +0 -0
- /package/dist/components/{Layouts/AbyssFamilyBanner/AbyssFamilyBanner.logic.spec.d.ts → meaning/RoleBadge/RoleBadge.spec.d.ts} +0 -0
- /package/dist/components/{Layouts/AbyssHeader/AbyssHeader.component.spec.d.ts → meaning/ScanBadge/ScanBadge.spec.d.ts} +0 -0
- /package/dist/components/{Modals/UserSettingsModal/user-settings-modal.family.spec.d.ts → meaning/SeverityBadge/SeverityBadge.spec.d.ts} +0 -0
- /package/dist/components/{Modals/UserSettingsModal/user-settings-modal.links.spec.d.ts → meaning/StatusBadge/StatusBadge.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/operations/apply.spec.d.ts → meaning/ToolIcon/ToolIcon.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/operations/compute-page-order.spec.d.ts → mobile/ActionBar/ActionBar.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/operations/extract.spec.d.ts → mobile/BottomSheet/BottomSheet.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/operations/redact.spec.d.ts → mobile/MobileShell/MobileShell.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/operations/reducer.spec.d.ts → mobile/SwipeDeck/SwipeDeck.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/operations/rotate-coords.spec.d.ts → states/PageState/PageState.spec.d.ts} +0 -0
- /package/dist/components/{PdfEditor/signature/resolve-asset.spec.d.ts → structure/AppShell/AppShell.spec.d.ts} +0 -0
- /package/dist/components/{QuotaGauge/bubble-placement.spec.d.ts → structure/FilterBar/FilterBar.spec.d.ts} +0 -0
- /package/dist/components/{QuotaGauge/gauge-highlight.spec.d.ts → structure/PageHeader/PageHeader.spec.d.ts} +0 -0
- /package/dist/components/{QuotaGauge/gauge-i18n-coverage.spec.d.ts → structure/Section/Section.spec.d.ts} +0 -0
- /package/dist/components/{QuotaGauge/gauge-segments.spec.d.ts → structure/SplitView/SplitView.spec.d.ts} +0 -0
- /package/dist/components/{QuotaOffer/AbyssQuotaOffer.component.spec.d.ts → structure/Surface/Surface.spec.d.ts} +0 -0
- /package/dist/components/{QuotaOffer/quota-offer-state.spec.d.ts → structure/Toolbar/Toolbar.spec.d.ts} +0 -0
- /package/dist/{components/QuotaReached → hooks}/quota-dialog.store.d.ts +0 -0
- /package/dist/{components/QuotaOffer/quota-phrase-coverage.spec.d.ts → hooks/use-rich-intl.hook.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Avatars/OrganizationAvatar/OrganizationAvatar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/OrganizationAvatar/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/ProjectAvatar/ProjectAvatar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/ProjectAvatar/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/UserAvatar/UserAvatar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/UserAvatar/constant.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/UserAvatar/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/UserAvatarList/UserAvatarList.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/UserAvatarList/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Avatars/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Banking/AccountTransactions/AccountTransactionsRow.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Banking/AccountTransactions/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Banking/Inputs/SelectAccountTransactionCategory/SelectAccountTransactionCategory.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Banking/Inputs/SelectAccountTransactionCategory/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Banking/Inputs/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Banking/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Cards/InternalProjectCard/InternalProjectCard.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Cards/InternalProjectCard/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Cards/ProjectCard/ProjectCard.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Cards/ProjectCard/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Cards/index.d.ts +0 -0
- /package/dist/{components/QuotaReached/billing-quota-error.spec.d.ts → legacy/components/Cards/project-card-date.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssBarChart/AbyssBarChart.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssBarChart/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssCashFlowChart/AbyssCashFlowChart.component.d.ts +0 -0
- /package/dist/{components/Support/SupportMessageLink.component.spec.d.ts → legacy/components/Charts/AbyssCashFlowChart/AbyssCashFlowChart.component.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssCashFlowChart/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssLineChart/AbyssLineChart.component.d.ts +0 -0
- /package/dist/{components/Support/SupportTicketDetail.mobile-layout.spec.d.ts → legacy/components/Charts/AbyssLineChart/AbyssLineChart.component.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssLineChart/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssPieChart/AbyssPieChart.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/AbyssPieChart/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Charts/useNivoTheme.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/ApplicationSentinelTypeChip/ApplicationSentinelTypeChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/ApplicationSentinelTypeChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/ApplicationWebhookTypeChip/ApplicationWebhookTypeChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/ApplicationWebhookTypeChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/LogTypeChip/LogTypeChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/LogTypeChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/ProjectStatusChip/ProjectStatusChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/ProjectStatusChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/WebhookResponseCodeChip/WebhookResponseCodeChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/WebhookResponseCodeChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/WebhookTypeChip/WebhookTypeChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/WebhookTypeChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Chips/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/CommandPalette/AbyssCommandPalette.d.ts +0 -0
- /package/dist/{components → legacy/components}/CommandPalette/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/CommandPalette/types.d.ts +0 -0
- /package/dist/{components → legacy/components}/CommandPalette/useCommandPaletteHotkey.d.ts +0 -0
- /package/dist/{components → legacy/components}/CompanySearchAutocomplete/CompanySearchAutocomplete.d.ts +0 -0
- /package/dist/{components/Support/SupportTicketList.week-preset.spec.d.ts → legacy/components/CompanySearchAutocomplete/CompanySearchAutocomplete.date.spec.d.ts} +0 -0
- /package/dist/{components/Support/support-attachment.logic.spec.d.ts → legacy/components/CompanySearchAutocomplete/CompanySearchAutocomplete.error.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/CompanySearchAutocomplete/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/CookieConsent/CookieConsentSettings.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Data/AbyssTable/AbyssTable.component.d.ts +0 -0
- /package/dist/{components/Support/support-author.logic.spec.d.ts → legacy/components/Data/AbyssTable/AbyssTable.component.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Data/AbyssTable/AbyssTableCards.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Data/AbyssTable/abyss-table.logic.d.ts +0 -0
- /package/dist/{components/Support/support-create-stepper.logic.spec.d.ts → legacy/components/Data/AbyssTable/abyss-table.logic.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Data/AbyssTable/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Data/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/InfoBox/InfoBox.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/InfoBox/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssDatePicker/AbyssDatePicker.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssDatePicker/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssDateTimePicker/AbyssDateTimePicker.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssDateTimePicker/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssMarkdownEditor/AbyssMarkdownEditor.component.d.ts +0 -0
- /package/dist/{components/Support/support-message-input.logic.spec.d.ts → legacy/components/Inputs/AbyssMarkdownEditor/AbyssMarkdownEditor.component.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssMarkdownEditor/crepe-theme.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssMarkdownEditor/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssNumberField/AbyssNumberField.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssNumberField/format.d.ts +0 -0
- /package/dist/{components/Support/support-status-timeline.logic.spec.d.ts → legacy/components/Inputs/AbyssNumberField/format.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssNumberField/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssScopeSwitcher/AbyssScopeSwitcher.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssScopeSwitcher/index.d.ts +0 -0
- /package/dist/{components/Utils/AbyssFamilyMenuSection/AbyssFamilyMenuSection.spec.d.ts → legacy/components/Inputs/AbyssScopeSwitcher/scope-option.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssSelectOrganization/AbyssSelectOrganization.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssSelectOrganization/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssSelectProject/AbyssSelectProject.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/AbyssSelectProject/index.d.ts +0 -0
- /package/dist/{components/Utils/AbyssLayoutMenu/AbyssLayoutMenu.component.spec.d.ts → legacy/components/Inputs/CloudImport/CloudImport.component.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/CloudImport/CloudImportFile.component.d.ts +0 -0
- /package/dist/{components/Utils/AbyssLayoutNotifications/AbyssLayoutNotifications.component.spec.d.ts → legacy/components/Inputs/CloudImport/CloudImportFile.component.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/CloudImport/CloudImportFolder.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/CloudImport/cloud-accept.d.ts +0 -0
- /package/dist/{components/Utils/AbyssLayoutNotifications/AbyssNotifications.component.spec.d.ts → legacy/components/Inputs/CloudImport/cloud-accept.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/ColorPalette/ColorPalette.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ColorPalette/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ColorPicker/ColorPicker.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ColorPicker/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ContextSelector/ContextSelector.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ContextSelector/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/DatePeriodPicker/DatePeriodPicker.component.d.ts +0 -0
- /package/dist/{components/aria-labels-i18n.spec.d.ts → legacy/components/Inputs/DatePeriodPicker/DatePeriodPicker.granularity.spec.d.ts} +0 -0
- /package/dist/{components/commons-labels-i18n.spec.d.ts → legacy/components/Inputs/DatePeriodPicker/DatePeriodPicker.segmented.spec.d.ts} +0 -0
- /package/dist/{components/theme-mode-colors.spec.d.ts → legacy/components/Inputs/DatePeriodPicker/date-period-i18n.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/DatePeriodPicker/date-period-picker.logic.d.ts +0 -0
- /package/dist/{theme/components/inputs.spec.d.ts → legacy/components/Inputs/DatePeriodPicker/date-period-picker.logic.spec.d.ts} +0 -0
- /package/dist/{theme/disabled-contrast.spec.d.ts → legacy/components/Inputs/DatePeriodPicker/date-period-presets.spec.d.ts} +0 -0
- /package/dist/{components → legacy/components}/Inputs/DatePeriodPicker/date-period-presets.util.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/DatePeriodPicker/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/DropZone/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/LanguageFlagLabel/LanguageFlagLabel.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/LanguageFlagLabel/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/LanguageFlagLabel/language-flags.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/PasswordInput/PasswordInput.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/PasswordInput/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ProjectCategoryBadge/ProjectCategoryBadge.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ProjectCategoryBadge/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ProjectLinkSelector/ProjectLinkSelector.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ProjectLinkSelector/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ProjectTagChip/ProjectTagChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/ProjectTagChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Inputs/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Invitations/AbyssPendingInvitations.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Invitations/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssBillingPlan/AbyssBillingPlan.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssBillingPlan/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssDashboardLayout/AbyssDashboardLayout.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssDashboardLayout/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssFamilyBanner/AbyssFamilyBanner.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssFamilyBanner/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssHeader/AbyssHeader.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssHeader/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssLayoutProvider/AbyssLayoutProvider.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssLayoutProvider/abyss-layout.store.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssLayoutProvider/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssLoadingScreen/AbyssLoadingScreen.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssLoadingScreen/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssSearchBar/AbyssSearchBar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssSearchBar/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssSidebar/AbyssSidebar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssSidebar/AbyssSidebarItem.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssSidebar/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssThemeToggle/AbyssThemeToggle.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/AbyssThemeToggle/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/DashboardLayout/DashboardLayout.layout.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/DashboardLayout/DashboardLayoutHeader.layout.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/DashboardLayout/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/LoadingLayout/LoadingLayout.layout.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/LoadingLayout/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/MainLayout/MainLayout.layout.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/MainLayout/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Layouts/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/AbyssModal/AbyssModal.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/AbyssModal/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/ConfirmModal/ConfirmModal.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/ConfirmModal/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/ImportFromCloudModal/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/QRCodeModal/QRCodeModal.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/QRCodeModal/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/UserSettingsModal/UserSettings.compat.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/UserSettingsModal/UserSettingsModal.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/UserSettingsModal/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Modals/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/PdfEditor.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/hooks/use-acro-form-fields.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/hooks/use-export.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/hooks/use-page-order.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/hooks/use-pdf-document.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/hooks/use-undo-redo.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/hooks/use-uploaded-docs.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/actions.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/apply.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/compute-page-order.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/extract.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/pdf-data-url.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/rasterize.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/redact.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/reducer.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/operations/rotate-coords.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/signature/SignatureDrawCanvas.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/signature/SignaturePicker.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/signature/SignatureSaveButton.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/signature/SignatureSavedList.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/signature/SignatureUploadDropzone.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/signature/resolve-asset.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/DrawTool.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/FillFieldsTool.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/RedactTool.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/ShapeTool.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/SignatureTool.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/TextTool.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/Toolbar.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/tools/tool-options-ui.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/InsertPagesButton.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/InsertPagesDialog.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/PageOverlay.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/PageSidebar.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/PageThumbnail.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/PdfCanvas.d.ts +0 -0
- /package/dist/{components → legacy/components}/PdfEditor/viewer/ViewerControls.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaGauge/AbyssQuotaGauge.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaGauge/bubble-placement.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaGauge/gauge-segments.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaGauge/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaOffer/AbyssQuotaOffer.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaOffer/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaOffer/quota-offer-state.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaReached/QuotaReachedDialog.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/QuotaReached/quota-service-meta.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/InternalProjectCard/InternalProjectCard.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/InternalProjectCard/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectCard/ProjectCard.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectCard/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectCategoryBadge/ProjectCategoryBadge.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectCategoryBadge/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectLinkSelector/ProjectLinkSelector.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectLinkSelector/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectTagChip/ProjectTagChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/ProjectTagChip/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Spotlight/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/AbyssServiceSelect.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportActionButtons.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportActivityLog.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportAttachmentsPanel.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportCategoryChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportCategoryGroupCards.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportCategorySelect.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportMessageInput.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportMessageThread.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportPriorityChip.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportSidebar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportStatusBadge.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportStatusTimeline.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportTicketCreateForm.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportTicketCreateStepper.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportTicketDetail.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportTicketList.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/SupportTopBar.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/support-attachment.logic.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/support-author.logic.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/support-create-stepper.logic.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/support-message-input.logic.d.ts +0 -0
- /package/dist/{components → legacy/components}/Support/support-status-timeline.logic.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssBackground/AbyssBackground.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssDrawer/AbyssDrawer.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssDrawer/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssErrorPage/AbyssErrorBoundary.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssErrorPage/AbyssErrorPage.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssErrorPage/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssFamilyMenuSection/AbyssFamilyMenuSection.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssFamilyMenuSection/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssHeaderTitle/AbyssHeaderTitle.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssHeaderTitle/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssLayoutMenu/AbyssLayoutMenu.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssLayoutMenu/AbyssMenuItem.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssLayoutMenu/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssLayoutNotifications/AbyssLayoutNotifications.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssLayoutNotifications/AbyssNotifications.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/AbyssLayoutNotifications/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/ImportButton/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/Toast/AbyssToast.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/Toast/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/WaterParticles/WaterParticles.component.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/WaterParticles/index.d.ts +0 -0
- /package/dist/{components → legacy/components}/Utils/index.d.ts +0 -0
- /package/dist/{hooks → legacy/hooks}/confirm-modal/confirm-modal.context.d.ts +0 -0
- /package/dist/{hooks → legacy/hooks}/confirm-modal/index.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/components/index.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/create-theme.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/palettes/common.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/palettes/dark.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/palettes/light.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/tokens/animations.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/tokens/borders.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/tokens/colors.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/tokens/shadows.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/tokens/transitions.d.ts +0 -0
- /package/dist/{theme → legacy/theme}/tokens/typography.d.ts +0 -0
- /package/dist/{utils → legacy/utils}/color.utils.d.ts +0 -0
- /package/dist/{utils → legacy/utils}/file.utils.d.ts +0 -0
- /package/dist/{components/CookieConsent/types.d.ts → utils/cookie-consent.types.d.ts} +0 -0
- /package/dist/{components/CookieConsent/cookie-storage.util.d.ts → utils/cookie-storage.utils.d.ts} +0 -0
- /package/dist/{components/CookieConsent → utils}/privacy-link.constant.d.ts +0 -0
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import Avatar from '@mui/material/Avatar';
|
|
3
|
+
import ButtonBase from '@mui/material/ButtonBase';
|
|
4
|
+
import IconButton from '@mui/material/IconButton';
|
|
5
|
+
import { styled } from '@mui/material/styles';
|
|
6
|
+
import ArchiveOutlined from '@mui/icons-material/ArchiveOutlined';
|
|
7
|
+
import ArticleOutlined from '@mui/icons-material/ArticleOutlined';
|
|
8
|
+
import FamilyRestroomOutlined from '@mui/icons-material/FamilyRestroomOutlined';
|
|
9
|
+
import FolderOutlined from '@mui/icons-material/FolderOutlined';
|
|
10
|
+
import HelpOutlineRounded from '@mui/icons-material/HelpOutlineRounded';
|
|
11
|
+
import ImageOutlined from '@mui/icons-material/ImageOutlined';
|
|
12
|
+
import MovieOutlined from '@mui/icons-material/MovieOutlined';
|
|
13
|
+
import NotificationsNoneOutlined from '@mui/icons-material/NotificationsNoneOutlined';
|
|
14
|
+
import PhotoCameraOutlined from '@mui/icons-material/PhotoCameraOutlined';
|
|
15
|
+
import PictureAsPdfOutlined from '@mui/icons-material/PictureAsPdfOutlined';
|
|
16
|
+
import TableChartOutlined from '@mui/icons-material/TableChartOutlined';
|
|
17
|
+
import { focusRing, hairline, px } from '../src/theme/components/shared';
|
|
18
|
+
import type { SemanticToken } from '../src/theme/tokens/semantic';
|
|
19
|
+
import { fontWeights } from '../src/theme/tokens/primitives';
|
|
20
|
+
import { Surface } from '../src/components/structure/Surface/Surface';
|
|
21
|
+
import { Sparkline } from '../src/components/data/Sparkline/Sparkline';
|
|
22
|
+
import { StatusBadge } from '../src/components/meaning/StatusBadge/StatusBadge';
|
|
23
|
+
import type { AppShellFooterItem } from '../src/components/structure/AppShell/app-shell.types';
|
|
24
|
+
import type { BankAccount, CloudFile, FileKind } from './fixtures';
|
|
25
|
+
import { formatEuro, formatSignedEuro } from './fixtures';
|
|
26
|
+
|
|
27
|
+
// Small host-side pieces the fixtures need around the components: what an application would
|
|
28
|
+
// write itself (an amount cell, a file glyph, the top bar slots, the sidebar footer).
|
|
29
|
+
|
|
30
|
+
const AmountText = styled('span', {
|
|
31
|
+
shouldForwardProp: (prop) => prop !== 'credit',
|
|
32
|
+
})<{ credit: boolean }>(({ theme, credit }) => ({
|
|
33
|
+
fontFamily: theme.design.fonts.mono,
|
|
34
|
+
fontWeight: fontWeights.medium,
|
|
35
|
+
whiteSpace: 'nowrap',
|
|
36
|
+
color: credit
|
|
37
|
+
? theme.design.tokens['status.success']
|
|
38
|
+
: theme.design.tokens['text.primary'],
|
|
39
|
+
}));
|
|
40
|
+
|
|
41
|
+
/** A signed amount: credits in `status.success`, debits in the text color. */
|
|
42
|
+
export const Amount = ({ value }: { value: number }) => (
|
|
43
|
+
<AmountText credit={value > 0}>{formatSignedEuro(value)}</AmountText>
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
// A file type is no meaning: its glyph stays neutral, color is kept for the state (scan verdict).
|
|
47
|
+
const FILE_GLYPHS: Record<FileKind, ReactNode> = {
|
|
48
|
+
folder: <FolderOutlined />,
|
|
49
|
+
pdf: <PictureAsPdfOutlined />,
|
|
50
|
+
sheet: <TableChartOutlined />,
|
|
51
|
+
image: <ImageOutlined />,
|
|
52
|
+
doc: <ArticleOutlined />,
|
|
53
|
+
archive: <ArchiveOutlined />,
|
|
54
|
+
video: <MovieOutlined />,
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const GlyphBox = styled('span', {
|
|
58
|
+
shouldForwardProp: (prop) => prop !== 'tone',
|
|
59
|
+
})<{ tone: SemanticToken }>(({ theme, tone }) => {
|
|
60
|
+
const { space, radii, tokens } = theme.design;
|
|
61
|
+
return {
|
|
62
|
+
display: 'grid',
|
|
63
|
+
placeItems: 'center',
|
|
64
|
+
flex: 'none',
|
|
65
|
+
width: px(space[8]),
|
|
66
|
+
height: px(space[8]),
|
|
67
|
+
borderRadius: px(radii.md),
|
|
68
|
+
backgroundColor: tokens['bg.raised'],
|
|
69
|
+
color: tokens[tone],
|
|
70
|
+
'& > svg': { width: px(space[5]), height: px(space[5]) },
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
/** An icon on a raised square, colored by a token. */
|
|
75
|
+
export const Glyph = ({
|
|
76
|
+
icon,
|
|
77
|
+
tone,
|
|
78
|
+
}: {
|
|
79
|
+
icon: ReactNode;
|
|
80
|
+
tone: SemanticToken;
|
|
81
|
+
}) => (
|
|
82
|
+
<GlyphBox tone={tone} aria-hidden="true">
|
|
83
|
+
{icon}
|
|
84
|
+
</GlyphBox>
|
|
85
|
+
);
|
|
86
|
+
|
|
87
|
+
export const FileGlyph = ({ kind }: { kind: FileKind }) => (
|
|
88
|
+
<Glyph icon={FILE_GLYPHS[kind]} tone="text.secondary" />
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
const NameCell = styled('span')(({ theme }) => ({
|
|
92
|
+
display: 'flex',
|
|
93
|
+
alignItems: 'center',
|
|
94
|
+
gap: px(theme.design.space[3]),
|
|
95
|
+
minWidth: 0,
|
|
96
|
+
}));
|
|
97
|
+
|
|
98
|
+
const NameText = styled('span')({
|
|
99
|
+
display: 'flex',
|
|
100
|
+
flexDirection: 'column',
|
|
101
|
+
minWidth: 0,
|
|
102
|
+
overflowWrap: 'anywhere',
|
|
103
|
+
// On one line (a table cell), each line ends with an ellipsis rather than a clipped letter.
|
|
104
|
+
'& > span': { overflow: 'hidden', textOverflow: 'ellipsis' },
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
const Muted = styled('span')(({ theme }) => ({
|
|
108
|
+
color: theme.design.tokens['text.muted'],
|
|
109
|
+
fontSize: px(theme.design.typeScale.small),
|
|
110
|
+
}));
|
|
111
|
+
|
|
112
|
+
/** A file name with its glyph and its detail line. */
|
|
113
|
+
export const FileName = ({ file }: { file: CloudFile }) => (
|
|
114
|
+
<NameCell>
|
|
115
|
+
<FileGlyph kind={file.kind} />
|
|
116
|
+
<NameText>
|
|
117
|
+
<span>{file.name}</span>
|
|
118
|
+
<Muted>{file.detail}</Muted>
|
|
119
|
+
</NameText>
|
|
120
|
+
</NameCell>
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
const MutedLine = styled('span', {
|
|
124
|
+
shouldForwardProp: (prop) => prop !== 'mono',
|
|
125
|
+
})<{ mono: boolean }>(({ theme, mono }) => ({
|
|
126
|
+
color: theme.design.tokens['text.muted'],
|
|
127
|
+
fontSize: px(theme.design.typeScale.small),
|
|
128
|
+
fontFamily: mono ? theme.design.fonts.mono : undefined,
|
|
129
|
+
}));
|
|
130
|
+
|
|
131
|
+
/** Two lines in one cell: the value and a muted detail under it. */
|
|
132
|
+
export const TwoLines = ({
|
|
133
|
+
first,
|
|
134
|
+
second,
|
|
135
|
+
mono = false,
|
|
136
|
+
}: {
|
|
137
|
+
first: ReactNode;
|
|
138
|
+
second: ReactNode;
|
|
139
|
+
mono?: boolean;
|
|
140
|
+
}) => (
|
|
141
|
+
<NameText>
|
|
142
|
+
<span>{first}</span>
|
|
143
|
+
<MutedLine mono={mono}>{second}</MutedLine>
|
|
144
|
+
</NameText>
|
|
145
|
+
);
|
|
146
|
+
|
|
147
|
+
const MonoSmall = styled('span')(({ theme }) => ({
|
|
148
|
+
fontFamily: theme.design.fonts.mono,
|
|
149
|
+
fontSize: px(theme.design.typeScale.small),
|
|
150
|
+
color: theme.design.tokens['text.secondary'],
|
|
151
|
+
overflowWrap: 'anywhere',
|
|
152
|
+
}));
|
|
153
|
+
|
|
154
|
+
export const Mono = ({ children }: { children: ReactNode }) => (
|
|
155
|
+
<MonoSmall>{children}</MonoSmall>
|
|
156
|
+
);
|
|
157
|
+
|
|
158
|
+
const StatusCode = styled('span', {
|
|
159
|
+
shouldForwardProp: (prop) => prop !== 'tone',
|
|
160
|
+
})<{ tone: SemanticToken }>(({ theme, tone }) => ({
|
|
161
|
+
fontFamily: theme.design.fonts.mono,
|
|
162
|
+
fontWeight: fontWeights.medium,
|
|
163
|
+
color: theme.design.tokens[tone],
|
|
164
|
+
}));
|
|
165
|
+
|
|
166
|
+
/** An HTTP status code colored by its class, as in the Monitor mock-up. */
|
|
167
|
+
export const HttpStatus = ({ code }: { code: number }) => (
|
|
168
|
+
<StatusCode
|
|
169
|
+
tone={
|
|
170
|
+
code >= 500
|
|
171
|
+
? 'status.danger'
|
|
172
|
+
: code >= 400
|
|
173
|
+
? 'status.warning'
|
|
174
|
+
: 'status.success'
|
|
175
|
+
}
|
|
176
|
+
>
|
|
177
|
+
{code}
|
|
178
|
+
</StatusCode>
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
const AccountAvatar = styled(Avatar)(({ theme }) => {
|
|
182
|
+
const { space, tokens, typeScale } = theme.design;
|
|
183
|
+
return {
|
|
184
|
+
width: px(space[7]),
|
|
185
|
+
height: px(space[7]),
|
|
186
|
+
fontSize: px(typeScale.small),
|
|
187
|
+
fontWeight: fontWeights.semibold,
|
|
188
|
+
backgroundColor: tokens['bg.raised'],
|
|
189
|
+
color: tokens['text.primary'],
|
|
190
|
+
border: hairline(tokens['border.subtle']),
|
|
191
|
+
};
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
/** Right side of the top bar: help, notifications, account. */
|
|
195
|
+
export const TopbarActions = () => (
|
|
196
|
+
<>
|
|
197
|
+
<IconButton aria-label="Aide">
|
|
198
|
+
<HelpOutlineRounded />
|
|
199
|
+
</IconButton>
|
|
200
|
+
<IconButton aria-label="Notifications">
|
|
201
|
+
<NotificationsNoneOutlined />
|
|
202
|
+
</IconButton>
|
|
203
|
+
<AccountAvatar alt="Mehdi A.">MA</AccountAvatar>
|
|
204
|
+
</>
|
|
205
|
+
);
|
|
206
|
+
|
|
207
|
+
const FooterAvatar = styled('span')(({ theme }) => {
|
|
208
|
+
const { tokens, typeScale, radii } = theme.design;
|
|
209
|
+
return {
|
|
210
|
+
display: 'grid',
|
|
211
|
+
placeItems: 'center',
|
|
212
|
+
width: '100%',
|
|
213
|
+
height: '100%',
|
|
214
|
+
borderRadius: px(radii.lg),
|
|
215
|
+
fontSize: px(typeScale.caption),
|
|
216
|
+
fontWeight: fontWeights.semibold,
|
|
217
|
+
backgroundColor: tokens['bg.raised'],
|
|
218
|
+
color: tokens['text.primary'],
|
|
219
|
+
border: hairline(tokens['border.subtle']),
|
|
220
|
+
boxSizing: 'border-box',
|
|
221
|
+
};
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
/** Bottom of the navigation: the family and the account (the canonical sidebar footer). */
|
|
225
|
+
export const SHELL_FOOTER: AppShellFooterItem[] = [
|
|
226
|
+
{
|
|
227
|
+
id: 'family',
|
|
228
|
+
label: 'Ma famille · 4',
|
|
229
|
+
icon: <FamilyRestroomOutlined />,
|
|
230
|
+
href: '#famille',
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: 'account',
|
|
234
|
+
label: 'Mon compte',
|
|
235
|
+
icon: <FooterAvatar>MA</FooterAvatar>,
|
|
236
|
+
href: '#compte',
|
|
237
|
+
},
|
|
238
|
+
];
|
|
239
|
+
|
|
240
|
+
const PhotoFrame = styled('div', {
|
|
241
|
+
shouldForwardProp: (prop) => prop !== 'from' && prop !== 'to',
|
|
242
|
+
})<{ from: SemanticToken; to: SemanticToken }>(({ theme, from, to }) => {
|
|
243
|
+
const { tokens, space } = theme.design;
|
|
244
|
+
return {
|
|
245
|
+
position: 'relative',
|
|
246
|
+
display: 'grid',
|
|
247
|
+
placeItems: 'center',
|
|
248
|
+
width: '100%',
|
|
249
|
+
height: '100%',
|
|
250
|
+
minHeight: px(space[10]),
|
|
251
|
+
backgroundImage: `linear-gradient(160deg, ${tokens[from]}, ${tokens[to]})`,
|
|
252
|
+
color: tokens['accent.on'],
|
|
253
|
+
'& > svg': { width: px(space[9]), height: px(space[9]), opacity: 0.55 },
|
|
254
|
+
};
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
const PHOTO_TONES: Array<[SemanticToken, SemanticToken]> = [
|
|
258
|
+
['status.info', 'brand.gradientTo'],
|
|
259
|
+
['status.highlight', 'accent'],
|
|
260
|
+
['brand.gradientFrom', 'status.success'],
|
|
261
|
+
['status.warning', 'status.highlight'],
|
|
262
|
+
['accent', 'status.info'],
|
|
263
|
+
['status.success', 'brand.gradientFrom'],
|
|
264
|
+
];
|
|
265
|
+
|
|
266
|
+
/** Stand-in for a photo: a token gradient (the catalog ships no image). */
|
|
267
|
+
export const PhotoPlaceholder = ({ index }: { index: number }) => {
|
|
268
|
+
const [from, to] = PHOTO_TONES[index % PHOTO_TONES.length];
|
|
269
|
+
return (
|
|
270
|
+
<PhotoFrame from={from} to={to} aria-hidden="true">
|
|
271
|
+
<PhotoCameraOutlined />
|
|
272
|
+
</PhotoFrame>
|
|
273
|
+
);
|
|
274
|
+
};
|
|
275
|
+
|
|
276
|
+
const AccountHead = styled('div')(({ theme }) => ({
|
|
277
|
+
display: 'flex',
|
|
278
|
+
flexDirection: 'column',
|
|
279
|
+
alignItems: 'flex-start',
|
|
280
|
+
gap: px(theme.design.space[2]),
|
|
281
|
+
minWidth: 0,
|
|
282
|
+
}));
|
|
283
|
+
|
|
284
|
+
const AccountBalance = styled('span', {
|
|
285
|
+
shouldForwardProp: (prop) => prop !== 'negative',
|
|
286
|
+
})<{ negative: boolean }>(({ theme, negative }) => ({
|
|
287
|
+
fontFamily: theme.design.fonts.mono,
|
|
288
|
+
fontSize: px(theme.design.typeScale.sectionTitle),
|
|
289
|
+
fontWeight: fontWeights.medium,
|
|
290
|
+
color: negative
|
|
291
|
+
? theme.design.tokens['status.danger']
|
|
292
|
+
: theme.design.tokens['text.primary'],
|
|
293
|
+
}));
|
|
294
|
+
|
|
295
|
+
const AccountBody = styled('div')(({ theme }) => ({
|
|
296
|
+
display: 'flex',
|
|
297
|
+
flexDirection: 'column',
|
|
298
|
+
gap: px(theme.design.space[3]),
|
|
299
|
+
minWidth: 0,
|
|
300
|
+
}));
|
|
301
|
+
|
|
302
|
+
/** A bank account card: name, IBAN, status, balance and its twelve-month trend. */
|
|
303
|
+
export const AccountCard = ({
|
|
304
|
+
account,
|
|
305
|
+
interactive = false,
|
|
306
|
+
onOpen,
|
|
307
|
+
}: {
|
|
308
|
+
account: BankAccount;
|
|
309
|
+
interactive?: boolean;
|
|
310
|
+
onOpen?(): void;
|
|
311
|
+
}) => (
|
|
312
|
+
<Surface
|
|
313
|
+
padding={4}
|
|
314
|
+
interactive={interactive}
|
|
315
|
+
onClick={onOpen}
|
|
316
|
+
aria-label={interactive ? account.name : undefined}
|
|
317
|
+
>
|
|
318
|
+
<AccountBody>
|
|
319
|
+
<AccountHead>
|
|
320
|
+
<TwoLines
|
|
321
|
+
first={account.name}
|
|
322
|
+
second={`${account.bank} · ${account.iban}`}
|
|
323
|
+
mono
|
|
324
|
+
/>
|
|
325
|
+
<StatusBadge
|
|
326
|
+
tone={account.status.tone}
|
|
327
|
+
label={account.status.label}
|
|
328
|
+
dot
|
|
329
|
+
/>
|
|
330
|
+
</AccountHead>
|
|
331
|
+
<AccountBalance negative={account.balance < 0}>
|
|
332
|
+
{formatEuro(account.balance)}
|
|
333
|
+
</AccountBalance>
|
|
334
|
+
<Sparkline
|
|
335
|
+
values={account.trend}
|
|
336
|
+
label={`Solde de ${account.name} sur 12 mois`}
|
|
337
|
+
/>
|
|
338
|
+
<Muted>{account.type}</Muted>
|
|
339
|
+
</AccountBody>
|
|
340
|
+
</Surface>
|
|
341
|
+
);
|
|
342
|
+
|
|
343
|
+
const ListRoot = styled('ul')(({ theme }) => ({
|
|
344
|
+
margin: 0,
|
|
345
|
+
padding: 0,
|
|
346
|
+
listStyle: 'none',
|
|
347
|
+
display: 'flex',
|
|
348
|
+
flexDirection: 'column',
|
|
349
|
+
minWidth: 0,
|
|
350
|
+
backgroundColor: theme.design.tokens['bg.surface'],
|
|
351
|
+
border: hairline(theme.design.tokens['border.subtle']),
|
|
352
|
+
borderRadius: px(theme.design.radii.lg),
|
|
353
|
+
overflow: 'hidden',
|
|
354
|
+
'& > li + li': { borderTop: hairline(theme.design.tokens['border.subtle']) },
|
|
355
|
+
}));
|
|
356
|
+
|
|
357
|
+
const RowButton = styled(ButtonBase)(({ theme }) => {
|
|
358
|
+
const { space, tokens, densityValues, typeScale, fonts } = theme.design;
|
|
359
|
+
return {
|
|
360
|
+
width: '100%',
|
|
361
|
+
display: 'flex',
|
|
362
|
+
alignItems: 'center',
|
|
363
|
+
justifyContent: 'flex-start',
|
|
364
|
+
gap: px(space[3]),
|
|
365
|
+
minHeight: px(densityValues.touchTarget + space[4]),
|
|
366
|
+
padding: `${px(space[2])} ${px(space[4])}`,
|
|
367
|
+
textAlign: 'left',
|
|
368
|
+
fontFamily: fonts.sans,
|
|
369
|
+
fontSize: px(typeScale.bodyMobile),
|
|
370
|
+
color: tokens['text.primary'],
|
|
371
|
+
'&:hover': { backgroundColor: tokens['bg.hover'] },
|
|
372
|
+
'&.Mui-focusVisible': { ...focusRing(theme), outlineOffset: '-2px' },
|
|
373
|
+
};
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
const RowText = styled('span')({
|
|
377
|
+
display: 'flex',
|
|
378
|
+
flexDirection: 'column',
|
|
379
|
+
flex: '1 1 auto',
|
|
380
|
+
minWidth: 0,
|
|
381
|
+
'& > span': {
|
|
382
|
+
overflow: 'hidden',
|
|
383
|
+
textOverflow: 'ellipsis',
|
|
384
|
+
whiteSpace: 'nowrap',
|
|
385
|
+
},
|
|
386
|
+
});
|
|
387
|
+
|
|
388
|
+
const RowTrailing = styled('span')(({ theme }) => ({
|
|
389
|
+
flex: 'none',
|
|
390
|
+
display: 'flex',
|
|
391
|
+
alignItems: 'center',
|
|
392
|
+
gap: px(theme.design.space[2]),
|
|
393
|
+
}));
|
|
394
|
+
|
|
395
|
+
export interface TouchListItem {
|
|
396
|
+
id: string;
|
|
397
|
+
leading?: ReactNode;
|
|
398
|
+
title: string;
|
|
399
|
+
subtitle: string;
|
|
400
|
+
trailing?: ReactNode;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
/** A touch list of two-line rows, as in the mobile mock-ups (`.mli`). */
|
|
404
|
+
export const TouchList = ({
|
|
405
|
+
items,
|
|
406
|
+
onOpen,
|
|
407
|
+
}: {
|
|
408
|
+
items: TouchListItem[];
|
|
409
|
+
onOpen(id: string): void;
|
|
410
|
+
}) => (
|
|
411
|
+
<ListRoot>
|
|
412
|
+
{items.map((item) => (
|
|
413
|
+
<li key={item.id}>
|
|
414
|
+
<RowButton onClick={() => onOpen(item.id)}>
|
|
415
|
+
{item.leading}
|
|
416
|
+
<RowText>
|
|
417
|
+
<span>{item.title}</span>
|
|
418
|
+
<Muted>{item.subtitle}</Muted>
|
|
419
|
+
</RowText>
|
|
420
|
+
{item.trailing !== undefined && (
|
|
421
|
+
<RowTrailing>{item.trailing}</RowTrailing>
|
|
422
|
+
)}
|
|
423
|
+
</RowButton>
|
|
424
|
+
</li>
|
|
425
|
+
))}
|
|
426
|
+
</ListRoot>
|
|
427
|
+
);
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { dirname, resolve } from 'path';
|
|
2
|
+
import { fileURLToPath } from 'url';
|
|
3
|
+
import { defineConfig, devices } from '@playwright/test';
|
|
4
|
+
import { catalogPort } from './catalog-port';
|
|
5
|
+
|
|
6
|
+
// The package is an ES module: no `__dirname`.
|
|
7
|
+
const catalogDir = dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
|
|
9
|
+
// Browser checks of the component catalog: overflow and touch targets (responsive), the mobile
|
|
10
|
+
// frame (mobile-shell) and the screenshots of every page (captures). The catalog dev server is
|
|
11
|
+
// started on `CATALOG_PORT` and never reused: an already listening port belongs to someone else.
|
|
12
|
+
const port = catalogPort();
|
|
13
|
+
const packageRoot = resolve(catalogDir, '..');
|
|
14
|
+
|
|
15
|
+
export default defineConfig({
|
|
16
|
+
testDir: resolve(catalogDir, 'specs'),
|
|
17
|
+
outputDir: resolve(packageRoot, 'test-results/catalog'),
|
|
18
|
+
fullyParallel: true,
|
|
19
|
+
forbidOnly: true,
|
|
20
|
+
retries: 0,
|
|
21
|
+
reporter: [['list']],
|
|
22
|
+
globalTeardown: resolve(catalogDir, 'specs/write-capture-index.ts'),
|
|
23
|
+
use: {
|
|
24
|
+
...devices['Desktop Chrome'],
|
|
25
|
+
baseURL: `http://127.0.0.1:${port}`,
|
|
26
|
+
trace: 'retain-on-failure',
|
|
27
|
+
},
|
|
28
|
+
webServer: {
|
|
29
|
+
command: 'pnpm exec vite --config catalog/vite.config.ts',
|
|
30
|
+
cwd: packageRoot,
|
|
31
|
+
url: `http://127.0.0.1:${port}`,
|
|
32
|
+
reuseExistingServer: false,
|
|
33
|
+
timeout: 120_000,
|
|
34
|
+
env: { CATALOG_PORT: String(port) },
|
|
35
|
+
},
|
|
36
|
+
});
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { resolve } from 'path';
|
|
2
|
+
import { expect, test } from '@playwright/test';
|
|
3
|
+
import type { Page } from '@playwright/test';
|
|
4
|
+
import { CAPTURES, CAPTURES_DIR, VIEWPORT_HEIGHT } from '../captures-plan';
|
|
5
|
+
import type { CaptureState } from '../captures-plan';
|
|
6
|
+
import { openCatalogPage, settle } from './catalog-page';
|
|
7
|
+
|
|
8
|
+
// Criterion 13: one PNG per component in light and dark at 1440 px, plus 390 px for the
|
|
9
|
+
// components that change form below 768 px, and the two composed scenes at 1440 and 390 px.
|
|
10
|
+
|
|
11
|
+
/** How each state beyond arrival is reached, and what proves it is shown. */
|
|
12
|
+
const REACH: Record<
|
|
13
|
+
Exclude<CaptureState, 'arrival'>,
|
|
14
|
+
(page: Page) => Promise<void>
|
|
15
|
+
> = {
|
|
16
|
+
'sheet-open': async (page) => {
|
|
17
|
+
await page
|
|
18
|
+
.getByRole('button', { name: /avis-imposition-2026\.pdf/ })
|
|
19
|
+
.click();
|
|
20
|
+
await expect(
|
|
21
|
+
page.getByRole('dialog', { name: 'avis-imposition-2026.pdf' }),
|
|
22
|
+
).toBeVisible();
|
|
23
|
+
},
|
|
24
|
+
'list-open': async (page) => {
|
|
25
|
+
await page.getByRole('combobox').first().click();
|
|
26
|
+
await expect(page.getByRole('listbox')).toBeVisible();
|
|
27
|
+
},
|
|
28
|
+
'calendar-open': async (page) => {
|
|
29
|
+
await page
|
|
30
|
+
.getByRole('button', { name: /Choisir une date/ })
|
|
31
|
+
.first()
|
|
32
|
+
.click();
|
|
33
|
+
await expect(page.getByRole('dialog')).toBeVisible();
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
for (const capture of CAPTURES) {
|
|
38
|
+
test(`capture ${capture.file}`, async ({ page }) => {
|
|
39
|
+
await openCatalogPage(page, capture.entry.name, capture.theme, {
|
|
40
|
+
width: capture.width,
|
|
41
|
+
height: VIEWPORT_HEIGHT[capture.width],
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
if (capture.state !== 'arrival') {
|
|
45
|
+
await REACH[capture.state](page);
|
|
46
|
+
await settle(page);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// A taller window rather than `fullPage`: the sticky sidebar (`100vh`) then spans the whole
|
|
50
|
+
// page, as it does on screen while scrolling. A mobile frame (`100dvh`) is never taller.
|
|
51
|
+
const documentHeight = await page.evaluate(
|
|
52
|
+
() => document.documentElement.scrollHeight,
|
|
53
|
+
);
|
|
54
|
+
if (documentHeight > VIEWPORT_HEIGHT[capture.width]) {
|
|
55
|
+
await page.setViewportSize({
|
|
56
|
+
width: capture.width,
|
|
57
|
+
height: documentHeight,
|
|
58
|
+
});
|
|
59
|
+
await settle(page);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
await page.screenshot({
|
|
63
|
+
path: resolve(CAPTURES_DIR, capture.file),
|
|
64
|
+
animations: 'disabled',
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Page } from '@playwright/test';
|
|
2
|
+
import { catalogPath } from '../catalog-entries';
|
|
3
|
+
import type { CatalogTheme } from '../catalog-entries';
|
|
4
|
+
|
|
5
|
+
/** Longest enter transition of the design system (`durations.slow`, 260 ms), with margin. */
|
|
6
|
+
const SETTLE_MS = 400;
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Opens a catalog page at `width` × `height` and waits until it is drawn: fonts loaded, enter
|
|
10
|
+
* transitions over. Any uncaught page error fails the calling test.
|
|
11
|
+
*/
|
|
12
|
+
export const openCatalogPage = async (
|
|
13
|
+
page: Page,
|
|
14
|
+
name: string,
|
|
15
|
+
theme: CatalogTheme,
|
|
16
|
+
viewport: { width: number; height: number },
|
|
17
|
+
): Promise<void> => {
|
|
18
|
+
const errors: string[] = [];
|
|
19
|
+
page.on('pageerror', (error) => errors.push(error.message));
|
|
20
|
+
await page.setViewportSize(viewport);
|
|
21
|
+
await page.goto(catalogPath(name, theme));
|
|
22
|
+
await page.waitForLoadState('networkidle');
|
|
23
|
+
await page.evaluate(() => document.fonts.ready.then(() => undefined));
|
|
24
|
+
await page.waitForTimeout(SETTLE_MS);
|
|
25
|
+
if (errors.length > 0) {
|
|
26
|
+
throw new Error(
|
|
27
|
+
`The catalog page ${name} (${theme}) threw: ${errors.join(' | ')}`,
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
const dataTheme = await page.evaluate(
|
|
31
|
+
() => document.documentElement.dataset.theme,
|
|
32
|
+
);
|
|
33
|
+
if (dataTheme !== theme) {
|
|
34
|
+
throw new Error(
|
|
35
|
+
`The catalog page ${name} rendered data-theme="${dataTheme}", expected ${theme}.`,
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
/** Waits for enter and exit transitions after an interaction. */
|
|
41
|
+
export const settle = (page: Page): Promise<void> =>
|
|
42
|
+
page.waitForTimeout(SETTLE_MS);
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { expect, test } from '@playwright/test';
|
|
2
|
+
import type { Locator, Page } from '@playwright/test';
|
|
3
|
+
import { CATALOG_THEMES } from '../catalog-entries';
|
|
4
|
+
import { openCatalogPage, settle } from './catalog-page';
|
|
5
|
+
|
|
6
|
+
// Criterion 16: the mobile frame in light and dark. The tab bar switches tabs, the back button
|
|
7
|
+
// calls its fixture, the safe-area insets are added to the edges, and a BottomSheet opens then
|
|
8
|
+
// closes when dragged down.
|
|
9
|
+
|
|
10
|
+
const PHONE = { width: 390, height: 844 };
|
|
11
|
+
|
|
12
|
+
/** Notch and home indicator of a recent iPhone, in CSS px. */
|
|
13
|
+
const INSETS = { top: 47, bottom: 34, left: 0, right: 0 };
|
|
14
|
+
|
|
15
|
+
const lastEvent = (page: Page): Locator => page.getByTestId('catalog-event');
|
|
16
|
+
|
|
17
|
+
const padding = (locator: Locator, side: 'top' | 'bottom'): Promise<number> =>
|
|
18
|
+
locator.evaluate(
|
|
19
|
+
(element, edge) =>
|
|
20
|
+
parseFloat(getComputedStyle(element).getPropertyValue(`padding-${edge}`)),
|
|
21
|
+
side,
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
/** Drags the sheet's grab zone down by `share` of the sheet height, with real pointer events. */
|
|
25
|
+
const dragSheetDown = async (
|
|
26
|
+
page: Page,
|
|
27
|
+
sheet: Locator,
|
|
28
|
+
share: number,
|
|
29
|
+
): Promise<void> => {
|
|
30
|
+
const zone = page.getByTestId('bottom-sheet-drag-zone');
|
|
31
|
+
const zoneBox = await zone.boundingBox();
|
|
32
|
+
const sheetBox = await sheet.boundingBox();
|
|
33
|
+
if (zoneBox === null || sheetBox === null) {
|
|
34
|
+
throw new Error('The bottom sheet is not laid out.');
|
|
35
|
+
}
|
|
36
|
+
const x = zoneBox.x + zoneBox.width / 2;
|
|
37
|
+
const y = zoneBox.y + zoneBox.height / 2;
|
|
38
|
+
await page.mouse.move(x, y);
|
|
39
|
+
await page.mouse.down();
|
|
40
|
+
await page.mouse.move(x, y + sheetBox.height * share, { steps: 8 });
|
|
41
|
+
await page.mouse.up();
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
for (const theme of CATALOG_THEMES) {
|
|
45
|
+
test.describe(`MobileShell (${theme})`, () => {
|
|
46
|
+
test.beforeEach(async ({ page }) => {
|
|
47
|
+
await openCatalogPage(page, 'MobileShell', theme, PHONE);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
test('the tab bar switches tabs', async ({ page }) => {
|
|
51
|
+
const tabBar = page.getByRole('navigation', {
|
|
52
|
+
name: 'Navigation principale',
|
|
53
|
+
});
|
|
54
|
+
const home = tabBar.getByRole('button', { name: 'Accueil' });
|
|
55
|
+
const memories = tabBar.getByRole('button', { name: 'Souvenirs' });
|
|
56
|
+
await expect(home).toHaveAttribute('aria-current', 'page');
|
|
57
|
+
|
|
58
|
+
await memories.click();
|
|
59
|
+
|
|
60
|
+
await expect(memories).toHaveAttribute('aria-current', 'page');
|
|
61
|
+
await expect(home).not.toHaveAttribute('aria-current', 'page');
|
|
62
|
+
await expect(
|
|
63
|
+
page.getByRole('heading', { level: 1, name: 'Souvenirs' }),
|
|
64
|
+
).toBeVisible();
|
|
65
|
+
await expect(lastEvent(page)).toHaveText(
|
|
66
|
+
'Dernier appel : onglet memories',
|
|
67
|
+
);
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test('the back button calls its fixture', async ({ page }) => {
|
|
71
|
+
await page.getByRole('button', { name: 'Retour' }).click();
|
|
72
|
+
await expect(lastEvent(page)).toHaveText('Dernier appel : retour');
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
test('the safe-area insets are added to every edge', async ({ page }) => {
|
|
76
|
+
const header = page.locator('header').first();
|
|
77
|
+
const tabBar = page.getByRole('navigation', {
|
|
78
|
+
name: 'Navigation principale',
|
|
79
|
+
});
|
|
80
|
+
const before = {
|
|
81
|
+
top: await padding(header, 'top'),
|
|
82
|
+
bottom: await padding(tabBar, 'bottom'),
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
// The device insets `env(safe-area-inset-*)` reads, simulated by the browser itself.
|
|
86
|
+
const cdp = await page.context().newCDPSession(page);
|
|
87
|
+
await cdp.send('Emulation.setSafeAreaInsetsOverride', { insets: INSETS });
|
|
88
|
+
await settle(page);
|
|
89
|
+
|
|
90
|
+
expect(await padding(header, 'top')).toBe(before.top + INSETS.top);
|
|
91
|
+
expect(await padding(tabBar, 'bottom')).toBe(
|
|
92
|
+
before.bottom + INSETS.bottom,
|
|
93
|
+
);
|
|
94
|
+
const { scrollWidth, innerWidth } = await page.evaluate(() => ({
|
|
95
|
+
scrollWidth: document.documentElement.scrollWidth,
|
|
96
|
+
innerWidth: window.innerWidth,
|
|
97
|
+
}));
|
|
98
|
+
expect(scrollWidth).toBeLessThanOrEqual(innerWidth);
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
test('a BottomSheet opens, stays under the drag threshold, and closes when dragged down', async ({
|
|
102
|
+
page,
|
|
103
|
+
}) => {
|
|
104
|
+
await page
|
|
105
|
+
.getByRole('button', { name: "Options de l'événement" })
|
|
106
|
+
.click();
|
|
107
|
+
const sheet = page.getByRole('dialog', { name: 'Séminaire Acme 2026' });
|
|
108
|
+
await expect(sheet).toBeVisible();
|
|
109
|
+
await settle(page);
|
|
110
|
+
|
|
111
|
+
await dragSheetDown(page, sheet, 0.1);
|
|
112
|
+
await settle(page);
|
|
113
|
+
await expect(sheet).toBeVisible();
|
|
114
|
+
|
|
115
|
+
await dragSheetDown(page, sheet, 0.6);
|
|
116
|
+
await expect(sheet).toBeHidden();
|
|
117
|
+
await expect(lastEvent(page)).toHaveText(
|
|
118
|
+
'Dernier appel : feuille fermée',
|
|
119
|
+
);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
}
|