@agrada_digital/pbm 0.0.122 → 0.0.124

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/schema/validation-schema.ts","../src/components/UI/Button/index.tsx","../src/libs/zustand/usePBM.tsx","../src/components/Form/index.tsx","../src/libs/zustand/useModal.tsx","../src/utils/formaters.ts","../src/services/lookup-consumer.ts","../src/services/helper.ts","../src/components/UI/Icons/index.tsx","../src/components/Header/index.tsx","../src/components/UI/Loading/index.tsx","../src/components/UI/Container/index.tsx","../src/components/UI/Title/index.tsx","../src/components/BenefitsTable/index.tsx","../src/components/BenefitsTable/Item.tsx","../src/utils/approved-code.ts","../src/components/UI/Text/index.tsx","../src/components/SecurityNumberInvalid/index.tsx","../src/components/SecurityNumberRegitered/index.tsx","../src/components/Errors/ErrorToApplyBenefits.tsx","../src/libs/zustand/useError.tsx","../src/components/Modals/CustomerNotRegistered/index.tsx","../src/libs/zustand/usePBMForm.tsx","../src/components/Modals/CustomerNotRegistered/StepPersonalDataForm.tsx","../src/components/Modals/CustomerNotRegistered/Shared/FieldWrapper.tsx","../src/components/Modals/CustomerNotRegistered/Shared/DisabledInputClass.ts","../src/components/Modals/CustomerNotRegistered/Shared/InputClass.ts","../src/components/Modals/CustomerNotRegistered/Shared/StepActions.tsx","../src/utils/mappingFormStep.ts","../src/components/Modals/CustomerNotRegistered/StepAddressForm.tsx","../src/services/lookup-postal-code.ts","../src/components/Modals/CustomerNotRegistered/StepGenderForm.tsx","../src/components/Modals/CustomerNotRegistered/StepDoctorForm.tsx","../src/utils/ufMapping.ts","../src/components/Modals/CustomerNotRegistered/StepAcceptancesForm.tsx","../src/components/Modals/CustomerNotRegistered/Shared/CheckRow.tsx","../src/services/enable-discount.ts","../src/services/activate.ts","../src/components/Modals/CustomerNotRegistered/Shared/StepProgress.tsx","../src/components/Modals/CustomerNotRegistered/Shared/SuccessScreen.tsx","../src/components/UI/Link/index.tsx","../src/utils/getParams.ts","../src/components/Modals/ShopperIsNotAuthenticated.tsx","../src/PBM.tsx","../src/hooks/useAppStartup.tsx","../src/services/authorization.ts","../src/libs/zustand/useTheme.tsx","../src/services/load-products-table.ts","../src/utils/cleanupCacheTimestamp.ts","../src/services/product.ts"],"sourcesContent":["// Estilos - importa CSS escopado para evitar conflitos\nimport './pbm-scoped.css';\n\n// Componente Principal\nexport { default as PBM } from \"./PBM\";\n\n// Tipos\nexport type { PBMProps } from \"./types/globals\";\nexport type { PBMStore } from \"./libs/zustand/usePBM\";\nexport type { PBMTheme } from \"./types/globals\";\n\n// Hooks\nexport { usePBMStore } from \"./libs/zustand/usePBM\"; \n","import { z } from \"zod\";\n\nexport const validationSchema = z.object({\n securityNumber: z\n .string({\n required_error: 'CPF é obrigatório.',\n })\n .refine((doc) => {\n const replacedDoc = doc.replace(/\\D/g, '');\n return replacedDoc.length >= 11;\n }, 'CPF deve conter no mínimo 11 caracteres.')\n .refine((doc) => {\n const replacedDoc = doc.replace(/\\D/g, '');\n return !!Number(replacedDoc);\n }, 'CPF deve conter apenas números.'),\n\n coupon: z.string({ required_error: 'Cupom / ID do Cartão obrigatório.'}).optional()\n});\n\nexport type validationSchemaType = z.infer<typeof validationSchema>","import classNames from \"classnames\";\nimport React, { ButtonHTMLAttributes } from \"react\";\n\ninterface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: React.ReactNode;\n}\n\nfunction Button(props: ButtonProps) {\n return (\n <button\n {...props}\n className={classNames(\n \"w-3xs cursor-pointer h-10 rounded-lg text-white text-sm font-semibold transition-colors\",\n props.className\n )}\n style={{ ...props.style }}\n >\n {props.children}\n </button>\n );\n}\n\nexport default Button;\n","import { createStore, StateCreator, StoreApi } from \"zustand\";\nimport { useStore } from \"zustand/react\";\nimport { IProduct, usePBMTypes } from \"../../types/globals\";\n\nexport interface PBMStore extends usePBMTypes {\n setSecurityNumber: (securityNumber: string) => void;\n setRequestId: (requestId: string) => void;\n setState: (state: usePBMTypes[\"state\"]) => void;\n setAvailableDiscountSelected: (\n availableDiscount: usePBMTypes[\"availableDiscountSelected\"],\n ) => void;\n setTargetProduct: (targetProduct: usePBMTypes[\"targetProduct\"]) => void;\n setUrlAcceptTerms: (urlAcceptTerms: usePBMTypes[\"urlAcceptTerms\"]) => void;\n setUrlRegisterIndustry: (\n urlRegisterIndustry: usePBMTypes[\"urlRegisterIndustry\"],\n ) => void;\n setIsAuthenticatedShopper: (\n isAuthenticatedShopper: usePBMTypes[\"isAuthenticatedShopper\"],\n ) => void;\n setCustomLoginUrl: (customLoginUrl: usePBMTypes[\"customLoginUrl\"]) => void;\n setCardID: (cardID: usePBMTypes[\"cardID\"]) => void;\n setBenefitsEnabled: (benefitsEnabled: boolean) => void;\n setBenefitsList: (benefitsList: usePBMTypes[\"benefitsList\"]) => void;\n}\n\n// Tipo apenas com os getters (estado readonly)\nexport type PBMStoreReadonly = Omit<\n PBMStore,\n | \"setSecurityNumber\"\n | \"setState\"\n | \"setAvailableDiscountSelected\"\n | \"setTargetProduct\"\n | \"setUrlAcceptTerms\"\n | \"setUrlRegisterIndustry\"\n | \"setBenefitsEnabled\"\n>;\n\nconst initialPBMState: usePBMTypes = {\n securityNumber: \"\",\n requestId: \"\",\n cardID: \"\",\n state: \"isEmpty\",\n availableDiscountSelected: {\n quantity: 0,\n discount: {\n unit: 0,\n total: 0,\n },\n totalPrice: 0,\n grossPrice: 0,\n },\n benefitsEnabled: true,\n benefitsList: null,\n targetProduct: null,\n campaign: \"pbm_campaign\",\n isAuthenticatedShopper: false,\n customLoginUrl: \"/login\",\n};\n\nconst createPBMStore: StateCreator<PBMStore> = (set) => ({\n ...initialPBMState,\n\n setSecurityNumber: (securityNumber: string) => set({ securityNumber }),\n setRequestId: (requestId: string) => set({ requestId }),\n setState: (state: usePBMTypes[\"state\"]) => set({ state }),\n setTargetProduct: (targetProduct: usePBMTypes[\"targetProduct\"]) =>\n set({ targetProduct }),\n setAvailableDiscountSelected: (\n availableDiscount: usePBMTypes[\"availableDiscountSelected\"],\n ) => set({ availableDiscountSelected: availableDiscount }),\n setUrlAcceptTerms: (urlAcceptTerms: usePBMTypes[\"urlAcceptTerms\"]) =>\n set({ urlAcceptTerms: urlAcceptTerms }),\n setUrlRegisterIndustry: (\n urlRegisterIndustry: usePBMTypes[\"urlRegisterIndustry\"],\n ) => set({ urlRegisterIndustry: urlRegisterIndustry }),\n setIsAuthenticatedShopper: (\n isAuthenticatedShopper: usePBMTypes[\"isAuthenticatedShopper\"],\n ) => set({ isAuthenticatedShopper: isAuthenticatedShopper }),\n setCustomLoginUrl: (customLoginUrl: usePBMTypes[\"customLoginUrl\"]) =>\n set({ customLoginUrl: customLoginUrl }),\n setCardID: (cardID: usePBMTypes[\"cardID\"]) => set({ cardID: cardID }),\n setBenefitsEnabled: (benefitsEnabled: boolean) =>\n set({ benefitsEnabled: benefitsEnabled }),\n setBenefitsList: (benefitsList: usePBMTypes[\"benefitsList\"]) =>\n set({ benefitsList: benefitsList }),\n});\n\n// Store completa (uso interno na biblioteca)\nexport const pbmStore: StoreApi<PBMStore> =\n createStore<PBMStore>(createPBMStore);\n\n// Cria uma versão somente leitura da store para exposição pública\nexport const createReadonlyStore = (): StoreApi<PBMStoreReadonly> => {\n return {\n getState: () => {\n const fullState = pbmStore.getState();\n // Remove os setters do estado retornado\n const {\n setSecurityNumber: _setSecurityNumber,\n setState: _setState,\n setAvailableDiscountSelected: _setAvailableDiscountSelected,\n setTargetProduct: _setTargetProduct,\n setUrlAcceptTerms: _setUrlAcceptTerms,\n setUrlRegisterIndustry: _setUrlRegisterIndustry,\n setIsAuthenticatedShopper: _setIsAuthenticatedShopper,\n setCustomLoginUrl: _setCustomLoginUrl,\n setCardID: _setCardID,\n setBenefitsEnabled: _setBenefitsEnabled,\n setBenefitsList: _setBenefitsList,\n setRequestId: _setRequestId,\n requestId: _requestId,\n benefitsEnabled: _benefitsEnabled,\n benefitsList: _benefitsList,\n ...readonlyState\n } = fullState;\n\n // Se não houver targetProduct definido, retorne targetProduct como null\n if (!fullState.targetProduct) {\n return {\n ...readonlyState,\n targetProduct: null,\n } as PBMStoreReadonly;\n }\n\n const {\n requestedQuantity: _quantity,\n discountMaxNewPatient: _discountMax,\n allowsAdhesion: _allowsAdhesion,\n comboId: _comboId,\n discountValueIndustry: _discountValueIndustry,\n authorizer: _authorizer,\n grossPrice: _grossPrice,\n industryCompanyCode: _industryCompanyCode,\n pointing: _pointing,\n productLink: _productLink,\n requestCoupon: _requestCoupon,\n requestHolderId: _requestHolderId,\n suggestedPrice: _suggestedPrice,\n suggestedPriceValue: _suggestedPriceValue,\n status: _status,\n returnCode: _returnCode,\n ...limitedTargetProductData\n } = fullState.targetProduct as IProduct;\n\n return {\n ...readonlyState,\n targetProduct: limitedTargetProductData,\n } as PBMStoreReadonly;\n },\n } as StoreApi<PBMStoreReadonly>;\n};\n\n// React hook (usado dentro de componentes React)\nexport function usePBMStore(): PBMStore;\nexport function usePBMStore<T>(selector: (state: PBMStore) => T): T;\nexport function usePBMStore<T>(selector?: (state: PBMStore) => T) {\n return useStore(\n pbmStore,\n (selector ?? ((state: PBMStore) => state)) as (state: PBMStore) => T,\n );\n}\n","import {\n validationSchema,\n validationSchemaType,\n} from \"../../schema/validation-schema\";\n\nimport Button from \"../UI/Button\";\n\nimport { usePBMStore } from \"../../libs/zustand/usePBM\";\nimport { zodResolver } from \"@hookform/resolvers/zod\";\nimport { useForm } from \"react-hook-form\";\nimport { ArrowRight } from \"lucide-react\";\nimport classNames from \"classnames\";\n\nimport { Activity, TransitionStartFunction, useState } from \"react\";\nimport { useModal } from \"../../libs/zustand/useModal\";\nimport { formaters } from \"../../utils/formaters\";\nimport { LookupConsumer } from \"../../services/lookup-consumer\";\n// import { usePBMForm } from \"../../libs/zustand/usePBMForm\";\n// import { mappingFormStep } from \"../../utils/mappingFormStep\";\n\ninterface IForm {\n startTransition: TransitionStartFunction;\n}\n\nfunction Form({ startTransition }: IForm) {\n const store = usePBMStore();\n const [showCardIDField, setShowCardIDField] = useState<boolean>(false);\n const { setModal } = useModal();\n // const { setStep } = usePBMForm();\n\n const {\n handleSubmit,\n register,\n setValue,\n clearErrors,\n unregister,\n formState: { errors },\n } = useForm<validationSchemaType>({\n resolver: zodResolver(validationSchema),\n mode: \"onSubmit\",\n defaultValues: {\n securityNumber: store.securityNumber || \"\",\n coupon: \"\",\n },\n });\n\n const checkSecurityNumber = async (values: validationSchemaType) => {\n if (store.targetProduct === null) {\n console.error(\"PBMLOG: Product is not defined!\");\n return;\n }\n\n if (!store.targetProduct.id) {\n console.error(\"PBMLOG: Product ID is not defined!\");\n return;\n }\n\n if (!store.targetProduct.listPrice) {\n console.error(\"PBMLOG: List Price is not defined!\");\n return;\n }\n\n store.setSecurityNumber(values.securityNumber.replace(/\\D/g, \"\"));\n\n const consumerHasDiscountEnabled = await LookupConsumer({\n product: store.targetProduct,\n consumer: { holderId: values.securityNumber.replace(/\\D/g, \"\") },\n });\n\n if (!consumerHasDiscountEnabled.success) {\n setModal({\n id: \"CustomerNotRegistered\",\n open: true,\n });\n return;\n }\n\n // chegou aqui, é porque o consumidor tem desconto habilitado para o produto, então seta os benefícios e ativa o estado.\n store.setBenefitsList(consumerHasDiscountEnabled.product);\n store.setState(\"isActivated\");\n };\n\n const onSubmitDefault = async (values: validationSchemaType) => {\n // verifica se o usuário está logado antes de qualquer ação.\n if (!store.isAuthenticatedShopper) {\n setModal({ id: \"ShopperIsNotAuthenticated\", open: true });\n return;\n }\n\n // ## segue fluxo normal caso esteja autenticado. ## //\n\n if (!showCardIDField) {\n setValue(\"coupon\", undefined, { shouldValidate: false });\n }\n\n if (showCardIDField && values.coupon != undefined) {\n store.setCardID(values.coupon);\n }\n\n startTransition(async () => {\n await checkSecurityNumber(values);\n });\n };\n\n return (\n <>\n <form\n onSubmit={handleSubmit(onSubmitDefault)}\n className={classNames(\n \"w-full h-auto flex items-start justify-center flex-col mb-2 transition-all duration-150\",\n )}\n id=\"form_security_number_pbm\"\n >\n <label\n htmlFor=\"input_security_number_pbm\"\n className={classNames(\n \"w-full h-auto flex items-start flex-col justify-center relative py-2 transition-all duration-100\",\n {\n \"mb-4\": errors.securityNumber && !showCardIDField,\n },\n )}\n id=\"label_security_number_pbm\"\n >\n <input\n type=\"text\"\n className={classNames(\n \"w-full h-10 bg-(--pbm-input-background) rounded-lg text-sm font-semibold outline-(--pbm-outline-color) focus:outline focus:bg-(--pbm-input-focus) focus:outline-(--pbm-outline-focus-color) text-zinc-600 placeholder:text-zinc-600 px-4 placeholder:text-sm placeholder:font-semibold\",\n {\n \"outline outline-red-600\": errors.securityNumber,\n \"rounded-lg\": showCardIDField,\n },\n )}\n style={\n {\n \"--tw-outline-color\": !errors.securityNumber\n ? \"var(--pbm-secondary)\"\n : undefined,\n } as React.CSSProperties\n }\n placeholder=\"Digite seu CPF aqui...\"\n required\n maxLength={14}\n {...register(\"securityNumber\", {\n onChange: (e) => {\n const formatted = formaters.cpf(e.target.value);\n setValue(\"securityNumber\", formatted as string, {\n shouldValidate: true,\n });\n },\n })}\n defaultValue={store.securityNumber || \"\"}\n id=\"input_security_number_pbm\"\n />\n {errors.securityNumber && (\n <span\n className=\"text-red-400 text-xs font-semibold absolute -bottom-3 left-2 text-nowrap\"\n id=\"security_number_form_error\"\n >\n {errors.securityNumber.message}\n </span>\n )}\n </label>\n\n <Activity mode={showCardIDField ? \"visible\" : \"hidden\"}>\n <label\n htmlFor=\"input_coupon_pbm\"\n className={classNames(\n \"w-full h-auto flex items-start flex-col justify-center relative py-2\",\n {\n \"mt-2\": errors.securityNumber,\n },\n )}\n id=\"label_coupon_pbm\"\n >\n <input\n type=\"text\"\n className={classNames(\n \"w-full h-10 bg-gray-100 rounded-s-lg text-sm font-semibold focus:outline focus:bg-white text-zinc-600 placeholder:text-zinc-600 px-4 placeholder:text-sm placeholder:font-semibold\",\n {\n \"outline outline-red-600\": errors.coupon,\n \"rounded-lg\": showCardIDField,\n },\n )}\n style={\n {\n \"--tw-outline-color\": !errors.coupon\n ? \"var(--pbm-secondary)\"\n : undefined,\n } as React.CSSProperties\n }\n placeholder=\"Cupom / ID do Cartão\"\n {...register(\"coupon\", {\n required: showCardIDField\n ? \"Cupom / ID do Cartão obrigatório.\"\n : false,\n shouldUnregister: !showCardIDField,\n onChange: (e) => {\n setValue(\"coupon\", e.target.value, {\n shouldValidate: showCardIDField,\n });\n },\n })}\n id=\"input_coupon_pbm\"\n />\n {errors.coupon && (\n <span\n className=\"text-red-400 text-xs font-semibold absolute -bottom-3 left-2 text-nowrap\"\n id=\"coupon_form_error\"\n >\n {errors.coupon.message}\n </span>\n )}\n </label>\n </Activity>\n\n <button\n type=\"submit\"\n className={classNames(\n \"w-full h-10 rounded-lg flex items-center justify-center cursor-pointer text-sm text-white font-semibold transition-all duration-150\",\n {\n \"rounded-lg\": showCardIDField,\n },\n )}\n style={{ backgroundColor: \"var(--pbm-primary)\" }}\n id=\"button_submit_security_number_pbm\"\n >\n Comprar com desconto\n </button>\n </form>\n\n <section className=\"flex items-start flex-col gap-2\">\n <Button\n className=\"bg-transparent p-0 pl-2 w-auto h-auto underline cursor-pointer hover:bg-transparent flex items-center justify-start gap-1\"\n style={{ color: \"var(--pbm-text)\" }}\n onMouseOver={(e) =>\n (e.currentTarget.style.filter = \"brightness(0.8)\")\n }\n onMouseOut={(e) => (e.currentTarget.style.filter = \"none\")}\n onClick={() => {\n const newValue = !showCardIDField;\n setShowCardIDField(newValue);\n if (!newValue) {\n // Quando esconder o campo, limpar o valor e os erros\n unregister(\"coupon\");\n clearErrors(\"coupon\");\n }\n }}\n id=\"check_benefits_button\"\n >\n <span className=\"text-start\">\n {!showCardIDField\n ? \"Possui Cupom / ID do Cartão?\"\n : \"Não possui Cupom / ID do Cartão?\"}\n </span>\n <ArrowRight\n size={16}\n className={classNames({\n \"rotate-0\": !showCardIDField,\n \"rotate-180\": showCardIDField,\n })}\n />\n </Button>\n <Button\n className=\"bg-transparent p-0 pl-2 w-auto h-auto underline cursor-pointer hover:bg-transparent flex items-center justify-start gap-1\"\n style={{ color: \"var(--pbm-text)\" }}\n onMouseOver={(e) =>\n (e.currentTarget.style.filter = \"brightness(0.8)\")\n }\n onMouseOut={(e) => (e.currentTarget.style.filter = \"none\")}\n onClick={() => store.setState(\"isPreview\")}\n id=\"check_benefits_button\"\n >\n <span>Consultar Benefícios</span>\n <ArrowRight size={16} />\n </Button>\n </section>\n </>\n );\n}\n\nexport default Form;\n","import { create, StateCreator } from \"zustand\";\nimport { IModal } from \"../../types/globals\";\n\ninterface ModalDataType {\n modal: IModal;\n}\n\nexport interface useModal extends ModalDataType {\n setModal: (\n modal: useModal[\"modal\"]\n ) => void;\n resetModal: () => void;\n}\n\nconst initialModalState: ModalDataType = {\n modal: {\n id: \"\",\n open: false,\n label: \"\",\n url: \"\",\n },\n};\n\n// ✅ TIPANDO a função corretamente com StateCreator\nconst createModalStore: StateCreator<useModal> = (set) => ({\n ...initialModalState,\n\n setModal: (\n modal: useModal[\"modal\"]\n ) => set({ modal }),\n\n resetModal: () => set({ modal: initialModalState.modal }),\n});\n\n// React hook (usado dentro de componentes React)\nexport const useModal = create<useModal>(createModalStore);\n","const formatPhone = (value: string) =>\n value.replace(/\\D/g, \"\").slice(0, 11).replace(/^(\\d{2})(\\d{5})(\\d{0,4})/, \"($1) $2-$3\").trim();\n\nconst formatCEP = (value: string) =>\n value.replace(/\\D/g, \"\").slice(0, 8).replace(/^(\\d{5})(\\d{0,3})/, \"$1-$2\");\n\nconst maskCPF = (value: string) =>\n value.replace(/\\D/g, \"\").replace(/(\\d{3})(\\d{3})(\\d{3})(\\d{2})/, \"$1.$2.$3-$4\");\n\nconst formatPrice = (price: string | number) =>\n Number(String(price).replace(',', '.'));\n\nconst transformPrice = (price: number) => {\n const priceString = String(price);\n\n if (priceString.includes('.') || priceString.includes(',')) {\n return formatPrice(price);\n }\n\n const cents = priceString.slice(-2);\n const reais = priceString.slice(0, -2) || '0';\n return Number(`${reais}.${cents}`);\n}\n\nconst transformPorcent = (porcent: string) => {\n const post = porcent.slice(-2);\n const pre = porcent.slice(0, -2) || '0';\n // precisa retornar number para ser usado em cálculos, mas a formatação é necessária para lidar com os casos em que o percentual vem como \"500\" (5%) ao invés de \"5\" (5%)\n return Number(`${pre}.${post}`);\n}\n\nfunction priceToInteger(value: string | number): string {\n return String(value).replace(/[.,]/g, '')\n}\n\nexport const formaters = {\n phone: (value: string) => formatPhone(value),\n cep: (value: string) => formatCEP(value),\n cpf: (value: string) => maskCPF(value),\n priceToInteger: (value: string) => priceToInteger(value),\n price: (price: string | number) => formatPrice(price),\n transformPrice: (price: number) => transformPrice(price),\n transformPorcent: (porcent: string) => transformPorcent(porcent)\n}","import Cookies from 'js-cookie'\nimport { getEnv } from './helper';\nimport { ErrorRequest, IRequestDefault } from '../types/requests';\nimport { IProduct, TargetProduct } from '../types/globals';\n\ninterface LookupConsumerResponse extends IRequestDefault {\n product: IProduct[];\n}\n\ninterface ILookupConsumer {\n product: TargetProduct;\n consumer: { holderId: string };\n}\n\nexport const LookupConsumer = async ({ product, consumer }: ILookupConsumer): Promise<LookupConsumerResponse | ErrorRequest> => {\n const tenant_id = Cookies.get('tenant_id');\n\n if (!tenant_id) {\n throw new Error(`No configuration found for tenant: ${tenant_id}`);\n }\n\n if (!consumer || !consumer.holderId) {\n throw new Error(`Consumer holderId information is required`);\n }\n\n if (!product) {\n throw new Error(`Product information is required`);\n }\n\n const product_payload = {\n id: product.id,\n ean: product.ean,\n requestedQuantity: product.requestedQuantity,\n listPrice: product.listPrice,\n netPrice: product.netPrice,\n }\n\n try {\n const response = await fetch(`${getEnv(\"VITE_API_URL\")}/api/lookup-consumer.ts`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': `Bearer ${Cookies.get('pbm-token')}`,\n },\n body: JSON.stringify({\n tenant_id,\n product: product_payload,\n table_id: Cookies.get('current-table-id'),\n local_hour: Cookies.get('current-local-hour'),\n consumer,\n })\n }\n );\n\n const data = await response.json();\n\n if (!data.success) {\n throw new Error(\"PBMLOG: Enable Discount Failed!\");\n }\n\n return data;\n } catch (error) {\n console.error(\"Error during enable discount:\", error);\n return { success: false, error: \"Authorization failed\" };\n }\n};","export const getEnv = (key: string) => {\n if (typeof import.meta !== 'undefined') {\n return import.meta.env?.[key]\n }\n\n if (typeof process !== 'undefined') {\n return process.env?.[key]\n }\n\n return undefined\n}","import * as React from \"react\";\n/* eslint-disable react-refresh/only-export-components */\n\nfunction CheckON({ size }: { size: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n data-name=\"Camada 1\"\n viewBox=\"0 0 500 500\"\n width={size}\n height={size}\n >\n <path\n d=\"M421.44 78.56C375.64 32.77 314.76 7.55 250 7.55S124.36 32.77 78.56 78.56C32.77 124.36 7.55 185.24 7.55 250s25.22 125.64 71.01 171.44c45.8 45.79 106.68 71.01 171.44 71.01s125.64-25.22 171.44-71.01c45.79-45.8 71.01-106.68 71.01-171.44s-25.22-125.64-71.01-171.44zm-49.17 121.7L242.88 334.63c-8.98 9.29-23.57 10.17-33.59 2.02l-79.63-64.7c-10.69-8.67-12.33-24.38-3.66-35.07 8.67-10.69 24.38-12.33 35.07-3.65l61.9 50.39L336.5 165.74c4.4-4.75 10.48-7.59 16.95-7.93a24.88 24.88 0 0118.83 7.26c9.72 9.72 9.71 25.48 0 35.19z\"\n fill=\"#229b00\"\n />\n </svg>\n );\n}\nfunction CheckOFF({ size }: { size: number }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n data-name=\"Camada 1\"\n viewBox=\"0 0 500 500\"\n width={size}\n height={size}\n >\n <circle cx={250} cy={250} r={237.45} fill=\"#fff\" />\n <path\n d=\"M250 492.45c-64.76 0-125.64-25.22-171.44-71.01C32.77 375.64 7.55 314.76 7.55 250S32.77 124.36 78.56 78.56C124.36 32.77 185.24 7.55 250 7.55s125.64 25.22 171.44 71.01c45.79 45.79 71.01 106.68 71.01 171.44s-25.22 125.64-71.01 171.44c-45.79 45.79-106.68 71.01-171.44 71.01zm0-474.9C121.83 17.55 17.55 121.83 17.55 250S121.83 482.45 250 482.45 482.45 378.17 482.45 250 378.17 17.55 250 17.55z\"\n fill=\"#d8d8d8\"\n />\n </svg>\n );\n}\n\nfunction Pills({ size, color }: { size: number; color: string }) {\n return (\n <svg\n viewBox=\"-0.003 0 99.979 99.979\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"#000000\"\n width={size}\n height={size}\n >\n <g id=\"SVGRepo_bgCarrier\" strokeWidth=\"0\"></g>\n <g\n id=\"SVGRepo_tracerCarrier\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n ></g>\n <g id=\"SVGRepo_iconCarrier\">\n <path\n fill=\"#ffe700\"\n d=\"M92.869 7.105c9.478 9.476 9.478 24.832 0 34.308L41.411 92.869c-9.475 9.474-24.833 9.474-34.307 0-9.476-9.475-9.476-24.832 0-34.308L58.562 7.105c9.475-9.473 24.834-9.473 34.307 0z\"\n ></path>\n <path\n fill={color}\n d=\"M32.548 33.122L7.105 58.563c-9.476 9.476-9.476 24.833 0 34.308 9.474 9.475 24.832 9.475 34.307 0L66.85 67.43 32.548 33.122z\"\n ></path>\n <path\n fill={color}\n d=\"M65.43 68.862L31.134 34.568l1.414-1.414 34.294 34.294z\"\n ></path>\n <path\n fill={color}\n d=\"M38.096 41.51L12.7 66.906a5.894 5.894 0 0 0 0 8.339 5.896 5.896 0 0 0 8.339 0l25.396-25.396-8.339-8.339z\"\n ></path>\n <path\n fill=\"#ffe700\"\n d=\"M75.244 12.7a5.897 5.897 0 0 0-8.343 0L39.51 40.096l8.339 8.339 27.396-27.396a5.899 5.899 0 0 0-.001-8.339z\"\n ></path>\n <path\n fill={color}\n d=\"M47.862 48.444l-1.414 1.414-8.335-8.336 1.414-1.414z\"\n ></path>\n </g>\n </svg>\n );\n}\n\nfunction ArrowDown({ size, color }: { size: number; color: string }) {\n return (\n <svg\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width={size}\n height={size}\n >\n <g id=\"SVGRepo_bgCarrier\" strokeWidth=\"0\"></g>\n <g\n id=\"SVGRepo_tracerCarrier\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n ></g>\n <g id=\"SVGRepo_iconCarrier\">\n <path\n d=\"M7.33199 16.3154C6.94146 15.9248 6.3083 15.9248 5.91777 16.3154C5.52725 16.7059 5.52725 17.339 5.91777 17.7296L10.5834 22.3952C11.3644 23.1762 12.6308 23.1762 13.4118 22.3952L18.0802 17.7267C18.4707 17.3362 18.4707 16.703 18.0802 16.3125C17.6897 15.922 17.0565 15.922 16.666 16.3125L13 19.9786V2.0001C13 1.44781 12.5523 1.0001 12 1.0001C11.4477 1.0001 11 1.44781 11 2.0001V19.9833L7.33199 16.3154Z\"\n fill={color}\n ></path>\n </g>\n </svg>\n );\n}\n\nexport const Icons = {\n CheckON,\n CheckOFF,\n Pills,\n ArrowDown,\n};\n","import { usePBMStore } from \"../../libs/zustand/usePBM\";\nimport { Icons } from \"../UI/Icons\";\nimport { formaters } from \"../../utils/formaters\";\n\nfunction Header() {\n const { targetProduct, benefitsEnabled, setBenefitsEnabled } = usePBMStore();\n\n const Price = formaters.transformPrice(Number(targetProduct?.listPrice));\n\n const DiscountValue = formaters.transformPrice(\n Number(targetProduct?.discountValue) || 0,\n );\n\n const DiscountPercentual = formaters.transformPorcent(\n targetProduct?.discountPercentual || \"0\",\n );\n\n const DiscountPercentualValue = (Price * DiscountPercentual) / 100;\n\n const DiscountApplied =\n Price - DiscountValue || Price - DiscountPercentualValue;\n\n return (\n <header\n className=\"flex items-start justify-start flex-col gap-4 w-full p-0.5 rounded-xl mt-5\"\n id=\"header_pbm\"\n >\n <label\n className=\"flex items-center gap-2 cursor-pointer\"\n htmlFor=\"enable_benefits_checkbox\"\n >\n <input\n id=\"enable_benefits_checkbox\"\n type=\"checkbox\"\n name=\"option\"\n className=\"peer hidden\"\n checked={benefitsEnabled}\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n setBenefitsEnabled(e.target.checked)\n }\n />\n <div className=\"w-5 h-5 border border-(--pbm-primary) rounded-full flex items-center justify-center transition-all duration-300 after:content-[''] after:w-2 after:h-2 after:rounded-full after:bg-(--pbm-primary) after:scale-0 after:transition-transform after:duration-200 peer-checked:after:scale-100\"></div>\n <p className=\"font-medium text-(--pbm-primary) select-none text-sm\">\n Desconto de Laboratório\n </p>\n <Icons.Pills size={16} color=\"var(--pbm-primary)\" />\n </label>\n\n <span\n className=\"py-1 rounded-xl shrink-0 text-white text-xl font-bold flex items-center justify-start gap-2 relative\"\n data-testid=\"test_id_header_price\"\n id=\"header_price\"\n >\n <section className=\"flex items-start gap-2 justify-center-safe flex-col\">\n <div className=\"flex items-center-safe justify-start gap-1\">\n <span className=\"line-through text-sm font-light text-zinc-600\">\n {Number(Price)?.toLocaleString(\"pt-BR\", {\n currency: \"BRL\",\n currencyDisplay: \"symbol\",\n currencySign: \"standard\",\n style: \"currency\",\n })}\n </span>\n\n <Icons.ArrowDown size={14} color=\"var(--pbm-primary)\" />\n\n <span className=\"font-semibold text-sm text-(--pbm-primary)\">\n {DiscountPercentual.toFixed(2)}%\n </span>\n </div>\n\n <span className=\"text-lg text-zinc-700 font-bold\">\n {DiscountApplied?.toLocaleString(\"pt-BR\", {\n currency: \"BRL\",\n currencyDisplay: \"symbol\",\n currencySign: \"standard\",\n style: \"currency\",\n })}\n </span>\n\n {targetProduct?.informativeMessage && (\n <span className=\"text-xs text-zinc-600 font-medium\">\n {targetProduct?.informativeMessage}\n </span>\n )}\n </section>\n </span>\n </header>\n );\n}\n\nexport default Header;\n","interface LoadingProps {\n textColor?: string;\n}\n\nfunction Loading({ textColor }: LoadingProps) {\n return (\n <main className=\"flex items-center justify-center gap-4\" id=\"loading_pbm\">\n <div\n data-testid=\"test_id_spin\"\n className=\"w-8 h-8 border-4 shrink-0 border-gray-300 rounded-full animate-spin\"\n style={{ borderTopColor: \"var(--pbm-secondary)\" }}\n id=\"loading_spin\"\n ></div>\n <p\n className={\"text-sm font-semibold text-start\"}\n style={{ color: textColor || \"var(--pbm-text)\" }}\n id=\"loading_label\"\n >\n Um momento... estamos verificando seus dados.\n </p>\n </main>\n );\n}\n\nexport default Loading;\n","import classNames from \"classnames\";\nimport React from \"react\";\nimport { usePBMStore } from \"../../../libs/zustand/usePBM\";\n\nfunction Container({\n children,\n variant,\n}: {\n children: React.ReactNode;\n variant: \"simple\" | \"main\";\n}) {\n const { benefitsEnabled } = usePBMStore();\n\n return (\n <main\n className={classNames({\n \"border-3 border-(--pbm-border) overflow-hidden flex flex-col items-center justify-center min-w-(--min-container) max-w-(--max-container) w-full h-auto rounded-xl p-4 bg-white gap-4 relative\":\n variant === \"main\",\n \"w-full relative\": variant === \"simple\",\n \"h-0 overflow-hidden\": !benefitsEnabled && variant === \"simple\",\n })}\n data-testid=\"test_id_container\"\n data-variant={variant}\n id=\"container_pbm\"\n >\n {children}\n </main>\n );\n}\n\nexport default Container;\n","import classNames from \"classnames\";\nimport React, { HTMLAttributes } from \"react\";\n\ninterface TitleProps extends HTMLAttributes<HTMLTitleElement> {\n children: React.ReactNode;\n textColor?: string;\n textSize?: string;\n textAlign?: \"start\" | \"center\" | \"end\";\n}\n\nfunction Title(props: TitleProps) {\n return (\n <h2\n className={classNames(\n \"text-start font-semibold text-sm\",\n props.className\n )}\n style={{ color: props.textColor || 'var(--pbm-text)', fontSize: props.textSize, textAlign: props.textAlign }}\n data-testid=\"test_id_title\"\n id=\"title_pbm\"\n >\n {props.children}\n </h2>\n );\n}\n\nexport default Title;\n","import Title from \"../UI/Title\";\nimport Button from \"../UI/Button\";\n\nimport { IProduct } from \"../../types/globals\";\nimport { usePBMStore } from \"../../libs/zustand/usePBM\";\n\nimport { useState } from \"react\";\n\nimport Item from \"./Item\";\nimport { APPROVED_BENEFIT_CODE } from \"../../utils/approved-code\";\n\nfunction BenefitsTable() {\n const {\n setState,\n state,\n customLoginUrl,\n isAuthenticatedShopper,\n benefitsList,\n } = usePBMStore();\n const [selectedDiscout, setSelectedDiscount] = useState<string | null>(null);\n\n const [benefitsItems] = useState<IProduct[] | null>(benefitsList);\n\n if (\n benefitsItems?.length &&\n benefitsItems[0]?.returnCode !== APPROVED_BENEFIT_CODE &&\n state === \"isActivated\"\n ) {\n return (\n <main className=\"flex items-center justify-center gap-4\" id=\"loading_pbm\">\n <p\n className=\"text-sm font-semibold text-start\"\n style={{ color: \"var(--pbm-text)\" }}\n id=\"benefits_error_handle\"\n >\n {benefitsItems[0].informativeText}\n </p>\n </main>\n );\n }\n\n return (\n <section\n className=\"flex items-start justify-center gap-4 w-full h-auto flex-col\"\n id=\"benefits_table_pbm\"\n >\n <Title>Descontos disponíveis:</Title>\n\n <form\n className=\"flex flex-col items-center justify-start w-full gap-4.5\"\n id=\"form_benefits_table_pbm\"\n onSubmit={(e) => e.preventDefault()}\n >\n {!benefitsItems && (\n <p\n className=\"text-sm font-semibold text-start text-zinc-900\"\n id=\"benefits_empty_pbm\"\n >\n Não foi possível encontrar benefícios para esse produto.\n </p>\n )}\n\n {benefitsItems &&\n benefitsItems.map((item) => {\n const ID_INPUT = item.id + \"_\" + item.requestedQuantity;\n\n return (\n <Item\n key={ID_INPUT}\n data={item}\n checked={selectedDiscout === ID_INPUT}\n onChange={() => setSelectedDiscount(ID_INPUT)}\n />\n );\n })}\n </form>\n\n {state === \"isPreview\" && (\n <Button\n onClick={() => setState(\"isEmpty\")}\n className=\"bg-transparent p-0 w-auto h-auto text-zinc-600 cursor-pointer hover:text-zinc-900 hover:bg-transparent text-start\"\n id=\"unauthorized_benefits_button\"\n >\n Atenção: Não é possível utilizar os benefícos sem realizar a consulta\n do CPF e o Login, por favor{\" \"}\n <span className=\"underline\">\n insira seu cpf para utilizar os benefícios\n </span>\n </Button>\n )}\n\n {state === \"isActivated\" && (\n <>\n {!isAuthenticatedShopper && (\n <Button\n type=\"button\"\n onClick={() => window.location.assign(customLoginUrl || \"/login\")}\n className=\"bg-transparent p-0 pl-2 w-auto h-auto text-zinc-600 cursor-pointer hover:text-zinc-900 hover:bg-transparent text-start\"\n id=\"login\"\n >\n <span className=\"underline\">\n Por favor, faça o Login para aproveitar os benefícios!\n </span>\n </Button>\n )}\n\n <Button\n onClick={() => setState(\"isEmpty\")}\n className=\"bg-transparent p-0 pl-2 w-auto h-auto text-zinc-600 cursor-pointer hover:text-zinc-900 hover:bg-transparent text-start\"\n id=\"change_security_number\"\n >\n <span className=\"underline\">Deseja editar o cpf digitado?</span>\n </Button>\n </>\n )}\n </section>\n );\n}\n\nexport default BenefitsTable;\n","import { usePBMStore } from \"../../libs/zustand/usePBM\";\nimport { useModal } from \"../../libs/zustand/useModal\";\n\nimport { useCallback, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport { Icons } from \"../UI/Icons\";\nimport { IProduct } from \"../../types/globals\";\nimport { formaters } from \"../../utils/formaters\";\n\ninterface ItemProps {\n data: IProduct;\n onChange: VoidFunction;\n checked: boolean;\n}\n\nfunction Item({ data, onChange, checked }: ItemProps) {\n const { setAvailableDiscountSelected, state, isAuthenticatedShopper } =\n usePBMStore();\n const { setModal } = useModal();\n\n const ID_INPUT = data.id + \"_\" + data.requestedQuantity;\n\n const PricePerUnity = formaters.transformPrice(\n Number(data?.grossPrice) || Number(data?.listPrice) || 0,\n );\n\n const DiscountValuePerUnity = formaters.transformPrice(\n Number(data?.discountValue) || 0,\n );\n\n const DiscountPercentual = formaters.transformPorcent(\n data?.discountPercentual || \"0\",\n );\n\n const TotalDiscountValue =\n DiscountValuePerUnity * Number(data.requestedQuantity);\n const TotalPricePerQuantity = PricePerUnity * Number(data.requestedQuantity);\n\n const DiscountPercentualValue =\n (TotalPricePerQuantity * DiscountPercentual) / 100;\n\n const AppliedDiscount =\n TotalPricePerQuantity - TotalDiscountValue ||\n TotalPricePerQuantity - DiscountPercentualValue;\n\n const updateStorageData = useCallback(() => {\n if (checked) {\n // Arredonda para 2 casas decimais\n const roundToTwoDecimals = (value: number) =>\n Math.round(value * 100) / 100;\n\n setAvailableDiscountSelected({\n discount: {\n total: roundToTwoDecimals(TotalDiscountValue),\n unit: roundToTwoDecimals(DiscountValuePerUnity),\n },\n quantity: Number(data.requestedQuantity),\n totalPrice: roundToTwoDecimals(AppliedDiscount),\n grossPrice: data.grossPrice,\n });\n }\n }, [\n checked,\n data.requestedQuantity,\n data.grossPrice,\n setAvailableDiscountSelected,\n TotalDiscountValue,\n DiscountValuePerUnity,\n AppliedDiscount,\n ]);\n\n useEffect(() => {\n updateStorageData();\n }, [updateStorageData]);\n\n const handleChange = () => {\n if (!isAuthenticatedShopper && state === \"isActivated\") {\n setModal({\n id: \"ShopperIsNotAuthenticated\",\n open: true,\n });\n return;\n }\n\n onChange();\n };\n\n return (\n <label\n htmlFor={ID_INPUT}\n className={classNames(\n \"label_benefits w-full flex items-center justify-start bg-zinc-300/60 border border-zinc-400/50 px-4 py-2 transition-colors rounded-lg gap-1\",\n {\n \"cursor-not-allowed\": state === \"isPreview\",\n \"cursor-pointer\": state === \"isActivated\",\n },\n )}\n style={{\n borderColor: checked ? \"var(--pbm-primary)\" : undefined,\n backgroundColor: checked\n ? \"color-mix(in srgb, var(--pbm-primary), transparent 90%)\"\n : undefined,\n }}\n id={\"label_benefits_\" + ID_INPUT}\n >\n <input\n type=\"radio\"\n name=\"benefits_discount\"\n id={ID_INPUT}\n className=\"hidden\"\n checked={checked}\n onChange={handleChange}\n disabled={state === \"isPreview\"}\n />\n\n <span style={{ color: \"var(--pbm-primary)\" }}>\n {!checked ? <Icons.CheckOFF size={20} /> : <Icons.CheckON size={20} />}\n </span>\n\n <span\n className=\"font-semibold text-sm\"\n style={{ color: \"var(--pbm-text)\" }}\n >\n {data.requestedQuantity}un\n </span>\n\n <section className=\"ml-auto relative gap-2 flex items-center-safe justify-end-safe\">\n <span\n className=\"text-white -top-4 py-0.5 font-semibold text-xs px-2 w-auto text-nowrap rounded-2xl -right-3\"\n style={{ backgroundColor: \"var(--pbm-primary)\" }}\n >\n {TotalDiscountValue.toLocaleString(\"pt-BR\", {\n currency: \"BRL\",\n currencyDisplay: \"symbol\",\n currencySign: \"standard\",\n style: \"currency\",\n })}{\" \"}\n OFF\n </span>\n <strong\n className=\"font-semibold text-sm text-center\"\n style={{ color: \"var(--pbm-text)\" }}\n >\n {AppliedDiscount.toLocaleString(\"pt-BR\", {\n currency: \"BRL\",\n currencyDisplay: \"symbol\",\n currencySign: \"standard\",\n style: \"currency\",\n })}\n </strong>\n </section>\n </label>\n );\n}\n\nexport default Item;\n","\nexport const APPROVED_BENEFIT_CODE = \"N000\";","import classNames from \"classnames\";\nimport React, { HTMLAttributes } from \"react\";\n\ninterface TextProps extends HTMLAttributes<HTMLParagraphElement> {\n children: React.ReactNode;\n textColor?: string;\n textSize?: string;\n textAlign?: \"start\" | \"center\" | \"end\";\n}\n\nfunction Text(props: TextProps) {\n return (\n <p\n className={classNames(\n \"font-normal text-sm\",\n props.textAlign && `text-${props.textAlign}`,\n props.className\n )}\n style={{ color: props.textColor || 'var(--pbm-text)', fontSize: props.textSize, textAlign: props.textAlign }}\n data-testid=\"test_id_text\"\n id=\"text_pbm\"\n >\n {props.children}\n </p>\n );\n}\n\nexport default Text;\n","import Title from \"../UI/Title\";\nimport Text from \"../UI/Text\";\n\nimport { usePBMStore } from \"../../libs/zustand/usePBM\";\nimport Button from \"../UI/Button\";\nimport { useModal } from \"../../libs/zustand/useModal\";\n\nfunction SecurityNumberInvalid({ textColor }: { textColor?: string }) {\n const { urlAcceptTerms } = usePBMStore();\n const { setModal } = useModal();\n\n const handleOpenModal = () => {\n if (!urlAcceptTerms) return;\n\n setModal({ open: true, id: \"iframe_pbm\", label: \"Aceitar os termos\", url: urlAcceptTerms });\n };\n\n return (\n <section\n data-testid=\"test_id_invalid\"\n className=\"flex items-end justify-center gap-2 w-full h-auto flex-col border-y py-6\"\n style={{ borderColor: 'color-mix(in srgb, var(--pbm-text), transparent 80%)' }}\n id=\"security_number_invalid_container_pbm\"\n >\n <Title className=\"w-full\" textColor={textColor}>\n CPF não cadastrado.\n </Title>\n <Text className=\"w-full\" textColor={textColor}>\n Conclua seu cadastro para habilitar o benefício. <br />\n Ao clicar em “Aceitar os termos”, você irá para uma página externa. Aceite os termos e volte para continuar.\n </Text>\n\n <Button onClick={() => handleOpenModal()} style={{ backgroundColor: 'var(--pbm-primary)' }}>\n Aceitar os termos\n </Button>\n </section>\n );\n}\n\nexport default SecurityNumberInvalid;\n","import Title from \"../UI/Title\";\nimport Text from \"../UI/Text\";\n\nimport { usePBMStore } from \"../../libs/zustand/usePBM\";\nimport { useModal } from \"../../libs/zustand/useModal\";\nimport Button from \"../UI/Button\";\n\nfunction SecurityNumberRegitered({ textColor }: { textColor?: string }) {\n const { urlRegisterIndustry } = usePBMStore();\n const { setModal } = useModal();\n\n const handleOpenModal = () => {\n if (!urlRegisterIndustry) return;\n\n setModal({ open: true, id: \"iframe_pbm\", label: \"Ativar CPF\", url: urlRegisterIndustry });\n };\n\n return (\n <section\n data-testid=\"test_id_registered\"\n className=\"flex items-end justify-center gap-2 w-full h-auto flex-col border-y py-6\"\n style={{ borderColor: 'color-mix(in srgb, var(--pbm-text), transparent 80%)' }}\n id=\"security_number_registered_container_pbm\"\n >\n <Title className=\"w-full\" textColor={textColor}>\n Ops, seu CPF ainda não está habilitado para este produto.\n </Title>\n <Text className=\"w-full\" textColor={textColor}>\n Para ativar o benefício, clique em “Ativar CPF” e conclua a etapa na página externa. Depois, é só voltar para continuar — vamos aguardar você aqui.\n </Text>\n <Button onClick={() => handleOpenModal()} style={{ backgroundColor: 'var(--pbm-primary)' }}>Ativar CPF</Button>\n </section>\n );\n}\n\nexport default SecurityNumberRegitered;\n","import Container from '../UI/Container'\nimport Title from '../UI/Title'\nimport Text from '../UI/Text'\nimport Button from '../UI/Button'\nimport { RefreshCw } from 'lucide-react'\nimport { useError } from '../../libs/zustand/useError'\nimport { usePBMStore } from '../../libs/zustand/usePBM'\n\nconst ErrorToApplyBenefits = () => {\n const { ErrorMessage } = useError();\n const { setState } = usePBMStore();\n\n return (\n <Container variant=\"main\" >\n <Title>Erro ao Aplicar o Benefício</Title>\n <Text textAlign=\"center\">{ErrorMessage}</Text>\n <Button\n className=\"bg-transparent p-0 pl-2 w-auto h-auto underline cursor-pointer hover:bg-transparent flex items-center justify-start gap-1\"\n style={{ color: 'var(--pbm-text)' }}\n onMouseOver={(e) => (e.currentTarget.style.filter = 'brightness(0.8)')}\n onMouseOut={(e) => (e.currentTarget.style.filter = 'none')}\n onClick={() => setState(\"isEmpty\")}\n id=\"check_benefits_button\"\n >\n <span>Tentar novamente</span>\n <RefreshCw size={16} />\n </Button>\n </Container>\n )\n}\n\nexport default ErrorToApplyBenefits","import { create, StateCreator } from \"zustand\";\n\ninterface ErrorData {\n ErrorMessage: string;\n}\n\nexport interface useError extends ErrorData {\n setErrorMessage: (\n ErrorMessage: useError[\"ErrorMessage\"]\n ) => void;\n resetErrorMessage: () => void;\n}\n\nconst initialErrorState: ErrorData = {\n ErrorMessage: \"Erro ao aplicar o benefício\",\n};\n\n// ✅ TIPANDO a função corretamente com StateCreator\nconst createErrorStore: StateCreator<useError> = (set) => ({\n ...initialErrorState,\n\n setErrorMessage: (\n ErrorMessage: useError[\"ErrorMessage\"]\n ) => set({ ErrorMessage }),\n\n resetErrorMessage: () => set({ ErrorMessage: initialErrorState.ErrorMessage }),\n});\n\n// React hook (usado dentro de componentes React)\nexport const useError = create<useError>(createErrorStore);\n","import { useState } from \"react\";\nimport { useModal } from \"../../../libs/zustand/useModal\";\nimport { usePBMStore } from \"../../../libs/zustand/usePBM\";\nimport { usePBMForm } from \"../../../libs/zustand/usePBMForm\";\nimport Title from \"../../UI/Title\";\nimport classNames from \"classnames\";\nimport StepPersonalDataForm from \"./StepPersonalDataForm\";\nimport StepAddressForm from \"./StepAddressForm\";\nimport StepGenderForm from \"./StepGenderForm\";\nimport StepDoctorForm from \"./StepDoctorForm\";\nimport StepAcceptancesForm from \"./StepAcceptancesForm\";\nimport StepProgress from \"./Shared/StepProgress\";\nimport SuccessScreen from \"./Shared/SuccessScreen\";\n\nconst CustomerNotRegistered = ({ ID }: { ID: string }) => {\n const { modal, setModal } = useModal();\n const { securityNumber } = usePBMStore();\n const { resetForm, step, setStep } = usePBMForm();\n const [done, setDone] = useState(false);\n\n const closeModal = () => {\n setModal({ id: \"\", open: false });\n setTimeout(() => {\n setStep(0);\n setDone(false);\n resetForm();\n }, 300);\n };\n\n const next = () => setStep(step + 1);\n const back = () => setStep(step - 1);\n\n const rawSecurityNumber = securityNumber.replace(/\\D/g, \"\");\n\n const stepComponents = [\n <StepPersonalDataForm securityNumber={rawSecurityNumber} onNext={next} />,\n <StepAddressForm\n securityNumber={rawSecurityNumber}\n onNext={next}\n onBack={back}\n />,\n <StepGenderForm\n securityNumber={rawSecurityNumber}\n onNext={next}\n onBack={back}\n />,\n <StepDoctorForm\n securityNumber={rawSecurityNumber}\n onNext={next}\n onBack={back}\n />,\n <StepAcceptancesForm\n securityNumber={rawSecurityNumber}\n onBack={back}\n onDone={() => setDone(true)}\n />,\n ];\n\n return (\n <main\n className={classNames(\n \"fixed inset-0 flex items-center justify-end z-50 flex-col transition-all shadow bg-black/40\",\n {\n \"opacity-100 pointer-events-auto\": modal.id === ID && modal.open,\n \"opacity-0 pointer-events-none\": modal.id !== ID || !modal.open,\n },\n )}\n >\n <div className=\"absolute inset-0\" onClick={closeModal} />\n\n <section className=\"z-10 bg-white flex flex-col p-6 rounded-2xl w-full max-w-125 min-w-125 mx-4 shadow-xl max-h-[90vh] overflow-y-auto\">\n <div className=\"flex items-center justify-between mb-4\">\n <Title textSize=\"18px\" textAlign=\"start\">\n {done ? \"Tudo pronto!\" : \"Benefício de Farmácia\"}\n </Title>\n <button\n onClick={closeModal}\n className=\"flex h-7 w-7 cursor-pointer items-center justify-center rounded-full text-gray-400 hover:bg-gray-100 hover:text-gray-600 transition-all\"\n >\n <svg className=\"h-4 w-4\" viewBox=\"0 0 14 14\" fill=\"none\">\n <path\n d=\"M1 1l12 12M13 1L1 13\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n </button>\n </div>\n\n {!done && <StepProgress current={step} />}\n\n {done ? <SuccessScreen onClose={closeModal} /> : stepComponents[step]}\n </section>\n </main>\n );\n};\n\nexport default CustomerNotRegistered;\n","import { create } from \"zustand\";\nimport { BrazilianStateType } from \"../../utils/ufMapping\";\n\nexport interface StepPersonalData {\n name: string;\n phone: string;\n birthday: string;\n email: string;\n}\n\nexport interface StepAddress {\n postalcode: string;\n street?: string;\n neighborhood?: string;\n city?: string;\n uf: BrazilianStateType | \"\";\n stateAddress?: string;\n number: string;\n complement: string;\n}\n\nexport interface StepGenderResponsibility {\n gender: \"M\" | \"F\" | \"O\" | \"\";\n patient: boolean | null;\n}\n\nexport interface StepDoctor {\n typeCredential: \"CRM\" | \"CRN\" | \"CRO\" | \"CRV\";\n register: string;\n state: BrazilianStateType | \"\";\n doctorName: string;\n}\n\nexport interface StepAcceptances {\n acceptPhone: boolean;\n acceptsSms: boolean;\n acceptsEmail: boolean;\n acceptsMail: boolean;\n acceptsPrivacyTermsLGPD: boolean;\n}\n\ninterface PBMFormState {\n personalData: StepPersonalData;\n address: StepAddress;\n genderResponsibility: StepGenderResponsibility;\n doctor: StepDoctor;\n acceptances: StepAcceptances;\n step: number;\n}\n\ninterface usePBMFormState extends PBMFormState {\n setPersonalData: (data: Partial<StepPersonalData>) => void;\n setAddress: (data: Partial<StepAddress>) => void;\n setGenderResponsibility: (data: Partial<StepGenderResponsibility>) => void;\n setDoctor: (data: Partial<StepDoctor>) => void;\n setAcceptances: (data: Partial<StepAcceptances>) => void;\n setStep: (data: PBMFormState[\"step\"]) => void;\n resetForm: () => void;\n}\n\nconst initialPBMFormState: PBMFormState = {\n personalData: { name: \"\", phone: \"\", birthday: \"\", email: \"\" },\n address: {\n postalcode: \"\",\n number: \"\",\n complement: \"\",\n street: \"\",\n neighborhood: \"\",\n city: \"\",\n uf: \"\",\n stateAddress: \"\",\n },\n genderResponsibility: { gender: \"\", patient: null },\n doctor: { typeCredential: \"CRM\", register: \"\", state: \"\", doctorName: \"\" },\n acceptances: {\n acceptPhone: false,\n acceptsSms: false,\n acceptsEmail: false,\n acceptsMail: false,\n acceptsPrivacyTermsLGPD: false,\n },\n step: 0,\n};\n\nconst usePBMFormStore = create<usePBMFormState>((set) => ({\n ...initialPBMFormState,\n\n setPersonalData: (data) =>\n set((s) => ({ personalData: { ...s.personalData, ...data } })),\n setAddress: (data) => set((s) => ({ address: { ...s.address, ...data } })),\n setGenderResponsibility: (data) =>\n set((s) => ({\n genderResponsibility: { ...s.genderResponsibility, ...data },\n })),\n setDoctor: (data) => set((s) => ({ doctor: { ...s.doctor, ...data } })),\n setAcceptances: (data) =>\n set((s) => ({ acceptances: { ...s.acceptances, ...data } })),\n setStep: (step) => set({ step }),\n resetForm: () => set(initialPBMFormState),\n}));\n\nexport const usePBMForm = usePBMFormStore;\n","import { useState } from \"react\";\nimport { useModal } from \"../../../libs/zustand/useModal\";\nimport { StepPersonalData, usePBMForm } from \"../../../libs/zustand/usePBMForm\";\nimport FieldWrapper from \"./Shared/FieldWrapper\";\nimport disabledInputClass from \"./Shared/DisabledInputClass\";\nimport { formaters } from \"../../../utils/formaters\";\nimport inputClass from \"./Shared/InputClass\";\nimport StepActions from \"./Shared/StepActions\";\nimport { mappingFormStep } from \"../../../utils/mappingFormStep\";\n\nconst StepPersonalDataForm = ({\n securityNumber,\n onNext,\n}: {\n securityNumber: string;\n onNext: () => void;\n}) => {\n const { personalData, setPersonalData, setStep } = usePBMForm();\n const { setModal } = useModal();\n const [errors, setErrors] = useState<\n Partial<Record<keyof StepPersonalData, string>>\n >({});\n const [loading, setLoading] = useState(false);\n\n const validate = () => {\n const e: typeof errors = {};\n if (\n !personalData.name.trim() ||\n personalData.name.trim().split(\" \").length < 2\n )\n e.name = \"Informe o nome completo.\";\n if (!/^\\(\\d{2}\\) \\d{5}-\\d{4}$/.test(personalData.phone))\n e.phone = \"Telefone inválido.\";\n if (!personalData.birthday) e.birthday = \"Data de nascimento obrigatória.\";\n if (!/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(personalData.email))\n e.email = \"E-mail inválido.\";\n setErrors(e);\n return Object.keys(e).length === 0;\n };\n\n const handleSubmit = async () => {\n if (!validate()) return;\n setLoading(true);\n\n try {\n setStep(mappingFormStep[\"Address\"]);\n onNext();\n } catch {\n console.error(\"An error occurred while setting personal data form.\");\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"flex flex-col gap-4\">\n <FieldWrapper label=\"CPF\">\n <input\n className={disabledInputClass}\n value={formaters.cpf(securityNumber)}\n disabled\n readOnly\n />\n <p className=\"text-xs text-gray-400 mt-1\">\n <button\n type=\"button\"\n className=\"text-(--pbm-primary) hover:text-(--pbm-primary)/60 cursor-pointer underline underline-offset-2 transition-colors\"\n onClick={() => setModal({ id: \"\", open: false })}\n >\n Deseja alterar o CPF? Clique aqui.\n </button>\n </p>\n </FieldWrapper>\n\n <FieldWrapper label=\"Nome completo\" error={errors.name}>\n <input\n className={inputClass(errors.name)}\n placeholder=\"Ex: João da Silva\"\n value={personalData.name}\n onChange={(e) => {\n setPersonalData({ name: e.target.value });\n setErrors((p) => ({ ...p, name: undefined }));\n }}\n />\n </FieldWrapper>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <FieldWrapper label=\"Telefone\" error={errors.phone}>\n <input\n className={inputClass(errors.phone)}\n placeholder=\"(11) 99999-8888\"\n value={personalData.phone}\n onChange={(e) => {\n setPersonalData({ phone: formaters.phone(e.target.value) });\n setErrors((p) => ({ ...p, phone: undefined }));\n }}\n />\n </FieldWrapper>\n\n <FieldWrapper label=\"Data de nascimento\" error={errors.birthday}>\n <input\n type=\"date\"\n className={inputClass(errors.birthday)}\n value={personalData.birthday}\n onChange={(e) => {\n setPersonalData({ birthday: e.target.value });\n setErrors((p) => ({ ...p, birthday: undefined }));\n }}\n />\n </FieldWrapper>\n </div>\n\n <FieldWrapper label=\"E-mail\" error={errors.email}>\n <input\n type=\"email\"\n className={inputClass(errors.email)}\n placeholder=\"joao@email.com\"\n value={personalData.email}\n onChange={(e) => {\n setPersonalData({ email: e.target.value });\n setErrors((p) => ({ ...p, email: undefined }));\n }}\n />\n </FieldWrapper>\n\n <StepActions onNext={handleSubmit} loading={loading} />\n </div>\n );\n};\n\nexport default StepPersonalDataForm;\n","const FieldWrapper = ({\n label,\n error,\n children,\n}: {\n label: string;\n error?: string;\n children: React.ReactNode;\n}) => (\n <div className=\"flex flex-col gap-1\">\n <label className=\"text-xs font-medium text-zinc-500 uppercase tracking-wide\">\n {label}\n </label>\n {children}\n {error && <span className=\"text-xs text-red-500 mt-0.5\">{error}</span>}\n </div>\n);\n\nexport default FieldWrapper;\n","const disabledInputClass =\n \"w-full rounded-lg border border-gray-200 bg-gray-100 px-3 py-2.5 text-sm text-gray-400 cursor-not-allowed\";\n\nexport default disabledInputClass;\n","import classNames from \"classnames\";\n\nconst inputClass = (error?: string) =>\n classNames(\n \"w-full rounded-lg border px-3 py-2.5 text-sm text-gray-800 outline-none transition-all\",\n \"focus:ring-2 focus:ring-blue-500/30 focus:border-blue-500\",\n error\n ? \"border-red-400 bg-red-50\"\n : \"border-gray-200 bg-gray-50 hover:border-gray-300\",\n );\n\nexport default inputClass;\n","import classNames from \"classnames\";\n\nconst StepActions = ({\n onNext,\n onBack,\n loading,\n nextLabel = \"Continuar\",\n isLast = false,\n}: {\n onNext: () => void;\n onBack?: () => void;\n loading?: boolean;\n nextLabel?: string;\n isLast?: boolean;\n}) => (\n <div className=\"flex gap-2 mt-2 pt-4 border-t border-gray-100\">\n {onBack && (\n <button\n type=\"button\"\n onClick={onBack}\n className=\"flex-1 rounded-lg border border-gray-200 py-2.5 text-sm font-medium text-zinc-600 hover:bg-zinc-600/10 transition-all cursor-pointer\"\n >\n Voltar\n </button>\n )}\n <button\n type=\"button\"\n onClick={onNext}\n disabled={loading}\n className={classNames(\n \"flex-2 rounded-lg py-2.5 text-sm font-semibold text-white transition-all cursor-pointer\",\n isLast\n ? \"bg-emerald-600 hover:bg-emerald-500\"\n : \"bg-(--pbm-primary) hover:bg-(--pbm-primary)/60\",\n loading && \"opacity-60 cursor-not-allowed\",\n )}\n >\n {loading ? (\n <span className=\"flex items-center justify-center gap-2\">\n <svg className=\"h-4 w-4 animate-spin\" viewBox=\"0 0 24 24\" fill=\"none\">\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8v8z\"\n />\n </svg>\n Enviando...\n </span>\n ) : (\n nextLabel\n )}\n </button>\n </div>\n);\n\nexport default StepActions;\n","export const mappingFormStep: { [key in \"PersonalData\" | \"Address\" | \"GenderResponsibility\" | \"Doctor\" | \"Acceptances\"]: number } = {\n \"PersonalData\": 0,\n \"Address\": 1,\n \"GenderResponsibility\": 2,\n \"Doctor\": 3,\n \"Acceptances\": 4\n};","import { useCallback, useState } from \"react\";\nimport { StepAddress, usePBMForm } from \"../../../libs/zustand/usePBMForm\";\nimport { formaters } from \"../../../utils/formaters\";\nimport disabledInputClass from \"./Shared/DisabledInputClass\";\nimport FieldWrapper from \"./Shared/FieldWrapper\";\nimport inputClass from \"./Shared/InputClass\";\nimport StepActions from \"./Shared/StepActions\";\nimport { LookupPostalCode } from \"../../../services/lookup-postal-code\";\nimport { mappingFormStep } from \"../../../utils/mappingFormStep\";\nimport { BrazilianStateType } from \"../../../utils/ufMapping\";\n\nconst StepAddressForm = ({\n onNext,\n onBack,\n}: {\n securityNumber: string;\n onNext: () => void;\n onBack: () => void;\n}) => {\n const { address, setAddress, setStep } = usePBMForm();\n const [errors, setErrors] = useState<\n Partial<Record<keyof StepAddress, string>>\n >({});\n const [loadingCep, setLoadingCep] = useState(false);\n const [loading, setLoading] = useState(false);\n\n const fetchCEP = useCallback(\n async (cep: string) => {\n const raw = cep.replace(/\\D/g, \"\");\n if (raw.length !== 8) return;\n\n setLoadingCep(true);\n\n try {\n const response = await LookupPostalCode({ postal_code: raw });\n\n if (!response.success) {\n console.error(\"Failed to lookup postal code\");\n return;\n }\n\n setAddress({\n street: response.logradouro,\n neighborhood: response.bairro,\n uf: response.uf as BrazilianStateType,\n city: response.localidade,\n stateAddress: response.estado,\n postalcode: response.cep,\n complement: response.complemento || \"\",\n });\n } catch {\n console.error(\"Failed to fetch address for CEP:\", cep);\n } finally {\n setLoadingCep(false);\n }\n },\n [setAddress],\n );\n\n const validate = () => {\n const e: typeof errors = {};\n if (!/^\\d{5}-\\d{3}$/.test(address.postalcode))\n e.postalcode = \"CEP inválido.\";\n if (!address.number.trim()) e.number = \"Número obrigatório.\";\n setErrors(e);\n return Object.keys(e).length === 0;\n };\n\n const handleSubmit = async () => {\n if (!validate()) return;\n setLoading(true);\n\n try {\n setStep(mappingFormStep[\"GenderResponsibility\"]);\n onNext();\n } catch {\n console.log(\"An error occurred while submitting address form.\");\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"flex flex-col gap-4\">\n <FieldWrapper label=\"CEP\" error={errors.postalcode}>\n <div className=\"relative\">\n <input\n className={inputClass(errors.postalcode)}\n placeholder=\"00000-000\"\n value={address.postalcode}\n onChange={(e) => {\n const formatted = formaters.cep(e.target.value);\n setAddress({ postalcode: formatted });\n setErrors((p: typeof errors) => ({\n ...p,\n postalcode: undefined,\n }));\n if (formatted.replace(/\\D/g, \"\").length === 8)\n fetchCEP(formatted);\n }}\n />\n {loadingCep && (\n <div className=\"absolute right-3 top-1/2 -translate-y-1/2\">\n <svg\n className=\"h-4 w-4 animate-spin text-blue-500\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8v8z\"\n />\n </svg>\n </div>\n )}\n </div>\n </FieldWrapper>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <FieldWrapper label=\"Rua\">\n <input\n className={disabledInputClass}\n value={address.street || \"\"}\n disabled\n readOnly\n placeholder=\"Preenchido pelo CEP\"\n />\n </FieldWrapper>\n <FieldWrapper label=\"Bairro\">\n <input\n className={disabledInputClass}\n value={address.neighborhood || \"\"}\n disabled\n readOnly\n placeholder=\"Preenchido pelo CEP\"\n />\n </FieldWrapper>\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <FieldWrapper label=\"Cidade\">\n <input\n className={disabledInputClass}\n value={address.city || \"\"}\n disabled\n readOnly\n placeholder=\"Preenchido pelo CEP\"\n />\n </FieldWrapper>\n <FieldWrapper label=\"Estado\">\n <input\n className={disabledInputClass}\n value={address.stateAddress || \"\"}\n disabled\n readOnly\n placeholder=\"UF\"\n />\n </FieldWrapper>\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <FieldWrapper label=\"Número\" error={errors.number}>\n <input\n className={inputClass(errors.number)}\n placeholder=\"Ex: 100\"\n value={address.number}\n onChange={(e) => {\n setAddress({ number: e.target.value });\n setErrors((p: typeof errors) => ({ ...p, number: undefined }));\n }}\n />\n </FieldWrapper>\n <FieldWrapper label=\"Complemento\">\n <input\n className={inputClass()}\n placeholder=\"Apto, bloco...\"\n value={address.complement}\n onChange={(e) => setAddress({ complement: e.target.value })}\n />\n </FieldWrapper>\n </div>\n\n <StepActions onNext={handleSubmit} onBack={onBack} loading={loading} />\n </div>\n );\n};\n\nexport default StepAddressForm;\n","import { IRequestDefault } from \"../types/requests\";\nimport { getEnv } from \"./helper\";\n\ninterface LookupPostalCodeResponse extends IRequestDefault {\n cep: string;\n logradouro: string;\n complemento: string;\n unidade: string;\n bairro: string;\n localidade: string;\n uf: string;\n estado: string;\n regiao: string;\n ibge: string;\n gia: string;\n ddd: string;\n siafi: string;\n};\n\ninterface LookupPostalCodeParamters {\n postal_code: string;\n}\n\nexport async function LookupPostalCode({ postal_code }: LookupPostalCodeParamters): Promise<LookupPostalCodeResponse> {\n const response = await fetch(`${getEnv(\"VITE_CORREIOS_API_URL\")}/${postal_code}/json/`);\n\n if (!response.ok) {\n throw new Error(\"Erro ao consultar CEP\");\n }\n\n const data: LookupPostalCodeResponse = await response.json();\n\n return { ...data, success: true };\n}","import classNames from \"classnames\";\nimport StepActions from \"./Shared/StepActions\";\nimport { useState } from \"react\";\nimport { usePBMForm } from \"../../../libs/zustand/usePBMForm\";\nimport { mappingFormStep } from \"../../../utils/mappingFormStep\";\n\nconst StepGenderForm = ({\n onNext,\n onBack,\n}: {\n securityNumber: string;\n onNext: () => void;\n onBack: () => void;\n}) => {\n const { genderResponsibility, setGenderResponsibility, setStep } =\n usePBMForm();\n const [errors, setErrors] = useState<{ gender?: string; patient?: string }>(\n {},\n );\n const [loading, setLoading] = useState(false);\n\n const validate = () => {\n const e: typeof errors = {};\n if (!genderResponsibility.gender) e.gender = \"Selecione o gênero.\";\n if (genderResponsibility.patient === null)\n e.patient = \"Informe se é o paciente.\";\n setErrors(e);\n return Object.keys(e).length === 0;\n };\n\n const handleSubmit = async () => {\n if (!validate()) return;\n setLoading(true);\n\n try {\n setStep(mappingFormStep[\"Doctor\"]);\n onNext();\n } catch {\n console.error(\n \"An error occurred while submitting gender responsibility data.\",\n );\n } finally {\n setLoading(false);\n }\n };\n\n const genderOptions: { value: \"M\" | \"F\" | \"O\"; label: string }[] = [\n { value: \"M\", label: \"Masculino\" },\n { value: \"F\", label: \"Feminino\" },\n { value: \"O\", label: \"Outro\" },\n ];\n\n return (\n <div className=\"flex flex-col gap-5\">\n <div>\n <label className=\"text-xs font-medium text-gray-500 uppercase tracking-wide block mb-2\">\n Gênero\n </label>\n <div className=\"flex gap-2\">\n {genderOptions.map((opt) => (\n <button\n key={opt.value}\n type=\"button\"\n onClick={() => {\n setGenderResponsibility({ gender: opt.value });\n setErrors((p: typeof errors) => ({ ...p, gender: undefined }));\n }}\n className={classNames(\n \"flex-1 py-2.5 cursor-pointer px-2.5 rounded-lg border text-sm font-medium transition-all\",\n genderResponsibility.gender === opt.value\n ? \"border-(--pbm-primary) bg-(--pbm-primary) text-white\"\n : \"border-gray-200 bg-gray-50 text-gray-600 hover:border-(--pbm-primary)\",\n )}\n >\n {opt.label}\n </button>\n ))}\n </div>\n {errors.gender && (\n <span className=\"text-xs text-red-500 mt-1 block\">\n {errors.gender}\n </span>\n )}\n </div>\n\n <div>\n <label className=\"text-xs font-medium text-gray-500 uppercase tracking-wide block mb-2\">\n Você é o paciente?\n </label>\n <div className=\"flex gap-2\">\n {[\n { label: \"Sim, sou o paciente\", value: true },\n { label: \"Não, sou responsável\", value: false },\n ].map((opt) => (\n <button\n key={String(opt.value)}\n type=\"button\"\n onClick={() => {\n setGenderResponsibility({ patient: opt.value });\n setErrors((p: typeof errors) => ({ ...p, patient: undefined }));\n }}\n className={classNames(\n \"flex-1 py-2.5 px-2.5 text-nowrap cursor-pointer rounded-lg border text-sm font-medium transition-all\",\n genderResponsibility.patient === opt.value\n ? \"border-(--pbm-primary) bg-(--pbm-primary) text-white\"\n : \"border-gray-200 bg-gray-50 text-gray-600 hover:border-(--pbm-primary)\",\n )}\n >\n {opt.label}\n </button>\n ))}\n </div>\n {errors.patient && (\n <span className=\"text-xs text-red-500 mt-1 block\">\n {errors.patient}\n </span>\n )}\n </div>\n\n <StepActions onNext={handleSubmit} onBack={onBack} loading={loading} />\n </div>\n );\n};\n\nexport default StepGenderForm;\n","import { useState } from \"react\";\nimport { BRAZILIAN_STATES, BrazilianStateType } from \"../../../utils/ufMapping\";\nimport FieldWrapper from \"./Shared/FieldWrapper\";\nimport inputClass from \"./Shared/InputClass\";\nimport StepActions from \"./Shared/StepActions\";\nimport { StepDoctor, usePBMForm } from \"../../../libs/zustand/usePBMForm\";\nimport { mappingFormStep } from \"../../../utils/mappingFormStep\";\n\nconst StepDoctorForm = ({\n onNext,\n onBack,\n}: {\n securityNumber: string;\n onNext: () => void;\n onBack: () => void;\n}) => {\n const { doctor, setDoctor, setStep } = usePBMForm();\n const [errors, setErrors] = useState<\n Partial<Record<keyof StepDoctor, string>>\n >({});\n const [loading, setLoading] = useState(false);\n\n const validate = () => {\n const e: typeof errors = {};\n if (!doctor.typeCredential)\n e.typeCredential = \"Tipo de credencial obrigatório.\";\n if (!doctor.register.trim()) e.register = \"Número do registro obrigatório.\";\n if (!doctor.state) e.state = \"Estado obrigatório.\";\n if (!doctor.doctorName.trim()) e.doctorName = \"Nome do médico obrigatório.\";\n setErrors(e);\n return Object.keys(e).length === 0;\n };\n\n const handleSubmit = async () => {\n if (!validate()) return;\n setLoading(true);\n\n try {\n setStep(mappingFormStep[\"Acceptances\"]);\n onNext();\n } catch {\n console.error(\"An error occurred while submitting doctor data.\");\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"flex flex-col gap-4\">\n <div className=\"grid grid-cols-3 gap-3\">\n <FieldWrapper label=\"Tipo credencial\" error={errors.typeCredential}>\n <select\n className={inputClass(errors.typeCredential)}\n value={doctor.typeCredential}\n onChange={(e) => {\n setDoctor({ typeCredential: e.target.value });\n setErrors((p: typeof errors) => ({\n ...p,\n typeCredential: undefined,\n }));\n }}\n >\n <option value=\"CRM\">CRM</option>\n <option value=\"CRO\">CRO</option>\n <option value=\"CRF\">CRF</option>\n </select>\n </FieldWrapper>\n\n <FieldWrapper label=\"Estado (UF)\" error={errors.state}>\n <select\n className={inputClass(errors.state)}\n value={doctor.state}\n onChange={(e) => {\n setDoctor({ state: e.target.value as BrazilianStateType });\n setErrors((p: typeof errors) => ({ ...p, state: undefined }));\n }}\n >\n <option value=\"\">UF</option>\n {BRAZILIAN_STATES.map((state: BrazilianStateType) => (\n <option key={state} value={state}>\n {state}\n </option>\n ))}\n </select>\n </FieldWrapper>\n\n <FieldWrapper label=\"Nº registro\" error={errors.register}>\n <div className=\"relative\">\n <input\n className={inputClass(errors.register)}\n placeholder=\"Ex: 123456\"\n value={doctor.register}\n onChange={(e) => {\n setDoctor({ register: e.target.value.replace(/\\D/g, \"\") });\n setErrors((p: typeof errors) => ({\n ...p,\n register: undefined,\n }));\n }}\n />\n </div>\n </FieldWrapper>\n </div>\n\n <FieldWrapper label=\"Nome do médico\" error={errors.doctorName}>\n <div className=\"relative\">\n <input\n className={inputClass(errors.doctorName)}\n placeholder=\"Nome Completo do Profissional\"\n value={doctor.doctorName}\n onChange={(e) => {\n setDoctor({ doctorName: e.target.value });\n setErrors((p: typeof errors) => ({\n ...p,\n doctorName: undefined,\n }));\n }}\n />\n </div>\n <p className=\"text-xs text-gray-400 mt-0.5\">\n Preenchido automaticamente ao informar registro + UF.\n </p>\n </FieldWrapper>\n\n <StepActions onNext={handleSubmit} onBack={onBack} loading={loading} />\n </div>\n );\n};\n\nexport default StepDoctorForm;\n","export type BrazilianStateType = \"AC\" | \"AL\" | \"AP\" | \"AM\" | \"BA\" | \"CE\" | \"DF\" | \"ES\" | \"GO\" | \"MA\" | \"MT\" | \"MS\" | \"MG\" |\n \"PA\" | \"PB\" | \"PR\" | \"PE\" | \"PI\" | \"RJ\" | \"RN\" | \"RS\" | \"RO\" | \"RR\" | \"SC\" | \"SP\" | \"SE\" | \"TO\";\n\nexport const BRAZILIAN_STATES: BrazilianStateType[] = [\n \"AC\", \"AL\", \"AP\", \"AM\", \"BA\", \"CE\", \"DF\", \"ES\", \"GO\", \"MA\", \"MT\", \"MS\", \"MG\",\n \"PA\", \"PB\", \"PR\", \"PE\", \"PI\", \"RJ\", \"RN\", \"RS\", \"RO\", \"RR\", \"SC\", \"SP\", \"SE\", \"TO\",\n];","import { useState } from \"react\";\nimport CheckRow from \"./Shared/CheckRow\";\nimport StepActions from \"./Shared/StepActions\";\nimport { usePBMForm } from \"../../../libs/zustand/usePBMForm\";\nimport {\n EnableDiscount,\n IEnableDiscount,\n} from \"../../../services/enable-discount\";\nimport { usePBMStore } from \"../../../libs/zustand/usePBM\";\nimport { Activate } from \"../../../services/activate\";\n\nconst StepAcceptancesForm = ({\n onBack,\n onDone,\n securityNumber,\n}: {\n securityNumber: string;\n onBack: () => void;\n onDone: () => void;\n}) => {\n const { acceptances, setAcceptances } = usePBMForm();\n const { targetProduct, cardID } = usePBMStore();\n const [errors, setErrors] = useState<{ lgpd?: string }>({});\n const [loading, setLoading] = useState(false);\n const data = usePBMForm.getState();\n\n const validate = () => {\n const e: typeof errors = {};\n if (!acceptances.acceptsPrivacyTermsLGPD)\n e.lgpd = \"É obrigatório aceitar os termos de privacidade (LGPD).\";\n setErrors(e);\n return Object.keys(e).length === 0;\n };\n\n const activateConsumer = async (PAYLOAD: IEnableDiscount) => {\n try {\n const response = await Activate(PAYLOAD);\n\n console.log(\"Activate response:\", response);\n } catch (error) {\n console.error(\"Error during consumer activation:\", error);\n }\n };\n\n const handleSubmit = async () => {\n if (!validate()) return;\n setLoading(true);\n\n if (!targetProduct) {\n console.error(\"No target product found in PBM store.\");\n setLoading(false);\n return;\n }\n\n const phone = data.personalData.phone.replace(/\\D/g, \"\");\n const ddd = phone.slice(0, 2);\n const cellphone = phone.slice(2);\n\n const PAYLOAD: IEnableDiscount = {\n consumer: {\n holderId: securityNumber,\n cardId: (cardID as string) || \"\",\n name: data.personalData.name,\n email: data.personalData.email,\n birthdate: data.personalData.birthday,\n genre: data.genderResponsibility.gender,\n postalCode: data.address.postalcode.replace(/\\D/g, \"\"),\n stateCode: data.address.uf || \"\",\n cityName: data.address.city || \"\",\n cityRegion: data.address.neighborhood || \"\",\n addressType: \"casa\",\n streetAddress: data.address.street || \"\",\n addressNumber: data.address.number || \"\",\n addressAdditionalInformation: data.address.complement || \"\",\n DDDcellPhone: ddd,\n cellphone: cellphone,\n acceptInformativeMaterial: acceptances.acceptsMail ? \"S\" : \"N\",\n acceptMail: acceptances.acceptsMail ? \"S\" : \"N\",\n acceptEmail: acceptances.acceptsEmail ? \"S\" : \"N\",\n acceptCalls: acceptances.acceptPhone ? \"S\" : \"N\",\n acceptSMS: acceptances.acceptsSms ? \"S\" : \"N\",\n acceptTerm: acceptances.acceptsPrivacyTermsLGPD ? \"S\" : \"N\",\n acceptWhatsApp: \"N\",\n },\n healthProfessional: {\n id: data.doctor.register,\n stateCode: data.doctor.state,\n type: data.doctor.typeCredential,\n name: data.doctor.doctorName,\n },\n product: {\n id: targetProduct.id,\n ean: targetProduct.ean,\n requestedQuantity: targetProduct.requestedQuantity,\n listPrice: targetProduct.listPrice,\n netPrice: targetProduct.netPrice,\n },\n };\n\n try {\n const response = await EnableDiscount(PAYLOAD);\n\n if (response.success) {\n await activateConsumer(PAYLOAD);\n } else {\n console.error(\"Failed to enable discount:\", response);\n }\n\n onDone();\n } catch {\n console.error(\"An error occurred while submitting acceptances data.\");\n } finally {\n setLoading(false);\n }\n };\n\n return (\n <div className=\"flex flex-col gap-3\">\n <p className=\"text-xs text-gray-500 mb-1\">\n Selecione como deseja receber comunicações:\n </p>\n\n <CheckRow\n label=\"Aceito receber contato por telefone\"\n checked={acceptances.acceptPhone}\n onChange={(v) => setAcceptances({ acceptPhone: v })}\n />\n <CheckRow\n label=\"Aceito receber SMS\"\n checked={acceptances.acceptsSms}\n onChange={(v) => setAcceptances({ acceptsSms: v })}\n />\n <CheckRow\n label=\"Aceito receber e-mails\"\n checked={acceptances.acceptsEmail}\n onChange={(v) => setAcceptances({ acceptsEmail: v })}\n />\n <CheckRow\n label=\"Aceito receber correspondências por correio\"\n checked={acceptances.acceptsMail}\n onChange={(v) => setAcceptances({ acceptsMail: v })}\n />\n\n <div className=\"mt-1\">\n <CheckRow\n label=\"Li e aceito os Termos de Privacidade (LGPD)\"\n checked={acceptances.acceptsPrivacyTermsLGPD}\n onChange={(v) => {\n setAcceptances({ acceptsPrivacyTermsLGPD: v });\n setErrors({});\n }}\n required\n error={errors.lgpd}\n />\n {errors.lgpd && (\n <span className=\"text-xs text-red-500 mt-1 block pl-1\">\n {errors.lgpd}\n </span>\n )}\n </div>\n\n <StepActions\n onNext={handleSubmit}\n onBack={onBack}\n loading={loading}\n nextLabel=\"Concluir cadastro\"\n isLast\n />\n </div>\n );\n};\n\nexport default StepAcceptancesForm;\n","import classNames from \"classnames\";\n\nconst CheckRow = ({\n label,\n checked,\n onChange,\n required,\n error,\n}: {\n label: string;\n checked: boolean;\n onChange: (v: boolean) => void;\n required?: boolean;\n error?: string;\n}) => (\n <label\n className={classNames(\n \"flex items-start gap-3 cursor-pointer group p-3 rounded-lg border transition-all\",\n checked\n ? \"border-emerald-200 bg-emerald-50/60\"\n : \"border-zinc-100 hover:border-zinc-200 bg-zinc-50/40\",\n error ? \"border-red-300 bg-red-50/40\" : \"\",\n )}\n >\n <div\n className={classNames(\n \"mt-0.5 flex h-4 w-4 shrink-0 items-center justify-center rounded border transition-all\",\n checked\n ? \"border-(--pbm-primary) bg-(--pbm-primary)\"\n : \"border-zinc-300 bg-white\",\n )}\n >\n {checked && (\n <svg className=\"h-2.5 w-2.5 text-white\" viewBox=\"0 0 10 8\" fill=\"none\">\n <path\n d=\"M1 4l3 3 5-6\"\n stroke=\"currentColor\"\n strokeWidth=\"1.8\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n )}\n </div>\n <span className=\"text-sm text-zinc-700 leading-snug\">\n {label}\n {required && <span className=\"text-red-400 ml-1\">*</span>}\n </span>\n <input\n type=\"checkbox\"\n className=\"sr-only\"\n checked={checked}\n onChange={(e) => onChange(e.target.checked)}\n />\n </label>\n);\n\nexport default CheckRow;\n","import Cookies from 'js-cookie'\nimport { getEnv } from './helper';\nimport { ErrorRequest, IRequestDefault } from '../types/requests';\nimport { IProduct, TargetProduct } from '../types/globals';\nimport { IConsumer, IHealthProfessional } from '../types/discount';\n\ninterface EnableDiscountResponse extends IRequestDefault {\n product: IProduct[];\n}\n\nexport interface IEnableDiscount {\n product: TargetProduct;\n consumer: IConsumer;\n healthProfessional: IHealthProfessional;\n}\n\nexport const EnableDiscount = async ({ product, consumer, healthProfessional }: IEnableDiscount): Promise<EnableDiscountResponse | ErrorRequest> => {\n const tenant_id = Cookies.get('tenant_id');\n\n if (!tenant_id) {\n throw new Error(`No configuration found for tenant: ${tenant_id}`);\n }\n\n if (!consumer) {\n throw new Error(`Consumer information is required`);\n }\n\n if (!healthProfessional) {\n throw new Error(`Health professional information is required`);\n }\n\n if (!product) {\n throw new Error(`Product information is required`);\n }\n\n try {\n const response = await fetch(`${getEnv(\"VITE_API_URL\")}/api/discount.ts`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': `Bearer ${Cookies.get('pbm-token')}`,\n },\n body: JSON.stringify({\n tenant_id,\n product,\n table_id: Cookies.get('current-table-id'),\n local_hour: Cookies.get('current-local-hour'),\n consumer,\n healthProfessional\n })\n }\n );\n\n const data = await response.json();\n\n if (!data.success) {\n throw new Error(\"PBMLOG: Enable Discount Failed!\");\n }\n\n Cookies.set('current-central-number', data.product[0].centralNumber.toString(), {\n secure: true,\n sameSite: 'Strict',\n expires: 1\n });\n\n Cookies.set('current-term-code', data.product[0].activationFields.acceptLgpd.termCode.value.toString(), {\n secure: true,\n sameSite: 'Strict',\n expires: 1\n });\n\n return data;\n } catch (error) {\n console.error(\"Error during enable discount:\", error);\n return { success: false, error: \"Authorization failed\" };\n }\n};","import Cookies from 'js-cookie'\nimport { getEnv } from './helper';\nimport { ErrorRequest, IRequestDefault } from '../types/requests';\nimport { IProduct } from '../types/globals';\nimport { IEnableDiscount } from './enable-discount';\n\ninterface ActivateResponse extends IRequestDefault {\n product: IProduct[];\n}\n\nexport const Activate = async ({ product, consumer, healthProfessional }: IEnableDiscount): Promise<ActivateResponse | ErrorRequest> => {\n const tenant_id = Cookies.get('tenant_id');\n\n if (!tenant_id) {\n throw new Error(`No configuration found for tenant: ${tenant_id}`);\n }\n\n if (!consumer) {\n throw new Error(`Consumer information is required`);\n }\n\n if (!healthProfessional) {\n throw new Error(`Health professional information is required`);\n }\n\n if (!product) {\n throw new Error(`Product information is required`);\n }\n\n try {\n const response = await fetch(`${getEnv(\"VITE_API_URL\")}/api/activate.ts`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': `Bearer ${Cookies.get('pbm-token')}`,\n },\n body: JSON.stringify({\n tenant_id,\n product,\n table_id: Cookies.get('current-table-id'),\n local_hour: Cookies.get('current-local-hour'),\n central_number: Cookies.get('current-central-number'),\n consumer,\n healthProfessional,\n acceptLgpd: {\n evidenceType: \"SITE\",\n evidence: \"VSTOSITE\",\n termCode: Cookies.get('current-term-code')\n }\n })\n }\n );\n\n const data = await response.json();\n\n if (!data.success) {\n throw new Error(\"PBMLOG: Activate Failed!\");\n }\n\n return data;\n } catch (error) {\n console.error(\"Error during activate:\", error);\n return { success: false, error: \"Authorization failed\" };\n }\n}; ","import classNames from \"classnames\";\n\nconst STEP_LABELS = [\n \"Dados Pessoais\",\n \"Endereço\",\n \"Perfil\",\n \"Médico\",\n \"Aceites\",\n];\n\nconst StepProgress = ({ current }: { current: number }) => (\n <div className=\"flex items-center w-full justify-center mb-6\">\n {STEP_LABELS.map((label, i) => {\n const done = i < current;\n const active = i === current;\n return (\n <div\n key={i}\n className=\"flex items-center w-full min-w-0 justify-center relative\"\n >\n <div className=\"flex flex-col items-center justify-center gap-1 shrink-0 z-10\">\n <div\n className={classNames(\n \"flex h-7 w-7 items-center justify-center rounded-full text-xs font-semibold transition-all\",\n done\n ? \"bg-emerald-600 text-white\"\n : active\n ? \"bg-(--pbm-primary) text-white ring-4 ring-(--pbm-primary)/15\"\n : \"bg-zinc-100 text-zinc-400\",\n )}\n >\n {done ? (\n <svg className=\"h-3.5 w-3.5\" viewBox=\"0 0 12 10\" fill=\"none\">\n <path\n d=\"M1 5l4 4 6-8\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n ) : (\n i + 1\n )}\n </div>\n <span\n className={classNames(\n \"text-[10px] font-medium whitespace-nowrap hidden sm:block\",\n active\n ? \"text-(--pbm-primary)\"\n : done\n ? \"text-emerald-600\"\n : \"text-zinc-400\",\n )}\n >\n {label}\n </span>\n </div>\n {i < STEP_LABELS.length - 1 && (\n <div\n className={classNames(\n \"h-0.5 w-full rounded transition-all absolute top-3.5 left-10\",\n \"bg-zinc-200\",\n )}\n />\n )}\n </div>\n );\n })}\n </div>\n);\n\nexport default StepProgress;\n","const SuccessScreen = ({ onClose }: { onClose: () => void }) => (\n <div className=\"flex flex-col items-center gap-4 py-4 text-center\">\n <div className=\"flex h-16 w-16 items-center justify-center rounded-full bg-green-100\">\n <svg className=\"h-8 w-8 text-green-500\" viewBox=\"0 0 24 24\" fill=\"none\">\n <path\n d=\"M5 13l4 4L19 7\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n <div>\n <h3 className=\"text-base font-semibold text-gray-800\">\n Cadastro concluído!\n </h3>\n <p className=\"text-sm text-zinc-500 mt-1\">\n Você já pode aproveitar os benefícios de farmácia.\n </p>\n </div>\n <button\n onClick={onClose}\n className=\"cursor-pointer mt-2 rounded-lg bg-(--primary-color) px-6 py-2.5 text-sm font-semibold text-white hover:bg-(--primary-color)/80 transition-all\"\n >\n Fechar\n </button>\n </div>\n);\n\nexport default SuccessScreen;\n","import { ILinkHref } from \"../../../types/globals\";\nimport classNames from \"classnames\";\nimport React from \"react\";\nimport { getParams } from \"../../../utils/getParams\";\nimport { usePBMStore } from \"../../../libs/zustand/usePBM\";\n\ninterface LinkProps {\n className?: string;\n children: React.ReactNode;\n href: ILinkHref | string;\n target?: string;\n}\n\nfunction Link(props: LinkProps) {\n const { setState } = usePBMStore();\n\n return (\n <a\n {...props}\n target={props.target || \"_self\"}\n href={\n typeof props.href === \"string\"\n ? props.href\n : props.href.pathname + getParams(props.href.param)\n }\n className={classNames(\n \"w-3xs cursor-pointer h-10 rounded-lg text-white text-sm font-semibold transition-colors flex items-center justify-center\",\n props.className\n )}\n style={{ backgroundColor: 'var(--pbm-primary)' }}\n onMouseOver={(e) => (e.currentTarget.style.backgroundColor = 'var(--pbm-secondary)')}\n onMouseOut={(e) => (e.currentTarget.style.backgroundColor = 'var(--pbm-primary)')}\n data-testid=\"test_id_link\"\n id=\"link_pbm\"\n onClick={() => setState(\"isEmpty\")}\n >\n {props.children}\n </a>\n );\n}\n\nexport default Link;\n","export const getParams = (\n params: { [key: string]: string | number } | undefined\n) => {\n if (params === undefined) return \"\";\n\n return (\n \"?\" +\n Object.keys(params)\n .map((paramter) => paramter + \"=\" + params[paramter])\n .join(\"&\")\n );\n};","import Title from \"../UI/Title\";\nimport Text from \"../UI/Text\";\nimport Button from \"../UI/Button\";\nimport Link from \"../UI/Link\";\nimport { usePBMStore } from \"../../libs/zustand/usePBM\";\nimport { useModal } from \"../../libs/zustand/useModal\";\nimport classNames from \"classnames\";\n\nconst ShopperIsNotAuthenticated = ({ ID }: { ID: string }) => {\n const { customLoginUrl } = usePBMStore();\n const { modal, setModal } = useModal();\n\n return (\n <main\n className={classNames(\n \"fixed inset-0 flex items-center justify-center z-50 flex-col transition-all shadow bg-black/40\",\n {\n \"opacity-100 pointer-events-auto\": modal.id === ID && modal.open,\n \"opacity-0 pointer-events-none\": modal.id != ID || !modal.open,\n },\n )}\n >\n <div\n className=\"absolute inset-0\"\n onClick={() => setModal({ id: \"\", open: false })}\n ></div>\n <section className=\"z-10 bg-white gap-2 flex-col items-center-safe justify-center-safe p-8 rounded-xl\">\n <Title\n textColor=\"tomato\"\n textSize=\"18px\"\n textAlign=\"center\"\n className=\"mb-2\"\n >\n Opa! Parece que você não está Logado\n </Title>\n <Text className=\"mb-2\" textAlign=\"center\">\n Para aproveitar os benefícios é necessário realizar o{\" \"}\n <strong>Login</strong> ou <strong>Cadastro</strong> no site!\n </Text>\n <section className=\"flex items-center-safe justify-center-safe gap-4\">\n <Button\n className=\"bg-gray-600 hover:bg-gray-500\"\n onClick={() => setModal({ id: \"\", open: false })}\n >\n Seguir sem Benefícios\n </Button>\n <Link href={customLoginUrl || \"/login\"}>Aproveitar Benefícios</Link>\n </section>\n </section>\n </main>\n );\n};\n\nexport default ShopperIsNotAuthenticated;\n","import Form from \"./components/Form\";\nimport Header from \"./components/Header\";\nimport Loading from \"./components/UI/Loading\";\nimport Container from \"./components/UI/Container\";\nimport BenefitsTable from \"./components/BenefitsTable\";\nimport SecurityNumberInvalid from \"./components/SecurityNumberInvalid\";\nimport SecurityNumberRegitered from \"./components/SecurityNumberRegitered\";\nimport ErrorToApplyBenefits from \"./components/Errors/ErrorToApplyBenefits\";\nimport CustomerNotRegistered from \"./components/Modals/CustomerNotRegistered\";\nimport ShopperIsNotAuthenticated from \"./components/Modals/ShopperIsNotAuthenticated\";\n\nimport Skeleton from \"@mui/material/Skeleton\";\n\nimport { PBMProps } from \"./types/globals\";\nimport useAppStartup from \"./hooks/useAppStartup\";\nimport { useTheme } from \"./libs/zustand/useTheme\";\nimport { useError } from \"./libs/zustand/useError\";\nimport { usePBMStore } from \"./libs/zustand/usePBM\";\n\nimport { useTransition } from \"react\";\n\nfunction PBM(props: PBMProps) {\n const { state } = usePBMStore();\n const { IsReady, EanProductExist, IsValid } = useAppStartup(props);\n const { setErrorMessage } = useError();\n\n const theme = useTheme();\n\n const [isPending, startTransition] = useTransition();\n\n if (!IsValid) return;\n\n if (!IsReady) {\n return (\n <Skeleton\n variant=\"rectangular\"\n style={{ borderRadius: \"12px\" }}\n width={460}\n height={358}\n />\n );\n }\n\n if (!EanProductExist) {\n setErrorMessage(\n \"O produto não foi encontrado no sistema. Por favor, tente novamente mais tarde ou contate o suporte.\",\n );\n\n return (\n <div id=\"pbm-library-root\">\n <ErrorToApplyBenefits />\n </div>\n );\n }\n\n return (\n <div\n id=\"pbm-library-root\"\n style={\n {\n \"--pbm-primary\": theme.primaryColor,\n \"--pbm-secondary\": theme.secondaryColor,\n \"--pbm-bg\": theme.backgroundColor,\n \"--pbm-text\": theme.textColor,\n \"--pbm-border\": theme.borderColor,\n \"--pbm-outline-color\": theme.inputOutlineColor,\n \"--pbm-outline-focus-color\": theme.inputOutlineFocusColor,\n \"--pbm-input-focus-background\": theme.inputFocusBackgroundColor,\n \"--pbm-input-background\": theme.inputBackgroundColor,\n } as React.CSSProperties\n }\n >\n <Container variant=\"main\">\n <Header />\n\n <Container variant=\"simple\">\n {isPending ? (\n <Loading />\n ) : (\n <>\n {state === \"isEmpty\" && (\n <Form startTransition={startTransition} />\n )}\n {state === \"isInvalid\" && <SecurityNumberInvalid />}\n {state === \"isRegistered\" && <SecurityNumberRegitered />}\n {(state === \"isActivated\" || state === \"isPreview\") && (\n <BenefitsTable />\n )}\n {state === \"isError\" && <ErrorToApplyBenefits />}\n </>\n )}\n </Container>\n </Container>\n\n <ShopperIsNotAuthenticated ID=\"ShopperIsNotAuthenticated\" />\n <CustomerNotRegistered ID=\"CustomerNotRegistered\" />\n </div>\n );\n}\n\nexport default PBM;\n","import { useEffect, useState } from \"react\";\n\nimport { GetAuthorization } from \"../services/authorization\";\nimport { useTheme } from \"../libs/zustand/useTheme\";\nimport { PBMProps } from \"../types/globals\";\nimport { LoadProductsTable } from \"../services/load-products-table\";\nimport { GetProduct } from \"../services/product\";\nimport { usePBMStore } from \"../libs/zustand/usePBM\";\nimport { formaters } from \"../utils/formaters\";\n\nconst useAppStartup = (props: PBMProps) => {\n const {\n setTargetProduct,\n setBenefitsList,\n setIsAuthenticatedShopper,\n setCustomLoginUrl,\n } = usePBMStore();\n const { setTheme } = useTheme();\n\n const [IsReady, setIsReady] = useState<boolean>(false);\n const [IsValid, setIsValid] = useState<boolean>(false);\n const [EanProductExist, setEanProductExist] = useState<boolean>(true);\n\n const fetchAuthorizationRequest = async (): Promise<boolean> => {\n try {\n const response = await GetAuthorization({\n tenant_id: props.tenant_id,\n });\n\n if (!response.success) {\n console.error(\"PBMLOG: Authorization failed!\");\n }\n\n return response.success;\n } catch (error) {\n console.error(\"Error fetching authorization:\", error);\n return false;\n }\n };\n\n const fetchValidateProduct = async (): Promise<boolean> => {\n if (!props.target_product) {\n console.error(\"PBMLOG: Target product is not defined.\");\n setEanProductExist(false);\n return false;\n }\n\n try {\n const response = await LoadProductsTable({ tenant_id: props.tenant_id });\n\n if (!response.success) {\n console.error(\"PBMLOG: Product validation failed!\");\n return false;\n }\n\n if (\n response.data.products.includes(props.target_product.ean.toString())\n ) {\n setEanProductExist(true);\n return true;\n }\n\n return false;\n } catch (error) {\n console.error(\"Error fetching product validation:\", error);\n setEanProductExist(false);\n }\n\n return false;\n };\n\n const fetchProductHasEnableDiscount = async (): Promise<boolean> => {\n try {\n if (!props.target_product) {\n console.error(\"PBMLOG: Target product is not defined.\");\n setEanProductExist(false);\n return false;\n }\n\n const response = await GetProduct({\n tenant_id: props.tenant_id,\n product: props.target_product,\n });\n\n if (!response.success) {\n console.error(\"PBMLOG: Product discount check failed!\");\n setEanProductExist(false);\n return false;\n }\n\n if (!response.product || response.product.length === 0) {\n console.error(\"PBMLOG: Product not found in discount check!\");\n setEanProductExist(false);\n return false;\n }\n\n // salva produto alvo no store para utilizar na primeira exibição do componente do pbm.\n setTargetProduct({\n ...response.product[0],\n requestedQuantity: \"1\",\n listPrice: formaters.priceToInteger(props.target_product.listPrice),\n netPrice: formaters.priceToInteger(props.target_product.netPrice),\n });\n\n // salva lista de beneficios disponíveis sem cpf para exibição sem necessidade de fazer uma requisição extra.\n setBenefitsList(\n response.product.map((prod) => ({\n ...prod,\n listPrice: props.target_product.listPrice,\n netPrice: props.target_product.netPrice,\n })),\n );\n\n setIsAuthenticatedShopper(props.is_authenticated_shopper);\n setCustomLoginUrl(props.custom_login_url);\n setEanProductExist(true);\n return true;\n } catch (error) {\n console.error(error);\n setEanProductExist(false);\n return false;\n }\n };\n\n useEffect(() => {\n let isMounted = true;\n\n const startup = async () => {\n if (props.theme) {\n setTheme(props.theme);\n }\n\n const isAuthorized = await fetchAuthorizationRequest();\n if (!isAuthorized || !isMounted) return;\n\n const isValidProduct = await Promise.all(\n [fetchValidateProduct(), fetchProductHasEnableDiscount()].filter(\n Boolean,\n ),\n ).then((results) => results.every(Boolean));\n\n setIsValid(isValidProduct);\n if (!isValidProduct || !isMounted) return;\n\n if (isMounted) {\n setIsReady(true);\n }\n };\n\n startup();\n\n return () => {\n isMounted = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.tenant_id]);\n\n return { IsReady, IsValid, EanProductExist };\n};\n\nexport default useAppStartup;\n","import Cookies from 'js-cookie'\nimport { getEnv } from './helper';\nimport { ErrorRequest, IAuthorizationResponse, IRequestDefault } from '../types/requests';\n\nexport const GetAuthorization = async ({ tenant_id }: { tenant_id: string }): Promise<IAuthorizationResponse & Omit<IRequestDefault, 'returnCode' | 'informativeText'> | ErrorRequest> => {\n if (!tenant_id) {\n throw new Error(`No configuration found for tenant: ${tenant_id}`);\n }\n try {\n const response = await fetch(`${getEnv(\"VITE_API_URL\")}/api/token.ts`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n \"Accept\": \"application/json\",\n },\n body: JSON.stringify({ tenant_id })\n }\n );\n\n const data: IAuthorizationResponse & Omit<IRequestDefault, 'returnCode' | 'informativeText'> = await response.json();\n\n if (!data.success) {\n throw new Error(\"PBMLOG: Authorization failed!\");\n }\n\n const SECONDS_IN_A_DAY = 86400;\n\n Cookies.set('pbm-token', data.access_token, {\n secure: true,\n sameSite: 'Strict',\n expires: data.expires_in / SECONDS_IN_A_DAY\n });\n\n Cookies.set('tenant_id', tenant_id, {\n secure: true,\n sameSite: 'Strict',\n expires: 7\n });\n\n return data;\n } catch (error) {\n console.error(\"Error during authorization:\", error);\n return { success: false, error: \"Authorization failed\" };\n }\n};","import { createStore, StoreApi } from \"zustand\";\nimport { useStore } from \"zustand/react\";\nimport { PBMTheme } from \"../../types/globals\";\n\nexport interface ThemeStore extends PBMTheme {\n setTheme: (theme: PBMTheme) => void;\n}\n\nconst initialThemeState: PBMTheme = {\n primaryColor: \"#44c2c0\",\n secondaryColor: \"#339c9b\",\n backgroundColor: \"#ffffff\",\n textColor: \"#52525b\",\n borderColor: \"#44c2c0\",\n inputOutlineColor: \"transparent\",\n inputOutlineFocusColor: \"#323232\",\n inputBackgroundColor: \"#EDEDED\",\n inputFocusBackgroundColor: \"#EDEDED\",\n};\n\nexport const themeStore: StoreApi<ThemeStore> = createStore<ThemeStore>(\n (set) => ({\n ...initialThemeState,\n setTheme: (theme: PBMTheme) => set((state) => ({ ...state, ...theme })),\n }),\n);\n\nexport function useTheme(): ThemeStore;\nexport function useTheme<T>(selector: (state: ThemeStore) => T): T;\nexport function useTheme<T>(\n selector?: (state: ThemeStore) => T,\n): ThemeStore | T {\n return useStore(\n themeStore,\n (selector ?? ((state: ThemeStore) => state)) as (state: ThemeStore) => T,\n );\n}\n","import Cookies from 'js-cookie'\n\nimport { getEnv } from './helper';\nimport { LoadTableRootResponse } from '../types/load-tables';\nimport { ErrorRequest, IRequestDefault } from '../types/requests';\nimport { cleanupCacheTimestamp } from '../utils/cleanupCacheTimestamp';\n\ninterface LoadProductsTableResult {\n states: string[];\n cities: string[];\n federalCodes: string[];\n programNames: string[];\n products: string[];\n}\n\ninterface RequestResult {\n data: LoadProductsTableResult;\n expiresAt: number;\n success: boolean;\n}\n\nconst memoryCache = new Map<string, RequestResult>();\n\nfunction getCacheKey(tenant_id: string) {\n return `load-products-table:${tenant_id}`;\n}\n\nfunction readCache(key: string): LoadProductsTableResult | null {\n // 1º nível: memória (mais rápido)\n const memEntry = memoryCache.get(key);\n if (memEntry && Date.now() < memEntry.expiresAt) {\n return memEntry.data;\n }\n\n // 2º nível: localStorage (persiste entre reloads)\n try {\n const raw = localStorage.getItem(key);\n if (!raw) return null;\n\n const entry: RequestResult = JSON.parse(raw);\n if (Date.now() >= entry.expiresAt) {\n localStorage.removeItem(key);\n return null;\n }\n\n // Reabastece memória com o que veio do localStorage\n memoryCache.set(key, entry);\n return entry.data;\n } catch {\n return null;\n }\n}\n\nfunction writeCache(key: string, data: LoadProductsTableResult): void {\n const entry: RequestResult = { data, expiresAt: cleanupCacheTimestamp(), success: true };\n\n memoryCache.set(key, entry);\n\n localStorage.setItem(key, JSON.stringify(entry));\n}\n\nexport const LoadProductsTable = async ({ tenant_id }: { tenant_id: string }): Promise<RequestResult | ErrorRequest> => {\n if (!tenant_id) {\n throw new Error(`No configuration found for tenant: ${tenant_id}`);\n }\n\n const cacheKey = getCacheKey(tenant_id);\n const cached = readCache(cacheKey);\n\n if (cached) {\n const result: RequestResult = {\n data: cached,\n expiresAt: memoryCache.get(cacheKey)!.expiresAt,\n success: true\n }\n\n return result;\n }\n\n const response = await fetch(\n `${getEnv(\"VITE_API_URL\")}/api/load-tables.ts`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': `Bearer ${Cookies.get('pbm-token')}`,\n },\n body: JSON.stringify({ tenant_id })\n }\n );\n\n const data: LoadTableRootResponse & IRequestDefault = await response.json();\n\n if (data.informativeText !== \"Processamento aprovado\") {\n throw new Error('PBMLOG: Load Products Table Failed!');\n }\n\n Cookies.set('current-table-id', data.control.tableId, {\n secure: true,\n sameSite: 'Strict',\n expires: 1\n });\n\n Cookies.set('current-central-number', data.control.centralNumber.toString(), {\n secure: true,\n sameSite: 'Strict',\n expires: 1\n });\n\n Cookies.set('current-local-hour', data.local_hour, {\n secure: true,\n sameSite: 'Strict',\n expires: 1\n });\n\n const formattedData = extractTableData(data.control.tableImage);\n writeCache(cacheKey, formattedData);\n\n const result: RequestResult = {\n data: formattedData,\n expiresAt: memoryCache.get(cacheKey)!.expiresAt,\n success: true\n }\n\n return result;\n};\n\nfunction extractTableData(tableImage: LoadTableRootResponse['control']['tableImage']): LoadProductsTableResult {\n const states = tableImage.map(s => s.state);\n const cities = tableImage.flatMap(s => s.cities.map(c => c.city));\n const federalCodes = tableImage.flatMap(s => s.cities.flatMap(c => c.federalCodes.map(f => f.federalCode)));\n const programNames = tableImage.flatMap(s => s.cities.flatMap(c => c.federalCodes.flatMap(f => f.programNames.map(p => p.programName))));\n const products = tableImage.flatMap(s => s.cities.flatMap(c => c.federalCodes.flatMap(f => f.programNames.flatMap(p => p.products.map(pr => pr.ean)))));\n\n return { states, cities, federalCodes, programNames, products };\n}","const CLEANUP_HOUR = 2;\nconst CLEANUP_MINUTE = 30;\n\nexport const cleanupCacheTimestamp = (): number => {\n const now = new Date();\n const next = new Date(now);\n next.setHours(CLEANUP_HOUR, CLEANUP_MINUTE, 0, 0);\n\n if (next.getTime() <= now.getTime()) {\n next.setDate(next.getDate() + 1);\n }\n\n return next.getTime();\n}","import Cookies from 'js-cookie'\nimport { getEnv } from './helper';\nimport { ErrorRequest, IRequestDefault } from '../types/requests';\nimport { IProduct, TargetProduct } from '../types/globals';\n\ninterface ProductResponse extends IRequestDefault {\n product: IProduct[];\n}\n\ninterface IGetProduct {\n tenant_id: string;\n product: TargetProduct;\n}\n\nexport const GetProduct = async ({ tenant_id, product }: IGetProduct): Promise<ProductResponse | ErrorRequest> => {\n if (!tenant_id) {\n throw new Error(`No configuration found for tenant: ${tenant_id}`);\n }\n\n if (!product) {\n throw new Error(`Product information is required`);\n }\n\n try {\n const response = await fetch(`${getEnv(\"VITE_API_URL\")}/api/product.ts`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': 'application/json',\n 'Authorization': `Bearer ${Cookies.get('pbm-token')}`,\n },\n body: JSON.stringify({\n tenant_id,\n product,\n table_id: Cookies.get('current-table-id'),\n local_hour: Cookies.get('current-local-hour')\n })\n }\n );\n\n const data = await response.json();\n\n if (!data.success) {\n throw new Error(\"PBMLOG: Get Product Failed!\");\n }\n\n return data;\n } catch (error) {\n console.error(\"Error during get product:\", error);\n return { success: false, error: \"Get Product Failed\" };\n }\n};"],"mappings":"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","names":["classNames","import_zod","import_classnames","import_react","import_zustand","Cookies","import_jsx_runtime","classNames","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_classnames","import_jsx_runtime","classNames","import_classnames","import_jsx_runtime","classNames","import_react","import_react","import_classnames","import_jsx_runtime","classNames","import_jsx_runtime","import_classnames","import_jsx_runtime","classNames","import_jsx_runtime","import_jsx_runtime","import_lucide_react","import_zustand","import_jsx_runtime","import_react","import_zustand","import_classnames","import_react","import_jsx_runtime","import_classnames","classNames","import_classnames","import_jsx_runtime","classNames","import_jsx_runtime","import_react","import_jsx_runtime","import_classnames","import_react","import_jsx_runtime","classNames","import_react","import_jsx_runtime","import_react","import_classnames","import_jsx_runtime","classNames","import_js_cookie","Cookies","import_js_cookie","Cookies","import_jsx_runtime","import_classnames","import_jsx_runtime","classNames","import_jsx_runtime","import_jsx_runtime","classNames","import_classnames","import_jsx_runtime","classNames","import_classnames","import_jsx_runtime","classNames","import_react","import_js_cookie","Cookies","import_zustand","import_react","import_js_cookie","result","Cookies","import_js_cookie","Cookies","import_react","import_jsx_runtime","Skeleton"]}
package/dist/index.css CHANGED
@@ -1429,3 +1429,4 @@
1429
1429
  }
