@medplum/react
Version:
Medplum React Component Library
4 lines • 1.48 MB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/index.ts", "../../src/AddressDisplay/AddressDisplay.tsx", "../../src/AddressInput/AddressInput.tsx", "../../src/ElementsInput/ElementsInput.utils.ts", "../../src/constants.ts", "../../src/AnnotationInput/AnnotationInput.tsx", "../../src/AppShell/AppShell.tsx", "../../src/ErrorBoundary/ErrorBoundary.tsx", "../../../../node_modules/@tabler/icons-react/src/defaultAttributes.ts", "../../../../node_modules/@tabler/icons-react/src/createReactComponent.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconAdjustmentsHorizontal.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconAlertCircle.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconArrowDown.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconArrowRight.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconArrowUp.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBinaryTree.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBleachOff.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBleach.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBookmark.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBoxMultiple.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBracketsContain.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBriefcase.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBucketOff.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconBucket.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCake.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCalendar.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCheck.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCheckbox.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconChevronDown.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconChevronRight.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconChevronUp.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCircleMinus.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCirclePlus.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCloudUpload.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconColumns.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCopy.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCurrencyDollar.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconDeviceDesktop.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconDots.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconDownload.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconEdit.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconEmpathize.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconEqualNot.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconEqual.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconEyeOff.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconEye.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconFileAlert.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconFileExport.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconFilePlus.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconFileText.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconFilter.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconInfoCircle.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconLanguage.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconLayoutSidebar.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconLogout.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMapPin.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMathGreater.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMathLower.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMessageCircle.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMessage.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMicrophone.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMinus.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconMoon.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconPalette.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconPaperclip.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconPencil.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconPlus.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconRefresh.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSearch.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSettings.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSortAscending.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSortDescending.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSquare.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconStethoscope.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSunHigh.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconSwitchHorizontal.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconTableExport.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconTable.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconTrash.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconUsers.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconX.ts", "../../../../node_modules/@tabler/icons-react/src/icons/IconCircleFilled.ts", "../../src/Loading/Loading.tsx", "../../src/AppShell/AnnouncementBanners.tsx", "../../src/AppShell/AppShell.module.css", "../../src/AppShell/Header.tsx", "../../src/ResourceAvatar/ResourceAvatar.tsx", "../../src/MedplumLink/MedplumLink.tsx", "../../src/utils/dom.ts", "../../src/ResourceAvatar/ResourceAvatar.utils.ts", "../../src/AppShell/Header.module.css", "../../src/AppShell/HeaderDropdown.tsx", "../../../../node_modules/clsx/dist/clsx.mjs", "../../src/auth/ProjectLoginOption.tsx", "../../src/auth/ProjectLoginOption.module.css", "../../src/utils/app.ts", "../../src/AppShell/HeaderDropdown.module.css", "../../src/AppShell/HeaderSearchInput.tsx", "../../src/AsyncAutocomplete/AsyncAutocomplete.tsx", "../../src/AsyncAutocomplete/AsyncAutocomplete.utils.ts", "../../src/AppShell/HeaderSearchInput.module.css", "../../src/AppShell/Navbar.tsx", "../../src/BookmarkDialog/BookmarkDialog.tsx", "../../src/Form/Form.tsx", "../../src/Form/Form.context.ts", "../../src/Form/FormUtils.ts", "../../src/Form/SubmitButton.tsx", "../../src/ResourceTypeInput/ResourceTypeInput.tsx", "../../src/CodeInput/CodeInput.tsx", "../../src/ValueSetAutocomplete/ValueSetAutocomplete.tsx", "../../src/UnavailableNote/UnavailableNote.tsx", "../../src/AppShell/Navbar.module.css", "../../src/AppShell/Spotlight.tsx", "../../src/AppShell/Spotlight.module.css", "../../src/AttachmentArrayDisplay/AttachmentArrayDisplay.tsx", "../../src/AttachmentDisplay/AttachmentDisplay.tsx", "../../src/CcdaDisplay/CcdaDisplay.tsx", "../../src/AttachmentDisplay/ScannedImage.tsx", "../../src/DescriptionList/DescriptionList.module.css", "../../src/DescriptionList/DescriptionList.tsx", "../../src/AttachmentArrayInput/AttachmentArrayInput.tsx", "../../src/AttachmentButton/AttachmentButton.tsx", "../../src/AttachmentInput/AttachmentInput.tsx", "../../src/auth/ChangePasswordForm.tsx", "../../src/Container/Container.tsx", "../../src/Container/Container.module.css", "../../src/Panel/Panel.tsx", "../../src/Panel/Panel.module.css", "../../src/Document/Document.tsx", "../../src/Logo/Logo.tsx", "../../src/PasswordInput/PasswordInput.tsx", "../../src/utils/outcomes.ts", "../../src/auth/ChooseScopeForm.tsx", "../../src/auth/MfaEnrollForm.tsx", "../../src/auth/MfaForm.tsx", "../../src/auth/MfaVerificationForm.tsx", "../../src/auth/RegisterForm.tsx", "../../src/OperationOutcomeAlert/OperationOutcomeAlert.tsx", "../../src/auth/NewProjectForm.tsx", "../../src/auth/NewUserForm.tsx", "../../src/GoogleButton/GoogleButton.tsx", "../../src/utils/script.ts", "../../src/GoogleButton/GoogleButton.utils.ts", "../../src/utils/recaptcha.ts", "../../src/auth/ResetPasswordForm.tsx", "../../src/auth/SetPasswordForm.tsx", "../../src/auth/SignInForm.tsx", "../../src/auth/AuthenticationForm.tsx", "../../src/auth/ChooseProfileForm.tsx", "../../src/BackboneElementDisplay/BackboneElementDisplay.tsx", "../../src/ResourcePropertyDisplay/ResourcePropertyDisplay.tsx", "../../src/CodeableConceptDisplay/CodeableConceptDisplay.tsx", "../../src/CodingDisplay/CodingDisplay.tsx", "../../src/ContactPointDisplay/ContactPointDisplay.tsx", "../../src/ContactDetailDisplay/ContactDetailDisplay.tsx", "../../src/ExtensionDisplay/ExtensionDisplay.tsx", "../../src/ResourcePropertyDisplay/ResourcePropertyDisplay.utils.ts", "../../src/HumanNameDisplay/HumanNameDisplay.tsx", "../../src/IdentifierDisplay/IdentifierDisplay.tsx", "../../src/MoneyDisplay/MoneyDisplay.tsx", "../../src/QuantityDisplay/QuantityDisplay.tsx", "../../src/RangeDisplay/RangeDisplay.tsx", "../../src/RatioDisplay/RatioDisplay.tsx", "../../src/ReferenceDisplay/ReferenceDisplay.tsx", "../../src/ResourceArrayDisplay/ResourceArrayDisplay.tsx", "../../src/ResourceArrayInput/ResourceArrayInput.utils.ts", "../../src/SliceDisplay/SliceDisplay.tsx", "../../src/utils/maybeWrapWithContext.tsx", "../../src/BackboneElementInput/BackboneElementInput.tsx", "../../src/ElementsInput/ElementsInput.tsx", "../../src/CheckboxFormSection/CheckboxFormSection.tsx", "../../src/FormSection/FormSection.module.css", "../../src/utils/maybeWrapWithTooltip.tsx", "../../src/FormSection/FormSection.tsx", "../../src/ResourceForm/ResourceForm.utils.ts", "../../src/ResourcePropertyInput/ResourcePropertyInput.tsx", "../../src/CodeableConceptInput/CodeableConceptInput.tsx", "../../src/CodingInput/CodingInput.tsx", "../../src/ContactDetailInput/ContactDetailInput.tsx", "../../src/ContactPointInput/ContactPointInput.tsx", "../../src/DateTimeInput/DateTimeInput.tsx", "../../src/DateTimeInput/DateTimeInput.utils.ts", "../../src/ExtensionInput/ExtensionInput.tsx", "../../src/HumanNameInput/HumanNameInput.tsx", "../../src/IdentifierInput/IdentifierInput.tsx", "../../src/MoneyInput/MoneyInput.tsx", "../../src/PeriodInput/PeriodInput.tsx", "../../src/QuantityInput/QuantityInput.tsx", "../../src/RangeInput/RangeInput.tsx", "../../src/RatioInput/RatioInput.tsx", "../../src/ReferenceInput/ReferenceInput.tsx", "../../src/ResourceInput/ResourceInput.tsx", "../../src/ResourceInput/MultiResourceInput.tsx", "../../src/ResourceArrayInput/ResourceArrayInput.tsx", "../../src/ResourcePropertyInput/ResourcePropertyInput.utils.ts", "../../src/SliceInput/SliceInput.tsx", "../../src/ResourceArrayInput/ResourceArrayInput.module.css", "../../src/buttons/ArrayAddButton.tsx", "../../src/buttons/ArrayRemoveButton.tsx", "../../src/SensitiveTextarea/SensitiveTextarea.tsx", "../../src/TimingInput/TimingInput.tsx", "../../src/BackboneElementInput/BackboneElementInput.module.css", "../../src/CalendarDateInput/CalendarDateInput.tsx", "../../src/CalendarDateInput/CalendarDateInput.module.css", "../../src/CalendarDateInput/CalendarDateInput.utils.ts", "../../src/CalendarInput/CalendarInput.tsx", "../../src/chat/BaseChat/BaseChat.tsx", "../../src/chat/BaseChat/BaseChat.module.css", "../../src/chat/BaseChat/DocumentPicker.tsx", "../../src/chat/ChatModal/ChatModal.tsx", "../../src/chat/ChatModal/ChatModal.module.css", "../../src/chat/ThreadChat/ThreadChat.tsx", "../../src/chat/ThreadInbox/NewTopicDialog.tsx", "../../src/QuestionnaireForm/QuestionnaireForm.tsx", "../../src/SignatureInput/SignatureInput.tsx", "../../../../node_modules/signature_pad/src/point.ts", "../../../../node_modules/signature_pad/src/bezier.ts", "../../../../node_modules/signature_pad/src/signature_event_target.ts", "../../../../node_modules/signature_pad/src/throttle.ts", "../../../../node_modules/signature_pad/src/signature_pad.ts", "../../src/QuestionnaireForm/QuestionnaireFormItemArray.tsx", "../../src/QuestionnaireForm/QuestionnaireFormGroup.tsx", "../../src/QuestionnaireForm/QuestionnaireFormItem.tsx", "../../src/QuestionnaireForm/QuestionnaireFormRepeatableGroup.tsx", "../../src/QuestionnaireForm/QuestionnaireFormRepeatableItem.tsx", "../../src/QuestionnaireForm/QuestionnaireFormStepper.tsx", "../../src/chat/ThreadInbox/ParticipantFilter.tsx", "../../src/chat/ThreadInbox/ParticipantFilter.module.css", "../../src/chat/ThreadInbox/ThreadInbox.tsx", "../../src/ListWithDetailPane/ListWithDetailPane.tsx", "../../src/ListWithDetailPane/ListWithDetailPane.module.css", "../../src/ListWithDetailPane/ListWithDetailPaneSkeleton.tsx", "../../src/chat/ThreadInbox/ThreadDetail.tsx", "../../src/PatientSummary/PatientSummary.tsx", "../../src/PatientSummary/PatientSummary.module.css", "../../src/PatientSummary/sectionConfigs.tsx", "../../src/PatientSummary/Allergies.tsx", "../../src/StatusBadge/StatusBadge.tsx", "../../src/PatientSummary/AllergyDialog.tsx", "../../src/PatientSummary/CollapsibleSection.tsx", "../../src/PatientSummary/CollapsibleSection.module.css", "../../src/PatientSummary/SummaryItem.tsx", "../../src/PatientSummary/SummaryItem.module.css", "../../src/PatientSummary/Insurance.tsx", "../../src/PatientSummary/Labs.tsx", "../../src/DiagnosticReportDisplay/DiagnosticReportDisplay.tsx", "../../src/NoteDisplay/NoteDisplay.tsx", "../../src/NoteDisplay/NoteDisplay.module.css", "../../src/ResourceBadge/ResourceBadge.tsx", "../../src/ResourceName/ResourceName.tsx", "../../src/DiagnosticReportDisplay/DiagnosticReportDisplay.module.css", "../../src/PatientSummary/Medications.tsx", "../../src/utils/date.ts", "../../src/PatientSummary/MedicationDialog.tsx", "../../src/PatientSummary/PatientInfoItem.tsx", "../../src/PatientSummary/PatientSummary.utils.ts", "../../src/PatientSummary/Pharmacies.tsx", "../../src/PatientSummary/pharmacy-utils.ts", "../../src/PatientSummary/ProblemList.tsx", "../../src/PatientSummary/ConditionDialog.tsx", "../../src/PatientSummary/SexualOrientation.tsx", "../../src/PatientSummary/SmokingStatus.tsx", "../../src/PatientSummary/Vitals.tsx", "../../src/PatientSummary/Vitals.utils.ts", "../../src/chat/ThreadInbox/ThreadDetail.module.css", "../../src/chat/ThreadInbox/ThreadInbox.module.css", "../../src/chat/ThreadInbox/ThreadListItem.tsx", "../../src/chat/ThreadInbox/ThreadListItem.module.css", "../../src/ResourceTimeline/ResourceTimeline.tsx", "../../src/ResourceDiffTable/ResourceDiffTable.tsx", "../../src/ResourceDiffRow/ResourceDiffRow.tsx", "../../src/ResourceDiffRow/ResourceDiffRow.module.css", "../../src/ResourceDiffTable/ResourceDiffTable.module.css", "../../src/ResourceTable/ResourceTable.tsx", "../../src/Timeline/Timeline.tsx", "../../src/Timeline/Timeline.module.css", "../../src/ResourceTimeline/ResourceTimeline.module.css", "../../src/DefaultResourceTimeline/DefaultResourceTimeline.tsx", "../../src/EncounterTimeline/EncounterTimeline.tsx", "../../src/FhirPathTable/FhirPathTable.tsx", "../../src/FhirPathDisplay/FhirPathDisplay.tsx", "../../src/SearchControl/SearchControl.tsx", "../../src/SearchExportDialog/SearchExportDialog.tsx", "../../src/SearchFieldEditor/SearchFieldEditor.tsx", "../../src/SearchControl/SearchUtils.tsx", "../../src/SearchFilterEditor/SearchFilterEditor.tsx", "../../src/SearchFilterValueInput/SearchFilterValueInput.tsx", "../../src/SearchFilterValueDialog/SearchFilterValueDialog.tsx", "../../src/SearchFilterValueDisplay/SearchFilterValueDisplay.tsx", "../../src/SearchPopupMenu/SearchPopupMenu.tsx", "../../src/utils/pagination.ts", "../../src/SearchControl/SearchControl.module.css", "../../src/SearchControl/SearchControlField.ts", "../../src/InfoBar/InfoBar.tsx", "../../src/InfoBar/InfoBar.module.css", "../../src/LinkTabs/LinkTabs.tsx", "../../src/LinkTabs/LinkTabs.module.css", "../../src/MeasureReportDisplay/MeasureReportDisplay.tsx", "../../src/MeasureReportDisplay/MeasureReportGroupDisplay/MeasureReportGroupDisplay.tsx", "../../src/NotificationIcon/NotificationIcon.tsx", "../../src/PatientAccountsForm/PatientAccountsForm.tsx", "../../src/PatientExportForm/PatientExportForm.tsx", "../../src/PatientHeader/PatientHeader.tsx", "../../src/PatientHeader/PatientHeader.utils.ts", "../../src/PatientSummary/PharmacyDialog.tsx", "../../src/PatientSummary/PharmacyDialog.module.css", "../../src/PatientSummary/SummaryResourceListSection.tsx", "../../src/PatientTimeline/PatientTimeline.tsx", "../../src/PlanDefinitionBuilder/PlanDefinitionBuilder.tsx", "../../src/PlanDefinitionBuilder/PlanDefinitionBuilder.module.css", "../../src/QrCodeScanner/QrCodeScanner.tsx", "../../src/QuestionnaireBuilder/QuestionnaireBuilder.tsx", "../../src/QuestionnaireBuilder/QuestionnaireBuilder.module.css", "../../src/QuestionnaireForm/AIRealTimeQuestionnaireForm.tsx", "../../src/QuestionnaireForm/AIRealTimeQuestionnaireForm.module.css", "../../src/QuestionnaireResponseDisplay/QuestionnaireResponseDisplay.tsx", "../../src/QuestionnaireResponseDisplay/QuestionnaireResponseItemDisplay.tsx", "../../src/ReferenceRangeEditor/ReferenceRangeEditor.tsx", "../../src/ReferenceRangeEditor/ReferenceRangeEditor.module.css", "../../src/RequestGroupDisplay/RequestGroupDisplay.tsx", "../../src/ResourceBlame/ResourceBlame.tsx", "../../src/utils/blame.ts", "../../src/utils/diff.ts", "../../src/ResourceBlame/ResourceBlame.module.css", "../../src/ResourceBlame/ResourceBlame.utils.ts", "../../src/ResourceBoard/ResourceBoard.tsx", "../../src/ResourceDiff/ResourceDiff.tsx", "../../src/ResourceDiff/ResourceDiff.module.css", "../../src/ResourceForm/ResourceForm.tsx", "../../src/ResourceForm/ResourceForm.module.css", "../../src/ResourceHistoryTable/ResourceHistoryTable.tsx", "../../src/Scheduler/Scheduler.tsx", "../../src/Scheduler/Scheduler.module.css", "../../src/ScrollToTop/ScrollToTop.tsx", "../../../../node_modules/react-router-dom/dist/index.mjs", "../../src/ServiceRequestTimeline/ServiceRequestTimeline.tsx", "../../src/SmartAppLaunchLink/SmartAppLaunchLink.tsx"],
"sourcesContent": ["// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\n\n// Re-export all hooks from @medplum/react-hooks\nexport * from '@medplum/react-hooks';\n\n// Export all components\nexport * from './AddressDisplay/AddressDisplay';\nexport * from './AddressInput/AddressInput';\nexport * from './AnnotationInput/AnnotationInput';\nexport * from './AppShell/AppShell';\nexport * from './AppShell/Header';\nexport * from './AppShell/Navbar';\nexport * from './AppShell/Spotlight';\nexport * from './AsyncAutocomplete/AsyncAutocomplete';\nexport * from './AttachmentArrayDisplay/AttachmentArrayDisplay';\nexport * from './AttachmentArrayInput/AttachmentArrayInput';\nexport * from './AttachmentButton/AttachmentButton';\nexport * from './AttachmentDisplay/AttachmentDisplay';\nexport * from './AttachmentInput/AttachmentInput';\nexport * from './auth/ChangePasswordForm';\nexport * from './auth/ChooseScopeForm';\nexport * from './auth/MfaEnrollForm';\nexport * from './auth/MfaForm';\nexport * from './auth/MfaVerificationForm';\nexport * from './auth/RegisterForm';\nexport * from './auth/ResetPasswordForm';\nexport * from './auth/SetPasswordForm';\nexport * from './auth/SignInForm';\nexport * from './BackboneElementDisplay/BackboneElementDisplay';\nexport * from './BackboneElementInput/BackboneElementInput';\nexport * from './CalendarDateInput/CalendarDateInput';\nexport * from './CalendarInput/CalendarInput';\nexport * from './chat/BaseChat/BaseChat';\nexport * from './chat/ChatModal/ChatModal';\nexport * from './chat/ThreadChat/ThreadChat';\nexport * from './chat/ThreadInbox/NewTopicDialog';\nexport * from './chat/ThreadInbox/ParticipantFilter';\nexport * from './chat/ThreadInbox/ThreadInbox';\nexport * from './CheckboxFormSection/CheckboxFormSection';\nexport * from './CodeableConceptDisplay/CodeableConceptDisplay';\nexport * from './CodeableConceptInput/CodeableConceptInput';\nexport * from './CodeInput/CodeInput';\nexport * from './CodingDisplay/CodingDisplay';\nexport * from './CodingInput/CodingInput';\nexport * from './ContactDetailDisplay/ContactDetailDisplay';\nexport * from './ContactDetailInput/ContactDetailInput';\nexport * from './ContactPointDisplay/ContactPointDisplay';\nexport * from './ContactPointInput/ContactPointInput';\nexport * from './Container/Container';\nexport * from './DateTimeInput/DateTimeInput';\nexport * from './DateTimeInput/DateTimeInput.utils';\nexport * from './DefaultResourceTimeline/DefaultResourceTimeline';\nexport * from './DescriptionList/DescriptionList';\nexport * from './DiagnosticReportDisplay/DiagnosticReportDisplay';\nexport * from './Document/Document';\nexport * from './EncounterTimeline/EncounterTimeline';\nexport * from './ErrorBoundary/ErrorBoundary';\nexport * from './FhirPathTable/FhirPathTable';\nexport * from './Form/Form';\nexport * from './Form/FormUtils';\nexport * from './Form/SubmitButton';\nexport * from './FormSection/FormSection';\nexport * from './HumanNameDisplay/HumanNameDisplay';\nexport * from './HumanNameInput/HumanNameInput';\nexport * from './IdentifierDisplay/IdentifierDisplay';\nexport * from './IdentifierInput/IdentifierInput';\nexport * from './InfoBar/InfoBar';\nexport * from './LinkTabs/LinkTabs';\nexport * from './ListWithDetailPane/ListWithDetailPane';\nexport * from './Loading/Loading';\nexport * from './Logo/Logo';\nexport * from './MeasureReportDisplay/MeasureReportDisplay';\nexport * from './MedplumLink/MedplumLink';\nexport * from './MoneyDisplay/MoneyDisplay';\nexport * from './MoneyInput/MoneyInput';\nexport * from './NoteDisplay/NoteDisplay';\nexport * from './NotificationIcon/NotificationIcon';\nexport * from './OperationOutcomeAlert/OperationOutcomeAlert';\nexport * from './Panel/Panel';\nexport * from './PasswordInput/PasswordInput';\nexport * from './PatientAccountsForm/PatientAccountsForm';\nexport * from './PatientExportForm/PatientExportForm';\nexport * from './PatientHeader/PatientHeader';\nexport * from './PatientSummary/PatientSummary';\nexport type * from './PatientSummary/PatientSummary.types';\nexport * from './PatientSummary/Pharmacies';\nexport * from './PatientSummary/pharmacy-utils';\nexport * from './PatientSummary/PharmacyDialog';\nexport {\n AllergiesSection,\n DemographicsSection,\n InsuranceSection,\n LabsSection,\n MedicationsSection,\n PharmaciesSection,\n ProblemListSection,\n SexualOrientationSection,\n SmokingStatusSection,\n VitalsSection,\n createLabsSection,\n createPharmaciesSection,\n getDefaultSections,\n} from './PatientSummary/sectionConfigs';\nexport { summaryResourceListSection } from './PatientSummary/SummaryResourceListSection';\nexport type { SummaryResourceListOptions } from './PatientSummary/SummaryResourceListSection';\nexport * from './PatientTimeline/PatientTimeline';\nexport * from './PlanDefinitionBuilder/PlanDefinitionBuilder';\nexport * from './QrCodeScanner/QrCodeScanner';\nexport * from './QuantityDisplay/QuantityDisplay';\nexport * from './QuantityInput/QuantityInput';\nexport * from './QuestionnaireBuilder/QuestionnaireBuilder';\nexport * from './QuestionnaireForm/AIRealTimeQuestionnaireForm';\nexport * from './QuestionnaireForm/QuestionnaireForm';\nexport * from './QuestionnaireResponseDisplay/QuestionnaireResponseDisplay';\nexport * from './RangeDisplay/RangeDisplay';\nexport * from './RangeInput/RangeInput';\nexport * from './RatioInput/RatioInput';\nexport * from './ReferenceDisplay/ReferenceDisplay';\nexport * from './ReferenceInput/ReferenceInput';\nexport * from './ReferenceRangeEditor/ReferenceRangeEditor';\nexport * from './RequestGroupDisplay/RequestGroupDisplay';\nexport * from './ResourceArrayDisplay/ResourceArrayDisplay';\nexport * from './ResourceArrayInput/ResourceArrayInput';\nexport * from './ResourceAvatar/ResourceAvatar';\nexport * from './ResourceBadge/ResourceBadge';\nexport * from './ResourceBlame/ResourceBlame';\nexport * from './ResourceBoard/ResourceBoard';\nexport * from './ResourceDiff/ResourceDiff';\nexport * from './ResourceDiffTable/ResourceDiffTable';\nexport * from './ResourceForm/ResourceForm';\nexport * from './ResourceForm/ResourceForm.utils';\nexport * from './ResourceHistoryTable/ResourceHistoryTable';\nexport * from './ResourceInput/MultiResourceInput';\nexport * from './ResourceInput/ResourceInput';\nexport * from './ResourceName/ResourceName';\nexport * from './ResourcePropertyDisplay/ResourcePropertyDisplay';\nexport * from './ResourcePropertyInput/ResourcePropertyInput';\nexport * from './ResourcePropertyInput/ResourcePropertyInput.utils';\nexport * from './ResourceTable/ResourceTable';\nexport * from './ResourceTimeline/ResourceTimeline';\nexport * from './Scheduler/Scheduler';\nexport * from './ScrollToTop/ScrollToTop';\nexport * from './SearchControl/SearchControl';\nexport * from './SearchControl/SearchControlField';\nexport * from './SearchControl/SearchUtils';\nexport * from './SearchFieldEditor/SearchFieldEditor';\nexport * from './SearchFilterEditor/SearchFilterEditor';\nexport * from './ServiceRequestTimeline/ServiceRequestTimeline';\nexport * from './SignatureInput/SignatureInput';\nexport * from './SmartAppLaunchLink/SmartAppLaunchLink';\nexport * from './StatusBadge/StatusBadge';\nexport * from './Timeline/Timeline';\nexport * from './TimingInput/TimingInput';\nexport * from './UnavailableNote/UnavailableNote';\nexport * from './utils/app';\nexport * from './utils/date';\nexport * from './utils/dom';\nexport * from './utils/outcomes';\nexport * from './utils/pagination';\nexport * from './utils/recaptcha';\nexport * from './utils/script';\nexport * from './ValueSetAutocomplete/ValueSetAutocomplete';\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nimport type { AddressFormatOptions } from '@medplum/core';\nimport { formatAddress } from '@medplum/core';\nimport type { Address } from '@medplum/fhirtypes';\nimport type { JSX } from 'react';\n\nexport interface AddressDisplayProps {\n readonly value?: Address;\n readonly options?: AddressFormatOptions;\n}\n\nexport function AddressDisplay(props: AddressDisplayProps): JSX.Element | null {\n const address = props.value;\n if (!address) {\n return null;\n }\n\n return <>{formatAddress(address, props.options)}</>;\n}\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Group, NativeSelect, TextInput } from '@mantine/core';\nimport { trimTrailingEmptyElements } from '@medplum/core';\nimport type { Address } from '@medplum/fhirtypes';\nimport type { JSX } from 'react';\nimport { useContext, useMemo, useState } from 'react';\nimport { ElementsContext } from '../ElementsInput/ElementsInput.utils';\nimport type { ComplexTypeInputProps } from '../ResourcePropertyInput/ResourcePropertyInput.utils';\n\nfunction getLine(address: Address, index: number): string {\n return address.line && address.line.length > index ? address.line[index] : '';\n}\n\nfunction setLine(address: Address, index: number, str: string): Address {\n const line: string[] = address.line || [];\n while (line.length <= index) {\n line.push('');\n }\n line[index] = str;\n return { ...address, line: trimTrailingEmptyElements(line) };\n}\n\nexport type AddressInputProps = ComplexTypeInputProps<Address>;\n\nexport function AddressInput(props: AddressInputProps): JSX.Element {\n const [value, setValue] = useState(props.defaultValue || {});\n\n const { getExtendedProps } = useContext(ElementsContext);\n const [useProps, typeProps, line1Props, line2Props, cityProps, stateProps, postalCodeProps] = useMemo(\n () =>\n ['use', 'type', 'line1', 'line2', 'city', 'state', 'postalCode'].map((field) =>\n getExtendedProps(props.path + '.' + field)\n ),\n [getExtendedProps, props.path]\n );\n\n // TODO{profiles} is it worth the complexity of subbing in an autocomplete input when\n // a binding is defined in a profile? If so, it should go in a new wrapper around TextInput\n // e.g. US Core Patient Profile\n\n function setValueWrapper(newValue: Partial<Address>): void {\n setValue((prevValue) => ({ ...prevValue, ...newValue }));\n if (props.onChange) {\n props.onChange({ ...value, ...newValue });\n }\n }\n\n function setUse(use: 'home' | 'work' | 'temp' | 'old' | 'billing'): void {\n setValueWrapper({ use });\n }\n\n function setType(type: 'postal' | 'physical' | 'both'): void {\n setValueWrapper({ type });\n }\n\n function setLine1(line1: string): void {\n setValueWrapper(setLine(value, 0, line1));\n }\n\n function setLine2(line2: string): void {\n setValueWrapper(setLine(value, 1, line2));\n }\n\n function setCity(city: string): void {\n setValueWrapper({ city });\n }\n\n function setState(state: string): void {\n setValueWrapper({ state });\n }\n\n function setPostalCode(postalCode: string): void {\n setValueWrapper({ postalCode });\n }\n\n return (\n <Group gap=\"xs\" wrap=\"nowrap\" grow>\n <NativeSelect\n disabled={props.disabled || useProps?.readonly}\n data-testid=\"address-use\"\n defaultValue={value.use}\n onChange={(e) => setUse(e.currentTarget.value as 'home' | 'work' | 'temp' | 'old' | 'billing')}\n data={['', 'home', 'work', 'temp', 'old', 'billing']}\n />\n <NativeSelect\n disabled={props.disabled || typeProps?.readonly}\n data-testid=\"address-type\"\n defaultValue={value.type}\n onChange={(e) => setType(e.currentTarget.value as 'postal' | 'physical' | 'both')}\n data={['', 'postal', 'physical', 'both']}\n />\n <TextInput\n disabled={props.disabled || line1Props?.readonly}\n placeholder=\"Line 1\"\n defaultValue={getLine(value, 0)}\n onChange={(e) => setLine1(e.currentTarget.value)}\n />\n <TextInput\n disabled={props.disabled || line2Props?.readonly}\n placeholder=\"Line 2\"\n defaultValue={getLine(value, 1)}\n onChange={(e) => setLine2(e.currentTarget.value)}\n />\n <TextInput\n disabled={props.disabled || cityProps?.readonly}\n placeholder=\"City\"\n defaultValue={value.city}\n onChange={(e) => setCity(e.currentTarget.value)}\n />\n <TextInput\n disabled={props.disabled || stateProps?.readonly}\n placeholder=\"State\"\n defaultValue={value.state}\n onChange={(e) => setState(e.currentTarget.value)}\n />\n <TextInput\n disabled={props.disabled || postalCodeProps?.readonly}\n placeholder=\"Postal Code\"\n defaultValue={value.postalCode}\n onChange={(e) => setPostalCode(e.currentTarget.value)}\n />\n </Group>\n );\n}\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nimport type { ElementsContextType, ExtendedInternalSchemaElement } from '@medplum/core';\nimport { isPopulated } from '@medplum/core';\nimport { createContext } from 'react';\nimport { DEFAULT_IGNORED_NON_NESTED_PROPERTIES, DEFAULT_IGNORED_PROPERTIES } from '../constants';\n\nexport const ElementsContext = createContext<ElementsContextType>({\n path: '',\n profileUrl: undefined,\n elements: Object.create(null),\n elementsByPath: Object.create(null),\n getExtendedProps: () => {\n return { readonly: false, hidden: false };\n },\n accessPolicyResource: undefined,\n debugMode: false,\n isDefaultContext: true,\n});\nElementsContext.displayName = 'ElementsContext';\n\nexport const EXTENSION_KEYS = ['extension', 'modifierExtension'];\nexport const IGNORED_PROPERTIES = ['id', ...DEFAULT_IGNORED_PROPERTIES].filter(\n (prop) => !EXTENSION_KEYS.includes(prop)\n);\n\nexport function getElementsToRender(\n inputElements: Record<string, ExtendedInternalSchemaElement>\n): [string, ExtendedInternalSchemaElement][] {\n const result = Object.entries(inputElements).filter(([key, element]) => {\n if (!isPopulated(element.type)) {\n return false;\n }\n\n if (element.max === 0) {\n return false;\n }\n\n // toLowerCase to handle Extension.url as well as Extension.extension.url, etc.\n if (element.path.toLowerCase().endsWith('extension.url') && element.fixed) {\n return false;\n }\n\n if (EXTENSION_KEYS.includes(key) && !isPopulated(element.slicing?.slices)) {\n // an extension property without slices has no nested extensions\n return false;\n } else if (IGNORED_PROPERTIES.includes(key)) {\n return false;\n } else if (DEFAULT_IGNORED_NON_NESTED_PROPERTIES.includes(key) && element.path.split('.').length === 2) {\n return false;\n }\n\n // Profiles can include nested elements in addition to their containing element, e.g.:\n // identifier, identifier.use, identifier.system\n // Skip nested elements, e.g. identifier.use, since they are handled by the containing element\n if (key.includes('.')) {\n return false;\n }\n\n return true;\n });\n\n return result;\n}\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nexport const DEFAULT_IGNORED_PROPERTIES = ['meta', 'implicitRules', 'contained', 'extension', 'modifierExtension'];\n\n// Ignored only when they are top-level properties\n// e.g. Patient.language is ignored, but Patient.communication.language is not ignored\nexport const DEFAULT_IGNORED_NON_NESTED_PROPERTIES = ['language', 'text'];\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { TextInput } from '@mantine/core';\nimport { createReference } from '@medplum/core';\nimport type { Annotation } from '@medplum/fhirtypes';\nimport { useMedplumProfile } from '@medplum/react-hooks';\nimport type { JSX } from 'react';\nimport { useState } from 'react';\nimport type { ComplexTypeInputProps } from '../ResourcePropertyInput/ResourcePropertyInput.utils';\n\nexport interface AnnotationInputProps extends ComplexTypeInputProps<Annotation> {}\n\nexport function AnnotationInput(props: AnnotationInputProps): JSX.Element {\n const author = useMedplumProfile();\n const [value, setValue] = useState(props.defaultValue || ({} as Annotation));\n\n function setText(text: string): void {\n const newValue: Annotation = text\n ? {\n text,\n authorReference: author && createReference(author),\n time: new Date().toISOString(),\n }\n : ({} as Annotation);\n\n setValue(newValue);\n if (props.onChange) {\n props.onChange(newValue);\n }\n }\n\n return (\n <TextInput\n disabled={props.disabled}\n name={props.name}\n placeholder=\"Annotation text\"\n defaultValue={value.text}\n onChange={(e) => setText(e.currentTarget.value)}\n />\n );\n}\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nimport type { AppShellHeaderConfiguration, AppShellNavbarConfiguration } from '@mantine/core';\nimport { AppShell as MantineAppShell } from '@mantine/core';\nimport { useMedplum, useMedplumProfile } from '@medplum/react-hooks';\nimport type { JSX, ReactNode } from 'react';\nimport { Suspense, useState } from 'react';\nimport { ErrorBoundary } from '../ErrorBoundary/ErrorBoundary';\nimport { Loading } from '../Loading/Loading';\nimport type { AppShellAnnouncement } from './AnnouncementBanners';\nimport { AnnouncementBanners } from './AnnouncementBanners';\nimport classes from './AppShell.module.css';\nimport { Header } from './Header';\nimport type { NavbarMenu } from './Navbar';\nimport { Navbar } from './Navbar';\n\nconst OPEN_WIDTH = 250;\nconst CLOSED_WIDTH = 59;\nconst HEADER_HEIGHT = 60;\nconst ANNOUNCEMENT_HEIGHT = 36;\n\nexport type { AppShellAnnouncement } from './AnnouncementBanners';\n\nexport interface AppShellProps {\n readonly logo: ReactNode;\n readonly pathname?: string;\n readonly searchParams?: URLSearchParams;\n readonly headerSearchDisabled?: boolean;\n readonly version?: string;\n readonly menus?: NavbarMenu[];\n readonly children: ReactNode;\n readonly displayAddBookmark?: boolean;\n readonly resourceTypeSearchDisabled?: boolean;\n readonly notifications?: ReactNode;\n readonly announcements?: AppShellAnnouncement[];\n readonly layoutVersion?: 'v1' | 'v2';\n readonly showLayoutVersionToggle?: boolean;\n readonly spotlightPatientsOnly?: boolean;\n}\n\nexport function AppShell(props: AppShellProps): JSX.Element {\n const [navbarOpen, setNavbarOpen] = useState(localStorage['navbarOpen'] === 'true');\n const [layoutVersion] = useState(\n props.layoutVersion ?? (localStorage['appShellLayoutVersion'] as 'v1' | 'v2' | undefined) ?? 'v1'\n );\n const medplum = useMedplum();\n const profile = useMedplumProfile();\n const [dismissedAnnouncementIds, setDismissedAnnouncementIds] = useState<ReadonlySet<string>>(() => {\n try {\n const dismissed = localStorage['appShellDismissedAnnouncements'];\n return new Set(dismissed ? JSON.parse(dismissed) : []);\n } catch (_err) {\n return new Set();\n }\n });\n\n const visibleAnnouncements = props.announcements?.filter(\n (announcement) => !announcement.id || !dismissedAnnouncementIds.has(announcement.id)\n );\n const announcementHeight = visibleAnnouncements?.length ? visibleAnnouncements.length * ANNOUNCEMENT_HEIGHT : 0;\n\n function setNavbarOpenWrapper(open: boolean): void {\n localStorage['navbarOpen'] = open.toString();\n setNavbarOpen(open);\n }\n\n function dismissAnnouncement(announcement: AppShellAnnouncement): void {\n if (announcement.id) {\n setDismissedAnnouncementIds((dismissedIds) => {\n const updated = new Set(dismissedIds);\n updated.add(announcement.id as string);\n localStorage['appShellDismissedAnnouncements'] = JSON.stringify([...updated]);\n return updated;\n });\n }\n announcement.onDismiss?.(announcement);\n }\n\n function closeNavbar(): void {\n setNavbarOpenWrapper(false);\n }\n\n function toggleNavbar(): void {\n setNavbarOpenWrapper(!navbarOpen);\n }\n\n if (medplum.isLoading()) {\n return <Loading />;\n }\n\n let headerProp: AppShellHeaderConfiguration | undefined;\n let navbarProp: AppShellNavbarConfiguration | undefined;\n let headerComponent: ReactNode | undefined;\n let navbarComponent: ReactNode | undefined;\n\n if (layoutVersion === 'v2') {\n // Layout version v2:\n // - No header\n // - Navbar is either open or closed based on state\n headerProp = { height: announcementHeight };\n navbarProp = {\n width: navbarOpen ? OPEN_WIDTH : CLOSED_WIDTH,\n breakpoint: 0,\n collapsed: {\n desktop: !profile,\n mobile: !profile,\n },\n };\n headerComponent = visibleAnnouncements?.length ? (\n <MantineAppShell.Header style={{ zIndex: 101 }}>\n <AnnouncementBanners announcements={visibleAnnouncements} onDismiss={dismissAnnouncement} />\n </MantineAppShell.Header>\n ) : undefined;\n navbarComponent = profile ? (\n <Navbar\n logo={props.logo}\n pathname={props.pathname}\n searchParams={props.searchParams}\n menus={props.menus}\n navbarToggle={toggleNavbar}\n closeNavbar={closeNavbar}\n displayAddBookmark={props.displayAddBookmark}\n resourceTypeSearchDisabled={true}\n opened={navbarOpen}\n spotlightEnabled={true}\n patientsOnly={props.spotlightPatientsOnly}\n userMenuEnabled={true}\n version={props.version}\n showLayoutVersionToggle={props.showLayoutVersionToggle}\n />\n ) : undefined;\n } else {\n // Default to layout version v1\n headerProp = { height: HEADER_HEIGHT + announcementHeight };\n navbarProp = {\n width: OPEN_WIDTH,\n breakpoint: 'sm',\n collapsed: {\n desktop: !profile || !navbarOpen,\n mobile: !profile || !navbarOpen,\n },\n };\n headerComponent = profile && (\n <Header\n pathname={props.pathname}\n searchParams={props.searchParams}\n headerSearchDisabled={props.headerSearchDisabled}\n logo={props.logo}\n version={props.version}\n navbarOpen={navbarOpen}\n navbarToggle={toggleNavbar}\n notifications={props.notifications}\n announcements={visibleAnnouncements}\n onDismissAnnouncement={dismissAnnouncement}\n />\n );\n navbarComponent =\n profile && navbarOpen ? (\n <Navbar\n pathname={props.pathname}\n searchParams={props.searchParams}\n menus={props.menus}\n navbarToggle={toggleNavbar}\n closeNavbar={closeNavbar}\n displayAddBookmark={props.displayAddBookmark}\n resourceTypeSearchDisabled={props.resourceTypeSearchDisabled}\n patientsOnly={props.spotlightPatientsOnly}\n />\n ) : undefined;\n }\n\n return (\n <MantineAppShell header={headerProp} navbar={navbarProp} padding={0}>\n {headerComponent}\n {navbarComponent}\n <MantineAppShell.Main className={classes.main}>\n <ErrorBoundary>\n <Suspense fallback={<Loading />}>{props.children}</Suspense>\n </ErrorBoundary>\n </MantineAppShell.Main>\n </MantineAppShell>\n );\n}\n", "// SPDX-FileCopyrightText: Copyright Orangebot, Inc. and Medplum contributors\n// SPDX-License-Identifier: Apache-2.0\nimport { Alert } from '@mantine/core';\nimport { locationUtils, normalizeErrorString } from '@medplum/core';\nimport { IconAlertCircle } from '@tabler/icons-react';\nimport type { ErrorInfo, ReactNode } from 'react';\nimport { Component } from 'react';\n\nexport interface ErrorBoundaryProps {\n readonly children: ReactNode;\n}\n\nexport interface ErrorBoundaryState {\n readonly error?: Error;\n readonly lastLocation: string;\n}\n\n/**\n * ErrorBoundary is a React component that handles errors in its child components.\n * See: https://reactjs.org/docs/error-boundaries.html\n */\nexport class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {\n readonly state: ErrorBoundaryState;\n\n constructor(props: ErrorBoundaryProps) {\n super(props);\n this.state = { lastLocation: locationUtils.getLocation() };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n return { error, lastLocation: locationUtils.getLocation() };\n }\n\n componentDidUpdate(_prevProps: ErrorBoundaryProps, _prevState: ErrorBoundaryState): void {\n if (locationUtils.getLocation() !== this.state.lastLocation) {\n this.setState({\n lastLocation: locationUtils.getLocation(),\n error: undefined,\n });\n }\n }\n\n shouldComponentUpdate(nextProps: ErrorBoundaryProps, nextState: ErrorBoundaryState): boolean {\n if (this.props.children !== nextProps.children) {\n return true;\n }\n if (nextState.error && !this.state.error) {\n return true;\n }\n if (this.state.lastLocation !== locationUtils.getLocation()) {\n return true;\n }\n return false;\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error('Uncaught error:', error, errorInfo);\n }\n\n render(): ReactNode {\n if (this.state.error) {\n return (\n <Alert icon={<IconAlertCircle size={16} />} title=\"Something went wrong\" color=\"red\">\n {normalizeErrorString(this.state.error)}\n </Alert>\n );\n }\n\n return this.props.children;\n }\n}\n", "export default {\n outline: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n },\n filled: {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'currentColor',\n stroke: 'none',\n },\n};\n", "import { forwardRef, createElement } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport type { IconNode, IconProps, Icon } from './types';\n\nconst createReactComponent = (\n type: 'outline' | 'filled',\n iconName: string,\n iconNamePascal: string,\n iconNode: IconNode,\n) => {\n const Component = forwardRef<SVGSVGElement, IconProps>(\n (\n { color = 'currentColor', size = 24, stroke = 2, title, className, children, ...rest }: IconProps,\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes[type],\n width: size,\n height: size,\n className: [`tabler-icon`, `tabler-icon-${iconName}`, className].join(' '),\n ...(type === 'filled'\n ? {\n fill: color,\n }\n : {\n strokeWidth: stroke,\n stroke: color,\n }),\n ...rest,\n },\n [\n title && createElement('title', { key: 'svg-title' }, title),\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n );\n\n Component.displayName = `${iconNamePascal}`;\n\n return Component;\n};\n\nexport default createReactComponent;\n", "import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M12 6a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M4 6l8 0\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M16 6l4 0\",\"key\":\"svg-2\"}],[\"path\",{\"d\":\"M6 12a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\",\"key\":\"svg-3\"}],[\"path\",{\"d\":\"M4 12l2 0\",\"key\":\"svg-4\"}],[\"path\",{\"d\":\"M10 12l10 0\",\"key\":\"svg-5\"}],[\"path\",{\"d\":\"M15 18a2 2 0 1 0 4 0a2 2 0 1 0 -4 0\",\"key\":\"svg-6\"}],[\"path\",{\"d\":\"M4 18l11 0\",\"key\":\"svg-7\"}],[\"path\",{\"d\":\"M19 18l1 0\",\"key\":\"svg-8\"}]]\n\n/**\n * IconAdjustmentsHorizontal\n * @preview  - https://tabler.io/icons/icon/adjustments-horizontal\n * @see https://docs.tabler.io/icons/libraries/react - Documentation\n *\n */\nconst IconAdjustmentsHorizontal = createReactComponent('outline', 'adjustments-horizontal', 'AdjustmentsHorizontal', __iconNode);\n\nexport default IconAdjustmentsHorizontal;", "import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M12 8v4\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M12 16h.01\",\"key\":\"svg-2\"}]]\n\n/**\n * IconAlertCircle\n * @preview  - https://tabler.io/icons/icon/alert-circle\n * @see https://docs.tabler.io/icons/libraries/react - Documentation\n *\n */\nconst IconAlertCircle = createReactComponent('outline', 'alert-circle', 'AlertCircle', __iconNode);\n\nexport default IconAlertCircle;", "import createReactComponent from '../createReactComponent';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [[\"path\",{\"d\":\"M12 5l0 14\",\"key\":\"svg-0\"}],[\"path\",{\"d\":\"M18 13l-6 6\",\"key\":\"svg-1\"}],[\"path\",{\"d\":\"M6 13l6 6\",\"key\":\"svg-2\"}]]\n\n/**\n * IconArrowDown\n * @preview  - https://tabler.io/icons/icon/arrow-down\n * @see https://docs.tabler