UNPKG

@rdsaude/pulso-react-native-components

Version:

Biblioteca de componentes React Native do Pulso Design System da RD Saúde oferece componentes consistentes e de alto desempenho, alinhados com os padrões da RDSaúde. Ideal para desenvolver aplicações modernas e acessíveis.

1 lines 1.23 MB
{"version":3,"sources":["../../../node_modules/invariant/invariant.js","../src/components/theme-provider/index.tsx","../src/components/button/index.tsx","../src/components/button/button.styles.ts","../src/core/styled.ts","../src/hooks/use-theme.ts","../src/components/button/contexts/button-context.tsx","../src/components/button/utils/const.ts","../src/components/refresh/index.tsx","../src/components/refresh/hooks/use-refresh-variants.ts","../src/components/icon/index.tsx","../src/components/icon/components/dual-color/dual-color.styles.ts","../src/components/icon/components/dual-color/index.tsx","../src/components/icon/hooks/use-icon-props.ts","../src/components/button/hooks/use-button-props.tsx","../src/components/button/components/button-icon/index.tsx","../src/components/button/components/button-label/button-label.styles.ts","../src/utils/is-dev.ts","../src/utils/logger.ts","../src/utils/convert-percentage-to-number.ts","../src/components/button/components/button-label/index.tsx","../src/components/button-badge/components/basket/index.tsx","../src/components/button-badge/components/chat/index.tsx","../src/components/button-badge/components/notification/index.tsx","../src/components/button-badge/index.ts","../src/components/checkbox/index.tsx","../src/components/checkbox/checkbox.styles.ts","../src/components/checkbox/components/checkbox-label/checkbox.label.styles.ts","../src/components/checkbox/components/checkbox-label/index.tsx","../src/components/checkbox/components/helper-text/helper-text.styles.ts","../src/components/checkbox/components/helper-text/index.tsx","../src/components/checkbox/hooks/use-checkbox-variants.ts","../src/components/search-bar/index.tsx","../src/components/search-bar/components/button-back/index.tsx","../src/components/search-bar/components/button-barcode/index.tsx","../src/components/search-bar/components/button-microphone/index.tsx","../src/components/search-bar/search-bar.styles.ts","../src/components/search-bar/utils/index.ts","../src/components/radio/index.tsx","../src/components/radio/components/helper-text/helper-text.styles.ts","../src/components/radio/components/helper-text/index.tsx","../src/components/radio/components/radio-label/radio.label.styles.ts","../src/components/radio/components/radio-label/index.tsx","../src/components/radio/hooks/use-radio-variants.ts","../src/components/radio/radio.styles.ts","../src/components/link/index.tsx","../src/components/link/components/link-label/link-label.styles.ts","../src/components/link/components/link-label/index.tsx","../src/components/link/hooks/use-link-props.ts","../src/components/link/link.styles.ts","../src/components/option-menu/option-menu.tsx","../src/components/option-menu/option-menu.styles.ts","../src/components/option-menu/components/divider/index.tsx","../src/hooks/use-layout-observer.tsx","../src/hooks/layout/use-positioning-layout.ts","../src/hooks/layout/use-auto-position.ts","../src/hooks/layout/use-floating-position.ts","../src/utils/layout/position-enums.ts","../src/utils/layout/floating-position-utils.ts","../src/utils/layout/layout-utils.ts","../src/components/option-menu/components/footer/index.tsx","../src/components/option-menu/components/footer/footer.styles.ts","../src/components/option-menu/components/group/group.styles.ts","../src/components/option-menu/components/group/index.tsx","../src/components/option-menu/components/item/index.tsx","../src/components/option-menu/components/item/item.styles.ts","../src/components/option-menu/hooks/use-map-variants-to-state.ts","../src/components/option-menu/components/list/index.tsx","../src/components/option-menu/utils/is-item-element.ts","../src/utils/guid.ts","../src/components/helper-text/helper-text.styles.ts","../src/components/helper-text/index.tsx","../src/components/input-text/components/input-field/index.tsx","../src/components/input-text/components/input-field/input-field.styles.ts","../src/components/input-text/hooks/use-input-text-props.tsx","../src/components/input-text/contexts/input-text-context.tsx","../src/components/input-text/components/input-label/input-label.styles.ts","../src/components/input-text/components/input-label/index.tsx","../src/components/input-text/components/input-actions/index.tsx","../src/components/input-text/components/input-button/input-button.styles.ts","../src/components/input-text/components/input-button/index.tsx","../src/components/input-text/components/input-actions/input-actions.styles.ts","../src/components/input-text/components/input-icon/index.tsx","../src/components/input-text/components/input-helper-text/index.tsx","../src/components/input-text/index.tsx","../src/components/input-text/text-input.styles.tsx","../src/components/input-text/utils/const.ts","../src/components/rating/index.tsx","../src/components/rating/index.styles.ts","../src/components/content/content.tsx","../src/components/content/components/content-actions/content-actions.styles.ts","../src/components/content/components/content-actions/index.tsx","../src/components/content/components/content-actions-text/content-actions-text-styles.ts","../src/components/content/components/content-actions-text/index.tsx","../src/components/content/components/content-icon/index.tsx","../src/components/content/components/content-link/index.tsx","../src/components/content/components/content-subtitle/content-subtitlte.styles.ts","../src/components/content/components/content-subtitle/index.tsx","../src/components/content/components/content-title/content-titlte.styles.ts","../src/components/content/components/content-title/index.tsx","../src/components/content/content.styles.ts","../src/components/card-category/index.tsx","../src/components/card-category/card-category.styles.ts","../src/components/card-category/components/card-category-icon/index.tsx","../src/components/card-category/components/card-category-label/card-category.label.styles.ts","../src/components/card-category/components/card-category-label/index.tsx","../src/components/progress-indicator/index.tsx","../src/components/progress-indicator/progress-indicator.styles.ts","../src/components/input-select/input-select.tsx","../src/components/input-select/input-select.styles.ts","../src/components/input-select/components/input-select-dropdownlist/index.tsx","../src/components/input-select/components/input-select-dropdownlist/select-dropdownlist.styles.ts","../src/components/input-select/components/input-select-helpertext/select-helpertext.styles.ts","../src/components/input-select/components/input-select-helpertext/index.tsx","../src/components/input-select/components/input-select-field/select-field.styles.ts","../src/components/input-select/components/input-select-field/index.tsx","../src/components/input-select/components/input-select-item/index.tsx","../src/components/input-select/components/input-select-label/index.tsx","../src/components/input-select/components/input-select-label/select-label.styles.ts","../src/components/input-select/components/input-select-portal/index.tsx","../src/components/input-select/components/input-select-trigger/index.tsx","../src/components/input-select/components/input-select-trigger/select-trigger.styles.ts","../src/components/input-select/components/input-select-value/index.tsx","../src/components/input-select/components/input-select-value/select-value.styles.ts","../src/components/input-select/hooks/use-split-children.ts","../src/components/switch/index.tsx","../src/components/switch/components/switch-label/switch.label.styles.ts","../src/components/switch/components/switch-label/index.tsx","../src/components/switch/components/switch-refresh/switch-refresh.styles.ts","../src/components/switch/components/switch-refresh/index.tsx","../src/components/switch/components/switch-toggle/switch-toggle.styles.ts","../src/components/switch/components/switch-toggle/index.tsx","../src/components/switch/switch.styles.ts","../src/components/scrim/styles.ts","../src/components/scrim/index.tsx","../src/components/snackbar/snackbar.tsx","../src/components/snackbar/components/content/index.tsx","../src/components/snackbar/utils/format-description.ts","../src/components/snackbar/utils/format-title.ts","../src/components/snackbar/components/content/content.styles.ts","../src/components/snackbar/components/footer/footer.styles.ts","../src/components/snackbar/components/footer/index.tsx","../src/components/snackbar/utils/progress-indicator-mapper.ts","../src/components/snackbar/components/timer-bar/timer-bar.styles.ts","../src/components/snackbar/components/timer-bar/index.tsx","../src/components/snackbar/snackbar.styles.ts","../src/components/card-informative/card-informative.tsx","../src/components/card-informative/card-informative.styles.ts","../src/components/card-informative/components/card-informative-content/index.tsx","../src/components/card-informative/components/card-informative-title/card-informative-title.styles.ts","../src/components/card-informative/components/card-informative-title/index.tsx","../src/components/card-informative/components/card-informative-content/card-informative-content.styles.ts","../src/components/card-informative/components/card-informative-description/card-informative-description.styles.ts","../src/components/card-informative/components/card-informative-description/index.tsx","../src/components/card-informative/components/card-informative-icon/index.tsx","../src/components/card-informative/components/card-informative-icon/card-informative.icon.styles.ts","../src/components/chip/components/input/index.tsx","../src/components/chip/components/input/index.styles.ts","../src/components/chip/components/multi-filter/index.tsx","../src/components/chip/components/multi-filter/index.styles.ts","../src/components/chip/components/single-filter/index.tsx","../src/components/chip/components/single-filter/index.styles.ts","../src/components/chip/components/label/index.styles.ts","../src/components/chip/components/label/index.tsx","../src/components/chip/components/badge/index.styles.ts","../src/components/chip/components/badge/index.tsx","../src/components/chip/index.tsx","../src/components/tag/index.tsx","../src/components/tag/components/tag-icon/index.tsx","../src/components/tag/components/tag-label/tag.label.styles.ts","../src/components/tag/components/tag-label/index.tsx","../src/components/tag/tag.styles.ts","../src/components/accordion/accordion.tsx","../src/components/accordion/accordion.styles.ts","../src/components/accordion/components/content/content.styles.ts","../src/components/accordion/components/content/index.tsx","../src/components/accordion/components/header/index.tsx","../src/components/accordion/components/header/header.styles.ts","../src/components/accordion/components/item/index.tsx","../src/components/accordion/components/item/item.styles.ts","../src/components/modal/index.tsx","../src/components/modal/components/modal-body/modal-body.styles.ts","../src/components/modal/components/modal-body/index.tsx","../src/components/modal/components/modal-closable-button/index.tsx","../src/components/modal/components/modal-description/modal-description.styles.ts","../src/components/modal/components/modal-description/index.tsx","../src/components/modal/components/modal-footer/index.tsx","../src/components/modal/components/modal-footer/modal-footer.styles.ts","../src/components/modal/components/modal-header/modal-header.styles.ts","../src/components/modal/components/modal-header/index.tsx","../src/components/modal/components/modal-icon/index.tsx","../src/components/modal/components/modal-title/modal-title.styles.ts","../src/components/modal/components/modal-title/index.tsx","../src/components/modal/modal.styles.ts","../src/components/toast/toast.tsx","../src/components/toast/components/toast-description/toast.styles.ts","../src/components/toast/components/toast-description/index.tsx","../src/components/toast/components/toast-icon/index.tsx","../src/components/toast/toast.styles.ts","../src/components/input-multi-select/components/control/index.tsx","../src/components/input-multi-select/components/control/control.styles.ts","../src/components/input-multi-select/input-multi-select.context.ts","../src/components/input-multi-select/components/chip/index.tsx","../src/components/input-multi-select/components/control/use-control-interactions-size.ts","../src/components/input-multi-select/components/control/use-selected-options.ts","../src/components/input-multi-select/components/dropdown-list/index.tsx","../src/components/input-multi-select/components/dropdown-list/dropdown-list.styles.ts","../src/components/input-multi-select/components/helper-text/index.tsx","../src/components/input-multi-select/components/label/index.tsx","../src/components/input-multi-select/components/label/label.styles.ts","../src/components/input-multi-select/components/root/index.tsx","../src/components/input-multi-select/components/root/root.styles.ts","../src/components/input-multi-select/components/root/use-split-children.ts","../src/components/input-multi-select/input-multi-select-reducer.ts","../src/components/input-multi-select/components/portal/index.tsx","../src/components/input-multi-select/namespace.ts","../src/components/input-password/contexts/input-password-context.tsx","../src/components/input-password/index.tsx","../src/components/input-password/components/input-password-field/index.tsx","../src/components/input-password/components/input-password-field/input-password-field.styles.ts","../src/components/input-password/hooks/use-input-password-props.tsx","../src/components/input-password/components/input-password-label/input-password-label-styles.ts","../src/components/input-password/components/input-password-label/index.tsx","../src/components/input-password/components/input-password-actions/input-password-actions.styles.ts","../src/components/input-password/components/input-password-actions/index.tsx","../src/components/input-password/components/input-password-icon/index.tsx","../src/components/input-password/components/input-password-button/input-password-button.styles.ts","../src/components/input-password/components/input-password-button/index.tsx","../src/components/input-password/components/input-password-helper-text/index.tsx","../src/components/input-password/components/input-password-tag/input-password-tag.styles.ts","../src/components/input-password/components/input-password-tag/index.tsx","../src/components/input-password/input-password.styles.tsx","../src/components/input-password/utils/const.ts","../src/components/card-shape/index.tsx","../src/components/card-shape/card-shape.styles.ts","../src/components/input-counter/index.tsx","../src/components/input-counter/components/input-counter-button.tsx","../src/components/input-counter/input-counter.styles.ts","../src/components/bottom-navigation/index.tsx","../src/components/bottom-navigation/components/bottom-container/bottom-container.styles.ts","../src/components/bottom-navigation/components/bottom-container/index.tsx","../src/components/bottom-navigation/components/bottom-item/index.tsx","../src/components/bottom-navigation/components/bottom-item/bottom-item-styles.ts","../src/components/bottom-navigation/hooks/use-bottom-navigation.tsx","../src/components/stepper/index.tsx","../src/components/stepper/stepper.styles.ts","../src/components/logo/assets/drogasil/black.tsx","../src/components/logo/assets/drogasil/black-symbol.tsx","../src/components/logo/assets/drogasil/colored.tsx","../src/components/logo/assets/drogasil/colored-symbol.tsx","../src/components/logo/assets/drogasil/white.tsx","../src/components/logo/assets/drogasil/white-symbol.tsx","../src/components/logo/components/without-variants/without-variants.styles.ts","../src/components/logo/components/without-variants/index.tsx","../src/components/logo/components/drogasil/logos.tsx","../src/components/logo/components/drogasil/index.tsx","../src/components/logo/assets/pulso/black.tsx","../src/components/logo/assets/pulso/black-symbol.tsx","../src/components/logo/assets/pulso/colored.tsx","../src/components/logo/assets/pulso/colored-symbol.tsx","../src/components/logo/assets/pulso/white.tsx","../src/components/logo/assets/pulso/white-symbol.tsx","../src/components/logo/components/pulso/logos.tsx","../src/components/logo/components/pulso/index.tsx","../src/components/logo/assets/raia/black.tsx","../src/components/logo/assets/raia/black-symbol.tsx","../src/components/logo/assets/raia/colored.tsx","../src/components/logo/assets/raia/colored-symbol.tsx","../src/components/logo/assets/raia/white.tsx","../src/components/logo/assets/raia/white-symbol.tsx","../src/components/logo/components/raia/logos.tsx","../src/components/logo/components/raia/index.tsx","../src/components/logo/assets/rd-saude/black.tsx","../src/components/logo/assets/rd-saude/colored.tsx","../src/components/logo/assets/rd-saude/dark-green.tsx","../src/components/logo/assets/rd-saude/light-green.tsx","../src/components/logo/assets/rd-saude/white.tsx","../src/components/logo/assets/rd-saude/yellow.tsx","../src/components/logo/components/rd-saude/logos.tsx","../src/components/logo/components/rd-saude/index.tsx","../src/components/logo/assets/rd-saude-tagline/black.tsx","../src/components/logo/assets/rd-saude-tagline/colored.tsx","../src/components/logo/assets/rd-saude-tagline/dark-green.tsx","../src/components/logo/assets/rd-saude-tagline/light-green.tsx","../src/components/logo/assets/rd-saude-tagline/white.tsx","../src/components/logo/assets/rd-saude-tagline/yellow.tsx","../src/components/logo/components/rd-saude-tagline/logos.tsx","../src/components/logo/components/rd-saude-tagline/index.tsx","../src/components/logo/assets/univers/colored.tsx","../src/components/logo/assets/univers/light-orange.tsx","../src/components/logo/assets/univers/dark-orange.tsx","../src/components/logo/assets/univers/light-blue.tsx","../src/components/logo/assets/univers/dark-blue.tsx","../src/components/logo/assets/univers/colored-symbol.tsx","../src/components/logo/assets/univers/white-symbol.tsx","../src/components/logo/assets/univers/black-symbol.tsx","../src/components/logo/components/univers/logos.tsx","../src/components/logo/components/univers/index.tsx","../src/components/logo/logo.tsx","../src/components/list-item/list-item.tsx","../src/components/list-item/components/list-item-description/list-item-description.styles.ts","../src/components/list-item/components/list-item-description/index.tsx","../src/components/list-item/components/list-item-icon/index.tsx","../src/components/list-item/components/list-item-header/list-item-header.styles.ts","../src/components/list-item/components/list-item-header/index.tsx","../src/components/list-item/components/list-item-tag/index.tsx","../src/components/list-item/components/list-item-title/list-item-title.styles.ts","../src/components/list-item/components/list-item-title/index.tsx","../src/components/list-item/list-item.styles.ts","../src/components/typography/components/big-number.ts","../src/components/typography/components/body.ts","../src/components/typography/components/caption.ts","../src/components/typography/components/subtitle.ts","../src/components/typography/components/title.ts","../src/components/typography/index.tsx","../src/components/coachmark/index.tsx","../src/components/coachmark/coachmark.styles.ts","../src/components/coachmark/components/coachmark-content/coachmark-content.styles.ts","../src/components/coachmark/components/coachmark-content/index.tsx","../src/components/coachmark/components/coachmark-content/components/coachmark-header/coachmark-header.styles.ts","../src/components/coachmark/components/coachmark-content/components/coachmark-header/index.tsx","../src/components/coachmark/components/coachmark-content/components/coachmark-footer/coachmark-footer.styles.ts","../src/components/coachmark/components/coachmark-content/components/coachmark-footer/index.tsx","../src/components/coachmark/components/coachmark-content/components/coachmark-arrow/coachmark-arrow.styles.ts","../src/components/arrow-svg/index.tsx","../src/components/coachmark/components/coachmark-content/components/coachmark-arrow/index.tsx","../src/components/coachmark/components/coachmark-wrapper/coachmark-wrapper.styles.ts","../src/components/coachmark/components/coachmark-wrapper/index.tsx","../src/components/coachmark/hooks/useCoachmarkLayout.ts","../src/components/product-card/index.tsx","../src/components/product-card/components/action/action.styles.ts","../src/components/product-card/components/action/index.tsx","../src/components/product-card/components/benefitTag/benefitTag.styles.ts","../src/components/product-card/components/benefitTag/index.tsx","../src/components/product-card/components/card/card.styles.ts","../src/components/product-card/components/card/index.tsx","../src/components/product-card/components/on-sale-tag/on-sale.styles.ts","../src/components/product-card/components/on-sale-tag/index.tsx","../src/components/product-card/components/sponsored-tag/sponsored-tag.styles.ts","../src/components/product-card/components/sponsored-tag/index.tsx","../src/components/product-card/components/image/image.styles.ts","../src/components/product-card/components/image/index.tsx","../src/components/product-card/components/price/price.styles.ts","../src/components/product-card/components/price/index.tsx","../src/components/product-card/components/product-info/product-info.styles.ts","../src/components/product-card/components/product-info/index.tsx","../src/components/product-card/components/rating/index.tsx","../src/components/product-card/components/shipping/shipping.styles.ts","../src/components/product-card/components/shipping/index.tsx","../src/components/product-card/components/trade-tag/trade-tag.styles.ts","../src/components/product-card/components/trade-tag/index.tsx","../src/components/product-card/components/validate/validate.styles.ts","../src/components/product-card/components/validate/index.tsx","../src/components/product-card/product-card.styles.ts","../src/components/flags/flags.tsx","../src/components/popover/index.tsx","../src/components/popover/popover.styles.ts","../src/components/popover/components/popover-content/popover-content.styles.ts","../src/components/popover/components/popover-content/index.tsx","../src/components/popover/components/popover-header/popover-header.styles.ts","../src/components/popover/components/popover-header/index.tsx","../src/components/popover/components/popover-arrow/popover-arrow.styles.ts","../src/components/popover/components/popover-arrow/index.tsx","../src/components/popover/components/popover-trigger/popover-trigger.styles.ts","../src/components/popover/components/popover-trigger/index.tsx","../src/components/popover/hooks/usePopoverLayout.ts","../src/components/tooltip/index.tsx","../src/components/tooltip/components/tooltip-content/index.tsx","../src/components/tooltip/constants.ts","../src/components/tooltip/types/enums.ts","../src/components/tooltip/hooks/useLayout.ts","../src/components/tooltip/components/tooltip-content/components/tooltip-arrow/tooltip-arrow.styles.ts","../src/components/tooltip/components/tooltip-content/components/tooltip-arrow/index.tsx","../src/components/tooltip/components/tooltip-content/tooltip-content.styles.ts","../src/components/tooltip/components/tooltip-trigger/tooltip-trigger.styles.ts","../src/components/tooltip/components/tooltip-trigger/index.tsx","../src/components/tooltip/hooks/useTooltipLayout.tsx","../src/components/tooltip/hooks/useTooltipState.tsx","../src/components/tooltip/tooltip.styles.ts","../src/components/tooltip/hooks/useOptimalTooltipPosition.tsx","../src/components/review-compact/review-compact.styles.ts","../src/components/review-compact/index.tsx","../src/components/review-compact/components/review-count/review-count.styles.ts","../src/components/review-compact/components/review-count/index.tsx","../../../node_modules/expo-modules-core/src/index.ts","../../../node_modules/expo-modules-core/src/EventEmitter.ts","../../../node_modules/expo-modules-core/src/NativeModulesProxy.ts","../../../node_modules/expo-modules-core/src/errors/CodedError.ts","../../../node_modules/expo-modules-core/src/Platform.ts","../../../node_modules/expo-modules-core/src/environment/browser.ts","../../../node_modules/expo-modules-core/src/sweet/NativeErrorManager.ts","../../../node_modules/expo-modules-core/src/sweet/setUpErrorManager.fx.ts","../../../node_modules/expo-modules-core/src/requireNativeModule.ts","../../../node_modules/expo-constants/src/Constants.ts","../../../node_modules/expo-constants/src/Constants.types.ts","../../../node_modules/expo-constants/src/ExponentConstants.ts","../src/components/bottom-sheets/index.tsx","../src/components/bottom-sheets/bottom-sheets.styles.tsx","../src/components/bottom-sheets/components/bottom-sheets-back-button/index.tsx","../src/components/bottom-sheets/components/bottom-sheets-right-button/bottom-sheets-right-button.styles.ts","../src/components/bottom-sheets/components/bottom-sheets-right-button/index.tsx","../src/components/bottom-sheets/components/bottom-sheets-header/index.tsx","../src/components/bottom-sheets/components/bottom-sheets-description/bottom-sheets-description.styles.ts","../src/components/bottom-sheets/components/bottom-sheets-description/index.tsx","../src/components/bottom-sheets/components/bottom-sheets-title/bottom-sheets-title.styles.ts","../src/components/bottom-sheets/components/bottom-sheets-title/index.tsx","../src/components/bottom-sheets/components/bottom-sheets-header/bottom-sheets-header.styles.ts","../src/components/bottom-sheets/components/bottom-sheets-container/bottom-sheets-container.styles.ts","../src/components/bottom-sheets/components/bottom-sheets-container/index.tsx","../src/components/bottom-sheets/utils/const.ts","../src/components/input-credit-card/components/input-credit-card-field/index.tsx","../src/components/input-credit-card/components/input-credit-card-field/input-credit-card-field.styles.ts","../src/components/input-credit-card/hooks/use-input-credit-card-props.tsx","../src/components/input-credit-card/contexts/input-credit-card-context.tsx","../src/components/input-credit-card/components/input-credit-card-label/input-credit-card-label.styles.ts","../src/components/input-credit-card/components/input-credit-card-label/index.tsx","../src/components/input-credit-card/components/input-credit-card-actions/index.tsx","../src/components/input-credit-card/components/input-credit-card-button/input-credit-card-button.styles.ts","../src/components/input-credit-card/components/input-credit-card-button/index.tsx","../src/components/input-credit-card/components/input-credit-card-actions/input-credit-card-actions.styles.ts","../src/components/input-credit-card/components/input-credit-card-helper-text/index.tsx","../src/components/input-credit-card/components/input-credit-card-flags/index.tsx","../src/components/input-credit-card/index.tsx","../src/components/input-credit-card/input-credit-card.styles.tsx","../src/components/input-credit-card/utils/const.ts","../src/components/product-header/index.tsx","../src/components/product-header/components/product-header-first-button/index.tsx","../src/components/product-header/components/product-header-second-button/index.tsx","../src/components/product-header/components/product-header-tag/index.tsx","../src/components/product-header/components/product-header-title/product-header-title.styles.ts","../src/components/product-header/components/product-header-title/index.tsx","../src/components/product-header/components/product-header-product-info/product-header-product-info.styles.ts","../src/components/product-header/components/product-header-product-info/index.tsx","../src/components/product-header/components/product-header-medicine-info/product-header-medicine-info.styles.ts","../src/components/product-header/components/product-header-medicine-info/index.tsx","../src/components/product-header/components/product-header-image/product-header-image.styles.ts","../src/components/product-header/components/product-header-image/index.tsx","../src/components/product-header/components/product-header-review-compact/index.tsx","../src/components/product-header/utils/truncate.ts","../src/components/product-header/components/product-header-review-compact/product-header-product-review-compact.styles.ts","../src/components/product-header/product-header.styles.tsx"],"sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar NODE_ENV = process.env.NODE_ENV;\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","import type React from 'react'\nimport { createContext, useMemo } from 'react'\n\nimport {\n DROGASIL_TOKENS,\n GLOBALS_TOKENS,\n PRIME_TOKENS,\n RAIA_TOKENS,\n RDSAUDESISTEMAS_TOKENS,\n SUBSCRIPTION_TOKENS,\n type Themes,\n rnFontFamily,\n} from '@raiadrogasil/pulso-design-tokens'\n\ntype TThemeProviderProps = {\n theme: Themes\n children: React.ReactNode\n}\n\ntype ColorsTokens =\n | typeof DROGASIL_TOKENS\n | typeof RAIA_TOKENS\n | typeof RDSAUDESISTEMAS_TOKENS\n | typeof SUBSCRIPTION_TOKENS\n | typeof PRIME_TOKENS\n\ntype BaseTokens = typeof GLOBALS_TOKENS\n\ntype DesignTokens = ColorsTokens &\n BaseTokens & {\n fontFamily: typeof rnFontFamily\n }\n\nexport const ThemeContext = createContext({} as DesignTokens)\n\nexport function ThemeProvider({ theme, children }: TThemeProviderProps) {\n const currentTheme = useMemo(() => {\n const mapThemes = {\n rdsaudesistemas: RDSAUDESISTEMAS_TOKENS,\n drogasil: DROGASIL_TOKENS,\n raia: RAIA_TOKENS,\n subscription: SUBSCRIPTION_TOKENS,\n prime: PRIME_TOKENS,\n } as const\n\n return {\n // @ts-ignore\n ...mapThemes[theme],\n fontFamily: {\n ...rnFontFamily,\n },\n ...GLOBALS_TOKENS,\n }\n }, [theme]) satisfies DesignTokens\n\n return (\n <ThemeContext.Provider value={currentTheme}>\n {children}\n </ThemeContext.Provider>\n )\n}\n\nexport function withThemeProvider<T extends {}>(\n Component: React.ComponentType<T>,\n variant: Themes\n) {\n return function ThemedComponent(componentProps: T) {\n return (\n <ThemeProvider theme={variant}>\n <Component {...componentProps} />\n </ThemeProvider>\n )\n }\n}\n","import React, { useState } from 'react'\n\nimport type { IButtonProps } from './types'\n\nimport * as Comp from './button.styles'\n\nimport { ButtonProvider } from './contexts/button-context'\n\nimport { SCOPE_WARNING_MESSAGE } from './utils/const'\n\nimport { Refresh } from '~/components/refresh'\nimport { ButtonIcon, ButtonLabel } from './components'\n\nimport type { GestureResponderEvent } from 'react-native'\nimport { isDEV, logger } from '~/utils'\n\nconst ButtonRoot = React.forwardRef<\n React.ElementRef<typeof Comp.Root>,\n IButtonProps\n>(\n (\n {\n children,\n variant = 'brand-primary',\n size = 'md',\n full,\n disabled,\n loading,\n onPressIn,\n onPressOut,\n ...props\n },\n ref\n ) => {\n const [isPressed, setIsPressed] = useState(false)\n\n const renderInternalComponents = React.Children.map(children, child => {\n if (!React.isValidElement(child)) return\n\n if (child.type === ButtonLabel || child.type === ButtonIcon) {\n return child\n }\n\n if (isDEV()) {\n logger.warning(SCOPE_WARNING_MESSAGE)\n return\n }\n })\n\n const isDisabled = !!disabled\n const isLoading = !!loading\n\n const refreshColor = variant === 'brand-primary' ? 'white' : 'neutral'\n\n const accessibilityProperties = {\n role: 'button',\n 'aria-disabled': isDisabled,\n accessible: true,\n } as const\n\n const isOnlyIcon = renderInternalComponents\n ? renderInternalComponents?.length > 1\n ? false\n : renderInternalComponents[0].type === ButtonIcon\n : false\n\n const componentProperties = {\n size,\n variant,\n full,\n disabled: isDisabled || isLoading,\n hasPressed: isPressed,\n hasLoading: isLoading,\n hasDisabled: isDisabled && !isLoading,\n hasFull: full,\n hasOnlyIcon: isOnlyIcon,\n } as const\n\n function handlePressIn(event: GestureResponderEvent) {\n setIsPressed(true)\n onPressIn?.(event)\n }\n\n function handlePressOut(event: GestureResponderEvent) {\n setIsPressed(false)\n onPressOut?.(event)\n }\n\n return (\n <ButtonProvider {...componentProperties}>\n <Comp.Root\n ref={ref}\n {...props}\n {...componentProperties}\n {...accessibilityProperties}\n onPressIn={handlePressIn}\n onPressOut={handlePressOut}\n >\n {isLoading ? (\n <Refresh size=\"sm\" color={refreshColor} />\n ) : (\n renderInternalComponents?.slice(0, 3)\n )}\n </Comp.Root>\n </ButtonProvider>\n )\n }\n)\n\nButtonRoot.displayName = 'Button'\n\nexport const Button = {\n Root: ButtonRoot,\n Label: ButtonLabel,\n Icon: ButtonIcon,\n}\n\nexport type { IButtonProps }\n","import { Pressable } from 'react-native'\n\nimport { styled } from '~/utils/styled'\n\nexport const Root = styled(Pressable, theme => {\n return {\n base: {\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n\n gap: theme.spacingInlineTwopulse,\n\n borderRadius: theme.borderRadiusPill,\n },\n variants: {\n variant: {\n 'brand-primary': {\n borderWidth: theme.borderWidthNone,\n borderColor: theme.colorActionBorderBrandPrimaryEnabled,\n\n backgroundColor: theme.colorActionFillBrandPrimaryEnabled,\n },\n 'neutral-secondary': {\n borderWidth: theme.borderWidthQuarterpulse,\n borderColor: theme.colorActionBorderNeutralSecondaryEnabled,\n\n backgroundColor: theme.colorActionFillNeutralSecondaryEnabled,\n },\n 'neutral-tertiary': {\n borderWidth: theme.borderWidthNone,\n borderColor: theme.colorActionBorderNeutralTertiaryEnabled,\n\n backgroundColor: theme.colorActionFillNeutralTertiaryEnabled,\n },\n },\n size: {\n md: {\n minWidth: theme.sizingMedium,\n height: theme.sizingMedium,\n\n paddingHorizontal: theme.paddingInsetFourpulse,\n },\n ml: {\n minWidth: theme.sizingMediumlarge,\n height: theme.sizingMediumlarge,\n\n paddingHorizontal: theme.paddingInsetFourpulse,\n },\n lg: {\n minWidth: theme.sizingLarge,\n height: theme.sizingLarge,\n\n paddingHorizontal: theme.paddingInsetFivepulse,\n },\n xl: {\n minWidth: theme.sizingExtralarge,\n height: theme.sizingExtralarge,\n\n paddingHorizontal: theme.paddingInsetSixpulse,\n },\n },\n hasFull: {\n true: {\n width: '100%',\n },\n },\n hasPressed: {\n true: {},\n },\n hasLoading: {\n true: {\n paddingHorizontal: theme.paddingInsetNone,\n },\n },\n hasOnlyIcon: {\n true: {\n paddingHorizontal: theme.paddingInsetNone,\n },\n },\n hasDisabled: {\n true: {},\n },\n },\n compoundVariants: [\n {\n variants: {\n variant: 'brand-primary',\n hasPressed: true,\n },\n css: {\n borderColor: theme.colorActionBorderBrandPrimaryPressed,\n backgroundColor: theme.colorActionFillBrandPrimaryPressed,\n },\n },\n {\n variants: {\n variant: 'brand-primary',\n hasDisabled: true,\n },\n css: {\n borderWidth: theme.borderWidthNone,\n borderColor: theme.colorActionBorderBrandPrimaryDisabled,\n\n backgroundColor: theme.colorActionFillBrandPrimaryDisabled,\n },\n },\n {\n variants: {\n variant: 'neutral-secondary',\n hasPressed: true,\n },\n css: {\n borderColor: theme.colorActionBorderNeutralSecondaryPressed,\n backgroundColor: theme.colorActionFillNeutralSecondaryPressed,\n },\n },\n {\n variants: {\n variant: 'neutral-secondary',\n hasDisabled: true,\n },\n css: {\n borderColor: theme.colorActionBorderNeutralSecondaryDisabled,\n backgroundColor: theme.colorActionFillNeutralSecondaryDisabled,\n },\n },\n {\n variants: {\n variant: 'neutral-tertiary',\n hasPressed: true,\n },\n css: {\n borderColor: theme.colorActionBorderNeutralTertiaryPressed,\n backgroundColor: theme.colorActionFillNeutralTertiaryPressed,\n },\n },\n ],\n }\n})\n","import {\n type ComponentProps,\n type ComponentType,\n createElement,\n forwardRef,\n} from 'react'\nimport {\n type ImageStyle,\n StyleSheet,\n type TextStyle,\n type ViewStyle,\n} from 'react-native'\n\nimport { useTheme } from '~/hooks/use-theme'\n\ntype TCSSProperties = ViewStyle | TextStyle | ImageStyle\n\ntype TBooleanVariants = {\n true?: unknown\n false?: unknown\n}\n\ntype TVariantStyleData = Record<string, TCSSProperties>\ntype TVariants = Record<string, TVariantStyleData>\n\ntype TCompoundVariant<V extends TVariants> = {\n variants: Partial<{\n [K in keyof V]: V[K] extends TBooleanVariants ? boolean : keyof V[K]\n }>\n css: TCSSProperties\n}\n\ntype TStyledProperties<V extends TVariants> = {\n base: TCSSProperties\n variants?: V\n compoundVariants?: TCompoundVariant<V>[]\n}\n\ntype TStyledPropertiesWithArgs<V extends TVariants> = (\n theme: ReturnType<typeof useTheme>\n) => TStyledProperties<V>\n\nexport function styled<\n // biome-ignore lint/suspicious/noExplicitAny:\n C extends ComponentType<any>,\n V extends TVariants = Record<string, never>,\n>(Comp: C, opts: TStyledProperties<V> | TStyledPropertiesWithArgs<V>) {\n type TVariantProps = V extends Record<string, never>\n ? {}\n : {\n [K in keyof V]?: V[K] extends TBooleanVariants ? boolean : keyof V[K]\n }\n\n type TComponentProps = ComponentProps<C> & TVariantProps\n\n // biome-ignore lint/suspicious/noExplicitAny:\n const StyledComponent = forwardRef<any, TComponentProps>((props, ref) => {\n const theme = useTheme()\n\n const {\n base,\n variants = {} as V,\n compoundVariants = [],\n } = typeof opts === 'function' ? opts(theme) : opts\n\n const mergedVariantStyles = getMergedVariantStyles<V>(\n props,\n variants,\n compoundVariants\n )\n\n const styleSheet = createStyleSheet(base, mergedVariantStyles)\n\n const finalStyles = [...Object.values(styleSheet), props.style].filter(\n Boolean\n )\n\n return createElement<C>(Comp, {\n ...props,\n ref,\n style: finalStyles,\n })\n })\n\n StyledComponent.displayName = `Styled${Comp.displayName || Comp.name || 'Component'}`\n\n return StyledComponent\n}\n\nfunction createStyleSheet(\n base: TCSSProperties,\n mergedVariantStyles: TCSSProperties[]\n) {\n return StyleSheet.create({\n base,\n ...mergedVariantStyles.reduce((acc, variantStyle, idx) => {\n const variantKey = `variant-${idx + 1}`\n acc[variantKey] = variantStyle\n return acc\n }, {} as TVariantStyleData),\n })\n}\n\n// Função que combina os estilos base com os estilos de variantes e compostos\nfunction getMergedVariantStyles<V extends TVariants>(\n props: Record<string, unknown>,\n variants: V,\n compoundVariants: TCompoundVariant<V>[]\n): TCSSProperties[] {\n const mergedVariantStyles: TCSSProperties[] = []\n\n if (variants && Object.keys(variants).length > 0) {\n addVariantStyles(props, variants, mergedVariantStyles)\n }\n\n addCompoundVariantStyles(props, compoundVariants, mergedVariantStyles)\n\n return mergedVariantStyles\n}\n\nfunction addVariantStyles<V extends TVariants>(\n props: Record<string, unknown>,\n variants: V,\n mergedVariantStyles: TCSSProperties[]\n) {\n for (const variantKey in variants) {\n if (Object.prototype.hasOwnProperty.call(variants, variantKey)) {\n const variantValue = props[variantKey] as keyof V[typeof variantKey]\n\n if (variantValue && variants[variantKey]) {\n const variantStyleData = variants[variantKey][variantValue]\n\n if (variantStyleData) {\n mergedVariantStyles.push(variantStyleData)\n }\n }\n }\n }\n}\n\n// Função que adiciona os estilos compostos\nfunction addCompoundVariantStyles<V extends TVariants>(\n props: Record<string, unknown>,\n compoundVariants: TCompoundVariant<V>[],\n mergedVariantStyles: TCSSProperties[]\n) {\n for (const compound of compoundVariants) {\n const applyCompound = Object.keys(compound.variants).every(\n variantKey => props[variantKey] === compound.variants[variantKey]\n )\n\n if (applyCompound) {\n mergedVariantStyles.push(compound.css)\n }\n }\n}\n","import { useContext } from 'react'\n\nimport { ThemeContext } from '~/components/theme-provider'\n\n/**\n * Hook personalizado para acessar o contexto do tema da aplicação.\n */\nexport function useTheme() {\n const context = useContext(ThemeContext)\n\n if (!context) {\n throw new Error(\n 'useTheme deve ser usado dentro de um ThemeProvider do Pulso.'\n )\n }\n\n return context\n}\n","import { createContext } from 'react'\n\nimport type { IButtonProps } from '../types'\n\ninterface ButtonPropsProviderProps extends IButtonProps {\n children: React.ReactNode\n}\n\nexport const ButtonContext = createContext({} as Omit<IButtonProps, 'children'>)\nconst { Provider } = ButtonContext\n\nexport function ButtonProvider({\n children,\n ...props\n}: ButtonPropsProviderProps) {\n return <Provider value={props}>{children}</Provider>\n}\n","export const SCOPE_WARNING_MESSAGE =\n 'The internal components of the Button must be its own elements. For more information, see the documentation.'\n","import { ActivityIndicator } from 'react-native'\nimport { useRefreshVariants } from './hooks'\nimport type { TRefreshProps } from './types'\n\nexport const Refresh = ({ color, size, testID }: TRefreshProps) => {\n const { refreshSizeMapping, refreshColorMapping } = useRefreshVariants()\n\n return (\n <ActivityIndicator\n color={refreshColorMapping[color]}\n size={refreshSizeMapping[size]}\n testID={testID}\n />\n )\n}\n\nexport type { TRefreshProps }\n","import { useTheme } from '~/hooks/use-theme'\n\nimport type { TRefreshColors, TRefreshSizes } from '../types'\n\nexport const useRefreshVariants = () => {\n const theme = useTheme()\n\n const refreshSizeMapping: Record<TRefreshSizes, number> = {\n sm: theme.sizingSmall,\n md: theme.sizingMedium,\n lg: theme.sizingLarge,\n }\n\n const refreshColorMapping: Record<TRefreshColors, string> = {\n brand: theme.colorActionFillBrandPrimaryEnabled,\n neutral: theme.colorTextNeutralReadonly,\n black: theme.colorTextNeutralDefault,\n white: theme.colorTextNeutralInverse,\n }\n\n return {\n refreshSizeMapping,\n refreshColorMapping,\n }\n}\n","import { View } from 'react-native'\n\nimport { icoMoonConfig } from '@raiadrogasil/pulso-icons'\n\nimport Svg, { Path } from '@rd-core-svg/svg'\nimport IcoMoon from 'react-icomoon'\n\nimport type {\n IconNameBullet,\n IconNameMulticolor,\n TIconDualColorsProps,\n TIconProps,\n} from './types'\n\nimport { IconDualColor } from './components/dual-color'\nimport { useIconProps } from './hooks/use-icon-props'\n\nconst Icon = ({\n size = 'medium',\n color,\n symbol = 'rdicon-default',\n testID,\n}: TIconProps) => {\n const { size: iconSize, color: iconColor } = useIconProps({ size, color })\n\n const iconSymbol = symbol.replace('rdicon-', '')\n\n const iconProps = {\n size: iconSize,\n color: iconColor,\n icon: iconSymbol,\n }\n\n return (\n <View testID={testID}>\n <IcoMoon\n {...iconProps}\n SvgComponent={Svg}\n PathComponent={Path}\n iconSet={icoMoonConfig}\n native\n />\n </View>\n )\n}\n\nIcon.Dual = IconDualColor\n\nexport {\n Icon,\n type TIconProps,\n type TIconDualColorsProps,\n type IconNameBullet,\n type IconNameMulticolor,\n}\n","import { View } from 'react-native'\nimport { styled } from '~/core/styled'\n\nexport const Group = styled(View, theme => {\n return {\n base: {},\n variants: {},\n }\n})\n\nexport const Container = styled(View, theme => {\n return {\n base: {\n position: 'absolute',\n },\n variants: {},\n }\n})\n","import { Icon } from '../..'\nimport type { TIconDualColorsProps } from '../../types'\nimport * as Comp from './dual-color.styles'\n\nexport const IconDualColor = (props: TIconDualColorsProps) => {\n const { symbols, colors, size, testID } = props\n return (\n <Comp.Group testID={testID}>\n <Icon symbol={symbols[0]} color={colors[0]} size={size} />\n <Comp.Container>\n <Icon symbol={symbols[1]} color={colors[1]} size={size} />\n </Comp.Container>\n </Comp.Group>\n )\n}\n","import { useTheme } from '~/hooks/use-theme'\nimport type { TIconProps, TIconSizes } from '../types'\n\nexport function useIconProps({\n size = 'small',\n color = 'colorTextNeutralDefault',\n}: Omit<TIconProps, 'symbol'>) {\n const theme = useTheme()\n\n const iconSizeMapping: Record<TIconSizes, number> = {\n tiny: theme.sizingTiny,\n 'extra-small': theme.sizingExtrasmall,\n small: theme.sizingSmall,\n medium: theme.sizingMedium,\n }\n\n const iconColorMapping = theme[color]\n\n return {\n size: iconSizeMapping[size],\n color: iconColorMapping,\n }\n}\n","import { useContext } from 'react'\n\nimport { ButtonContext } from '../contexts/button-context'\n\nexport function useButtonProps() {\n const props = useContext(ButtonContext)\n return props\n}\n","import { Icon, type TIconProps } from '~/components/icon'\n\nimport type { TButtonSizes, TButtonVariants } from '../../types'\n\nimport { useButtonProps } from '../../hooks/use-button-props'\nimport { useMemo } from 'react'\nimport { View } from 'react-native'\n\ninterface IButtonIconProps extends Pick<TIconProps, 'symbol'> {\n iconColor?: TIconProps[\"color\"]\n testID?: string\n}\n\nexport function ButtonIcon({ iconColor, symbol, testID }: IButtonIconProps) {\n const { variant = 'brand-primary', size = 'md', disabled } = useButtonProps()\n\n const isDisabled = !!disabled\n\n const iconColorMapping: Record<TButtonVariants, TIconProps['color']> = {\n 'brand-primary': 'colorTextNeutralInverse',\n 'neutral-secondary': 'colorTextNeutralDefault',\n 'neutral-tertiary': 'colorTextNeutralDefault',\n }\n\n const iconSizeMapping: Record<TButtonSizes, TIconProps['size']> = {\n md: 'extra-small',\n ml: 'small',\n lg: 'small',\n xl: 'small',\n }\n\n const color = useMemo(() => {\n if (isDisabled) return \"colorTextNeutralDisabled\"\n if (iconColor) return iconColor\n\n return iconColorMapping[variant]\n\n }, [isDisabled, variant])\n\n return (\n <View style={{ position: \"absolute\" }}>\n <Icon\n symbol={symbol}\n size={iconSizeMapping[size]}\n color={color}\n testID={testID}\n />\n </View>\n )\n}\n","import { Text } from 'react-native'\n\nimport { convertPercentageToNumber, styled } from '~/utils'\n\nexport const Label = styled(Text, theme => {\n return {\n base: {\n fontFamily: theme.fontFamily.bold,\n letterSpacing: convertPercentageToNumber(theme.letterSpacingDefault),\n },\n variants: {\n variant: {\n 'brand-primary': {\n color: theme.colorTextNeutralInverse,\n },\n 'neutral-secondary': {\n color: theme.colorTextNeutralDefault,\n },\n 'neutral-tertiary': {\n color: theme.colorTextNeutralDefault,\n },\n },\n size: {\n md: {\n fontSize: theme.fontSizeThreepulse,\n },\n ml: {\n fontSize: theme.fontSizeThreeandhalfpulse,\n },\n lg: {\n fontSize: theme.fontSizeThreeandhalfpulse,\n },\n xl: {\n fontSize: theme.fontSizeThreeandhalfpulse,\n },\n },\n hasDisabled: {\n true: {\n color: theme.colorTextNeutralDisabled,\n },\n },\n },\n }\n})\n","export function isDEV() {\n return __DEV__\n}\n","export const logger = {\n warning(log: string)