1430
1430
  }
1431
1431
  /*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */
1432
+ /*# sourceMappingURL=index.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pbm-scoped.css"],"sourcesContent":["/*! tailwindcss v4.2.2 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer pbm-library {\n @layer theme, base, components, utilities;\n @layer theme {\n :root, :host {\n --font-sans: ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\",\n \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\",\n \"Courier New\", monospace;\n --color-red-50: oklch(97.1% 0.013 17.38);\n --color-red-300: oklch(80.8% 0.114 19.571);\n --color-red-400: oklch(70.4% 0.191 22.216);\n --color-red-500: oklch(63.7% 0.237 25.331);\n --color-red-600: oklch(57.7% 0.245 27.325);\n --color-green-100: oklch(96.2% 0.044 156.743);\n --color-green-400: oklch(79.2% 0.209 151.711);\n --color-green-500: oklch(72.3% 0.219 149.579);\n --color-emerald-50: oklch(97.9% 0.021 166.113);\n --color-emerald-200: oklch(90.5% 0.093 164.15);\n --color-emerald-500: oklch(69.6% 0.17 162.48);\n --color-emerald-600: oklch(59.6% 0.145 163.225);\n --color-emerald-700: oklch(50.8% 0.118 165.612);\n --color-blue-400: oklch(70.7% 0.165 254.624);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-gray-50: oklch(98.5% 0.002 247.839);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-gray-800: oklch(27.8% 0.033 256.848);\n --color-zinc-50: oklch(98.5% 0 0);\n --color-zinc-100: oklch(96.7% 0.001 286.375);\n --color-zinc-200: oklch(92% 0.004 286.32);\n --color-zinc-300: oklch(87.1% 0.006 286.286);\n --color-zinc-400: oklch(70.5% 0.015 286.067);\n --color-zinc-500: oklch(55.2% 0.016 285.938);\n --color-zinc-600: oklch(44.2% 0.017 285.786);\n --color-zinc-700: oklch(37% 0.013 285.805);\n --color-zinc-800: oklch(27.4% 0.006 286.033);\n --color-zinc-900: oklch(21% 0.006 285.885);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --container-3xs: 16rem;\n --text-xs: 0.75rem;\n --text-xs--line-height: calc(1 / 0.75);\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-base: 1rem;\n --text-base--line-height: calc(1.5 / 1);\n --text-lg: 1.125rem;\n --text-lg--line-height: calc(1.75 / 1.125);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --font-weight-light: 300;\n --font-weight-normal: 400;\n --font-weight-medium: 500;\n --font-weight-semibold: 600;\n --font-weight-bold: 700;\n --tracking-wide: 0.025em;\n --leading-snug: 1.375;\n --radius-lg: 0.5rem;\n --radius-xl: 0.75rem;\n --radius-2xl: 1rem;\n --animate-spin: spin 1s linear infinite;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n }\n }\n @layer base {\n *, ::after, ::before, ::backdrop, ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html, :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1, h2, h3, h4, h5, h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b, strong {\n font-weight: bolder;\n }\n code, kbd, samp, pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub, sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol, ul, menu {\n list-style: none;\n }\n img, svg, video, canvas, audio, iframe, embed, object {\n display: block;\n vertical-align: middle;\n }\n img, video {\n max-width: 100%;\n height: auto;\n }\n button, input, select, optgroup, textarea, ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button, input:where([type=\"button\"], [type=\"reset\"], [type=\"submit\"]), ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button, ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=\"until-found\"])) {\n display: none !important;\n }\n }\n @layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .visible {\n visibility: visible;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n border-width: 0;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .static {\n position: static;\n }\n .sticky {\n position: sticky;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .start {\n inset-inline-start: var(--spacing);\n }\n .end {\n inset-inline-end: var(--spacing);\n }\n .-top-4 {\n top: calc(var(--spacing) * -4);\n }\n .top-1\\/2 {\n top: calc(1 / 2 * 100%);\n }\n .top-3\\.5 {\n top: calc(var(--spacing) * 3.5);\n }\n .-right-3 {\n right: calc(var(--spacing) * -3);\n }\n .right-3 {\n right: calc(var(--spacing) * 3);\n }\n .-bottom-3 {\n bottom: calc(var(--spacing) * -3);\n }\n .left-2 {\n left: calc(var(--spacing) * 2);\n }\n .left-10 {\n left: calc(var(--spacing) * 10);\n }\n .z-10 {\n z-index: 10;\n }\n .z-50 {\n z-index: 50;\n }\n .container {\n width: 100%;\n @media (width >= 40rem) {\n max-width: 40rem;\n }\n @media (width >= 48rem) {\n max-width: 48rem;\n }\n @media (width >= 64rem) {\n max-width: 64rem;\n }\n @media (width >= 80rem) {\n max-width: 80rem;\n }\n @media (width >= 96rem) {\n max-width: 96rem;\n }\n }\n .mx-4 {\n margin-inline: calc(var(--spacing) * 4);\n }\n .mt-0\\.5 {\n margin-top: calc(var(--spacing) * 0.5);\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-2 {\n margin-top: calc(var(--spacing) * 2);\n }\n .mt-5 {\n margin-top: calc(var(--spacing) * 5);\n }\n .mb-1 {\n margin-bottom: calc(var(--spacing) * 1);\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .mb-6 {\n margin-bottom: calc(var(--spacing) * 6);\n }\n .ml-1 {\n margin-left: calc(var(--spacing) * 1);\n }\n .ml-auto {\n margin-left: auto;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .grid {\n display: grid;\n }\n .hidden {\n display: none;\n }\n .inline {\n display: inline;\n }\n .table {\n display: table;\n }\n .aspect-auto {\n aspect-ratio: auto;\n }\n .h-0 {\n height: calc(var(--spacing) * 0);\n }\n .h-0\\.5 {\n height: calc(var(--spacing) * 0.5);\n }\n .h-2\\.5 {\n height: calc(var(--spacing) * 2.5);\n }\n .h-3\\.5 {\n height: calc(var(--spacing) * 3.5);\n }\n .h-4 {\n height: calc(var(--spacing) * 4);\n }\n .h-5 {\n height: calc(var(--spacing) * 5);\n }\n .h-7 {\n height: calc(var(--spacing) * 7);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-auto {\n height: auto;\n }\n .max-h-\\[90vh\\] {\n max-height: 90vh;\n }\n .w-1\\/5 {\n width: calc(1 / 5 * 100%);\n }\n .w-2\\.5 {\n width: calc(var(--spacing) * 2.5);\n }\n .w-3\\.5 {\n width: calc(var(--spacing) * 3.5);\n }\n .w-3xs {\n width: var(--container-3xs);\n }\n .w-4 {\n width: calc(var(--spacing) * 4);\n }\n .w-4\\/5 {\n width: calc(4 / 5 * 100%);\n }\n .w-5 {\n width: calc(var(--spacing) * 5);\n }\n .w-7 {\n width: calc(var(--spacing) * 7);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-auto {\n width: auto;\n }\n .w-full {\n width: 100%;\n }\n .max-w-\\(--max-container\\) {\n max-width: var(--max-container);\n }\n .max-w-125 {\n max-width: calc(var(--spacing) * 125);\n }\n .max-w-\\[var\\(--max-container\\)\\] {\n max-width: var(--max-container);\n }\n .min-w-\\(--min-container\\) {\n min-width: var(--min-container);\n }\n .min-w-0 {\n min-width: calc(var(--spacing) * 0);\n }\n .min-w-20 {\n min-width: calc(var(--spacing) * 20);\n }\n .min-w-125 {\n min-width: calc(var(--spacing) * 125);\n }\n .min-w-\\[var\\(--min-container\\)\\] {\n min-width: var(--min-container);\n }\n .flex-1 {\n flex: 1;\n }\n .flex-2 {\n flex: 2;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1 / 2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .rotate-0 {\n rotate: 0deg;\n }\n .rotate-180 {\n rotate: 180deg;\n }\n .transform {\n transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);\n }\n .animate-spin {\n animation: var(--animate-spin);\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n }\n .grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n }\n .flex-col {\n flex-direction: column;\n }\n .items-center {\n align-items: center;\n }\n .items-center-safe {\n align-items: safe center;\n }\n .items-end {\n align-items: flex-end;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-center-safe {\n justify-content: safe center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .justify-end-safe {\n justify-content: safe flex-end;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .gap-1 {\n gap: calc(var(--spacing) * 1);\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-4 {\n gap: calc(var(--spacing) * 4);\n }\n .gap-4\\.5 {\n gap: calc(var(--spacing) * 4.5);\n }\n .gap-5 {\n gap: calc(var(--spacing) * 5);\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-2xl {\n border-radius: var(--radius-2xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .rounded-lg {\n border-radius: var(--radius-lg);\n }\n .rounded-xl {\n border-radius: var(--radius-xl);\n }\n .rounded-s-lg {\n border-start-start-radius: var(--radius-lg);\n border-end-start-radius: var(--radius-lg);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-3 {\n border-style: var(--tw-border-style);\n border-width: 3px;\n }\n .border-4 {\n border-style: var(--tw-border-style);\n border-width: 4px;\n }\n .border-y {\n border-block-style: var(--tw-border-style);\n border-block-width: 1px;\n }\n .border-t {\n border-top-style: var(--tw-border-style);\n border-top-width: 1px;\n }\n .border-\\(--pbm-border\\) {\n border-color: var(--pbm-border);\n }\n .border-\\(--pbm-primary\\) {\n border-color: var(--pbm-primary);\n }\n .border-emerald-200 {\n border-color: var(--color-emerald-200);\n }\n .border-emerald-700 {\n border-color: var(--color-emerald-700);\n }\n .border-gray-100 {\n border-color: var(--color-gray-100);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-gray-300 {\n border-color: var(--color-gray-300);\n }\n .border-red-300 {\n border-color: var(--color-red-300);\n }\n .border-red-400 {\n border-color: var(--color-red-400);\n }\n .border-zinc-100 {\n border-color: var(--color-zinc-100);\n }\n .border-zinc-300 {\n border-color: var(--color-zinc-300);\n }\n .border-zinc-400\\/50 {\n border-color: color-mix(in srgb, oklch(70.5% 0.015 286.067) 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-zinc-400) 50%, transparent);\n }\n }\n .bg-\\(--pbm-input-background\\) {\n background-color: var(--pbm-input-background);\n }\n .bg-\\(--pbm-primary\\) {\n background-color: var(--pbm-primary);\n }\n .bg-\\(--primary-color\\) {\n background-color: var(--primary-color);\n }\n .bg-black\\/40 {\n background-color: color-mix(in srgb, #000 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 40%, transparent);\n }\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-emerald-50\\/60 {\n background-color: color-mix(in srgb, oklch(97.9% 0.021 166.113) 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-emerald-50) 60%, transparent);\n }\n }\n .bg-emerald-600 {\n background-color: var(--color-emerald-600);\n }\n .bg-gray-50 {\n background-color: var(--color-gray-50);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-gray-600 {\n background-color: var(--color-gray-600);\n }\n .bg-green-100 {\n background-color: var(--color-green-100);\n }\n .bg-green-500 {\n background-color: var(--color-green-500);\n }\n .bg-red-50 {\n background-color: var(--color-red-50);\n }\n .bg-red-50\\/40 {\n background-color: color-mix(in srgb, oklch(97.1% 0.013 17.38) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-red-50) 40%, transparent);\n }\n }\n .bg-transparent {\n background-color: transparent;\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-zinc-50\\/40 {\n background-color: color-mix(in srgb, oklch(98.5% 0 0) 40%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-zinc-50) 40%, transparent);\n }\n }\n .bg-zinc-100 {\n background-color: var(--color-zinc-100);\n }\n .bg-zinc-200 {\n background-color: var(--color-zinc-200);\n }\n .bg-zinc-300\\/60 {\n background-color: color-mix(in srgb, oklch(87.1% 0.006 286.286) 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-zinc-300) 60%, transparent);\n }\n }\n .p-0 {\n padding: calc(var(--spacing) * 0);\n }\n .p-0\\.5 {\n padding: calc(var(--spacing) * 0.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .p-6 {\n padding: calc(var(--spacing) * 6);\n }\n .p-8 {\n padding: calc(var(--spacing) * 8);\n }\n .px-2 {\n padding-inline: calc(var(--spacing) * 2);\n }\n .px-2\\.5 {\n padding-inline: calc(var(--spacing) * 2.5);\n }\n .px-3 {\n padding-inline: calc(var(--spacing) * 3);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .px-6 {\n padding-inline: calc(var(--spacing) * 6);\n }\n .py-0\\.5 {\n padding-block: calc(var(--spacing) * 0.5);\n }\n .py-1 {\n padding-block: calc(var(--spacing) * 1);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-2\\.5 {\n padding-block: calc(var(--spacing) * 2.5);\n }\n .py-4 {\n padding-block: calc(var(--spacing) * 4);\n }\n .py-6 {\n padding-block: calc(var(--spacing) * 6);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pl-1 {\n padding-left: calc(var(--spacing) * 1);\n }\n .pl-2 {\n padding-left: calc(var(--spacing) * 2);\n }\n .text-center {\n text-align: center;\n }\n .text-start {\n text-align: start;\n }\n .text-base {\n font-size: var(--text-base);\n line-height: var(--tw-leading, var(--text-base--line-height));\n }\n .text-lg {\n font-size: var(--text-lg);\n line-height: var(--tw-leading, var(--text-lg--line-height));\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-xs {\n font-size: var(--text-xs);\n line-height: var(--tw-leading, var(--text-xs--line-height));\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .leading-snug {\n --tw-leading: var(--leading-snug);\n line-height: var(--leading-snug);\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .font-light {\n --tw-font-weight: var(--font-weight-light);\n font-weight: var(--font-weight-light);\n }\n .font-medium {\n --tw-font-weight: var(--font-weight-medium);\n font-weight: var(--font-weight-medium);\n }\n .font-normal {\n --tw-font-weight: var(--font-weight-normal);\n font-weight: var(--font-weight-normal);\n }\n .font-semibold {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n .tracking-wide {\n --tw-tracking: var(--tracking-wide);\n letter-spacing: var(--tracking-wide);\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .whitespace-nowrap {\n white-space: nowrap;\n }\n .text-\\(--pbm-primary\\) {\n color: var(--pbm-primary);\n }\n .text-blue-500 {\n color: var(--color-blue-500);\n }\n .text-emerald-600 {\n color: var(--color-emerald-600);\n }\n .text-gray-400 {\n color: var(--color-gray-400);\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-gray-800 {\n color: var(--color-gray-800);\n }\n .text-green-500 {\n color: var(--color-green-500);\n }\n .text-red-400 {\n color: var(--color-red-400);\n }\n .text-red-500 {\n color: var(--color-red-500);\n }\n .text-white {\n color: var(--color-white);\n }\n .text-zinc-400 {\n color: var(--color-zinc-400);\n }\n .text-zinc-500 {\n color: var(--color-zinc-500);\n }\n .text-zinc-600 {\n color: var(--color-zinc-600);\n }\n .text-zinc-700 {\n color: var(--color-zinc-700);\n }\n .text-zinc-800 {\n color: var(--color-zinc-800);\n }\n .text-zinc-900 {\n color: var(--color-zinc-900);\n }\n .uppercase {\n text-transform: uppercase;\n }\n .line-through {\n text-decoration-line: line-through;\n }\n .underline {\n text-decoration-line: underline;\n }\n .underline-offset-2 {\n text-underline-offset: 2px;\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-25 {\n opacity: 25%;\n }\n .opacity-60 {\n opacity: 60%;\n }\n .opacity-75 {\n opacity: 75%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .shadow-xl {\n --tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-4 {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n .ring-\\(--pbm-primary\\)\\/15 {\n --tw-ring-color: var(--pbm-primary);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--pbm-primary) 15%, transparent);\n }\n }\n .outline {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n .outline-\\(--pbm-outline-color\\) {\n outline-color: var(--pbm-outline-color);\n }\n .outline-red-600 {\n outline-color: var(--color-red-600);\n }\n .filter {\n filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-100 {\n --tw-duration: 100ms;\n transition-duration: 100ms;\n }\n .duration-150 {\n --tw-duration: 150ms;\n transition-duration: 150ms;\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .select-none {\n -webkit-user-select: none;\n user-select: none;\n }\n .placeholder\\:text-sm {\n &::placeholder {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n }\n .placeholder\\:font-semibold {\n &::placeholder {\n --tw-font-weight: var(--font-weight-semibold);\n font-weight: var(--font-weight-semibold);\n }\n }\n .placeholder\\:text-zinc-600 {\n &::placeholder {\n color: var(--color-zinc-600);\n }\n }\n .after\\:h-2 {\n &::after {\n content: var(--tw-content);\n height: calc(var(--spacing) * 2);\n }\n }\n .after\\:w-2 {\n &::after {\n content: var(--tw-content);\n width: calc(var(--spacing) * 2);\n }\n }\n .after\\:scale-0 {\n &::after {\n content: var(--tw-content);\n --tw-scale-x: 0%;\n --tw-scale-y: 0%;\n --tw-scale-z: 0%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n .after\\:rounded-full {\n &::after {\n content: var(--tw-content);\n border-radius: calc(infinity * 1px);\n }\n }\n .after\\:bg-\\(--pbm-primary\\) {\n &::after {\n content: var(--tw-content);\n background-color: var(--pbm-primary);\n }\n }\n .after\\:transition-transform {\n &::after {\n content: var(--tw-content);\n transition-property: transform, translate, scale, rotate;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n }\n .after\\:duration-200 {\n &::after {\n content: var(--tw-content);\n --tw-duration: 200ms;\n transition-duration: 200ms;\n }\n }\n .after\\:content-\\[\\'\\'\\] {\n &::after {\n --tw-content: '';\n content: var(--tw-content);\n }\n }\n .peer-checked\\:after\\:scale-100 {\n &:is(:where(.peer):checked ~ *) {\n &::after {\n content: var(--tw-content);\n --tw-scale-x: 100%;\n --tw-scale-y: 100%;\n --tw-scale-z: 100%;\n scale: var(--tw-scale-x) var(--tw-scale-y);\n }\n }\n }\n .hover\\:border-\\(--pbm-primary\\) {\n &:hover {\n @media (hover: hover) {\n border-color: var(--pbm-primary);\n }\n }\n }\n .hover\\:border-gray-300 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-gray-300);\n }\n }\n }\n .hover\\:border-zinc-200 {\n &:hover {\n @media (hover: hover) {\n border-color: var(--color-zinc-200);\n }\n }\n }\n .hover\\:bg-\\(--pbm-primary\\)\\/60 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--pbm-primary);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--pbm-primary) 60%, transparent);\n }\n }\n }\n }\n .hover\\:bg-\\(--primary-color\\)\\/80 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--primary-color);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--primary-color) 80%, transparent);\n }\n }\n }\n }\n .hover\\:bg-blue-400 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-400);\n }\n }\n }\n .hover\\:bg-emerald-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-emerald-500);\n }\n }\n }\n .hover\\:bg-gray-100 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-100);\n }\n }\n }\n .hover\\:bg-gray-500 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-500);\n }\n }\n }\n .hover\\:bg-green-400 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-green-400);\n }\n }\n }\n .hover\\:bg-transparent {\n &:hover {\n @media (hover: hover) {\n background-color: transparent;\n }\n }\n }\n .hover\\:bg-zinc-600\\/10 {\n &:hover {\n @media (hover: hover) {\n background-color: color-mix(in srgb, oklch(44.2% 0.017 285.786) 10%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-zinc-600) 10%, transparent);\n }\n }\n }\n }\n .hover\\:text-\\(--pbm-primary\\)\\/60 {\n &:hover {\n @media (hover: hover) {\n color: var(--pbm-primary);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--pbm-primary) 60%, transparent);\n }\n }\n }\n }\n .hover\\:text-gray-600 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-gray-600);\n }\n }\n }\n .hover\\:text-zinc-400 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-zinc-400);\n }\n }\n }\n .hover\\:text-zinc-900 {\n &:hover {\n @media (hover: hover) {\n color: var(--color-zinc-900);\n }\n }\n }\n .focus\\:border-blue-500 {\n &:focus {\n border-color: var(--color-blue-500);\n }\n }\n .focus\\:bg-\\(--pbm-input-focus\\) {\n &:focus {\n background-color: var(--pbm-input-focus);\n }\n }\n .focus\\:bg-white {\n &:focus {\n background-color: var(--color-white);\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);\n }\n }\n .focus\\:ring-blue-500\\/30 {\n &:focus {\n --tw-ring-color: color-mix(in srgb, oklch(62.3% 0.214 259.815) 30%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-ring-color: color-mix(in oklab, var(--color-blue-500) 30%, transparent);\n }\n }\n }\n .focus\\:outline {\n &:focus {\n outline-style: var(--tw-outline-style);\n outline-width: 1px;\n }\n }\n .focus\\:outline-\\(--pbm-outline-focus-color\\) {\n &:focus {\n outline-color: var(--pbm-outline-focus-color);\n }\n }\n .sm\\:block {\n @media (width >= 40rem) {\n display: block;\n }\n }\n }\n}\n#pbm-library-root {\n --max-container: 556px;\n --min-container: 350px;\n}\n#pbm-library-root,\n#pbm-library-root *,\n#pbm-library-root *::before,\n#pbm-library-root *::after {\n box-sizing: border-box;\n}\n@property --tw-translate-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-translate-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 0;\n}\n@property --tw-rotate-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-rotate-z {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-x {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-skew-y {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-border-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-leading {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-font-weight {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-tracking {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-inset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-inset-ring-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-inset-ring-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-ring-inset {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-ring-offset-width {\n syntax: \"<length>\";\n inherits: false;\n initial-value: 0px;\n}\n@property --tw-ring-offset-color {\n syntax: \"*\";\n inherits: false;\n initial-value: #fff;\n}\n@property --tw-ring-offset-shadow {\n syntax: \"*\";\n inherits: false;\n initial-value: 0 0 #0000;\n}\n@property --tw-outline-style {\n syntax: \"*\";\n inherits: false;\n initial-value: solid;\n}\n@property --tw-blur {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-brightness {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-contrast {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-grayscale {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-hue-rotate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-invert {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-opacity {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-saturate {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-sepia {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-color {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-drop-shadow-alpha {\n syntax: \"<percentage>\";\n inherits: false;\n initial-value: 100%;\n}\n@property --tw-drop-shadow-size {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-duration {\n syntax: \"*\";\n inherits: false;\n}\n@property --tw-content {\n syntax: \"*\";\n initial-value: \"\";\n inherits: false;\n}\n@property --tw-scale-x {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-y {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@property --tw-scale-z {\n syntax: \"*\";\n inherits: false;\n initial-value: 1;\n}\n@keyframes spin {\n to {\n transform: rotate(360deg);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *, ::before, ::after, ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-rotate-x: initial;\n --tw-rotate-y: initial;\n --tw-rotate-z: initial;\n --tw-skew-x: initial;\n --tw-skew-y: initial;\n --tw-border-style: solid;\n --tw-leading: initial;\n --tw-font-weight: initial;\n --tw-tracking: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-outline-style: solid;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-content: \"\";\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n --tw-scale-z: 1;\n }\n }\n}\n"],"mappings":"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","names":[]}