@gusto/embedded-react-sdk 0.11.1 → 0.11.3-rc.1
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 +17 -0
- package/dist/assets/icons/alert-circle.svg.js.map +1 -1
- package/dist/assets/icons/caret-down.svg.js +1 -1
- package/dist/assets/icons/caret-down.svg.js.map +1 -1
- package/dist/assets/icons/caret-left.svg.js.map +1 -1
- package/dist/assets/icons/caret-right.svg.js.map +1 -1
- package/dist/assets/icons/checkbox.svg.js.map +1 -1
- package/dist/assets/icons/error.svg.js.map +1 -1
- package/dist/assets/icons/hamburger.svg.js.map +1 -1
- package/dist/assets/icons/info.svg.js.map +1 -1
- package/dist/assets/icons/list.svg.js.map +1 -1
- package/dist/assets/icons/magnifyingGlass.png.js.map +1 -1
- package/dist/assets/icons/pagination_next.svg.js.map +1 -1
- package/dist/assets/icons/pagination_previous.svg.js.map +1 -1
- package/dist/assets/icons/pencil.svg.js.map +1 -1
- package/dist/assets/icons/success_check.svg.js.map +1 -1
- package/dist/assets/icons/trashcan.svg.js.map +1 -1
- package/dist/assets/icons/unchecked_circular.svg.js.map +1 -1
- package/dist/assets/icons/verification_pending.svg.js.map +1 -1
- package/dist/assets/icons/warning.svg.js.map +1 -1
- package/dist/components/Base/Base.js +19 -18
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Base/createCompoundContext.js.map +1 -1
- package/dist/components/Base/useBase.js.map +1 -1
- package/dist/components/Common/ActionsLayout/ActionsLayout.js.map +1 -1
- package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +1 -1
- package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
- package/dist/components/Common/DataView/DataView.js.map +1 -1
- package/dist/components/Common/DataView/useDataView.js.map +1 -1
- package/dist/components/Common/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Common/DocumentList/DocumentList.module.scss.js +1 -1
- package/dist/components/Common/DocumentViewer/DocumentViewer.js.map +1 -1
- package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +1 -1
- package/dist/components/Common/EmptyData/EmptyData.js.map +1 -1
- package/dist/components/Common/EmptyData/EmptyData.module.scss.js +1 -1
- package/dist/components/Common/FadeIn/FadeIn.js.map +1 -1
- package/dist/components/Common/FieldCaption/FieldCaption.js +7 -4
- package/dist/components/Common/FieldCaption/FieldCaption.js.map +1 -1
- package/dist/components/Common/FieldCaption/FieldCaption.module.scss.js +1 -1
- package/dist/components/Common/FieldDescription/FieldDescription.js.map +1 -1
- package/dist/components/Common/FieldDescription/FieldDescription.module.scss.js +1 -1
- package/dist/components/Common/FieldErrorMessage/FieldErrorMessage.js.map +1 -1
- package/dist/components/Common/FieldErrorMessage/FieldErrorMessage.module.scss.js +1 -1
- package/dist/components/Common/FieldLayout/FieldLayout.js.map +1 -1
- package/dist/components/Common/FieldLayout/FieldLayout.module.scss.js +10 -10
- package/dist/components/Common/Fields/CheckboxField/CheckboxField.js.map +1 -1
- package/dist/components/Common/Fields/CheckboxGroupField/CheckboxGroupField.js.map +1 -1
- package/dist/components/Common/Fields/ComboBoxField/ComboBoxField.js.map +1 -1
- package/dist/components/Common/Fields/DatePickerField/DatePickerField.d.ts +1 -0
- package/dist/components/Common/Fields/DatePickerField/DatePickerField.js +35 -20
- package/dist/components/Common/Fields/DatePickerField/DatePickerField.js.map +1 -1
- package/dist/components/Common/Fields/NumberInputField/NumberInputField.js.map +1 -1
- package/dist/components/Common/Fields/RadioGroupField/RadioGroupField.js.map +1 -1
- package/dist/components/Common/Fields/SelectField/SelectField.js.map +1 -1
- package/dist/components/Common/Fields/SwitchField/SwitchField.js.map +1 -1
- package/dist/components/Common/Fields/TextInputField/TextInputField.js.map +1 -1
- package/dist/components/Common/Fields/hooks/useField.js.map +1 -1
- package/dist/components/Common/Fields/hooks/useStringifyGenericFieldValue.js.map +1 -1
- package/dist/components/Common/Fieldset/Fieldset.js.map +1 -1
- package/dist/components/Common/Flex/Flex.d.ts +2 -2
- package/dist/components/Common/Flex/Flex.js +5 -5
- package/dist/components/Common/Flex/Flex.js.map +1 -1
- package/dist/components/Common/Form/Form.js.map +1 -1
- package/dist/components/Common/Form/Form.module.scss.js +2 -2
- package/dist/components/Common/Grid/Grid.d.ts +2 -2
- package/dist/components/Common/Grid/Grid.js +13 -13
- package/dist/components/Common/Grid/Grid.js.map +1 -1
- package/dist/components/Common/HamburgerMenu/HamburgerMenu.js.map +1 -1
- package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayout.js.map +1 -1
- package/dist/components/Common/HorizontalFieldLayout/HorizontalFieldLayout.module.scss.js +12 -12
- package/dist/components/Common/InternalError/InternalError.js.map +1 -1
- package/dist/components/Common/InternalError/InternalError.module.scss.js +1 -1
- package/dist/components/Common/Loading/Loading.js.map +1 -1
- package/dist/components/Common/Loading/Loading.module.scss.js +1 -1
- package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
- package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
- package/dist/components/Common/PaginationControl/PaginationControl.module.scss.js +1 -1
- package/dist/components/Common/ReorderableList/DropZone.js.map +1 -1
- package/dist/components/Common/ReorderableList/ReorderableItem.js.map +1 -1
- package/dist/components/Common/ReorderableList/ReorderableList.js.map +1 -1
- package/dist/components/Common/ReorderableList/ReorderableList.module.scss.js +15 -15
- package/dist/components/Common/RequirementsList/RequirementsList.js.map +1 -1
- package/dist/components/Common/RequirementsList/RequirementsList.module.scss.js +1 -1
- package/dist/components/Common/SignatureForm/SignatureForm.js +6 -4
- package/dist/components/Common/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureForm.module.scss.js +6 -6
- package/dist/components/Common/SignatureForm/SignatureFormActions.js +12 -10
- package/dist/components/Common/SignatureForm/SignatureFormActions.js.map +1 -1
- package/dist/components/Common/SignatureForm/SignatureFormFields.js +8 -6
- package/dist/components/Common/SignatureForm/SignatureFormFields.js.map +1 -1
- package/dist/components/Common/TaxInputs/TaxInputs.js.map +1 -1
- package/dist/components/Common/UI/Alert/Alert.js.map +1 -1
- package/dist/components/Common/UI/Alert/Alert.module.scss.js +1 -1
- package/dist/components/Common/UI/Badge/Badge.js +4 -4
- package/dist/components/Common/UI/Badge/Badge.js.map +1 -1
- package/dist/components/Common/UI/Badge/Badge.module.scss.js +4 -4
- package/dist/components/Common/UI/Button/Button.d.ts +1 -1
- package/dist/components/Common/UI/Button/Button.js +22 -24
- package/dist/components/Common/UI/Button/Button.js.map +1 -1
- package/dist/components/Common/UI/Button/Button.module.scss.js +1 -1
- package/dist/components/Common/UI/Button/ButtonIcon.d.ts +1 -1
- package/dist/components/Common/UI/Button/ButtonIcon.js +7 -5
- package/dist/components/Common/UI/Button/ButtonIcon.js.map +1 -1
- package/dist/components/Common/UI/Button/ButtonIcon.module.scss.js +8 -0
- package/dist/components/Common/UI/Button/ButtonIcon.module.scss.js.map +1 -0
- package/dist/components/Common/UI/Button/ButtonTypes.d.ts +2 -6
- package/dist/components/Common/UI/CalendarPreview/CalendarLegend.js.map +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.js.map +1 -1
- package/dist/components/Common/UI/CalendarPreview/CalendarPreview.module.scss.js +5 -5
- package/dist/components/Common/UI/Card/Card.js.map +1 -1
- package/dist/components/Common/UI/Card/Card.module.scss.js +1 -1
- package/dist/components/Common/UI/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/Common/UI/Checkbox/Checkbox.module.scss.js +6 -6
- package/dist/components/Common/UI/CheckboxGroup/CheckboxGroup.js.map +1 -1
- package/dist/components/Common/UI/CheckboxGroup/CheckboxGroup.module.scss.js +1 -1
- package/dist/components/Common/UI/ComboBox/ComboBox.js +36 -36
- package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
- package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +1 -1
- package/dist/components/Common/UI/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/Common/UI/DatePicker/DatePicker.module.scss.js +6 -6
- package/dist/components/Common/UI/Heading/Heading.js.map +1 -1
- package/dist/components/Common/UI/Heading/Heading.module.scss.js +11 -11
- package/dist/components/Common/UI/Input/Input.js.map +1 -1
- package/dist/components/Common/UI/Input/Input.module.scss.js +12 -12
- package/dist/components/Common/UI/Link/Link.js.map +1 -1
- package/dist/components/Common/UI/Link/Link.module.scss.js +1 -1
- package/dist/components/Common/UI/List/List.module.scss.js +1 -1
- package/dist/components/Common/UI/List/OrderedList.js.map +1 -1
- package/dist/components/Common/UI/List/UnorderedList.js.map +1 -1
- package/dist/components/Common/UI/Menu/Menu.js.map +1 -1
- package/dist/components/Common/UI/Menu/Menu.module.scss.js +5 -5
- package/dist/components/Common/UI/NumberInput/NumberInput.js +36 -38
- package/dist/components/Common/UI/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.js.map +1 -1
- package/dist/components/Common/UI/ProgressBar/ProgressBar.module.scss.js +1 -1
- package/dist/components/Common/UI/Radio/Radio.js.map +1 -1
- package/dist/components/Common/UI/Radio/Radio.module.scss.js +1 -1
- package/dist/components/Common/UI/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/Common/UI/RadioGroup/RadioGroup.module.scss.js +1 -1
- package/dist/components/Common/UI/Select/Select.js +13 -13
- package/dist/components/Common/UI/Select/Select.js.map +1 -1
- package/dist/components/Common/UI/Select/Select.module.scss.js +1 -1
- package/dist/components/Common/UI/Switch/Switch.js.map +1 -1
- package/dist/components/Common/UI/Switch/Switch.module.scss.js +4 -4
- package/dist/components/Common/UI/Table/Table.js.map +1 -1
- package/dist/components/Common/UI/Table/Table.module.scss.js +1 -1
- package/dist/components/Common/UI/Text/Text.js.map +1 -1
- package/dist/components/Common/UI/Text/Text.module.scss.js +16 -20
- package/dist/components/Common/UI/Text/Text.module.scss.js.map +1 -1
- package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -1
- package/dist/components/Common/UI/TextInput/TextInput.js.map +1 -1
- package/dist/components/Common/UI/hooks/useFieldIds.js.map +1 -1
- package/dist/components/Common/VisuallyHidden/VisuallyHidden.js.map +1 -1
- package/dist/components/Common/hooks/useAsyncError.js.map +1 -1
- package/dist/components/Common/hooks/useMenu.js.map +1 -1
- package/dist/components/Common/hooks/useNumberFormatter.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatory.js +3 -2
- package/dist/components/Company/AssignSignatory/AssignSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +8 -6
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +10 -8
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js +11 -11
- package/dist/components/Company/AssignSignatory/CreateSignatory/CreateSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Schema.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/Head.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +8 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/InviteSignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/SignatoryForm.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +8 -7
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +9 -8
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js +11 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/AccountView.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +12 -10
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/BankAccountList.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +13 -11
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/BankAccountVerify.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js +6 -4
- package/dist/components/Company/BankAccount/BankAccountVerify/Form.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Head.js.map +1 -1
- package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +7 -5
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js +7 -6
- package/dist/components/Company/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Head.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/ManageSignatories.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/Form.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/Head.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/Preview.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +3 -2
- package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
- package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Company/DocumentSigner/assignSignatoryState.js.map +1 -1
- package/dist/components/Company/DocumentSigner/documentSignerStateMachine.js.map +1 -1
- package/dist/components/Company/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +9 -7
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/FederalTaxes.js +7 -6
- package/dist/components/Company/FederalTaxes/FederalTaxes.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Form.js +5 -3
- package/dist/components/Company/FederalTaxes/Form.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Head.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +7 -5
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +7 -6
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +12 -10
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Industry/Head.js.map +1 -1
- package/dist/components/Company/Industry/Industry.js.map +1 -1
- package/dist/components/Company/Industry/IndustrySelect.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +8 -6
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js +1 -1
- package/dist/components/Company/Locations/LocationForm/Form.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Head.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/LocationForm.js +4 -3
- package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/Locations.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +8 -6
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Head.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +4 -2
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/LocationsList.js +9 -8
- package/dist/components/Company/Locations/LocationsList/LocationsList.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/Locations/locationsStateMachine.js.map +1 -1
- package/dist/components/Company/Locations/stateMachine.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/OnboardingFlowComponents.js.map +1 -1
- package/dist/components/Company/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/Completed.js +14 -12
- package/dist/components/Company/OnboardingOverview/Completed.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js +8 -6
- package/dist/components/Company/OnboardingOverview/MissingRequirements.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js +3 -2
- package/dist/components/Company/OnboardingOverview/OnboardingOverview.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +4 -3
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +33 -31
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Actions.js +12 -10
- package/dist/components/Company/PaySchedule/_parts/Actions.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Edit.js +51 -52
- package/dist/components/Company/PaySchedule/_parts/Edit.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/Edit.module.scss.js +1 -1
- package/dist/components/Company/PaySchedule/_parts/Head.js +8 -6
- package/dist/components/Company/PaySchedule/_parts/Head.js.map +1 -1
- package/dist/components/Company/PaySchedule/_parts/List.js +15 -13
- package/dist/components/Company/PaySchedule/_parts/List.js.map +1 -1
- package/dist/components/Company/PaySchedule/usePaySchedule.d.ts +0 -3
- package/dist/components/Company/PaySchedule/usePaySchedule.js +8 -8
- package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxes.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesComponents.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +7 -5
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js +8 -8
- package/dist/components/Company/StateTaxes/StateTaxesForm/Form.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Head.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/StateTaxesForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +8 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Head.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js +7 -5
- package/dist/components/Company/StateTaxes/StateTaxesList/List.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/StateTaxesList.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/stateTaxesStateMachine.js.map +1 -1
- package/dist/components/Contractor/Address/Actions.js.map +1 -1
- package/dist/components/Contractor/Address/Address.js +5 -4
- package/dist/components/Contractor/Address/Address.js.map +1 -1
- package/dist/components/Contractor/Address/Form.js +1 -1
- package/dist/components/Contractor/Address/Form.js.map +1 -1
- package/dist/components/Contractor/Address/Head.js.map +1 -1
- package/dist/components/Contractor/Address/useAddress.js +6 -5
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/List/index.js.map +1 -1
- package/dist/components/Contractor/List/useContractorList.js.map +1 -1
- package/dist/components/Contractor/NewHireReport/NewHireReport.js +17 -16
- package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js +7 -5
- package/dist/components/Contractor/PaymentMethod/BankAccountForm.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js +3 -2
- package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js +3 -2
- package/dist/components/Contractor/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/ContractorProfileForm.js +10 -10
- package/dist/components/Contractor/Profile/ContractorProfileForm.js.map +1 -1
- package/dist/components/Contractor/Profile/useContractorProfile.js +3 -2
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Submit/ContractorSubmitWithApi.js.map +1 -1
- package/dist/components/Contractor/Submit/SubmitDone.js.map +1 -1
- package/dist/components/Contractor/Submit/index.js +11 -9
- package/dist/components/Contractor/Submit/index.js.map +1 -1
- package/dist/components/Contractor/Submit/index.module.scss.js +2 -2
- package/dist/components/Employee/Compensation/Actions.js +6 -5
- package/dist/components/Employee/Compensation/Actions.js.map +1 -1
- package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
- package/dist/components/Employee/Compensation/Edit.js +15 -14
- package/dist/components/Employee/Compensation/Edit.js.map +1 -1
- package/dist/components/Employee/Compensation/Head.js.map +1 -1
- package/dist/components/Employee/Compensation/List.js +25 -23
- package/dist/components/Employee/Compensation/List.js.map +1 -1
- package/dist/components/Employee/Compensation/useCompensation.js.map +1 -1
- package/dist/components/Employee/Deductions/Deductions.d.ts +8 -14
- package/dist/components/Employee/Deductions/Deductions.js +47 -140
- package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsComponents.d.ts +23 -0
- package/dist/components/Employee/Deductions/DeductionsComponents.js +31 -0
- package/dist/components/Employee/Deductions/DeductionsComponents.js.map +1 -0
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.d.ts +41 -0
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js +135 -0
- package/dist/components/Employee/Deductions/DeductionsForm/DeductionsForm.js.map +1 -0
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.d.ts +6 -0
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js +99 -0
- package/dist/components/Employee/Deductions/DeductionsList/DeductionsList.js.map +1 -0
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.d.ts +15 -0
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js +49 -0
- package/dist/components/Employee/Deductions/IncludeDeductionsForm/IncludeDeductionsForm.js.map +1 -0
- package/dist/components/Employee/Deductions/stateMachine.d.ts +7 -0
- package/dist/components/Employee/Deductions/stateMachine.js +107 -0
- package/dist/components/Employee/Deductions/stateMachine.js.map +1 -0
- package/dist/components/Employee/Deductions/useDeductions.d.ts +2 -2
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js +8 -6
- package/dist/components/Employee/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js +7 -6
- package/dist/components/Employee/DocumentSigner/DocumentList/DocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/Head.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js +4 -2
- package/dist/components/Employee/DocumentSigner/DocumentList/List.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
- package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/Actions.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/Form.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/Head.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/Preview.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +8 -7
- package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
- package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/documentSignerStateMachine.js.map +1 -1
- package/dist/components/Employee/DocumentSigner/stateMachine.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Actions.js +6 -4
- package/dist/components/Employee/EmployeeList/Actions.js.map +1 -1
- package/dist/components/Employee/EmployeeList/EmployeeList.js +4 -3
- package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
- package/dist/components/Employee/EmployeeList/Head.js +7 -5
- package/dist/components/Employee/EmployeeList/Head.js.map +1 -1
- package/dist/components/Employee/EmployeeList/List.js +15 -14
- package/dist/components/Employee/EmployeeList/List.js.map +1 -1
- package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
- package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.js +13 -12
- package/dist/components/Employee/Landing/Landing.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/OnboardingFlow.js.map +1 -1
- package/dist/components/Employee/OnboardingFlow/onboardingStateMachine.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +7 -7
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.module.scss.js +6 -6
- package/dist/components/Employee/PaymentMethod/Actions.js +9 -7
- package/dist/components/Employee/PaymentMethod/Actions.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccount.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js +6 -5
- package/dist/components/Employee/PaymentMethod/BankAccountEdit.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js +10 -8
- package/dist/components/Employee/PaymentMethod/BankAccountsList.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Head.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js +3 -2
- package/dist/components/Employee/PaymentMethod/PaymentTypeForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/Split.js +11 -10
- package/dist/components/Employee/PaymentMethod/Split.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
- package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
- package/dist/components/Employee/Profile/Actions.js +9 -7
- package/dist/components/Employee/Profile/Actions.js.map +1 -1
- package/dist/components/Employee/Profile/AdminPersonalDetails.js +10 -9
- package/dist/components/Employee/Profile/AdminPersonalDetails.js.map +1 -1
- package/dist/components/Employee/Profile/Head.js.map +1 -1
- package/dist/components/Employee/Profile/HomeAddress.js +1 -1
- package/dist/components/Employee/Profile/HomeAddress.js.map +1 -1
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js +2 -2
- package/dist/components/Employee/Profile/PersonalDetailsInputs.js.map +1 -1
- package/dist/components/Employee/Profile/Profile.js.map +1 -1
- package/dist/components/Employee/Profile/SelfPersonalDetails.js.map +1 -1
- package/dist/components/Employee/Profile/WorkAddress.js.map +1 -1
- package/dist/components/Employee/Profile/getEmployeeAddressForProfile.js.map +1 -1
- package/dist/components/Employee/Profile/useProfile.js +4 -3
- package/dist/components/Employee/Profile/useProfile.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingFlow.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/selfOnboardingMachine.js.map +1 -1
- package/dist/components/Employee/Taxes/Actions.js +10 -8
- package/dist/components/Employee/Taxes/Actions.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalForm.js +14 -12
- package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
- package/dist/components/Employee/Taxes/FederalHead.js.map +1 -1
- package/dist/components/Employee/Taxes/StateForm.js.map +1 -1
- package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
- package/dist/components/Employee/Taxes/useTaxes.js +4 -3
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Flow/Flow.js.map +1 -1
- package/dist/components/Flow/useFlow.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.d.ts +5 -2
- package/dist/contexts/ApiProvider/ApiProvider.js +34 -30
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ComponentAdapter/ComponentsProvider.js.map +1 -1
- package/dist/contexts/ComponentAdapter/adapters/defaultComponentAdapter.js.map +1 -1
- package/dist/contexts/ComponentAdapter/useComponentContext.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProvider.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +6 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +16 -14
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/GustoProvider/SDKI18next.js.map +1 -1
- package/dist/contexts/GustoProvider/index.d.ts +2 -0
- package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.js.map +1 -1
- package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js.map +1 -1
- package/dist/contexts/LocaleProvider/LocaleProvider.js.map +1 -1
- package/dist/contexts/LocaleProvider/useLocale.js.map +1 -1
- package/dist/contexts/ThemeProvider/ThemeProvider.d.ts +2 -3
- package/dist/contexts/ThemeProvider/ThemeProvider.js +20 -24
- package/dist/contexts/ThemeProvider/ThemeProvider.js.map +1 -1
- package/dist/contexts/ThemeProvider/theme.d.ts +90 -0
- package/dist/contexts/ThemeProvider/theme.js +117 -0
- package/dist/contexts/ThemeProvider/theme.js.map +1 -0
- package/dist/contexts/ThemeProvider/useTheme.js.map +1 -1
- package/dist/contexts/index.d.ts +4 -0
- package/dist/helpers/LRUCache.js.map +1 -1
- package/dist/helpers/dateFormatting.d.ts +10 -2
- package/dist/helpers/dateFormatting.js +30 -7
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/helpers/dateFormatting.test.d.ts +1 -0
- package/dist/helpers/ensureRequired.js.map +1 -1
- package/dist/helpers/federalEin.js.map +1 -1
- package/dist/helpers/formattedStrings.js.map +1 -1
- package/dist/helpers/getDataProps.js.map +1 -1
- package/dist/helpers/mask.js.map +1 -1
- package/dist/helpers/payRateCalculator.js.map +1 -1
- package/dist/helpers/rem.js +2 -3
- package/dist/helpers/rem.js.map +1 -1
- package/dist/helpers/responsive.d.ts +0 -3
- package/dist/helpers/responsive.js +20 -34
- package/dist/helpers/responsive.js.map +1 -1
- package/dist/helpers/ssn.js.map +1 -1
- package/dist/helpers/validations.js.map +1 -1
- package/dist/hooks/useContainerBreakpoints/useContainerBreakpoints.js.map +1 -1
- package/dist/hooks/useForkRef/useForkRef.js.map +1 -1
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.AddBank.json.js +12 -12
- package/dist/i18n/en/Company.Addresses.json.js +12 -12
- package/dist/i18n/en/Company.AssignSignatory.json.js +5 -54
- package/dist/i18n/en/Company.AssignSignatory.json.js.map +1 -1
- package/dist/i18n/en/Company.BankAccount.json.js +19 -40
- package/dist/i18n/en/Company.BankAccount.json.js.map +1 -1
- package/dist/i18n/en/Company.DocumentList.json.js +15 -15
- package/dist/i18n/en/Company.FederalTaxes.json.js +16 -32
- package/dist/i18n/en/Company.FederalTaxes.json.js.map +1 -1
- package/dist/i18n/en/Company.Locations.json.js +43 -49
- package/dist/i18n/en/Company.Locations.json.js.map +1 -1
- package/dist/i18n/en/Company.OnboardingOverview.json.js +14 -36
- package/dist/i18n/en/Company.OnboardingOverview.json.js.map +1 -1
- package/dist/i18n/en/Company.PaySchedule.json.js +1 -44
- package/dist/i18n/en/Company.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.SignatureForm.json.js +9 -9
- package/dist/i18n/en/Company.StateTaxes.json.js +1 -25
- package/dist/i18n/en/Company.StateTaxes.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Address.json.js +19 -24
- package/dist/i18n/en/Contractor.Address.json.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorList.json.js +9 -12
- package/dist/i18n/en/Contractor.ContractorList.json.js.map +1 -1
- package/dist/i18n/en/Contractor.ContractorSubmit.json.js +10 -14
- package/dist/i18n/en/Contractor.ContractorSubmit.json.js.map +1 -1
- package/dist/i18n/en/Contractor.NewHireReport.json.js +5 -7
- package/dist/i18n/en/Contractor.NewHireReport.json.js.map +1 -1
- package/dist/i18n/en/Contractor.PaymentMethod.json.js +4 -17
- package/dist/i18n/en/Contractor.PaymentMethod.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Profile.json.js +1 -58
- package/dist/i18n/en/Contractor.Profile.json.js.map +1 -1
- package/dist/i18n/en/Employee.BankAccount.json.js +17 -19
- package/dist/i18n/en/Employee.BankAccount.json.js.map +1 -1
- package/dist/i18n/en/Employee.Compensation.json.js +31 -65
- package/dist/i18n/en/Employee.Compensation.json.js.map +1 -1
- package/dist/i18n/en/Employee.Deductions.json.js +64 -69
- package/dist/i18n/en/Employee.Deductions.json.js.map +1 -1
- package/dist/i18n/en/Employee.DocumentSigner.json.js +23 -23
- package/dist/i18n/en/Employee.EmployeeList.json.js +29 -29
- package/dist/i18n/en/Employee.HomeAddress.json.js +23 -28
- package/dist/i18n/en/Employee.HomeAddress.json.js.map +1 -1
- package/dist/i18n/en/Employee.Landing.json.js +11 -15
- package/dist/i18n/en/Employee.Landing.json.js.map +1 -1
- package/dist/i18n/en/Employee.OnboardingSummary.json.js +6 -28
- package/dist/i18n/en/Employee.OnboardingSummary.json.js.map +1 -1
- package/dist/i18n/en/Employee.PaySchedules.json.js +1 -5
- package/dist/i18n/en/Employee.PaySchedules.json.js.map +1 -1
- package/dist/i18n/en/Employee.PaymentMethod.json.js +29 -36
- package/dist/i18n/en/Employee.PaymentMethod.json.js.map +1 -1
- package/dist/i18n/en/Employee.Profile.json.js +16 -22
- package/dist/i18n/en/Employee.Profile.json.js.map +1 -1
- package/dist/i18n/en/Employee.SplitPaycheck.json.js +21 -25
- package/dist/i18n/en/Employee.SplitPaycheck.json.js.map +1 -1
- package/dist/i18n/en/Employee.StateTaxes.json.js +4 -4
- package/dist/i18n/en/Employee.Taxes.json.js +26 -29
- package/dist/i18n/en/Employee.Taxes.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollHistoryList.json.js +9 -9
- package/dist/i18n/en/common.json.d.ts +1 -1
- package/dist/i18n/en/common.json.js +1 -147
- package/dist/i18n/en/common.json.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +11 -9
- package/dist/index.js.map +1 -1
- package/dist/models/NAICSValues.js.map +1 -1
- package/dist/models/WA_RISK_CODES.js.map +1 -1
- package/dist/shared/constants.d.ts +8 -0
- package/dist/shared/constants.js +9 -5
- package/dist/shared/constants.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/hooks.d.ts +36 -0
- package/dist/types/i18next.d.ts +0 -1
- package/package.json +5 -5
- package/dist/components/Common/UI/NumberInput/NumberInput.module.scss.js +0 -8
- package/dist/components/Common/UI/NumberInput/NumberInput.module.scss.js.map +0 -1
- package/dist/components/Employee/Deductions/Actions.js +0 -25
- package/dist/components/Employee/Deductions/Actions.js.map +0 -1
- package/dist/components/Employee/Deductions/DeductionForm.d.ts +0 -1
- package/dist/components/Employee/Deductions/DeductionForm.js +0 -76
- package/dist/components/Employee/Deductions/DeductionForm.js.map +0 -1
- package/dist/components/Employee/Deductions/DeductionsList.d.ts +0 -2
- package/dist/components/Employee/Deductions/DeductionsList.js +0 -58
- package/dist/components/Employee/Deductions/DeductionsList.js.map +0 -1
- package/dist/components/Employee/Deductions/Head.js +0 -13
- package/dist/components/Employee/Deductions/Head.js.map +0 -1
- package/dist/components/Employee/Deductions/IncludeDeductionsForm.d.ts +0 -1
- package/dist/components/Employee/Deductions/IncludeDeductionsForm.js +0 -25
- package/dist/components/Employee/Deductions/IncludeDeductionsForm.js.map +0 -1
- package/dist/components/Employee/Deductions/useDeductions.js +0 -33
- package/dist/components/Employee/Deductions/useDeductions.js.map +0 -1
- package/dist/contexts/ThemeProvider/createTheme.d.ts +0 -22
- package/dist/contexts/ThemeProvider/createTheme.js +0 -271
- package/dist/contexts/ThemeProvider/createTheme.js.map +0 -1
- package/dist/types/GTheme.d.ts +0 -255
- /package/dist/contexts/ThemeProvider/{createTheme.test.d.ts → theme.test.d.ts} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { CustomPropertyValue, Responsive
|
|
2
|
+
import { CustomPropertyValue, Responsive } from '../../../helpers/responsive';
|
|
3
3
|
type Flow = 'row' | 'column' | 'row dense' | 'column dense';
|
|
4
4
|
type Alignment = 'start' | 'end' | 'center' | 'stretch';
|
|
5
5
|
export interface GridProps {
|
|
6
6
|
children: ReactNode;
|
|
7
|
-
gap?:
|
|
7
|
+
gap?: Responsive<CustomPropertyValue>;
|
|
8
8
|
gridTemplateColumns?: Responsive<CustomPropertyValue | CustomPropertyValue[]>;
|
|
9
9
|
gridTemplateRows?: Responsive<CustomPropertyValue | CustomPropertyValue[]>;
|
|
10
10
|
gridTemplateAreas?: Responsive<string>;
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
2
|
import c from "classnames";
|
|
3
3
|
import r from "./Grid.module.scss.js";
|
|
4
|
-
import { setResponsiveCustomProperties as g
|
|
5
|
-
function
|
|
6
|
-
children:
|
|
4
|
+
import { setResponsiveCustomProperties as g } from "../../../helpers/responsive.js";
|
|
5
|
+
function N({
|
|
6
|
+
children: e,
|
|
7
7
|
gap: s = 24,
|
|
8
8
|
gridTemplateColumns: i = ["1fr"],
|
|
9
9
|
gridTemplateRows: o,
|
|
10
10
|
gridTemplateAreas: m,
|
|
11
11
|
gridAutoFlow: a,
|
|
12
|
-
alignItems:
|
|
13
|
-
justifyItems:
|
|
14
|
-
justifyContent:
|
|
12
|
+
alignItems: l,
|
|
13
|
+
justifyItems: n,
|
|
14
|
+
justifyContent: p,
|
|
15
15
|
className: d
|
|
16
16
|
}) {
|
|
17
17
|
const f = g({
|
|
18
|
-
gap:
|
|
18
|
+
gap: s,
|
|
19
19
|
"grid-template-columns": i,
|
|
20
20
|
"grid-template-rows": o,
|
|
21
21
|
"grid-template-areas": m,
|
|
22
22
|
"grid-auto-flow": a,
|
|
23
|
-
"align-items":
|
|
24
|
-
"justify-items":
|
|
25
|
-
"justify-content":
|
|
23
|
+
"align-items": l,
|
|
24
|
+
"justify-items": n,
|
|
25
|
+
"justify-content": p
|
|
26
26
|
});
|
|
27
|
-
return /* @__PURE__ */
|
|
27
|
+
return /* @__PURE__ */ t("div", { className: c(r.gridContainer, d), children: /* @__PURE__ */ t("div", { className: r.grid, style: f, children: e }) });
|
|
28
28
|
}
|
|
29
29
|
export {
|
|
30
|
-
|
|
30
|
+
N as Grid
|
|
31
31
|
};
|
|
32
32
|
//# sourceMappingURL=Grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Grid.js","sources":["../../../../src/components/Common/Grid/Grid.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport cn from 'classnames'\nimport styles from './Grid.module.scss'\nimport {\n setResponsiveCustomProperties,\n
|
|
1
|
+
{"version":3,"file":"Grid.js","sources":["../../../../src/components/Common/Grid/Grid.tsx"],"sourcesContent":["import type { ReactNode } from 'react'\nimport cn from 'classnames'\nimport styles from './Grid.module.scss'\nimport {\n setResponsiveCustomProperties,\n type CustomPropertyValue,\n type Responsive,\n} from '@/helpers/responsive'\n\ntype Flow = 'row' | 'column' | 'row dense' | 'column dense'\ntype Alignment = 'start' | 'end' | 'center' | 'stretch'\n\nexport interface GridProps {\n children: ReactNode\n gap?: Responsive<CustomPropertyValue>\n gridTemplateColumns?: Responsive<CustomPropertyValue | CustomPropertyValue[]>\n gridTemplateRows?: Responsive<CustomPropertyValue | CustomPropertyValue[]>\n gridTemplateAreas?: Responsive<string>\n gridAutoFlow?: Responsive<Flow>\n alignItems?: Responsive<Alignment>\n justifyItems?: Responsive<Alignment>\n justifyContent?: Responsive<\n 'start' | 'end' | 'center' | 'stretch' | 'space-between' | 'space-around' | 'space-evenly'\n >\n className?: string\n}\n\nexport function Grid({\n children,\n gap = 24,\n gridTemplateColumns = ['1fr'],\n gridTemplateRows,\n gridTemplateAreas,\n gridAutoFlow,\n alignItems,\n justifyItems,\n justifyContent,\n className,\n}: GridProps) {\n const properties = setResponsiveCustomProperties({\n gap,\n 'grid-template-columns': gridTemplateColumns,\n 'grid-template-rows': gridTemplateRows,\n 'grid-template-areas': gridTemplateAreas,\n 'grid-auto-flow': gridAutoFlow,\n 'align-items': alignItems,\n 'justify-items': justifyItems,\n 'justify-content': justifyContent,\n })\n\n return (\n <div className={cn(styles.gridContainer, className)}>\n <div className={styles.grid} style={properties}>\n {children}\n </div>\n </div>\n )\n}\n"],"names":["Grid","children","gap","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridAutoFlow","alignItems","justifyItems","justifyContent","className","properties","setResponsiveCustomProperties","cn","styles","jsx"],"mappings":";;;;AA2BO,SAASA,EAAK;AAAA,EACnB,UAAAC;AAAA,EACA,KAAAC,IAAM;AAAA,EACN,qBAAAC,IAAsB,CAAC,KAAK;AAAA,EAC5B,kBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,WAAAC;AACF,GAAc;AACZ,QAAMC,IAAaC,EAA8B;AAAA,IAC/C,KAAAV;AAAA,IACA,yBAAyBC;AAAA,IACzB,sBAAsBC;AAAA,IACtB,uBAAuBC;AAAA,IACvB,kBAAkBC;AAAA,IAClB,eAAeC;AAAA,IACf,iBAAiBC;AAAA,IACjB,mBAAmBC;AAAA,EAAA,CACpB;AAED,2BACG,OAAA,EAAI,WAAWI,EAAGC,EAAO,eAAeJ,CAAS,GAChD,UAAA,gBAAAK,EAAC,OAAA,EAAI,WAAWD,EAAO,MAAM,OAAOH,GACjC,UAAAV,GACH,GACF;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HamburgerMenu.js","sources":["../../../../src/components/Common/HamburgerMenu/HamburgerMenu.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type HamburgerMenuProps } from './HamburgerMenuTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport HamburgerIcon from '@/assets/icons/hamburger.svg?react'\nimport { useMenu } from '@/components/Common/hooks/useMenu'\n\nexport function HamburgerMenu({\n items,\n triggerLabel,\n menuLabel,\n onClose,\n isLoading = false,\n ...props\n}: HamburgerMenuProps) {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const { triggerProps, menuProps } = useMenu()\n\n const { ref, ...restTriggerProps } = triggerProps\n\n return (\n <>\n <Components.ButtonIcon\n isLoading={isLoading}\n aria-label={triggerLabel || t('labels.openMenu')}\n buttonRef={ref}\n {...restTriggerProps}\n >\n <HamburgerIcon />\n </Components.ButtonIcon>\n <Components.Menu\n {...menuProps}\n items={items}\n aria-label={menuLabel || t('labels.menuLabel')}\n onClose={onClose || menuProps.onClose}\n {...props}\n />\n </>\n )\n}\n"],"names":["HamburgerMenu","items","triggerLabel","menuLabel","onClose","isLoading","props","t","useTranslation","Components","useComponentContext","triggerProps","menuProps","useMenu","ref","restTriggerProps","jsxs","Fragment","jsx","HamburgerIcon"],"mappings":";;;;;AAMO,SAASA,EAAc;AAAA,EAC5B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAuB;AACrB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,
|
|
1
|
+
{"version":3,"file":"HamburgerMenu.js","sources":["../../../../src/components/Common/HamburgerMenu/HamburgerMenu.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { type HamburgerMenuProps } from './HamburgerMenuTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport HamburgerIcon from '@/assets/icons/hamburger.svg?react'\nimport { useMenu } from '@/components/Common/hooks/useMenu'\n\nexport function HamburgerMenu({\n items,\n triggerLabel,\n menuLabel,\n onClose,\n isLoading = false,\n ...props\n}: HamburgerMenuProps) {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const { triggerProps, menuProps } = useMenu()\n\n const { ref, ...restTriggerProps } = triggerProps\n\n return (\n <>\n <Components.ButtonIcon\n isLoading={isLoading}\n aria-label={triggerLabel || t('labels.openMenu')}\n buttonRef={ref}\n {...restTriggerProps}\n >\n <HamburgerIcon />\n </Components.ButtonIcon>\n <Components.Menu\n {...menuProps}\n items={items}\n aria-label={menuLabel || t('labels.menuLabel')}\n onClose={onClose || menuProps.onClose}\n {...props}\n />\n </>\n )\n}\n"],"names":["HamburgerMenu","items","triggerLabel","menuLabel","onClose","isLoading","props","t","useTranslation","Components","useComponentContext","triggerProps","menuProps","useMenu","ref","restTriggerProps","jsxs","Fragment","jsx","HamburgerIcon"],"mappings":";;;;;AAMO,SAASA,EAAc;AAAA,EAC5B,OAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,GAAGC;AACL,GAAuB;AACrB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAA,GACb,EAAE,cAAAC,GAAc,WAAAC,EAAA,IAAcC,EAAA,GAE9B,EAAE,KAAAC,GAAK,GAAGC,EAAA,IAAqBJ;AAErC,SACE,gBAAAK,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACC,WAAAJ;AAAA,QACA,cAAYH,KAAgBK,EAAE,iBAAiB;AAAA,QAC/C,WAAWO;AAAA,QACV,GAAGC;AAAA,QAEJ,4BAACI,GAAA,CAAA,CAAc;AAAA,MAAA;AAAA,IAAA;AAAA,IAEjB,gBAAAD;AAAA,MAACT,EAAW;AAAA,MAAX;AAAA,QACE,GAAGG;AAAA,QACJ,OAAAX;AAAA,QACA,cAAYE,KAAaI,EAAE,kBAAkB;AAAA,QAC7C,SAASH,KAAWQ,EAAU;AAAA,QAC7B,GAAGN;AAAA,MAAA;AAAA,IAAA;AAAA,EACN,GACF;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalFieldLayout.js","sources":["../../../../src/components/Common/HorizontalFieldLayout/HorizontalFieldLayout.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { VisuallyHidden } from '../VisuallyHidden'\nimport { FieldErrorMessage } from '../FieldErrorMessage'\nimport { FieldDescription } from '../FieldDescription'\nimport styles from './HorizontalFieldLayout.module.scss'\nimport type { HorizontalFieldLayoutProps } from './HorizontalFieldLayoutTypes'\nimport { getDataProps } from '@/helpers/getDataProps'\n\nexport const HorizontalFieldLayout: React.FC<HorizontalFieldLayoutProps> = ({\n label,\n description,\n descriptionId,\n errorMessage,\n errorMessageId,\n children,\n htmlFor,\n className,\n shouldVisuallyHideLabel,\n ...props\n}: HorizontalFieldLayoutProps) => {\n const labelContent = (\n <label className={styles.label} htmlFor={htmlFor}>\n {label}\n </label>\n )\n\n const withDescriptionOrErrorMessage = description || errorMessage\n\n return (\n <div\n className={classNames(\n styles.root,\n {\n [styles.withoutVisibleLabel as string]:\n shouldVisuallyHideLabel && withDescriptionOrErrorMessage,\n [styles.withOnlyChildren as string]:\n shouldVisuallyHideLabel && !withDescriptionOrErrorMessage,\n },\n className,\n )}\n {...getDataProps(props)}\n >\n <div className={styles.children}>{children}</div>\n {shouldVisuallyHideLabel ? <VisuallyHidden>{labelContent}</VisuallyHidden> : labelContent}\n <FieldDescription id={descriptionId} className={styles.description}>\n {description}\n </FieldDescription>\n <FieldErrorMessage id={errorMessageId} className={styles.errorMessage}>\n {errorMessage}\n </FieldErrorMessage>\n </div>\n )\n}\n"],"names":["HorizontalFieldLayout","label","description","descriptionId","errorMessage","errorMessageId","children","htmlFor","className","shouldVisuallyHideLabel","props","labelContent","jsx","styles","withDescriptionOrErrorMessage","jsxs","classNames","getDataProps","VisuallyHidden","FieldDescription","FieldErrorMessage"],"mappings":";;;;;;;AAQO,MAAMA,IAA8D,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,GAAGC;AACL,MAAkC;AAChC,QAAMC,
|
|
1
|
+
{"version":3,"file":"HorizontalFieldLayout.js","sources":["../../../../src/components/Common/HorizontalFieldLayout/HorizontalFieldLayout.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { VisuallyHidden } from '../VisuallyHidden'\nimport { FieldErrorMessage } from '../FieldErrorMessage'\nimport { FieldDescription } from '../FieldDescription'\nimport styles from './HorizontalFieldLayout.module.scss'\nimport type { HorizontalFieldLayoutProps } from './HorizontalFieldLayoutTypes'\nimport { getDataProps } from '@/helpers/getDataProps'\n\nexport const HorizontalFieldLayout: React.FC<HorizontalFieldLayoutProps> = ({\n label,\n description,\n descriptionId,\n errorMessage,\n errorMessageId,\n children,\n htmlFor,\n className,\n shouldVisuallyHideLabel,\n ...props\n}: HorizontalFieldLayoutProps) => {\n const labelContent = (\n <label className={styles.label} htmlFor={htmlFor}>\n {label}\n </label>\n )\n\n const withDescriptionOrErrorMessage = description || errorMessage\n\n return (\n <div\n className={classNames(\n styles.root,\n {\n [styles.withoutVisibleLabel as string]:\n shouldVisuallyHideLabel && withDescriptionOrErrorMessage,\n [styles.withOnlyChildren as string]:\n shouldVisuallyHideLabel && !withDescriptionOrErrorMessage,\n },\n className,\n )}\n {...getDataProps(props)}\n >\n <div className={styles.children}>{children}</div>\n {shouldVisuallyHideLabel ? <VisuallyHidden>{labelContent}</VisuallyHidden> : labelContent}\n <FieldDescription id={descriptionId} className={styles.description}>\n {description}\n </FieldDescription>\n <FieldErrorMessage id={errorMessageId} className={styles.errorMessage}>\n {errorMessage}\n </FieldErrorMessage>\n </div>\n )\n}\n"],"names":["HorizontalFieldLayout","label","description","descriptionId","errorMessage","errorMessageId","children","htmlFor","className","shouldVisuallyHideLabel","props","labelContent","jsx","styles","withDescriptionOrErrorMessage","jsxs","classNames","getDataProps","VisuallyHidden","FieldDescription","FieldErrorMessage"],"mappings":";;;;;;;AAQO,MAAMA,IAA8D,CAAC;AAAA,EAC1E,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,cAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,yBAAAC;AAAA,EACA,GAAGC;AACL,MAAkC;AAChC,QAAMC,IACJ,gBAAAC,EAAC,SAAA,EAAM,WAAWC,EAAO,OAAO,SAAAN,GAC7B,UAAAN,GACH,GAGIa,IAAgCZ,KAAeE;AAErD,SACE,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACTH,EAAO;AAAA,QACP;AAAA,UACE,CAACA,EAAO,mBAA6B,GACnCJ,KAA2BK;AAAA,UAC7B,CAACD,EAAO,gBAA0B,GAChCJ,KAA2B,CAACK;AAAA,QAAA;AAAA,QAEhCN;AAAA,MAAA;AAAA,MAED,GAAGS,EAAaP,CAAK;AAAA,MAEtB,UAAA;AAAA,QAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWC,EAAO,UAAW,UAAAP,GAAS;AAAA,QAC1CG,IAA0B,gBAAAG,EAACM,GAAA,EAAgB,UAAAP,EAAA,CAAa,IAAoBA;AAAA,0BAC5EQ,GAAA,EAAiB,IAAIhB,GAAe,WAAWU,EAAO,aACpD,UAAAX,GACH;AAAA,0BACCkB,GAAA,EAAkB,IAAIf,GAAgB,WAAWQ,EAAO,cACtD,UAAAT,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
const i = "
|
|
1
|
+
const i = "_root_1lhin_1", e = "_withoutVisibleLabel_1lhin_9", l = "_withOnlyChildren_1lhin_12", n = "_children_1lhin_18", t = "_label_1lhin_25", o = "_description_1lhin_36", s = "_errorMessage_1lhin_40", r = {
|
|
2
2
|
root: i,
|
|
3
3
|
withoutVisibleLabel: e,
|
|
4
|
-
withOnlyChildren:
|
|
5
|
-
children:
|
|
6
|
-
label:
|
|
7
|
-
description:
|
|
8
|
-
errorMessage:
|
|
4
|
+
withOnlyChildren: l,
|
|
5
|
+
children: n,
|
|
6
|
+
label: t,
|
|
7
|
+
description: o,
|
|
8
|
+
errorMessage: s
|
|
9
9
|
};
|
|
10
10
|
export {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
n as children,
|
|
12
|
+
r as default,
|
|
13
|
+
o as description,
|
|
14
|
+
s as errorMessage,
|
|
15
|
+
t as label,
|
|
16
16
|
i as root,
|
|
17
|
-
|
|
17
|
+
l as withOnlyChildren,
|
|
18
18
|
e as withoutVisibleLabel
|
|
19
19
|
};
|
|
20
20
|
//# sourceMappingURL=HorizontalFieldLayout.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InternalError.js","sources":["../../../../src/components/Common/InternalError/InternalError.tsx"],"sourcesContent":["import type { FallbackProps } from 'react-error-boundary'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './InternalError.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const InternalError = ({ error, resetErrorBoundary }: FallbackProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const errorMessage =\n typeof error === 'string'\n ? error\n : error instanceof Error\n ? error.message\n : t('errors.unknownError')\n return (\n <div className={styles.internalErrorCard} role=\"alert\" data-testid=\"internal-error-card\">\n <div>\n <Components.Heading className={styles.internalErrorCardTitle} as=\"h1\" styledAs=\"h3\">\n {t('errors.errorHeading')}\n </Components.Heading>\n <Components.Text className={styles.errorMessage}>\n <Trans\n t={t}\n i18nKey=\"errors.globalReactError\"\n values={{ error: errorMessage }}\n shouldUnescape={true}\n />\n </Components.Text>\n </div>\n <div>\n <Components.Button variant=\"secondary\" onClick={resetErrorBoundary}>\n {t('errors.resetGlobalError')}\n </Components.Button>\n </div>\n </div>\n )\n}\n"],"names":["InternalError","error","resetErrorBoundary","t","useTranslation","Components","useComponentContext","errorMessage","jsxs","styles","jsx","Trans"],"mappings":";;;;AAKO,MAAMA,IAAgB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAwC;AAC7E,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,
|
|
1
|
+
{"version":3,"file":"InternalError.js","sources":["../../../../src/components/Common/InternalError/InternalError.tsx"],"sourcesContent":["import type { FallbackProps } from 'react-error-boundary'\nimport { Trans, useTranslation } from 'react-i18next'\nimport styles from './InternalError.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\nexport const InternalError = ({ error, resetErrorBoundary }: FallbackProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const errorMessage =\n typeof error === 'string'\n ? error\n : error instanceof Error\n ? error.message\n : t('errors.unknownError')\n return (\n <div className={styles.internalErrorCard} role=\"alert\" data-testid=\"internal-error-card\">\n <div>\n <Components.Heading className={styles.internalErrorCardTitle} as=\"h1\" styledAs=\"h3\">\n {t('errors.errorHeading')}\n </Components.Heading>\n <Components.Text className={styles.errorMessage}>\n <Trans\n t={t}\n i18nKey=\"errors.globalReactError\"\n values={{ error: errorMessage }}\n shouldUnescape={true}\n />\n </Components.Text>\n </div>\n <div>\n <Components.Button variant=\"secondary\" onClick={resetErrorBoundary}>\n {t('errors.resetGlobalError')}\n </Components.Button>\n </div>\n </div>\n )\n}\n"],"names":["InternalError","error","resetErrorBoundary","t","useTranslation","Components","useComponentContext","errorMessage","jsxs","styles","jsx","Trans"],"mappings":";;;;AAKO,MAAMA,IAAgB,CAAC,EAAE,OAAAC,GAAO,oBAAAC,QAAwC;AAC7E,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAA,GACbC,IACJ,OAAON,KAAU,WACbA,IACAA,aAAiB,QACfA,EAAM,UACNE,EAAE,qBAAqB;AAC/B,SACE,gBAAAK,EAAC,SAAI,WAAWC,EAAO,mBAAmB,MAAK,SAAQ,eAAY,uBACjE,UAAA;AAAA,IAAA,gBAAAD,EAAC,OAAA,EACC,UAAA;AAAA,MAAA,gBAAAE,EAACL,EAAW,SAAX,EAAmB,WAAWI,EAAO,wBAAwB,IAAG,MAAK,UAAS,MAC5E,UAAAN,EAAE,qBAAqB,EAAA,CAC1B;AAAA,wBACCE,EAAW,MAAX,EAAgB,WAAWI,EAAO,cACjC,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,GAAAR;AAAA,UACA,SAAQ;AAAA,UACR,QAAQ,EAAE,OAAOI,EAAA;AAAA,UACjB,gBAAgB;AAAA,QAAA;AAAA,MAAA,EAClB,CACF;AAAA,IAAA,GACF;AAAA,IACA,gBAAAG,EAAC,OAAA,EACC,UAAA,gBAAAA,EAACL,EAAW,QAAX,EAAkB,SAAQ,aAAY,SAASH,GAC7C,UAAAC,EAAE,yBAAyB,GAC9B,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const r = "
|
|
1
|
+
const r = "_internalErrorCardTitle_nf5ok_1", e = "_internalErrorCard_nf5ok_1", n = "_errorMessage_nf5ok_19", a = {
|
|
2
2
|
internalErrorCardTitle: r,
|
|
3
3
|
internalErrorCard: e,
|
|
4
4
|
errorMessage: n
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loading.js","sources":["../../../../src/components/Common/Loading/Loading.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport cn from 'classnames'\nimport styles from './Loading.module.scss'\nimport { FadeIn } from '@/components/Common/FadeIn/FadeIn'\n\nexport const Loading = () => {\n const { t } = useTranslation('common')\n return (\n <FadeIn>\n <section\n className={styles.skeletonContainer}\n aria-label={t('status.loading')}\n aria-live=\"polite\"\n aria-busy\n >\n <div className={cn(styles.skeleton, styles.skeletonBox)}></div>\n </section>\n </FadeIn>\n )\n}\n"],"names":["Loading","t","useTranslation","FadeIn","jsx","styles","cn"],"mappings":";;;;;AAKO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ;AACrC,2BACGC,
|
|
1
|
+
{"version":3,"file":"Loading.js","sources":["../../../../src/components/Common/Loading/Loading.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport cn from 'classnames'\nimport styles from './Loading.module.scss'\nimport { FadeIn } from '@/components/Common/FadeIn/FadeIn'\n\nexport const Loading = () => {\n const { t } = useTranslation('common')\n return (\n <FadeIn>\n <section\n className={styles.skeletonContainer}\n aria-label={t('status.loading')}\n aria-live=\"polite\"\n aria-busy\n >\n <div className={cn(styles.skeleton, styles.skeletonBox)}></div>\n </section>\n </FadeIn>\n )\n}\n"],"names":["Loading","t","useTranslation","FadeIn","jsx","styles","cn"],"mappings":";;;;;AAKO,MAAMA,IAAU,MAAM;AAC3B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,QAAQ;AACrC,2BACGC,GAAA,EACC,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAO;AAAA,MAClB,cAAYJ,EAAE,gBAAgB;AAAA,MAC9B,aAAU;AAAA,MACV,aAAS;AAAA,MAET,UAAA,gBAAAG,EAAC,SAAI,WAAWE,EAAGD,EAAO,UAAUA,EAAO,WAAW,EAAA,CAAG;AAAA,IAAA;AAAA,EAAA,GAE7D;AAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/components/Common/OnboardingStatusBadge/index.tsx"],"sourcesContent":["import type { ContractorOnboardingStatus1 } from '@gusto/embedded-api/models/components/contractor'\nimport type { OnboardingStatus } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidonboardingstatus'\nimport { useTranslation } from 'react-i18next'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ntype OnboardingStatuses = ContractorOnboardingStatus1 | OnboardingStatus\n\ninterface OnboardingStatusBadgeProps<T extends OnboardingStatuses> {\n onboarded?: boolean\n onboardingEntity: 'contractor' | 'employee'\n onboardingStatus?: T | null\n}\nexport const OnboardingStatusBadge = <T extends OnboardingStatuses>({\n onboarded,\n onboardingEntity,\n onboardingStatus,\n}: OnboardingStatusBadgeProps<T>) => {\n const { Badge } = useComponentContext()\n const { t } = useTranslation()\n\n //HACK: `never` should instead be a better type\n return (\n <Badge status={onboarded ? 'success' : 'warning'}>\n {t(`onboardingStatus.${onboardingEntity}.${onboardingStatus ?? 'undefined'}` as never)}\n </Badge>\n )\n}\n\ninterface ContractorOnboardingStatusBadgeProps {\n onboarded?: boolean\n onboardingStatus?: ContractorOnboardingStatus1 | null\n}\nexport const ContractorOnboardingStatusBadge = (props: ContractorOnboardingStatusBadgeProps) => (\n <OnboardingStatusBadge {...props} onboardingEntity=\"contractor\" />\n)\n\ninterface EmployeeOnboardingStatusBadgeProps {\n onboarded?: boolean\n onboardingStatus?: OnboardingStatus | null\n}\nexport const EmployeeOnboardingStatusBadge = (props: EmployeeOnboardingStatusBadgeProps) => (\n <OnboardingStatusBadge {...props} onboardingEntity=\"employee\" />\n)\n"],"names":["OnboardingStatusBadge","onboarded","onboardingEntity","onboardingStatus","Badge","useComponentContext","t","useTranslation","jsx","ContractorOnboardingStatusBadge","props","EmployeeOnboardingStatusBadge"],"mappings":";;;AAYO,MAAMA,IAAwB,CAA+B;AAAA,EAClE,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACF,MAAqC;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/components/Common/OnboardingStatusBadge/index.tsx"],"sourcesContent":["import type { ContractorOnboardingStatus1 } from '@gusto/embedded-api/models/components/contractor'\nimport type { OnboardingStatus } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidonboardingstatus'\nimport { useTranslation } from 'react-i18next'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ntype OnboardingStatuses = ContractorOnboardingStatus1 | OnboardingStatus\n\ninterface OnboardingStatusBadgeProps<T extends OnboardingStatuses> {\n onboarded?: boolean\n onboardingEntity: 'contractor' | 'employee'\n onboardingStatus?: T | null\n}\nexport const OnboardingStatusBadge = <T extends OnboardingStatuses>({\n onboarded,\n onboardingEntity,\n onboardingStatus,\n}: OnboardingStatusBadgeProps<T>) => {\n const { Badge } = useComponentContext()\n const { t } = useTranslation()\n\n //HACK: `never` should instead be a better type\n return (\n <Badge status={onboarded ? 'success' : 'warning'}>\n {t(`onboardingStatus.${onboardingEntity}.${onboardingStatus ?? 'undefined'}` as never)}\n </Badge>\n )\n}\n\ninterface ContractorOnboardingStatusBadgeProps {\n onboarded?: boolean\n onboardingStatus?: ContractorOnboardingStatus1 | null\n}\nexport const ContractorOnboardingStatusBadge = (props: ContractorOnboardingStatusBadgeProps) => (\n <OnboardingStatusBadge {...props} onboardingEntity=\"contractor\" />\n)\n\ninterface EmployeeOnboardingStatusBadgeProps {\n onboarded?: boolean\n onboardingStatus?: OnboardingStatus | null\n}\nexport const EmployeeOnboardingStatusBadge = (props: EmployeeOnboardingStatusBadgeProps) => (\n <OnboardingStatusBadge {...props} onboardingEntity=\"employee\" />\n)\n"],"names":["OnboardingStatusBadge","onboarded","onboardingEntity","onboardingStatus","Badge","useComponentContext","t","useTranslation","jsx","ContractorOnboardingStatusBadge","props","EmployeeOnboardingStatusBadge"],"mappings":";;;AAYO,MAAMA,IAAwB,CAA+B;AAAA,EAClE,WAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,kBAAAC;AACF,MAAqC;AACnC,QAAM,EAAE,OAAAC,EAAA,IAAUC,EAAA,GACZ,EAAE,GAAAC,EAAA,IAAMC,EAAA;AAGd,SACE,gBAAAC,EAACJ,GAAA,EAAM,QAAQH,IAAY,YAAY,WACpC,UAAAK,EAAE,oBAAoBJ,CAAgB,IAAIC,KAAoB,WAAW,EAAW,GACvF;AAEJ,GAMaM,IAAkC,CAACC,MAC9C,gBAAAF,EAACR,KAAuB,GAAGU,GAAO,kBAAiB,aAAA,CAAa,GAOrDC,IAAgC,CAACD,MAC5C,gBAAAF,EAACR,KAAuB,GAAGU,GAAO,kBAAiB,WAAA,CAAW;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationControl.js","sources":["../../../../src/components/Common/PaginationControl/PaginationControl.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Flex } from '../Flex/Flex'\nimport style from './PaginationControl.module.scss'\nimport type { PaginationControlProps } from './PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport PaginationFirstIcon from '@/assets/icons/pagination_first.svg?react'\nimport PaginationPrevIcon from '@/assets/icons/pagination_previous.svg?react'\nimport PaginationNextIcon from '@/assets/icons/pagination_next.svg?react'\nimport PaginationLastIcon from '@/assets/icons/pagination_last.svg?react'\n\nconst DefaultPaginationControl = ({\n currentPage,\n totalPages,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleItemsPerPageChange,\n}: PaginationControlProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const [pageSize, setPageSize] = useState('5')\n\n if (totalPages < 2) {\n return null\n }\n return (\n <section className={style.paginationControl} data-testid=\"pagination-control\">\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <div className={style.paginationControlCount}>\n <section>\n <Components.Select\n label={t('labels.paginationControllCountLabel')}\n shouldVisuallyHideLabel\n value={pageSize}\n onChange={n => {\n setPageSize(n)\n handleItemsPerPageChange(Number(n))\n }}\n options={[\n { value: '5', label: '5' },\n { value: '10', label: '10' },\n { value: '50', label: '50' },\n ]}\n />\n </section>\n </div>\n <div className={style.paginationControlButtons}>\n <Components.ButtonIcon\n aria-label={t('icons.paginationFirst')}\n isDisabled={currentPage === 1}\n onClick={handleFirstPage}\n >\n <PaginationFirstIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationPrev')}\n data-testid=\"pagination-previous\"\n isDisabled={currentPage === 1}\n onClick={handlePreviousPage}\n >\n <PaginationPrevIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationNext')}\n data-testid=\"pagination-next\"\n isDisabled={currentPage === totalPages}\n onClick={handleNextPage}\n >\n <PaginationNextIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationLast')}\n isDisabled={currentPage === totalPages}\n onClick={handleLastPage}\n >\n <PaginationLastIcon />\n </Components.ButtonIcon>\n </div>\n </Flex>\n </section>\n )\n}\n\nexport const PaginationControl = (props: PaginationControlProps) => {\n const Components = useComponentContext()\n\n return Components.PaginationControl ? (\n <Components.PaginationControl {...props} />\n ) : (\n <DefaultPaginationControl {...props} />\n )\n}\n"],"names":["DefaultPaginationControl","currentPage","totalPages","handleFirstPage","handlePreviousPage","handleNextPage","handleLastPage","handleItemsPerPageChange","useTranslation","Components","useComponentContext","pageSize","setPageSize","useState","jsx","style","jsxs","Flex","n","PaginationFirstIcon","PaginationPrevIcon","PaginationNextIcon","PaginationLastIcon","PaginationControl","props"],"mappings":";;;;;;;;;;AAWA,MAAMA,IAA2B,CAAC;AAAA,EAChC,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,0BAAAC;AACF,MAA8B;AAC5B,QAAM,EAAE,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,
|
|
1
|
+
{"version":3,"file":"PaginationControl.js","sources":["../../../../src/components/Common/PaginationControl/PaginationControl.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { Flex } from '../Flex/Flex'\nimport style from './PaginationControl.module.scss'\nimport type { PaginationControlProps } from './PaginationControlTypes'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport PaginationFirstIcon from '@/assets/icons/pagination_first.svg?react'\nimport PaginationPrevIcon from '@/assets/icons/pagination_previous.svg?react'\nimport PaginationNextIcon from '@/assets/icons/pagination_next.svg?react'\nimport PaginationLastIcon from '@/assets/icons/pagination_last.svg?react'\n\nconst DefaultPaginationControl = ({\n currentPage,\n totalPages,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleItemsPerPageChange,\n}: PaginationControlProps) => {\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n const [pageSize, setPageSize] = useState('5')\n\n if (totalPages < 2) {\n return null\n }\n return (\n <section className={style.paginationControl} data-testid=\"pagination-control\">\n <Flex justifyContent=\"space-between\" alignItems=\"center\">\n <div className={style.paginationControlCount}>\n <section>\n <Components.Select\n label={t('labels.paginationControllCountLabel')}\n shouldVisuallyHideLabel\n value={pageSize}\n onChange={n => {\n setPageSize(n)\n handleItemsPerPageChange(Number(n))\n }}\n options={[\n { value: '5', label: '5' },\n { value: '10', label: '10' },\n { value: '50', label: '50' },\n ]}\n />\n </section>\n </div>\n <div className={style.paginationControlButtons}>\n <Components.ButtonIcon\n aria-label={t('icons.paginationFirst')}\n isDisabled={currentPage === 1}\n onClick={handleFirstPage}\n >\n <PaginationFirstIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationPrev')}\n data-testid=\"pagination-previous\"\n isDisabled={currentPage === 1}\n onClick={handlePreviousPage}\n >\n <PaginationPrevIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationNext')}\n data-testid=\"pagination-next\"\n isDisabled={currentPage === totalPages}\n onClick={handleNextPage}\n >\n <PaginationNextIcon />\n </Components.ButtonIcon>\n <Components.ButtonIcon\n aria-label={t('icons.paginationLast')}\n isDisabled={currentPage === totalPages}\n onClick={handleLastPage}\n >\n <PaginationLastIcon />\n </Components.ButtonIcon>\n </div>\n </Flex>\n </section>\n )\n}\n\nexport const PaginationControl = (props: PaginationControlProps) => {\n const Components = useComponentContext()\n\n return Components.PaginationControl ? (\n <Components.PaginationControl {...props} />\n ) : (\n <DefaultPaginationControl {...props} />\n )\n}\n"],"names":["DefaultPaginationControl","currentPage","totalPages","handleFirstPage","handlePreviousPage","handleNextPage","handleLastPage","handleItemsPerPageChange","useTranslation","Components","useComponentContext","pageSize","setPageSize","useState","jsx","style","jsxs","Flex","n","PaginationFirstIcon","PaginationPrevIcon","PaginationNextIcon","PaginationLastIcon","PaginationControl","props"],"mappings":";;;;;;;;;;AAWA,MAAMA,IAA2B,CAAC;AAAA,EAChC,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,0BAAAC;AACF,MAA8B;AAC5B,QAAM,EAAE,EAAA,IAAMC,EAAe,QAAQ,GAC/BC,IAAaC,EAAA,GACb,CAACC,GAAUC,CAAW,IAAIC,EAAS,GAAG;AAE5C,SAAIX,IAAa,IACR,OAGP,gBAAAY,EAAC,WAAA,EAAQ,WAAWC,EAAM,mBAAmB,eAAY,sBACvD,UAAA,gBAAAC,EAACC,GAAA,EAAK,gBAAe,iBAAgB,YAAW,UAC9C,UAAA;AAAA,IAAA,gBAAAH,EAAC,OAAA,EAAI,WAAWC,EAAM,wBACpB,4BAAC,WAAA,EACC,UAAA,gBAAAD;AAAA,MAACL,EAAW;AAAA,MAAX;AAAA,QACC,OAAO,EAAE,qCAAqC;AAAA,QAC9C,yBAAuB;AAAA,QACvB,OAAOE;AAAA,QACP,UAAU,CAAAO,MAAK;AACb,UAAAN,EAAYM,CAAC,GACbX,EAAyB,OAAOW,CAAC,CAAC;AAAA,QACpC;AAAA,QACA,SAAS;AAAA,UACP,EAAE,OAAO,KAAK,OAAO,IAAA;AAAA,UACrB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,UACtB,EAAE,OAAO,MAAM,OAAO,KAAA;AAAA,QAAK;AAAA,MAC7B;AAAA,IAAA,GAEJ,EAAA,CACF;AAAA,IACA,gBAAAF,EAAC,OAAA,EAAI,WAAWD,EAAM,0BACpB,UAAA;AAAA,MAAA,gBAAAD;AAAA,QAACL,EAAW;AAAA,QAAX;AAAA,UACC,cAAY,EAAE,uBAAuB;AAAA,UACrC,YAAYR,MAAgB;AAAA,UAC5B,SAASE;AAAA,UAET,4BAACgB,GAAA,CAAA,CAAoB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEvB,gBAAAL;AAAA,QAACL,EAAW;AAAA,QAAX;AAAA,UACC,cAAY,EAAE,sBAAsB;AAAA,UACpC,eAAY;AAAA,UACZ,YAAYR,MAAgB;AAAA,UAC5B,SAASG;AAAA,UAET,4BAACgB,GAAA,CAAA,CAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtB,gBAAAN;AAAA,QAACL,EAAW;AAAA,QAAX;AAAA,UACC,cAAY,EAAE,sBAAsB;AAAA,UACpC,eAAY;AAAA,UACZ,YAAYR,MAAgBC;AAAA,UAC5B,SAASG;AAAA,UAET,4BAACgB,GAAA,CAAA,CAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtB,gBAAAP;AAAA,QAACL,EAAW;AAAA,QAAX;AAAA,UACC,cAAY,EAAE,sBAAsB;AAAA,UACpC,YAAYR,MAAgBC;AAAA,UAC5B,SAASI;AAAA,UAET,4BAACgB,GAAA,CAAA,CAAmB;AAAA,QAAA;AAAA,MAAA;AAAA,IACtB,EAAA,CACF;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ,GAEaC,IAAoB,CAACC,MAAkC;AAClE,QAAMf,IAAaC,EAAA;AAEnB,SAAOD,EAAW,oBAChB,gBAAAK,EAACL,EAAW,mBAAX,EAA8B,GAAGe,EAAA,CAAO,IAEzC,gBAAAV,EAACd,GAAA,EAA0B,GAAGwB,EAAA,CAAO;AAEzC;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const o = "
|
|
1
|
+
const o = "_paginationControl_1g8dg_1", n = "_paginationControlCount_1g8dg_6", t = "_paginationControlButtons_1g8dg_11", a = {
|
|
2
2
|
paginationControl: o,
|
|
3
3
|
paginationControlCount: n,
|
|
4
4
|
paginationControlButtons: t
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropZone.js","sources":["../../../../src/components/Common/ReorderableList/DropZone.tsx"],"sourcesContent":["import { useRef, useEffect, memo } from 'react'\nimport classnames from 'classnames'\nimport { useDrop } from 'react-dnd'\nimport { useTranslation } from 'react-i18next'\nimport styles from './ReorderableList.module.scss'\nimport { ITEM_TYPE } from './constants'\n\ninterface DropZoneProps {\n position: number\n isActive: boolean\n onActivate: () => void\n onDeactivate: () => void\n onDrop: (fromPosition: number) => void\n listId: string\n className?: string\n}\n\nexport const DropZone = memo(function DropZone({\n position,\n isActive,\n onActivate,\n onDeactivate,\n onDrop,\n listId,\n className,\n}: DropZoneProps) {\n const ref = useRef<HTMLDivElement>(null)\n const { t } = useTranslation()\n\n // Add a debounce timer for hover state changes to prevent flickering\n const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isHoveringRef = useRef(false)\n\n const [{ isOver }, drop] = useDrop(\n () => ({\n accept: ITEM_TYPE,\n hover: (item: { index: number; listId: string }, monitor) => {\n if (item.listId !== listId) return\n\n const clientOffset = monitor.getClientOffset()\n if (!clientOffset || !ref.current) return\n\n if (isHoveringRef.current) return\n\n isHoveringRef.current = true\n\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n\n onActivate()\n },\n collect: monitor => ({\n isOver: !!monitor.isOver(),\n }),\n drop: (item: { index: number; listId: string }) => {\n if (item.listId !== listId) return\n onDeactivate()\n onDrop(item.index)\n return { dropped: true }\n },\n canDrop: (item: { index: number; listId: string }) => {\n if (item.listId !== listId) return false\n return item.index !== position && item.index !== position - 1\n },\n }),\n [listId, onActivate, onDeactivate, onDrop, position],\n )\n\n // Connect the drop ref to the DOM element\n useEffect(() => {\n if (ref.current) {\n drop(ref.current)\n }\n }, [drop])\n\n // Handle deactivation when item is no longer being hovered\n useEffect(() => {\n if (!isOver && isActive) {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n\n debounceTimerRef.current = setTimeout(() => {\n isHoveringRef.current = false\n onDeactivate()\n debounceTimerRef.current = null\n }, 100)\n }\n\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n }\n }, [isOver, isActive, onDeactivate])\n\n const isHighlighted = isActive || isOver\n\n const dropZoneClass = classnames(\n styles.dropZone,\n isActive || isOver ? styles.activeDropZone : '',\n isHighlighted ? styles.isHighlighted : '',\n className,\n )\n\n return (\n <div className={styles.dropZoneContainer}>\n <div\n ref={ref}\n className={dropZoneClass}\n data-position={position}\n data-list-id={listId}\n aria-hidden=\"true\"\n aria-label={t('reorderableList.dropItemHere')}\n />\n </div>\n )\n})\n"],"names":["DropZone","memo","position","isActive","onActivate","onDeactivate","onDrop","listId","className","ref","useRef","t","useTranslation","debounceTimerRef","isHoveringRef","isOver","drop","useDrop","ITEM_TYPE","item","monitor","useEffect","isHighlighted","dropZoneClass","classnames","styles","jsx"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"DropZone.js","sources":["../../../../src/components/Common/ReorderableList/DropZone.tsx"],"sourcesContent":["import { useRef, useEffect, memo } from 'react'\nimport classnames from 'classnames'\nimport { useDrop } from 'react-dnd'\nimport { useTranslation } from 'react-i18next'\nimport styles from './ReorderableList.module.scss'\nimport { ITEM_TYPE } from './constants'\n\ninterface DropZoneProps {\n position: number\n isActive: boolean\n onActivate: () => void\n onDeactivate: () => void\n onDrop: (fromPosition: number) => void\n listId: string\n className?: string\n}\n\nexport const DropZone = memo(function DropZone({\n position,\n isActive,\n onActivate,\n onDeactivate,\n onDrop,\n listId,\n className,\n}: DropZoneProps) {\n const ref = useRef<HTMLDivElement>(null)\n const { t } = useTranslation()\n\n // Add a debounce timer for hover state changes to prevent flickering\n const debounceTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null)\n const isHoveringRef = useRef(false)\n\n const [{ isOver }, drop] = useDrop(\n () => ({\n accept: ITEM_TYPE,\n hover: (item: { index: number; listId: string }, monitor) => {\n if (item.listId !== listId) return\n\n const clientOffset = monitor.getClientOffset()\n if (!clientOffset || !ref.current) return\n\n if (isHoveringRef.current) return\n\n isHoveringRef.current = true\n\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n\n onActivate()\n },\n collect: monitor => ({\n isOver: !!monitor.isOver(),\n }),\n drop: (item: { index: number; listId: string }) => {\n if (item.listId !== listId) return\n onDeactivate()\n onDrop(item.index)\n return { dropped: true }\n },\n canDrop: (item: { index: number; listId: string }) => {\n if (item.listId !== listId) return false\n return item.index !== position && item.index !== position - 1\n },\n }),\n [listId, onActivate, onDeactivate, onDrop, position],\n )\n\n // Connect the drop ref to the DOM element\n useEffect(() => {\n if (ref.current) {\n drop(ref.current)\n }\n }, [drop])\n\n // Handle deactivation when item is no longer being hovered\n useEffect(() => {\n if (!isOver && isActive) {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n\n debounceTimerRef.current = setTimeout(() => {\n isHoveringRef.current = false\n onDeactivate()\n debounceTimerRef.current = null\n }, 100)\n }\n\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current)\n }\n }\n }, [isOver, isActive, onDeactivate])\n\n const isHighlighted = isActive || isOver\n\n const dropZoneClass = classnames(\n styles.dropZone,\n isActive || isOver ? styles.activeDropZone : '',\n isHighlighted ? styles.isHighlighted : '',\n className,\n )\n\n return (\n <div className={styles.dropZoneContainer}>\n <div\n ref={ref}\n className={dropZoneClass}\n data-position={position}\n data-list-id={listId}\n aria-hidden=\"true\"\n aria-label={t('reorderableList.dropItemHere')}\n />\n </div>\n )\n})\n"],"names":["DropZone","memo","position","isActive","onActivate","onDeactivate","onDrop","listId","className","ref","useRef","t","useTranslation","debounceTimerRef","isHoveringRef","isOver","drop","useDrop","ITEM_TYPE","item","monitor","useEffect","isHighlighted","dropZoneClass","classnames","styles","jsx"],"mappings":";;;;;;;AAiBO,MAAMA,IAAWC,EAAK,SAAkB;AAAA,EAC7C,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC;AACF,GAAkB;AAChB,QAAMC,IAAMC,EAAuB,IAAI,GACjC,EAAE,GAAAC,EAAA,IAAMC,EAAA,GAGRC,IAAmBH,EAA6C,IAAI,GACpEI,IAAgBJ,EAAO,EAAK,GAE5B,CAAC,EAAE,QAAAK,KAAUC,CAAI,IAAIC;AAAA,IACzB,OAAO;AAAA,MACL,QAAQC;AAAA,MACR,OAAO,CAACC,GAAyCC,MAAY;AAI3D,QAHID,EAAK,WAAWZ,KAGhB,CADiBa,EAAQ,gBAAA,KACR,CAACX,EAAI,WAEtBK,EAAc,YAElBA,EAAc,UAAU,IAEpBD,EAAiB,WACnB,aAAaA,EAAiB,OAAO,GAGvCT,EAAA;AAAA,MACF;AAAA,MACA,SAAS,CAAAgB,OAAY;AAAA,QACnB,QAAQ,CAAC,CAACA,EAAQ,OAAA;AAAA,MAAO;AAAA,MAE3B,MAAM,CAACD,MAA4C;AACjD,YAAIA,EAAK,WAAWZ;AACpB,iBAAAF,EAAA,GACAC,EAAOa,EAAK,KAAK,GACV,EAAE,SAAS,GAAA;AAAA,MACpB;AAAA,MACA,SAAS,CAACA,MACJA,EAAK,WAAWZ,IAAe,KAC5BY,EAAK,UAAUjB,KAAYiB,EAAK,UAAUjB,IAAW;AAAA,IAC9D;AAAA,IAEF,CAACK,GAAQH,GAAYC,GAAcC,GAAQJ,CAAQ;AAAA,EAAA;AAIrD,EAAAmB,EAAU,MAAM;AACd,IAAIZ,EAAI,WACNO,EAAKP,EAAI,OAAO;AAAA,EAEpB,GAAG,CAACO,CAAI,CAAC,GAGTK,EAAU,OACJ,CAACN,KAAUZ,MACTU,EAAiB,WACnB,aAAaA,EAAiB,OAAO,GAGvCA,EAAiB,UAAU,WAAW,MAAM;AAC1C,IAAAC,EAAc,UAAU,IACxBT,EAAA,GACAQ,EAAiB,UAAU;AAAA,EAC7B,GAAG,GAAG,IAGD,MAAM;AACX,IAAIA,EAAiB,WACnB,aAAaA,EAAiB,OAAO;AAAA,EAEzC,IACC,CAACE,GAAQZ,GAAUE,CAAY,CAAC;AAEnC,QAAMiB,IAAgBnB,KAAYY,GAE5BQ,IAAgBC;AAAAA,IACpBC,EAAO;AAAA,IACPtB,KAAYY,IAASU,EAAO,iBAAiB;AAAA,IAC7CH,IAAgBG,EAAO,gBAAgB;AAAA,IACvCjB;AAAA,EAAA;AAGF,SACE,gBAAAkB,EAAC,OAAA,EAAI,WAAWD,EAAO,mBACrB,UAAA,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAAjB;AAAA,MACA,WAAWc;AAAA,MACX,iBAAerB;AAAA,MACf,gBAAcK;AAAA,MACd,eAAY;AAAA,MACZ,cAAYI,EAAE,8BAA8B;AAAA,IAAA;AAAA,EAAA,GAEhD;AAEJ,CAAC;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReorderableItem.js","sources":["../../../../src/components/Common/ReorderableList/ReorderableItem.tsx"],"sourcesContent":["import { useRef, useEffect, useCallback, memo } from 'react'\nimport classnames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { useDrag } from 'react-dnd'\nimport type { ReactElement } from 'react'\nimport { VisuallyHidden } from '../VisuallyHidden'\nimport type { ReorderableListItem } from './ReorderableListTypes'\nimport styles from './ReorderableList.module.scss'\nimport { ITEM_TYPE } from './constants'\nimport ListIcon from '@/assets/icons/list.svg?react'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface ReorderableItemProps {\n item: ReorderableListItem\n index: number\n moveItem: (fromIndex: number, toIndex: number, source?: 'keyboard' | 'dragdrop') => void\n itemCount: number\n itemIndex: number\n listId: string\n isDraggingAny: boolean\n setIsDragging: (isDragging: boolean) => void\n isReorderingActive: boolean\n setIsReorderingActive: (isReorderingActive: boolean) => void\n isCurrentlyReordering: boolean\n setReorderingItemIndex: (reorderingItemIndex: number | null) => void\n renderDragHandle?: (props: {\n id: string | number\n label: string\n isReordering: boolean\n isDragging: boolean\n }) => ReactElement\n className?: string\n}\n\n/**\n * Component for an individual reorderable item\n */\nexport const ReorderableItem = memo(function ReorderableItem({\n item,\n index,\n moveItem,\n itemCount,\n itemIndex,\n listId,\n isDraggingAny,\n setIsDragging,\n isReorderingActive,\n setIsReorderingActive,\n isCurrentlyReordering,\n setReorderingItemIndex,\n renderDragHandle,\n className,\n}: ReorderableItemProps) {\n const ref = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n\n // Format the accessible item name\n const accessibleItemName = item.label\n\n // Add a ref to track if this specific item is being dragged\n const isBeingDraggedRef = useRef(false)\n\n // When this item becomes the reordering item, focus on it\n useEffect(() => {\n if (isCurrentlyReordering && buttonRef.current) {\n buttonRef.current.focus()\n }\n }, [isCurrentlyReordering])\n\n // React DnD - Drag source\n const [{ isDragging }, drag, dragPreview] = useDrag(\n () => ({\n type: ITEM_TYPE,\n item: () => {\n isBeingDraggedRef.current = true\n setIsDragging(true)\n return { index, listId }\n },\n collect: monitor => ({\n isDragging: !!monitor.isDragging(),\n }),\n end: () => {\n isBeingDraggedRef.current = false\n\n setIsDragging(false)\n\n if (buttonRef.current) {\n buttonRef.current.blur()\n }\n },\n canDrag: () => !isDraggingAny || isBeingDraggedRef.current,\n }),\n [index, listId, setIsDragging, isDraggingAny],\n )\n\n /**\n * Handles keyboard interactions for reordering\n */\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n let newReorderingState: boolean\n\n switch (e.key) {\n case 'ArrowUp':\n if (isReorderingActive && index > 0) {\n e.preventDefault()\n setReorderingItemIndex(index)\n moveItem(index, index - 1, 'keyboard')\n }\n break\n case 'ArrowDown':\n if (isReorderingActive && index < itemCount - 1) {\n e.preventDefault()\n setReorderingItemIndex(index)\n moveItem(index, index + 1, 'keyboard')\n }\n break\n case 'Escape':\n if (isReorderingActive) {\n e.preventDefault()\n setIsReorderingActive(false)\n setReorderingItemIndex(null)\n }\n break\n case 'Tab':\n if (isReorderingActive) {\n setIsReorderingActive(false)\n setReorderingItemIndex(null)\n }\n break\n case ' ':\n case 'Enter':\n e.preventDefault()\n newReorderingState = !isReorderingActive\n setIsReorderingActive(newReorderingState)\n\n if (newReorderingState) {\n setReorderingItemIndex(index)\n } else {\n setReorderingItemIndex(null)\n }\n break\n default:\n break\n }\n },\n [isReorderingActive, index, itemCount, setReorderingItemIndex, moveItem, setIsReorderingActive],\n )\n\n // Set up drag preview and drag source\n useEffect(() => {\n if (ref.current) {\n dragPreview(ref.current)\n }\n }, [dragPreview])\n\n const itemClasses = classnames(\n styles.reorderableItem,\n isDragging ? styles.dragging : '',\n isReorderingActive ? styles.reordering : '',\n className,\n )\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n aria-posinset={index + 1}\n aria-setsize={itemCount}\n className={itemClasses}\n data-position={index}\n data-item-index={itemIndex}\n data-list-id={listId}\n data-testid={`reorderable-item-${index}`}\n data-dragging={isDragging ? 'true' : 'false'}\n data-reordering={isReorderingActive ? 'true' : 'false'}\n >\n <VisuallyHidden>\n {t('reorderableList.draggablePosition', {\n item: accessibleItemName,\n position: String(index + 1),\n total: String(itemCount),\n })}\n </VisuallyHidden>\n <span className={styles.dragHandle}>\n {renderDragHandle ? (\n renderDragHandle({\n id: item.id || index,\n label: accessibleItemName,\n isReordering: isReorderingActive,\n isDragging: isDragging,\n })\n ) : (\n <Components.ButtonIcon\n data-index={index}\n data-item-index={itemIndex}\n data-reordering={isReorderingActive ? 'true' : 'false'}\n data-focus-visible={true}\n data-testid=\"drag-handle-button\"\n tabIndex={0}\n onFocus={e => {\n e.currentTarget.setAttribute('data-focus-visible', 'true')\n }}\n onBlur={e => {\n e.currentTarget.removeAttribute('data-focus-visible')\n }}\n aria-label={\n isReorderingActive\n ? t('reorderableList.draggableLabelActive', {\n item: accessibleItemName,\n })\n : t('reorderableList.draggableLabel', {\n item: accessibleItemName,\n })\n }\n aria-roledescription={t('reorderableList.draggableItem')}\n aria-grabbed={isDragging}\n onKeyDown={handleKeyDown}\n buttonRef={node => {\n if (node) {\n buttonRef.current = node\n drag(node)\n }\n }}\n >\n <ListIcon />\n </Components.ButtonIcon>\n )}\n </span>\n <div className={styles.contentContainer}>{item.content}</div>\n </div>\n )\n})\n"],"names":["ReorderableItem","memo","item","index","moveItem","itemCount","itemIndex","listId","isDraggingAny","setIsDragging","isReorderingActive","setIsReorderingActive","isCurrentlyReordering","setReorderingItemIndex","renderDragHandle","className","ref","useRef","buttonRef","t","useTranslation","Components","useComponentContext","accessibleItemName","isBeingDraggedRef","useEffect","isDragging","drag","dragPreview","useDrag","ITEM_TYPE","monitor","handleKeyDown","useCallback","e","newReorderingState","itemClasses","classnames","styles","jsxs","jsx","VisuallyHidden","node","ListIcon"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReorderableItem.js","sources":["../../../../src/components/Common/ReorderableList/ReorderableItem.tsx"],"sourcesContent":["import { useRef, useEffect, useCallback, memo } from 'react'\nimport classnames from 'classnames'\nimport { useTranslation } from 'react-i18next'\nimport { useDrag } from 'react-dnd'\nimport type { ReactElement } from 'react'\nimport { VisuallyHidden } from '../VisuallyHidden'\nimport type { ReorderableListItem } from './ReorderableListTypes'\nimport styles from './ReorderableList.module.scss'\nimport { ITEM_TYPE } from './constants'\nimport ListIcon from '@/assets/icons/list.svg?react'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ninterface ReorderableItemProps {\n item: ReorderableListItem\n index: number\n moveItem: (fromIndex: number, toIndex: number, source?: 'keyboard' | 'dragdrop') => void\n itemCount: number\n itemIndex: number\n listId: string\n isDraggingAny: boolean\n setIsDragging: (isDragging: boolean) => void\n isReorderingActive: boolean\n setIsReorderingActive: (isReorderingActive: boolean) => void\n isCurrentlyReordering: boolean\n setReorderingItemIndex: (reorderingItemIndex: number | null) => void\n renderDragHandle?: (props: {\n id: string | number\n label: string\n isReordering: boolean\n isDragging: boolean\n }) => ReactElement\n className?: string\n}\n\n/**\n * Component for an individual reorderable item\n */\nexport const ReorderableItem = memo(function ReorderableItem({\n item,\n index,\n moveItem,\n itemCount,\n itemIndex,\n listId,\n isDraggingAny,\n setIsDragging,\n isReorderingActive,\n setIsReorderingActive,\n isCurrentlyReordering,\n setReorderingItemIndex,\n renderDragHandle,\n className,\n}: ReorderableItemProps) {\n const ref = useRef<HTMLDivElement>(null)\n const buttonRef = useRef<HTMLButtonElement>(null)\n const { t } = useTranslation('common')\n const Components = useComponentContext()\n\n // Format the accessible item name\n const accessibleItemName = item.label\n\n // Add a ref to track if this specific item is being dragged\n const isBeingDraggedRef = useRef(false)\n\n // When this item becomes the reordering item, focus on it\n useEffect(() => {\n if (isCurrentlyReordering && buttonRef.current) {\n buttonRef.current.focus()\n }\n }, [isCurrentlyReordering])\n\n // React DnD - Drag source\n const [{ isDragging }, drag, dragPreview] = useDrag(\n () => ({\n type: ITEM_TYPE,\n item: () => {\n isBeingDraggedRef.current = true\n setIsDragging(true)\n return { index, listId }\n },\n collect: monitor => ({\n isDragging: !!monitor.isDragging(),\n }),\n end: () => {\n isBeingDraggedRef.current = false\n\n setIsDragging(false)\n\n if (buttonRef.current) {\n buttonRef.current.blur()\n }\n },\n canDrag: () => !isDraggingAny || isBeingDraggedRef.current,\n }),\n [index, listId, setIsDragging, isDraggingAny],\n )\n\n /**\n * Handles keyboard interactions for reordering\n */\n const handleKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n let newReorderingState: boolean\n\n switch (e.key) {\n case 'ArrowUp':\n if (isReorderingActive && index > 0) {\n e.preventDefault()\n setReorderingItemIndex(index)\n moveItem(index, index - 1, 'keyboard')\n }\n break\n case 'ArrowDown':\n if (isReorderingActive && index < itemCount - 1) {\n e.preventDefault()\n setReorderingItemIndex(index)\n moveItem(index, index + 1, 'keyboard')\n }\n break\n case 'Escape':\n if (isReorderingActive) {\n e.preventDefault()\n setIsReorderingActive(false)\n setReorderingItemIndex(null)\n }\n break\n case 'Tab':\n if (isReorderingActive) {\n setIsReorderingActive(false)\n setReorderingItemIndex(null)\n }\n break\n case ' ':\n case 'Enter':\n e.preventDefault()\n newReorderingState = !isReorderingActive\n setIsReorderingActive(newReorderingState)\n\n if (newReorderingState) {\n setReorderingItemIndex(index)\n } else {\n setReorderingItemIndex(null)\n }\n break\n default:\n break\n }\n },\n [isReorderingActive, index, itemCount, setReorderingItemIndex, moveItem, setIsReorderingActive],\n )\n\n // Set up drag preview and drag source\n useEffect(() => {\n if (ref.current) {\n dragPreview(ref.current)\n }\n }, [dragPreview])\n\n const itemClasses = classnames(\n styles.reorderableItem,\n isDragging ? styles.dragging : '',\n isReorderingActive ? styles.reordering : '',\n className,\n )\n\n return (\n <div\n ref={ref}\n role=\"listitem\"\n aria-posinset={index + 1}\n aria-setsize={itemCount}\n className={itemClasses}\n data-position={index}\n data-item-index={itemIndex}\n data-list-id={listId}\n data-testid={`reorderable-item-${index}`}\n data-dragging={isDragging ? 'true' : 'false'}\n data-reordering={isReorderingActive ? 'true' : 'false'}\n >\n <VisuallyHidden>\n {t('reorderableList.draggablePosition', {\n item: accessibleItemName,\n position: String(index + 1),\n total: String(itemCount),\n })}\n </VisuallyHidden>\n <span className={styles.dragHandle}>\n {renderDragHandle ? (\n renderDragHandle({\n id: item.id || index,\n label: accessibleItemName,\n isReordering: isReorderingActive,\n isDragging: isDragging,\n })\n ) : (\n <Components.ButtonIcon\n data-index={index}\n data-item-index={itemIndex}\n data-reordering={isReorderingActive ? 'true' : 'false'}\n data-focus-visible={true}\n data-testid=\"drag-handle-button\"\n tabIndex={0}\n onFocus={e => {\n e.currentTarget.setAttribute('data-focus-visible', 'true')\n }}\n onBlur={e => {\n e.currentTarget.removeAttribute('data-focus-visible')\n }}\n aria-label={\n isReorderingActive\n ? t('reorderableList.draggableLabelActive', {\n item: accessibleItemName,\n })\n : t('reorderableList.draggableLabel', {\n item: accessibleItemName,\n })\n }\n aria-roledescription={t('reorderableList.draggableItem')}\n aria-grabbed={isDragging}\n onKeyDown={handleKeyDown}\n buttonRef={node => {\n if (node) {\n buttonRef.current = node\n drag(node)\n }\n }}\n >\n <ListIcon />\n </Components.ButtonIcon>\n )}\n </span>\n <div className={styles.contentContainer}>{item.content}</div>\n </div>\n )\n})\n"],"names":["ReorderableItem","memo","item","index","moveItem","itemCount","itemIndex","listId","isDraggingAny","setIsDragging","isReorderingActive","setIsReorderingActive","isCurrentlyReordering","setReorderingItemIndex","renderDragHandle","className","ref","useRef","buttonRef","t","useTranslation","Components","useComponentContext","accessibleItemName","isBeingDraggedRef","useEffect","isDragging","drag","dragPreview","useDrag","ITEM_TYPE","monitor","handleKeyDown","useCallback","e","newReorderingState","itemClasses","classnames","styles","jsxs","jsx","VisuallyHidden","node","ListIcon"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReorderableList.js","sources":["../../../../src/components/Common/ReorderableList/ReorderableList.tsx"],"sourcesContent":["import { useRef, useState, useEffect, useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { DndProvider } from 'react-dnd'\nimport { HTML5Backend } from 'react-dnd-html5-backend'\nimport type { ReactElement } from 'react'\nimport type { ReorderableListItem } from './ReorderableListTypes'\nimport styles from './ReorderableList.module.scss'\nimport { ReorderableItem } from './ReorderableItem'\nimport { DropZone } from './DropZone'\n\n// Helper functions\nfunction generateUniqueListId(prefix = 'reorderable-list'): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 9)}`\n}\n\nfunction reorderArray<T>(array: T[], from: number, to: number): T[] {\n if (from === to || from < 0 || from >= array.length || to < 0 || to > array.length) {\n return [...array]\n }\n\n const newArray = [...array]\n const [removed] = newArray.splice(from, 1)\n\n if (removed === undefined) {\n return [...array]\n }\n\n newArray.splice(to, 0, removed)\n return newArray\n}\n\nfunction calculateNewOrder(\n currentOrder: number[],\n fromPosition: number,\n toPosition: number,\n): number[] {\n if (\n fromPosition === toPosition ||\n fromPosition < 0 ||\n fromPosition >= currentOrder.length ||\n toPosition < 0 ||\n toPosition > currentOrder.length\n ) {\n return [...currentOrder]\n }\n\n return reorderArray(currentOrder, fromPosition, toPosition)\n}\n\nfunction adjustTargetPosition(\n fromPosition: number,\n toPosition: number,\n source: 'keyboard' | 'dragdrop' = 'dragdrop',\n): number {\n // When dragging, adjust the target position if moving an element forward\n if (source === 'dragdrop' && fromPosition < toPosition) {\n return toPosition - 1\n }\n return toPosition\n}\n\ninterface ReorderableListAnimationConfig {\n duration?: number\n easing?: string\n disabled?: boolean\n}\n\ninterface ReorderableListProps {\n items: ReorderableListItem[]\n label: string\n onReorder?: (itemOrder: number[]) => void\n className?: string\n animationConfig?: ReorderableListAnimationConfig\n disabled?: boolean\n renderDragHandle?: (props: {\n id: string | number\n label: string\n isReordering: boolean\n isDragging: boolean\n }) => ReactElement\n dropZoneClassName?: string\n itemClassName?: string\n}\n\n// Default animation config\nconst DEFAULT_ANIMATION_CONFIG: ReorderableListAnimationConfig = {\n duration: 200,\n easing: 'ease-in-out',\n disabled: false,\n}\n\nexport function ReorderableList({\n items,\n label,\n onReorder,\n className,\n animationConfig = DEFAULT_ANIMATION_CONFIG,\n disabled = false,\n renderDragHandle,\n dropZoneClassName,\n itemClassName,\n}: ReorderableListProps) {\n const listId = useRef(generateUniqueListId()).current\n\n const [itemOrder, setItemOrder] = useState<number[]>(() =>\n Array.from({ length: items.length }, (_, i) => i),\n )\n const [activeDropZone, setActiveDropZone] = useState<number | null>(null)\n const [isDragging, setIsDragging] = useState(false)\n const [isReorderingActive, setIsReorderingActive] = useState(false)\n const [reorderingItemIndex, setReorderingItemIndex] = useState<number | null>(null)\n const pendingReorderRef = useRef<boolean>(false)\n const activeDropZonesRef = useRef<Record<number, boolean>>({})\n\n const mergedAnimationConfig = useMemo(\n () => ({\n ...DEFAULT_ANIMATION_CONFIG,\n ...animationConfig,\n }),\n [animationConfig],\n )\n\n useEffect(() => {\n if (items.length !== itemOrder.length) {\n setItemOrder(Array.from({ length: items.length }, (_, i) => i))\n }\n }, [items.length, itemOrder.length])\n\n // Debounced state setter for drop zones to prevent flickering\n const activateDropZone = useCallback((position: number) => {\n activeDropZonesRef.current = {}\n activeDropZonesRef.current[position] = true\n setActiveDropZone(position)\n }, [])\n\n const deactivateDropZone = useCallback((position: number) => {\n if (position in activeDropZonesRef.current) {\n activeDropZonesRef.current[position] = false\n }\n\n const activeDropZones = Object.entries(activeDropZonesRef.current)\n .filter(([_, isActive]) => isActive)\n .map(([pos]) => Number(pos))\n\n if (activeDropZones.length === 0) {\n setActiveDropZone(null)\n } else if (activeDropZones.length === 1) {\n setActiveDropZone(Number(activeDropZones[0]))\n }\n }, [])\n\n const moveItem = useCallback(\n (fromPosition: number, toPosition: number, source: 'keyboard' | 'dragdrop' = 'dragdrop') => {\n if (\n disabled ||\n fromPosition === toPosition ||\n fromPosition < 0 ||\n fromPosition >= itemOrder.length ||\n toPosition < 0 ||\n toPosition > itemOrder.length\n ) {\n return\n }\n\n pendingReorderRef.current = true\n const movedItemIndex = itemOrder[fromPosition]\n\n // Use utility function to calculate new order\n const newOrder = calculateNewOrder(\n itemOrder,\n fromPosition,\n adjustTargetPosition(fromPosition, toPosition, source),\n )\n\n setItemOrder(newOrder)\n\n // Use the configured animation duration\n const animationDuration = mergedAnimationConfig.disabled ? 0 : mergedAnimationConfig.duration\n\n setTimeout(() => {\n setIsDragging(false)\n pendingReorderRef.current = false\n activeDropZonesRef.current = {}\n setActiveDropZone(null)\n\n if (source === 'keyboard') {\n const newPosition = newOrder.findIndex(idx => idx === movedItemIndex)\n\n if (newPosition >= 0) {\n setReorderingItemIndex(newPosition)\n const dragButtons = document.querySelectorAll(\n `[data-list-id=\"${listId}\"] .${styles.dragHandle} button`,\n )\n\n if (newPosition < dragButtons.length) {\n // Use requestAnimationFrame for smoother focus handling\n requestAnimationFrame(() => {\n if (dragButtons[newPosition]) {\n const buttonToFocus = dragButtons[newPosition] as HTMLElement\n buttonToFocus.focus()\n }\n })\n }\n }\n }\n\n if (onReorder) {\n onReorder(newOrder)\n }\n }, animationDuration)\n },\n [itemOrder, listId, onReorder, disabled, mergedAnimationConfig],\n )\n\n // If the list is disabled, don't render the DnD functionality\n if (disabled) {\n return (\n <div\n role=\"list\"\n aria-label={label}\n className={classnames(styles.reorderableList, className, styles.disabled)}\n data-list-id={listId}\n data-testid=\"reorderable-list\"\n >\n {itemOrder.map(itemIndex => {\n const item = items[itemIndex]\n if (!item) return null\n\n return (\n <div\n key={`item-static-${item.id || itemIndex}`}\n role=\"listitem\"\n className={classnames(styles.reorderableItem, itemClassName)}\n >\n <div className={styles.contentContainer}>{item.content}</div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div\n role=\"list\"\n aria-label={label}\n className={classnames(styles.reorderableList, className)}\n data-list-id={listId}\n data-testid=\"reorderable-list\"\n style={{\n ...(!mergedAnimationConfig.disabled &&\n ({\n '--animation-duration': `${mergedAnimationConfig.duration}ms`,\n '--animation-easing': mergedAnimationConfig.easing,\n } as React.CSSProperties)),\n }}\n >\n <DropZone\n position={0}\n listId={listId}\n isActive={activeDropZone === 0}\n onActivate={() => {\n activateDropZone(0)\n }}\n onDeactivate={() => {\n deactivateDropZone(0)\n }}\n onDrop={(fromPosition: number) => {\n if (!pendingReorderRef.current) {\n moveItem(fromPosition, 0, 'dragdrop')\n }\n }}\n className={dropZoneClassName}\n />\n\n {itemOrder.map((itemIndex, position) => {\n const item = items[itemIndex]\n if (!item) return null\n\n return (\n <div key={`item-container-${item.id || itemIndex}-${position}`}>\n <ReorderableItem\n key={`item-${item.id || itemIndex}`}\n item={item}\n index={position}\n moveItem={moveItem}\n itemCount={items.length}\n itemIndex={itemIndex}\n listId={listId}\n isDraggingAny={isDragging}\n setIsDragging={setIsDragging}\n isReorderingActive={isReorderingActive}\n setIsReorderingActive={setIsReorderingActive}\n isCurrentlyReordering={isReorderingActive && reorderingItemIndex === position}\n setReorderingItemIndex={setReorderingItemIndex}\n renderDragHandle={renderDragHandle}\n className={itemClassName}\n />\n\n <DropZone\n position={position + 1}\n listId={listId}\n isActive={activeDropZone === position + 1}\n onActivate={() => {\n activateDropZone(position + 1)\n }}\n onDeactivate={() => {\n deactivateDropZone(position + 1)\n }}\n onDrop={(fromPosition: number) => {\n if (!pendingReorderRef.current) {\n moveItem(fromPosition, position + 1, 'dragdrop')\n }\n }}\n className={dropZoneClassName}\n />\n </div>\n )\n })}\n </div>\n </DndProvider>\n )\n}\n"],"names":["generateUniqueListId","prefix","reorderArray","array","from","to","newArray","removed","calculateNewOrder","currentOrder","fromPosition","toPosition","adjustTargetPosition","source","DEFAULT_ANIMATION_CONFIG","ReorderableList","items","label","onReorder","className","animationConfig","disabled","renderDragHandle","dropZoneClassName","itemClassName","listId","useRef","itemOrder","setItemOrder","useState","_","i","activeDropZone","setActiveDropZone","isDragging","setIsDragging","isReorderingActive","setIsReorderingActive","reorderingItemIndex","setReorderingItemIndex","pendingReorderRef","activeDropZonesRef","mergedAnimationConfig","useMemo","useEffect","activateDropZone","useCallback","position","deactivateDropZone","activeDropZones","isActive","pos","moveItem","movedItemIndex","newOrder","animationDuration","newPosition","idx","dragButtons","styles","jsx","classnames","itemIndex","item","DndProvider","HTML5Backend","jsxs","DropZone","ReorderableItem"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReorderableList.js","sources":["../../../../src/components/Common/ReorderableList/ReorderableList.tsx"],"sourcesContent":["import { useRef, useState, useEffect, useCallback, useMemo } from 'react'\nimport classnames from 'classnames'\nimport { DndProvider } from 'react-dnd'\nimport { HTML5Backend } from 'react-dnd-html5-backend'\nimport type { ReactElement } from 'react'\nimport type { ReorderableListItem } from './ReorderableListTypes'\nimport styles from './ReorderableList.module.scss'\nimport { ReorderableItem } from './ReorderableItem'\nimport { DropZone } from './DropZone'\n\n// Helper functions\nfunction generateUniqueListId(prefix = 'reorderable-list'): string {\n return `${prefix}-${Math.random().toString(36).slice(2, 9)}`\n}\n\nfunction reorderArray<T>(array: T[], from: number, to: number): T[] {\n if (from === to || from < 0 || from >= array.length || to < 0 || to > array.length) {\n return [...array]\n }\n\n const newArray = [...array]\n const [removed] = newArray.splice(from, 1)\n\n if (removed === undefined) {\n return [...array]\n }\n\n newArray.splice(to, 0, removed)\n return newArray\n}\n\nfunction calculateNewOrder(\n currentOrder: number[],\n fromPosition: number,\n toPosition: number,\n): number[] {\n if (\n fromPosition === toPosition ||\n fromPosition < 0 ||\n fromPosition >= currentOrder.length ||\n toPosition < 0 ||\n toPosition > currentOrder.length\n ) {\n return [...currentOrder]\n }\n\n return reorderArray(currentOrder, fromPosition, toPosition)\n}\n\nfunction adjustTargetPosition(\n fromPosition: number,\n toPosition: number,\n source: 'keyboard' | 'dragdrop' = 'dragdrop',\n): number {\n // When dragging, adjust the target position if moving an element forward\n if (source === 'dragdrop' && fromPosition < toPosition) {\n return toPosition - 1\n }\n return toPosition\n}\n\ninterface ReorderableListAnimationConfig {\n duration?: number\n easing?: string\n disabled?: boolean\n}\n\ninterface ReorderableListProps {\n items: ReorderableListItem[]\n label: string\n onReorder?: (itemOrder: number[]) => void\n className?: string\n animationConfig?: ReorderableListAnimationConfig\n disabled?: boolean\n renderDragHandle?: (props: {\n id: string | number\n label: string\n isReordering: boolean\n isDragging: boolean\n }) => ReactElement\n dropZoneClassName?: string\n itemClassName?: string\n}\n\n// Default animation config\nconst DEFAULT_ANIMATION_CONFIG: ReorderableListAnimationConfig = {\n duration: 200,\n easing: 'ease-in-out',\n disabled: false,\n}\n\nexport function ReorderableList({\n items,\n label,\n onReorder,\n className,\n animationConfig = DEFAULT_ANIMATION_CONFIG,\n disabled = false,\n renderDragHandle,\n dropZoneClassName,\n itemClassName,\n}: ReorderableListProps) {\n const listId = useRef(generateUniqueListId()).current\n\n const [itemOrder, setItemOrder] = useState<number[]>(() =>\n Array.from({ length: items.length }, (_, i) => i),\n )\n const [activeDropZone, setActiveDropZone] = useState<number | null>(null)\n const [isDragging, setIsDragging] = useState(false)\n const [isReorderingActive, setIsReorderingActive] = useState(false)\n const [reorderingItemIndex, setReorderingItemIndex] = useState<number | null>(null)\n const pendingReorderRef = useRef<boolean>(false)\n const activeDropZonesRef = useRef<Record<number, boolean>>({})\n\n const mergedAnimationConfig = useMemo(\n () => ({\n ...DEFAULT_ANIMATION_CONFIG,\n ...animationConfig,\n }),\n [animationConfig],\n )\n\n useEffect(() => {\n if (items.length !== itemOrder.length) {\n setItemOrder(Array.from({ length: items.length }, (_, i) => i))\n }\n }, [items.length, itemOrder.length])\n\n // Debounced state setter for drop zones to prevent flickering\n const activateDropZone = useCallback((position: number) => {\n activeDropZonesRef.current = {}\n activeDropZonesRef.current[position] = true\n setActiveDropZone(position)\n }, [])\n\n const deactivateDropZone = useCallback((position: number) => {\n if (position in activeDropZonesRef.current) {\n activeDropZonesRef.current[position] = false\n }\n\n const activeDropZones = Object.entries(activeDropZonesRef.current)\n .filter(([_, isActive]) => isActive)\n .map(([pos]) => Number(pos))\n\n if (activeDropZones.length === 0) {\n setActiveDropZone(null)\n } else if (activeDropZones.length === 1) {\n setActiveDropZone(Number(activeDropZones[0]))\n }\n }, [])\n\n const moveItem = useCallback(\n (fromPosition: number, toPosition: number, source: 'keyboard' | 'dragdrop' = 'dragdrop') => {\n if (\n disabled ||\n fromPosition === toPosition ||\n fromPosition < 0 ||\n fromPosition >= itemOrder.length ||\n toPosition < 0 ||\n toPosition > itemOrder.length\n ) {\n return\n }\n\n pendingReorderRef.current = true\n const movedItemIndex = itemOrder[fromPosition]\n\n // Use utility function to calculate new order\n const newOrder = calculateNewOrder(\n itemOrder,\n fromPosition,\n adjustTargetPosition(fromPosition, toPosition, source),\n )\n\n setItemOrder(newOrder)\n\n // Use the configured animation duration\n const animationDuration = mergedAnimationConfig.disabled ? 0 : mergedAnimationConfig.duration\n\n setTimeout(() => {\n setIsDragging(false)\n pendingReorderRef.current = false\n activeDropZonesRef.current = {}\n setActiveDropZone(null)\n\n if (source === 'keyboard') {\n const newPosition = newOrder.findIndex(idx => idx === movedItemIndex)\n\n if (newPosition >= 0) {\n setReorderingItemIndex(newPosition)\n const dragButtons = document.querySelectorAll(\n `[data-list-id=\"${listId}\"] .${styles.dragHandle} button`,\n )\n\n if (newPosition < dragButtons.length) {\n // Use requestAnimationFrame for smoother focus handling\n requestAnimationFrame(() => {\n if (dragButtons[newPosition]) {\n const buttonToFocus = dragButtons[newPosition] as HTMLElement\n buttonToFocus.focus()\n }\n })\n }\n }\n }\n\n if (onReorder) {\n onReorder(newOrder)\n }\n }, animationDuration)\n },\n [itemOrder, listId, onReorder, disabled, mergedAnimationConfig],\n )\n\n // If the list is disabled, don't render the DnD functionality\n if (disabled) {\n return (\n <div\n role=\"list\"\n aria-label={label}\n className={classnames(styles.reorderableList, className, styles.disabled)}\n data-list-id={listId}\n data-testid=\"reorderable-list\"\n >\n {itemOrder.map(itemIndex => {\n const item = items[itemIndex]\n if (!item) return null\n\n return (\n <div\n key={`item-static-${item.id || itemIndex}`}\n role=\"listitem\"\n className={classnames(styles.reorderableItem, itemClassName)}\n >\n <div className={styles.contentContainer}>{item.content}</div>\n </div>\n )\n })}\n </div>\n )\n }\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div\n role=\"list\"\n aria-label={label}\n className={classnames(styles.reorderableList, className)}\n data-list-id={listId}\n data-testid=\"reorderable-list\"\n style={{\n ...(!mergedAnimationConfig.disabled &&\n ({\n '--animation-duration': `${mergedAnimationConfig.duration}ms`,\n '--animation-easing': mergedAnimationConfig.easing,\n } as React.CSSProperties)),\n }}\n >\n <DropZone\n position={0}\n listId={listId}\n isActive={activeDropZone === 0}\n onActivate={() => {\n activateDropZone(0)\n }}\n onDeactivate={() => {\n deactivateDropZone(0)\n }}\n onDrop={(fromPosition: number) => {\n if (!pendingReorderRef.current) {\n moveItem(fromPosition, 0, 'dragdrop')\n }\n }}\n className={dropZoneClassName}\n />\n\n {itemOrder.map((itemIndex, position) => {\n const item = items[itemIndex]\n if (!item) return null\n\n return (\n <div key={`item-container-${item.id || itemIndex}-${position}`}>\n <ReorderableItem\n key={`item-${item.id || itemIndex}`}\n item={item}\n index={position}\n moveItem={moveItem}\n itemCount={items.length}\n itemIndex={itemIndex}\n listId={listId}\n isDraggingAny={isDragging}\n setIsDragging={setIsDragging}\n isReorderingActive={isReorderingActive}\n setIsReorderingActive={setIsReorderingActive}\n isCurrentlyReordering={isReorderingActive && reorderingItemIndex === position}\n setReorderingItemIndex={setReorderingItemIndex}\n renderDragHandle={renderDragHandle}\n className={itemClassName}\n />\n\n <DropZone\n position={position + 1}\n listId={listId}\n isActive={activeDropZone === position + 1}\n onActivate={() => {\n activateDropZone(position + 1)\n }}\n onDeactivate={() => {\n deactivateDropZone(position + 1)\n }}\n onDrop={(fromPosition: number) => {\n if (!pendingReorderRef.current) {\n moveItem(fromPosition, position + 1, 'dragdrop')\n }\n }}\n className={dropZoneClassName}\n />\n </div>\n )\n })}\n </div>\n </DndProvider>\n )\n}\n"],"names":["generateUniqueListId","prefix","reorderArray","array","from","to","newArray","removed","calculateNewOrder","currentOrder","fromPosition","toPosition","adjustTargetPosition","source","DEFAULT_ANIMATION_CONFIG","ReorderableList","items","label","onReorder","className","animationConfig","disabled","renderDragHandle","dropZoneClassName","itemClassName","listId","useRef","itemOrder","setItemOrder","useState","_","i","activeDropZone","setActiveDropZone","isDragging","setIsDragging","isReorderingActive","setIsReorderingActive","reorderingItemIndex","setReorderingItemIndex","pendingReorderRef","activeDropZonesRef","mergedAnimationConfig","useMemo","useEffect","activateDropZone","useCallback","position","deactivateDropZone","activeDropZones","isActive","pos","moveItem","movedItemIndex","newOrder","animationDuration","newPosition","idx","dragButtons","styles","jsx","classnames","itemIndex","item","DndProvider","HTML5Backend","jsxs","DropZone","ReorderableItem"],"mappings":"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"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
const e = "
|
|
1
|
+
const e = "_reorderableList_q2syr_1", r = "_disabled_q2syr_10", o = "_reorderableItem_q2syr_10", n = "_contentContainer_q2syr_16", t = "_dragging_q2syr_37", s = "_reordering_q2syr_40", d = "_dragHandle_q2syr_45", _ = "_dropZoneContainer_q2syr_71", i = "_dropZone_q2syr_71", a = "_isHighlighted_q2syr_89", g = "_activeDropZone_q2syr_89", c = {
|
|
2
2
|
reorderableList: e,
|
|
3
|
-
disabled:
|
|
4
|
-
reorderableItem:
|
|
3
|
+
disabled: r,
|
|
4
|
+
reorderableItem: o,
|
|
5
5
|
contentContainer: n,
|
|
6
6
|
dragging: t,
|
|
7
|
-
reordering:
|
|
8
|
-
dragHandle:
|
|
9
|
-
dropZoneContainer:
|
|
10
|
-
dropZone:
|
|
11
|
-
isHighlighted:
|
|
7
|
+
reordering: s,
|
|
8
|
+
dragHandle: d,
|
|
9
|
+
dropZoneContainer: _,
|
|
10
|
+
dropZone: i,
|
|
11
|
+
isHighlighted: a,
|
|
12
12
|
activeDropZone: g
|
|
13
13
|
};
|
|
14
14
|
export {
|
|
15
15
|
g as activeDropZone,
|
|
16
16
|
n as contentContainer,
|
|
17
17
|
c as default,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
r as disabled,
|
|
19
|
+
d as dragHandle,
|
|
20
20
|
t as dragging,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
i as dropZone,
|
|
22
|
+
_ as dropZoneContainer,
|
|
23
|
+
a as isHighlighted,
|
|
24
|
+
o as reorderableItem,
|
|
25
25
|
e as reorderableList,
|
|
26
|
-
|
|
26
|
+
s as reordering
|
|
27
27
|
};
|
|
28
28
|
//# sourceMappingURL=ReorderableList.module.scss.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequirementsList.js","sources":["../../../../src/components/Common/RequirementsList/RequirementsList.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useId } from 'react'\nimport { Flex } from '../Flex/Flex'\nimport styles from './RequirementsList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport SuccessCheck from '@/assets/icons/checkbox.svg?react'\n\ninterface RequirementsListProps {\n requirements: {\n title: string\n description: string\n completed: boolean\n }[]\n}\nexport const RequirementsList = ({ requirements }: RequirementsListProps) => {\n const Components = useComponentContext()\n const id = useId()\n\n return (\n <Flex flexDirection=\"column\" alignItems=\"flex-start\" gap={8}>\n <ul className={styles.list}>\n {requirements\n .sort((a, b) => (a.completed ? -1 : 1))\n .map((step, i) => {\n return (\n <li key={`${id}-${i}-${step.description}`} className={styles.listItem}>\n {step.completed ? (\n <div className={classNames(styles.listItemIcon, styles.success)}>\n <SuccessCheck width={16} height={16} />\n </div>\n ) : (\n <div className={styles.listItemIcon}>{i + 1}</div>\n )}\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Heading as=\"h4\">{step.title}</Components.Heading>\n <Components.Text variant=\"supporting\">{step.description}</Components.Text>\n </Flex>\n </li>\n )\n })}\n </ul>\n </Flex>\n )\n}\n"],"names":["RequirementsList","requirements","Components","useComponentContext","id","useId","jsx","Flex","styles","a","b","step","i","jsxs","classNames","SuccessCheck"],"mappings":";;;;;;;AAcO,MAAMA,IAAmB,CAAC,EAAE,cAAAC,QAA0C;AAC3E,QAAMC,IAAaC,
|
|
1
|
+
{"version":3,"file":"RequirementsList.js","sources":["../../../../src/components/Common/RequirementsList/RequirementsList.tsx"],"sourcesContent":["import classNames from 'classnames'\nimport { useId } from 'react'\nimport { Flex } from '../Flex/Flex'\nimport styles from './RequirementsList.module.scss'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport SuccessCheck from '@/assets/icons/checkbox.svg?react'\n\ninterface RequirementsListProps {\n requirements: {\n title: string\n description: string\n completed: boolean\n }[]\n}\nexport const RequirementsList = ({ requirements }: RequirementsListProps) => {\n const Components = useComponentContext()\n const id = useId()\n\n return (\n <Flex flexDirection=\"column\" alignItems=\"flex-start\" gap={8}>\n <ul className={styles.list}>\n {requirements\n .sort((a, b) => (a.completed ? -1 : 1))\n .map((step, i) => {\n return (\n <li key={`${id}-${i}-${step.description}`} className={styles.listItem}>\n {step.completed ? (\n <div className={classNames(styles.listItemIcon, styles.success)}>\n <SuccessCheck width={16} height={16} />\n </div>\n ) : (\n <div className={styles.listItemIcon}>{i + 1}</div>\n )}\n <Flex flexDirection=\"column\" gap={0}>\n <Components.Heading as=\"h4\">{step.title}</Components.Heading>\n <Components.Text variant=\"supporting\">{step.description}</Components.Text>\n </Flex>\n </li>\n )\n })}\n </ul>\n </Flex>\n )\n}\n"],"names":["RequirementsList","requirements","Components","useComponentContext","id","useId","jsx","Flex","styles","a","b","step","i","jsxs","classNames","SuccessCheck"],"mappings":";;;;;;;AAcO,MAAMA,IAAmB,CAAC,EAAE,cAAAC,QAA0C;AAC3E,QAAMC,IAAaC,EAAA,GACbC,IAAKC,EAAA;AAEX,SACE,gBAAAC,EAACC,GAAA,EAAK,eAAc,UAAS,YAAW,cAAa,KAAK,GACxD,UAAA,gBAAAD,EAAC,MAAA,EAAG,WAAWE,EAAO,MACnB,YACE,KAAK,CAACC,GAAGC,MAAOD,EAAE,YAAY,KAAK,CAAE,EACrC,IAAI,CAACE,GAAMC,MAER,gBAAAC,EAAC,MAAA,EAA0C,WAAWL,EAAO,UAC1D,UAAA;AAAA,IAAAG,EAAK,YACJ,gBAAAL,EAAC,OAAA,EAAI,WAAWQ,EAAWN,EAAO,cAAcA,EAAO,OAAO,GAC5D,UAAA,gBAAAF,EAACS,GAAA,EAAa,OAAO,IAAI,QAAQ,GAAA,CAAI,EAAA,CACvC,IAEA,gBAAAT,EAAC,SAAI,WAAWE,EAAO,cAAe,UAAAI,IAAI,EAAA,CAAE;AAAA,IAE9C,gBAAAC,EAACN,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAD,EAACJ,EAAW,SAAX,EAAmB,IAAG,MAAM,YAAK,OAAM;AAAA,wBACvCA,EAAW,MAAX,EAAgB,SAAQ,cAAc,YAAK,YAAA,CAAY;AAAA,IAAA,EAAA,CAC1D;AAAA,EAAA,KAXO,GAAGE,CAAE,IAAIQ,CAAC,IAAID,EAAK,WAAW,EAYvC,CAEH,GACL,GACF;AAEJ;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const s = "
|
|
1
|
+
const s = "_list_1m8z2_1", t = "_listItem_1m8z2_5", c = "_listItemIcon_1m8z2_22", e = "_success_1m8z2_35", _ = {
|
|
2
2
|
list: s,
|
|
3
3
|
listItem: t,
|
|
4
4
|
listItemIcon: c,
|
|
@@ -5,22 +5,24 @@ import { zodResolver as l } from "@hookform/resolvers/zod";
|
|
|
5
5
|
import t from "./SignatureForm.module.scss.js";
|
|
6
6
|
import { Form as u } from "../Form/Form.js";
|
|
7
7
|
import { Flex as c } from "../Flex/Flex.js";
|
|
8
|
+
import "classnames";
|
|
9
|
+
import "../../../shared/constants.js";
|
|
8
10
|
const f = o.object({
|
|
9
11
|
signature: o.string().min(1),
|
|
10
12
|
confirmSignature: o.literal(!0)
|
|
11
|
-
}),
|
|
13
|
+
}), p = {
|
|
12
14
|
signature: ""
|
|
13
15
|
};
|
|
14
|
-
function
|
|
16
|
+
function z({ onSubmit: m, children: i, formProps: n }) {
|
|
15
17
|
const e = s({
|
|
16
18
|
resolver: l(f),
|
|
17
|
-
defaultValues:
|
|
19
|
+
defaultValues: p,
|
|
18
20
|
...n
|
|
19
21
|
});
|
|
20
22
|
return /* @__PURE__ */ r(a, { ...e, children: /* @__PURE__ */ r(u, { onSubmit: e.handleSubmit(m), className: t.container, children: /* @__PURE__ */ r("div", { className: t.formFields, children: /* @__PURE__ */ r(c, { flexDirection: "column", gap: 20, children: i }) }) }) });
|
|
21
23
|
}
|
|
22
24
|
export {
|
|
23
|
-
|
|
25
|
+
z as SignatureForm,
|
|
24
26
|
f as SignatureFormSchema
|
|
25
27
|
};
|
|
26
28
|
//# sourceMappingURL=SignatureForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignatureForm.js","sources":["../../../../src/components/Common/SignatureForm/SignatureForm.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { FormProvider, useForm, type UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport styles from './SignatureForm.module.scss'\nimport { Form } from '@/components/Common/Form'\nimport { Flex } from '@/components/Common'\n\nexport const SignatureFormSchema = z.object({\n signature: z.string().min(1),\n confirmSignature: z.literal(true),\n})\n\nconst signatureFormDefaultValues = {\n signature: '',\n}\n\nexport type SignatureFormInputs = z.infer<typeof SignatureFormSchema>\n\ninterface SignatureFormProps {\n onSubmit: (data: SignatureFormInputs) => void | Promise<void>\n children?: React.ReactNode\n formProps?: Partial<UseFormProps<SignatureFormInputs>>\n}\n\nexport function SignatureForm({ onSubmit, children, formProps }: SignatureFormProps) {\n const methods = useForm<SignatureFormInputs>({\n resolver: zodResolver(SignatureFormSchema),\n defaultValues: signatureFormDefaultValues,\n ...formProps,\n })\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)} className={styles.container}>\n <div className={styles.formFields}>\n <Flex flexDirection=\"column\" gap={20}>\n {children}\n </Flex>\n </div>\n </Form>\n </FormProvider>\n )\n}\n"],"names":["SignatureFormSchema","z","signatureFormDefaultValues","SignatureForm","onSubmit","children","formProps","methods","useForm","zodResolver","jsx","FormProvider","Form","styles","Flex"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SignatureForm.js","sources":["../../../../src/components/Common/SignatureForm/SignatureForm.tsx"],"sourcesContent":["import { z } from 'zod'\nimport { FormProvider, useForm, type UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport styles from './SignatureForm.module.scss'\nimport { Form } from '@/components/Common/Form'\nimport { Flex } from '@/components/Common'\n\nexport const SignatureFormSchema = z.object({\n signature: z.string().min(1),\n confirmSignature: z.literal(true),\n})\n\nconst signatureFormDefaultValues = {\n signature: '',\n}\n\nexport type SignatureFormInputs = z.infer<typeof SignatureFormSchema>\n\ninterface SignatureFormProps {\n onSubmit: (data: SignatureFormInputs) => void | Promise<void>\n children?: React.ReactNode\n formProps?: Partial<UseFormProps<SignatureFormInputs>>\n}\n\nexport function SignatureForm({ onSubmit, children, formProps }: SignatureFormProps) {\n const methods = useForm<SignatureFormInputs>({\n resolver: zodResolver(SignatureFormSchema),\n defaultValues: signatureFormDefaultValues,\n ...formProps,\n })\n\n return (\n <FormProvider {...methods}>\n <Form onSubmit={methods.handleSubmit(onSubmit)} className={styles.container}>\n <div className={styles.formFields}>\n <Flex flexDirection=\"column\" gap={20}>\n {children}\n </Flex>\n </div>\n </Form>\n </FormProvider>\n )\n}\n"],"names":["SignatureFormSchema","z","signatureFormDefaultValues","SignatureForm","onSubmit","children","formProps","methods","useForm","zodResolver","jsx","FormProvider","Form","styles","Flex"],"mappings":";;;;;;;;;AAOO,MAAMA,IAAsBC,EAAE,OAAO;AAAA,EAC1C,WAAWA,EAAE,SAAS,IAAI,CAAC;AAAA,EAC3B,kBAAkBA,EAAE,QAAQ,EAAI;AAClC,CAAC,GAEKC,IAA6B;AAAA,EACjC,WAAW;AACb;AAUO,SAASC,EAAc,EAAE,UAAAC,GAAU,UAAAC,GAAU,WAAAC,KAAiC;AACnF,QAAMC,IAAUC,EAA6B;AAAA,IAC3C,UAAUC,EAAYT,CAAmB;AAAA,IACzC,eAAeE;AAAA,IACf,GAAGI;AAAA,EAAA,CACJ;AAED,SACE,gBAAAI,EAACC,GAAA,EAAc,GAAGJ,GAChB,UAAA,gBAAAG,EAACE,GAAA,EAAK,UAAUL,EAAQ,aAAaH,CAAQ,GAAG,WAAWS,EAAO,WAChE,UAAA,gBAAAH,EAAC,OAAA,EAAI,WAAWG,EAAO,YACrB,UAAA,gBAAAH,EAACI,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAAT,EAAA,CACH,EAAA,CACF,EAAA,CACF,GACF;AAEJ;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
const
|
|
2
|
-
container:
|
|
3
|
-
formFields:
|
|
1
|
+
const t = "_container_1htg1_1", o = "_formFields_1htg1_5", e = {
|
|
2
|
+
container: t,
|
|
3
|
+
formFields: o
|
|
4
4
|
};
|
|
5
5
|
export {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
t as container,
|
|
7
|
+
e as default,
|
|
8
|
+
o as formFields
|
|
9
9
|
};
|
|
10
10
|
//# sourceMappingURL=SignatureForm.module.scss.js.map
|