@dropins/tools 0.23.0-alpha39 → 0.23.0-alpha40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/chunks/icons/Add.js +2 -0
- package/chunks/icons/Add.js.map +1 -0
- package/chunks/icons/Bulk.js +2 -0
- package/chunks/icons/Bulk.js.map +1 -0
- package/chunks/icons/Burger.js +2 -0
- package/chunks/icons/Burger.js.map +1 -0
- package/chunks/icons/Card.js +2 -0
- package/chunks/icons/Card.js.map +1 -0
- package/chunks/icons/Cart.js +2 -0
- package/chunks/icons/Cart.js.map +1 -0
- package/chunks/icons/Check.js +2 -0
- package/chunks/icons/Check.js.map +1 -0
- package/chunks/icons/CheckWithCircle.js +2 -0
- package/chunks/icons/CheckWithCircle.js.map +1 -0
- package/chunks/icons/ChevronDown.js +2 -0
- package/chunks/icons/ChevronDown.js.map +1 -0
- package/chunks/icons/ChevronRight.js +2 -0
- package/chunks/icons/ChevronRight.js.map +1 -0
- package/chunks/icons/ChevronUp.js +2 -0
- package/chunks/icons/ChevronUp.js.map +1 -0
- package/chunks/icons/Close.js +2 -0
- package/chunks/icons/Close.js.map +1 -0
- package/chunks/icons/Delivery.js +2 -0
- package/chunks/icons/Delivery.js.map +1 -0
- package/chunks/icons/Heart.js +2 -0
- package/chunks/icons/Heart.js.map +1 -0
- package/chunks/icons/HeartFilled.js +2 -0
- package/chunks/icons/HeartFilled.js.map +1 -0
- package/chunks/icons/InfoFilled.js +2 -0
- package/chunks/icons/InfoFilled.js.map +1 -0
- package/chunks/icons/Locker.js +2 -0
- package/chunks/icons/Locker.js.map +1 -0
- package/chunks/icons/Minus.js +2 -0
- package/chunks/icons/Minus.js.map +1 -0
- package/chunks/icons/Order.js +2 -0
- package/chunks/icons/Order.js.map +1 -0
- package/chunks/icons/OrderError.js +2 -0
- package/chunks/icons/OrderError.js.map +1 -0
- package/chunks/icons/OrderSuccess.js +2 -0
- package/chunks/icons/OrderSuccess.js.map +1 -0
- package/chunks/icons/PaymentError.js +2 -0
- package/chunks/icons/PaymentError.js.map +1 -0
- package/chunks/icons/Placeholder.js +2 -0
- package/chunks/icons/Placeholder.js.map +1 -0
- package/chunks/icons/PlaceholderFilled.js +2 -0
- package/chunks/icons/PlaceholderFilled.js.map +1 -0
- package/chunks/icons/Search.js +2 -0
- package/chunks/icons/Search.js.map +1 -0
- package/chunks/icons/SearchFilled.js +2 -0
- package/chunks/icons/SearchFilled.js.map +1 -0
- package/chunks/icons/Sort.js +2 -0
- package/chunks/icons/Sort.js.map +1 -0
- package/chunks/icons/Star.js +2 -0
- package/chunks/icons/Star.js.map +1 -0
- package/chunks/icons/Trash.js +2 -0
- package/chunks/icons/Trash.js.map +1 -0
- package/chunks/icons/User.js +2 -0
- package/chunks/icons/User.js.map +1 -0
- package/chunks/icons/View.js +2 -0
- package/chunks/icons/View.js.map +1 -0
- package/chunks/icons/Wallet.js +2 -0
- package/chunks/icons/Wallet.js.map +1 -0
- package/chunks/icons/Warning.js +2 -0
- package/chunks/icons/Warning.js.map +1 -0
- package/chunks/icons/WarningFilled.js +2 -0
- package/chunks/icons/WarningFilled.js.map +1 -0
- package/chunks/icons/WarningWithCircle.js +2 -0
- package/chunks/icons/WarningWithCircle.js.map +1 -0
- package/chunks/image-params-keymap.js +2 -0
- package/chunks/image-params-keymap.js.map +1 -0
- package/chunks/initializer.js +4 -0
- package/chunks/initializer.js.map +1 -0
- package/chunks/vcomponent.js +3 -0
- package/chunks/vcomponent.js.map +1 -0
- package/components.js +2 -0
- package/components.js.map +1 -0
- package/event-bus.js.map +1 -1
- package/fetch-graphql.js.map +1 -1
- package/i18n.js +4 -0
- package/i18n.js.map +1 -0
- package/initializer.js +3 -4
- package/initializer.js.map +1 -1
- package/lib.js +12 -0
- package/lib.js.map +1 -0
- package/package.json +1 -1
- package/preact-compat.js +1 -1
- package/preact-compat.js.map +1 -1
- package/preact-hooks.js +1 -1
- package/preact-hooks.js.map +1 -1
- package/preact-jsx-runtime.js +1 -1
- package/preact-jsx-runtime.js.map +1 -1
- package/preact.js +1 -1
- package/preact.js.map +1 -1
- package/chunks/Add__CiEO_sX7HP.js +0 -2
- package/chunks/Add__CiEO_sX7HP.js.map +0 -1
- package/chunks/Bulk__jqrVxjXdJm.js +0 -2
- package/chunks/Bulk__jqrVxjXdJm.js.map +0 -1
- package/chunks/Burger__GYqlod8RZB.js +0 -2
- package/chunks/Burger__GYqlod8RZB.js.map +0 -1
- package/chunks/Card__DIzTAV64lz.js +0 -2
- package/chunks/Card__DIzTAV64lz.js.map +0 -1
- package/chunks/Cart__DRuAcF9J-5.js +0 -2
- package/chunks/Cart__DRuAcF9J-5.js.map +0 -1
- package/chunks/CheckWithCircle__D4l-TfZdbK.js +0 -2
- package/chunks/CheckWithCircle__D4l-TfZdbK.js.map +0 -1
- package/chunks/Check__DlOKHUTGj4.js +0 -2
- package/chunks/Check__DlOKHUTGj4.js.map +0 -1
- package/chunks/ChevronDown__BQ2yC5Yu4N.js +0 -2
- package/chunks/ChevronDown__BQ2yC5Yu4N.js.map +0 -1
- package/chunks/ChevronRight__CXhTq2_n_c.js +0 -2
- package/chunks/ChevronRight__CXhTq2_n_c.js.map +0 -1
- package/chunks/ChevronUp__DKfBFRUuWH.js +0 -2
- package/chunks/ChevronUp__DKfBFRUuWH.js.map +0 -1
- package/chunks/Close__DQxKl-RcDt.js +0 -2
- package/chunks/Close__DQxKl-RcDt.js.map +0 -1
- package/chunks/Delivery__a9-T5HVKDK.js +0 -2
- package/chunks/Delivery__a9-T5HVKDK.js.map +0 -1
- package/chunks/HeartFilled__Dj4aPKvfnx.js +0 -2
- package/chunks/HeartFilled__Dj4aPKvfnx.js.map +0 -1
- package/chunks/Heart__DFBg3PN_KB.js +0 -2
- package/chunks/Heart__DFBg3PN_KB.js.map +0 -1
- package/chunks/InfoFilled__CHHYiir40t.js +0 -2
- package/chunks/InfoFilled__CHHYiir40t.js.map +0 -1
- package/chunks/Locker__DzVLBHHoR_.js +0 -2
- package/chunks/Locker__DzVLBHHoR_.js.map +0 -1
- package/chunks/Minus__CefO5Dkv_0.js +0 -2
- package/chunks/Minus__CefO5Dkv_0.js.map +0 -1
- package/chunks/OrderError__XbjKC-sSCd.js +0 -2
- package/chunks/OrderError__XbjKC-sSCd.js.map +0 -1
- package/chunks/OrderSuccess__DtnleJKX9F.js +0 -2
- package/chunks/OrderSuccess__DtnleJKX9F.js.map +0 -1
- package/chunks/Order__Z70_F6tdrw.js +0 -2
- package/chunks/Order__Z70_F6tdrw.js.map +0 -1
- package/chunks/PaymentError__Ds3bFy-kcj.js +0 -2
- package/chunks/PaymentError__Ds3bFy-kcj.js.map +0 -1
- package/chunks/PlaceholderFilled__FkPyKAGBpP.js +0 -2
- package/chunks/PlaceholderFilled__FkPyKAGBpP.js.map +0 -1
- package/chunks/Placeholder__CTVN3RA7Z-.js +0 -2
- package/chunks/Placeholder__CTVN3RA7Z-.js.map +0 -1
- package/chunks/SearchFilled__BaDTuy0_sW.js +0 -2
- package/chunks/SearchFilled__BaDTuy0_sW.js.map +0 -1
- package/chunks/Search__BWCfAPAUn_.js +0 -2
- package/chunks/Search__BWCfAPAUn_.js.map +0 -1
- package/chunks/Sort__CuKl1kIenH.js +0 -2
- package/chunks/Sort__CuKl1kIenH.js.map +0 -1
- package/chunks/Star__Cy2oOHG-EW.js +0 -2
- package/chunks/Star__Cy2oOHG-EW.js.map +0 -1
- package/chunks/Trash__BVZwxilyNs.js +0 -2
- package/chunks/Trash__BVZwxilyNs.js.map +0 -1
- package/chunks/User__DJozoccuIX.js +0 -2
- package/chunks/User__DJozoccuIX.js.map +0 -1
- package/chunks/View__BWHjsBwNDO.js +0 -2
- package/chunks/View__BWHjsBwNDO.js.map +0 -1
- package/chunks/Wallet__CFGqcZl49Z.js +0 -2
- package/chunks/Wallet__CFGqcZl49Z.js.map +0 -1
- package/chunks/WarningFilled__DpNvLtGflO.js +0 -2
- package/chunks/WarningFilled__DpNvLtGflO.js.map +0 -1
- package/chunks/WarningWithCircle__z1B4rFgzNa.js +0 -2
- package/chunks/WarningWithCircle__z1B4rFgzNa.js.map +0 -1
- package/chunks/Warning__cRnOb-Q7RP.js +0 -2
- package/chunks/Warning__cRnOb-Q7RP.js.map +0 -1
- package/chunks/classes__DJBjVfEyCI.js +0 -2
- package/chunks/classes__DJBjVfEyCI.js.map +0 -1
- package/chunks/image-params-keymap__DLgj2E8cak.js +0 -15
- package/chunks/image-params-keymap__DLgj2E8cak.js.map +0 -1
- package/chunks/preload-helper__uemlvruIqb.js +0 -2
- package/chunks/preload-helper__uemlvruIqb.js.map +0 -1
- package/components/Icon.js +0 -2
- package/components/Icon.js.map +0 -1
- package/components/UIProvider.js +0 -2
- package/components/UIProvider.js.map +0 -1
- package/types.d.ts +0 -242
- package/typing/elsie/src/lib/initializer.d.ts +0 -84
- package/typing/elsie/src/lib/initializer.d.ts.map +0 -1
- package/typing/event-bus/src/index.d.ts +0 -51
- package/typing/event-bus/src/index.d.ts.map +0 -1
- package/typing/fetch-graphql/src/index.d.ts +0 -105
- package/typing/fetch-graphql/src/index.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"mappings":"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","names":["definition","default","en_US","getDefinitionByLanguage","lang","deepmerge","SINGLELINE","SkeletonRow","className","fullWidth","lines","size","variant","children","multilineGap","props","sharedClasses","_jsx","classes","svg","trim","class","dangerouslySetInnerHTML","__html","style","Array","from","length","map","_","index","Skeleton","rowGap","role","UIContext","createContext","locale","UIProvider","langDefinitions","definitions","useMemo","selectedDefinitions","replace","Provider","value","IntlProvider","lazyIcons","Add","lazy","__vitePreload","n","Bulk","Burger","Cart","Check","ChevronDown","ChevronUp","ChevronRight","Close","Heart","Minus","Placeholder","PlaceholderFilled","Search","SearchFilled","Sort","Star","View","User","Warning","Locker","Wallet","Card","Order","Delivery","OrderError","OrderSuccess","PaymentError","CheckWithCircle","WarningWithCircle","WarningFilled","InfoFilled","HeartFilled","Trash","Icon","source","Source","stroke","viewBox","LazyIcon","defaultProps","width","height","Suspense","fallback","Incrementer","name","disabled","error","success","min","max","onValue","onUpdateError","currentValue","setCurrentValue","useState","Number","minValue","maxValue","useEffect","debouncedOnValueHandler","useCallback","debounce","newValue","e","handleIncrementer","_value","_jsxs","Localizer","type","onClick","Text","id","step","onChange","currentTarget","Input","floatingLabel","icon","maxLength","Math","random","toString","handleOnValue","input","target","VComponent","node","htmlFor","Image","src","params","loading","srcSet","onLoad","loaded","setLoaded","_srcSet","generateSrcset","onLoadHandler","Divider","Price","amount","currency","undefined","weight","sale","formatOptions","formatter","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","formattedAmount","format","RadioButton","label","checked","description","Button","active","activeChildren","activeIcon","href","buttonType","iconClassName","attributes","Picker","options","handleSelect","placeholder","defaultOption","firstAvailableeOption","find","option","selectedValue","setSelectedValue","text","selected","handleOptionClick","event","element","optionsListItems","placeholderOptionRef","useRef","current","ref","Field","hint","ChildComponent","_createElement","key","ActionButton","ActionButtonGroup","activeOption","dividers","activeOptionState","setActiveOptionState","handleClick","buttonGroupOptions","Children","child","isOptionDisabled","isOptionActive","cloneElement","Checkbox","isChecked","setIsChecked","handleCheckboxChange","handleOnKeyDown","preventDefault","click","tabIndex","onKeyDown","ColorSwatch","groupAriaLabel","color","outOfStock","multi","outOfStockLabel","useText","selectedLabel","swatchLabel","onValueHandler","validColor","colorStyle","Option","handleAriaLabel","TextSwatch","isOverflowing","setIsOverflowing","spanRef","scrollWidth","clientWidth","ProgressSpinner","ariaLabel","commonClasses","translations","updating","updatingChildren","ImageSwatch","alt","fit","crop","onError","display","AccordionSection","title","secondaryText","actionIconPosition","iconOpen","iconClose","iconLeft","showIconLeft","renderContentWhenClosed","onStateChange","open","setOpen","onClickHandler","stopImmediatePropagation","next","buttonLabel","openIcon","onKeyPress","closeIcon","leftIcon","Accordion","divider","renderAccordionSection","_Fragment","isArray","InLineAlert","additionalActions","onDismiss","heading","dismiss","action","Modal","centered","backgroundDim","clickToDismiss","escapeToDismiss","onClose","showCloseButton","handleOnClose","modalCloseLabel","handleOutsideClick","modal","document","querySelector","modalBody","contains","addEventListener","removeEventListener","handleKeyDown","scrollingElement","defaultOverflowValue","overflow","CloseSVG","CartItem","image","price","taxIncluded","taxExcluded","total","totalExcludingTax","sku","configurations","warning","alert","quantity","onQuantity","onRemove","useContext","labels","each","remove","removeDefault","updatingDefault","CartItemSkeleton","Object","entries","toLocaleString","PriceSummary","subTotal","shipping","taxTotal","taxesApplied","discounts","primaryAction","restProps","showTaxBreakdown","setShowTaxBreakdown","estimateFormRef","showEstimateForm","setShowEstimateForm","estimateField","setEstimateField","editZipAction","destinationLinkAriaLabel","taxesBreakdownTitle","subtotalLabel","shippingLabel","hideTaxBreakdown","zipPlaceholder","onDestinationLinkClick","show","onAlternateFieldClick","field","onSubmitEstimate","formData","getFormValues","onEstimate","skeletonContent","shippingContent","estimated","destinationText","countryField","stateField","zipField","estimateButton","priceExcludingTax","discountContent","discount","caption","taxContent","tax","totalContent","totalWithoutTaxContent","priceWithoutTax","primaryActionContent","subTotalContent","CartList","PriceRange","minimumAmount","maximumAmount","specialPrice","isSimpleProduct","Dashed","FromTo","SpecialPrice","to","asLowAs","Breadcrumbs","categories","separator","category","AlertBanner","message","IllustratedMessage","headingLevel","Heading"],"ignoreList":[],"sources":["../src/i18n/index.ts","../src/components/Skeleton/Skeleton.tsx","../src/components/UIProvider/UIProvider.tsx","../src/components/Icon/Icon.tsx","../src/components/Incrementer/Incrementer.tsx","../src/components/Input/Input.tsx","../src/components/Image/Image.tsx","../src/components/Divider/Divider.tsx","../src/components/Price/Price.tsx","../src/components/RadioButton/RadioButton.tsx","../src/components/Button/Button.tsx","../src/components/Picker/Picker.tsx","../src/components/Field/Field.tsx","../src/components/ActionButton/ActionButton.tsx","../src/components/ActionButtonGroup/ActionButtonGroup.tsx","../src/components/Card/Card.tsx","../src/components/Checkbox/Checkbox.tsx","../src/components/ColorSwatch/ColorSwatch.tsx","../src/components/TextSwatch/TextSwatch.tsx","../src/components/ProgressSpinner/ProgressSpinner.tsx","../src/components/ImageSwatch/ImageSwatch.tsx","../src/components/Accordion/Accordion.tsx","../src/components/InLineAlert/InLineAlert.tsx","../src/components/Modal/Modal.tsx","../src/components/CartItem/CartItem.tsx","../src/components/CartItem/CartItemSkeleton.tsx","../src/components/PriceSummary/PriceSummary.tsx","../src/components/CartList/CartList.tsx","../src/components/PriceRange/PriceRange.tsx","../src/components/Breadcrumbs/Breadcrumbs.tsx","../src/components/AlertBanner/AlertBanner.tsx","../src/components/IllustratedMessage/IllustratedMessage.tsx"],"sourcesContent":["import { deepmerge } from '@adobe/elsie/lib';\nimport en_US from '@adobe/elsie/i18n/en_US.json';\n\nexport type Lang = 'en_US';\n\nexport const definition = {\n default: en_US,\n en_US,\n};\n\n// https://github.com/synacor/preact-i18n\n// eslint-disable-next-line no-restricted-imports\nexport * from 'preact-i18n';\n\nexport const getDefinitionByLanguage = (lang: Lang) => {\n return deepmerge(definition.default, definition[lang] || {});\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Skeleton/Skeleton.css';\n\nexport interface SkeletonRowProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n fullWidth?: boolean;\n lines?: number;\n size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';\n variant?: 'heading' | 'row' | 'empty';\n multilineGap?: 'xsmall' | 'small' | 'medium' | 'big' | 'xbig';\n children?: string;\n}\n\nconst SINGLELINE = 1;\n\nexport const SkeletonRow: FunctionComponent<SkeletonRowProps> = ({\n className,\n fullWidth = false,\n lines = SINGLELINE,\n size = 'small',\n variant = 'row',\n children = null,\n multilineGap = 'medium',\n ...props\n}) => {\n const sharedClasses = [\n [`dropin-skeleton-row__${variant}`, variant],\n [`dropin-skeleton-row__${variant}-${size}`, variant && size],\n ];\n\n if (!children && variant === 'empty') {\n return (\n <div\n className={classes([\n 'dropin-skeleton-row dropin-skeleton-row__empty',\n className,\n ])}\n />\n );\n }\n\n if (children) {\n const svg = children.trim();\n return (\n <div\n {...props}\n class={classes([\n 'dropin-skeleton-row',\n [`dropin-skeleton-row--full`, fullWidth],\n className,\n ])}\n // eslint-disable-next-line react/no-danger\n dangerouslySetInnerHTML={{ __html: svg }}\n />\n );\n }\n\n const isMultiline = lines > SINGLELINE;\n\n if (isMultiline === false) {\n return (\n <div\n {...props}\n class={classes([\n 'dropin-skeleton-row',\n [`dropin-skeleton-row--full`, fullWidth],\n 'dropin-skeleton--row__content',\n ...sharedClasses,\n className,\n ])}\n />\n );\n }\n\n return (\n <div\n {...props}\n style={{ '--multiline-gap-spacing': `var(--spacing-${multilineGap})` }}\n class={classes([\n 'dropin-skeleton-row--multiline',\n [`dropin-skeleton-row--full`, fullWidth],\n className,\n ])}\n >\n {Array.from({ length: lines }).map((_, index) => (\n <div\n key={index}\n class={classes([\n 'dropin-skeleton-row',\n [`dropin-skeleton-row--full`, fullWidth],\n 'dropin-skeleton--row__content',\n ...sharedClasses,\n ])}\n />\n ))}\n </div>\n );\n};\n\nexport interface SkeletonProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n rowGap?: 'xsmall' | 'small' | 'medium' | 'big' | 'xbig';\n}\n\nexport const Skeleton: FunctionComponent<SkeletonProps> = ({\n className,\n children,\n rowGap = 'medium',\n ...props\n}) => {\n return (\n <div\n style={{ '--row-gap-spacing': `var(--spacing-${rowGap})` }}\n {...props}\n className={classes(['dropin-skeleton', className])}\n role=\"status\"\n aria-label=\"Loading...\"\n >\n {children}\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, createContext, useMemo } from 'preact/compat';\nimport { classes, deepmerge } from '@adobe/elsie/lib';\nimport { IntlProvider, getDefinitionByLanguage, Lang } from '@adobe/elsie/i18n';\n\nimport '@adobe/elsie/components/UIProvider/UIProvider.css';\nimport '@adobe/elsie/components/UIProvider/normalize.css';\n\nexport const UIContext = createContext<{\n locale: string;\n}>({\n locale: 'en-US',\n});\n\ntype LangDefinitions = { [key: string]: any };\n\nexport interface UIProviderProps extends HTMLAttributes<HTMLDivElement> {\n lang?: Lang; // ... list of other supported languages\n langDefinitions?: LangDefinitions;\n}\n\nexport const UIProvider: FunctionComponent<UIProviderProps> = ({\n lang = 'en_US',\n langDefinitions = {},\n className,\n children,\n ...props\n}) => {\n const definitions = useMemo(() => {\n // Merge default definition with selected definition\n const selectedDefinitions: LangDefinitions = deepmerge(\n langDefinitions.default,\n langDefinitions[lang] ?? {}\n );\n\n // Merge SDK default definitions with custom definitions\n return deepmerge(\n getDefinitionByLanguage(lang), // SDK default definitions\n selectedDefinitions // Custom definitions\n );\n }, [lang, langDefinitions]);\n\n const locale = lang.replace('_', '-')\n \n return (\n <UIContext.Provider value={{ locale }}>\n <IntlProvider definition={definitions}>\n <div {...props} className={classes(['dropin-design', className])}>\n {children}\n </div>\n </IntlProvider>\n </UIContext.Provider>\n );\n};\n","import { JSX, FunctionComponent } from 'preact';\nimport { classes } from '@adobe/elsie/lib/classes';\nimport { lazy, Suspense } from 'preact/compat';\n\nimport '@adobe/elsie/components/Icon/Icon.css';\n\nexport type IconType = keyof typeof import('@adobe/elsie/icons');\n\nconst lazyIcons = {\n Add: lazy(() => import('@adobe/elsie/icons/Add.svg')),\n Bulk: lazy(() => import('@adobe/elsie/icons/Bulk.svg')),\n Burger: lazy(() => import('@adobe/elsie/icons/Burger.svg')),\n Cart: lazy(() => import('@adobe/elsie/icons/Cart.svg')),\n Check: lazy(() => import('@adobe/elsie/icons/Check.svg')),\n ChevronDown: lazy(() => import('@adobe/elsie/icons/ChevronDown.svg')),\n ChevronUp: lazy(() => import('@adobe/elsie/icons/ChevronUp.svg')),\n ChevronRight: lazy(() => import('@adobe/elsie/icons/ChevronRight.svg')),\n Close: lazy(() => import('@adobe/elsie/icons/Close.svg')),\n Heart: lazy(() => import('@adobe/elsie/icons/Heart.svg')),\n Minus: lazy(() => import('@adobe/elsie/icons/Minus.svg')),\n Placeholder: lazy(() => import('@adobe/elsie/icons/Placeholder.svg')),\n PlaceholderFilled: lazy(() => import('@adobe/elsie/icons/PlaceholderFilled.svg')),\n Search: lazy(() => import('@adobe/elsie/icons/Search.svg')),\n SearchFilled: lazy(() => import('@adobe/elsie/icons/SearchFilled.svg')),\n Sort: lazy(() => import('@adobe/elsie/icons/Sort.svg')),\n Star: lazy(() => import('@adobe/elsie/icons/Star.svg')),\n View: lazy(() => import('@adobe/elsie/icons/View.svg')),\n User: lazy(() => import('@adobe/elsie/icons/User.svg')),\n Warning: lazy(() => import('@adobe/elsie/icons/Warning.svg')),\n Locker: lazy(() => import('@adobe/elsie/icons/Locker.svg')),\n Wallet: lazy(() => import('@adobe/elsie/icons/Wallet.svg')),\n Card: lazy(() => import('@adobe/elsie/icons/Card.svg')),\n Order: lazy(() => import('@adobe/elsie/icons/Order.svg')),\n Delivery: lazy(() => import('@adobe/elsie/icons/Delivery.svg')),\n OrderError: lazy(() => import('@adobe/elsie/icons/OrderError.svg')),\n OrderSuccess: lazy(() => import('@adobe/elsie/icons/OrderSuccess.svg')),\n PaymentError: lazy(() => import('@adobe/elsie/icons/PaymentError.svg')),\n CheckWithCircle: lazy(() => import('@adobe/elsie/icons/CheckWithCircle.svg')),\n WarningWithCircle: lazy(() => import('@adobe/elsie/icons/WarningWithCircle.svg')),\n WarningFilled: lazy(() => import('@adobe/elsie/icons/WarningFilled.svg')),\n InfoFilled: lazy(() => import('@adobe/elsie/icons/InfoFilled.svg')),\n HeartFilled: lazy(() => import('@adobe/elsie/icons/HeartFilled.svg')),\n Trash: lazy(() => import('@adobe/elsie/icons/Trash.svg')),\n}\n\nexport interface IconProps extends Omit<JSX.SVGAttributes, 'size'> {\n source: FunctionComponent<JSX.SVGAttributes<SVGElement>> | IconType;\n size?: '12' | '16' | '24' | '32' | '64' | '80';\n stroke?: '1' | '2' | '3' | '4';\n className?: string;\n}\n\nexport function Icon({\n source: Source,\n size = '24',\n stroke = '2',\n viewBox = '0 0 24 24',\n className,\n ...props\n}: IconProps) {\n\n const LazyIcon = typeof Source === 'string' ? lazyIcons[Source] : null;\n\n const defaultProps = {\n className: classes([\n 'dropin-icon',\n `dropin-icon--shape-stroke-${stroke}`,\n className,\n ]),\n width: size,\n height: size,\n viewBox,\n };\n\n return (\n <Suspense fallback={null}>\n {LazyIcon ? (\n <LazyIcon {...props} {...defaultProps} />\n ) : (\n // @ts-ignore\n <Source {...props} {...defaultProps} />\n )}\n </Suspense>\n );\n}\n","import { FunctionComponent } from 'preact';\nimport { useState, useEffect, useCallback } from 'preact/hooks';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes, debounce } from '@adobe/elsie/lib';\nimport { Add, Minus } from '@adobe/elsie/icons';\nimport { Icon } from '@adobe/elsie/components/Icon';\nimport { Localizer, Text } from '@adobe/elsie/i18n';\nimport '@adobe/elsie/components/Incrementer/Incrementer.css';\n\nexport interface IncrementerProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'size'> {\n name?: string;\n size?: 'medium' | 'large';\n onValue?: (value: any) => void;\n onUpdateError?: (error: Error) => void;\n error?: boolean;\n success?: boolean;\n min?: number;\n max?: number;\n disabled?: boolean;\n maxLength?: number;\n}\n\nexport const Incrementer: FunctionComponent<IncrementerProps> = ({\n name,\n value = '1',\n className,\n disabled,\n error,\n success,\n min,\n max,\n onValue,\n onUpdateError,\n size = 'medium',\n ...props\n}) => {\n const [currentValue, setCurrentValue] = useState<number>(Number(value));\n const minValue = Number(min);\n const maxValue = Number(max);\n\n useEffect(() => {\n setCurrentValue(Number(value));\n }, [value]);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedOnValueHandler = useCallback(\n debounce(async (newValue: any) => {\n if (onValue) {\n try {\n await onValue(newValue);\n } catch (e) {\n if (onUpdateError) {\n onUpdateError(e as Error);\n }\n }\n }\n }, 200),\n [onValue, onUpdateError]\n );\n\n const handleIncrementer = (_value: number) => {\n let newValue = _value;\n if (_value < minValue) newValue = minValue;\n if (_value > maxValue) newValue = maxValue;\n debouncedOnValueHandler(newValue);\n setCurrentValue(newValue);\n };\n\n return (\n <div\n className={classes([\n 'dropin-incrementer',\n `dropin-incrementer--${size}`,\n className,\n ])}\n >\n <div\n className={classes([\n 'dropin-incrementer__content',\n `dropin-incrementer__content--${size}`,\n [`dropin-incrementer__content--error`, error],\n [`dropin-incrementer__content--success`, success],\n [`dropin-incrementer__content--disabled`, disabled],\n ])}\n >\n {/* Minus Button */}\n <div\n className={classes([\n 'dropin-incrementer__button-container',\n [`dropin-incrementer__button-container--disabled`, disabled],\n ])}\n >\n <Localizer>\n <button\n type=\"button\"\n className={classes([\n 'dropin-incrementer__decrease-button',\n [`dropin-incrementer__decrease-button--disabled`, disabled],\n ])}\n onClick={() => handleIncrementer(currentValue - 1)}\n disabled={disabled || currentValue < minValue + 1}\n aria-label={\n (<Text id=\"Dropin.Incrementer.decreaseLabel\" />) as any\n }\n >\n <Icon\n source={Minus}\n size=\"16\"\n stroke=\"1\"\n viewBox=\"4 2 20 20\"\n className=\"dropin-incrementer__down\"\n />\n </button>\n </Localizer>\n </div>\n\n {/* Input Field */}\n <input\n className=\"dropin-incrementer__input\"\n max={max}\n min={min}\n step={1}\n type=\"number\"\n name={name}\n value={currentValue}\n disabled={disabled}\n onChange={(e) => {\n const newValue = e.currentTarget.value;\n if (newValue !== '') {\n handleIncrementer(Number(newValue));\n }\n }}\n {...props}\n />\n\n <div\n className={classes([\n 'dropin-incrementer__button-container',\n [`dropin-incrementer__button-container--disabled`, disabled],\n ])}\n >\n {/* Plus/Add button */}\n <Localizer>\n <button\n type=\"button\"\n className={classes([\n 'dropin-incrementer__increase-button',\n [`dropin-incrementer__increase-button--disabled`, disabled],\n ])}\n onClick={() => handleIncrementer(currentValue + 1)}\n disabled={disabled || currentValue > maxValue - 1}\n aria-label={\n (<Text id=\"Dropin.Incrementer.increaseLabel\" />) as any\n }\n >\n <Icon\n source={Add}\n size=\"16\"\n stroke=\"1\"\n viewBox=\"4 2 20 20\"\n className=\"dropin-incrementer__add\"\n />\n </button>\n </Localizer>\n </div>\n </div>\n </div>\n );\n};\n","import { Icon } from '@adobe/elsie/components/Icon';\nimport '@adobe/elsie/components/Input/Input.css';\nimport { CheckWithCircle, WarningWithCircle } from '@adobe/elsie/icons';\nimport { VComponent, classes, debounce } from '@adobe/elsie/lib';\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { useCallback } from 'preact/hooks';\n\nexport interface InputProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'size' | 'icon'> {\n id?: string;\n name?: string;\n variant?: 'primary' | 'secondary';\n disabled?: boolean;\n error?: boolean;\n floatingLabel?: string;\n onUpdateError?: (error: Error) => void;\n onValue?: (value: any) => void;\n size?: 'medium' | 'large';\n success?: boolean;\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n maxLength?: number;\n}\n\nexport const Input: FunctionComponent<InputProps> = ({\n name,\n value,\n variant = 'primary',\n className,\n disabled,\n error,\n floatingLabel,\n onValue,\n onUpdateError,\n size = 'medium',\n icon,\n maxLength,\n success,\n ...props\n}) => {\n const id = props?.id || name || `dropin-input-${Math.random().toString(36)}`;\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedOnValueHandler = useCallback(\n debounce(async (newValue: any) => {\n if (onValue) {\n try {\n await onValue(newValue);\n } catch (e) {\n if (onUpdateError) {\n onUpdateError(e as Error);\n }\n }\n }\n }, 200),\n [onValue, onUpdateError]\n );\n\n const handleOnValue = (e: Event) => {\n const input = e.target as HTMLInputElement;\n\n debouncedOnValueHandler(input.value.trim());\n };\n\n return (\n <div\n className={classes([\n 'dropin-input-container',\n `dropin-input-container--${variant}`,\n [`dropin-input-container--floating`, !!floatingLabel],\n ['dropin-input-container--disabled', disabled],\n ])}\n >\n {icon && (\n <VComponent\n node={icon}\n className={classes([\n 'dropin-input__field-icon--left',\n icon.props.className,\n ])}\n />\n )}\n <div className=\"dropin-input-label-container\">\n {/* Input */}\n <input\n id={id}\n onChange={handleOnValue}\n type=\"text\"\n maxLength={maxLength}\n name={name}\n value={value}\n {...props}\n className={classes([\n 'dropin-input',\n `dropin-input--${size}`,\n `dropin-input--${variant}`,\n [`dropin-input--error`, !!error],\n [`dropin-input--success`, !!success],\n ['dropin-input--disabled', disabled],\n [`dropin-input--floating`, !!floatingLabel],\n [`dropin-input--icon-left`, !!icon],\n className,\n ])}\n disabled={disabled}\n />\n\n {/* Floating Label */}\n {floatingLabel && (\n <label\n htmlFor={id}\n className={classes([\n [`dropin-input__label--floating`, !!floatingLabel],\n [`dropin-input__label--floating--icon-left`, !!icon],\n [`dropin-input__label--floating--error`, !!error],\n ])}\n >\n {floatingLabel}\n </label>\n )}\n </div>\n\n {error && (\n <div\n className={classes([\n 'dropin-input__field-icon--right',\n 'dropin-input__field-icon--error',\n ])}\n >\n <Icon\n source={WarningWithCircle}\n size=\"16\"\n stroke=\"2\"\n className=\"dropin-input--warning-icon\"\n viewBox=\"-1 -1 26 26\"\n />\n </div>\n )}\n\n {success && (\n <div\n className={classes([\n 'dropin-input__field-icon--right',\n 'dropin-input__field-icon--success',\n ])}\n >\n <Icon\n source={CheckWithCircle}\n size=\"16\"\n stroke=\"2\"\n className=\"dropin-input--success-icon\"\n viewBox=\"-1 -1 26 26\"\n />\n </div>\n )}\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, useMemo, useState } from 'preact/compat';\nimport {\n classes,\n generateSrcset,\n ResolveImageUrlOptions,\n} from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Image/Image.css';\n\nexport interface ImageProps extends HTMLAttributes<HTMLDivElement> {\n params?: ResolveImageUrlOptions;\n src: string;\n onLoad?: (e: any) => void;\n}\nexport const Image: FunctionComponent<ImageProps> = ({\n className,\n src,\n params,\n loading = 'lazy',\n srcSet,\n onLoad,\n ...props\n}) => {\n const [loaded, setLoaded] = useState(false);\n\n const _srcSet = useMemo(() => {\n // If srcSet is provided, use it\n if (srcSet) return srcSet;\n\n // If src is not provided, return \"undefined\"\n if (!src || !params) return;\n\n // Otherwise, generate srcSet based on params\n return generateSrcset(src, { ...params });\n }, [params, src, srcSet]);\n\n // Add class at image onLoad\n const onLoadHandler = (e: any) => {\n setLoaded(true); \n onLoad?.(e);\n };\n\n return (\n <img\n {...props}\n className={classes([\n 'dropin-image',\n ['dropin-image--loaded', loaded],\n className,\n ])}\n loading={loading}\n onLoad={onLoadHandler}\n src={src}\n srcSet={_srcSet}\n />\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Divider/Divider.css';\n\nexport interface DividerProps extends HTMLAttributes<HTMLHRElement> {\n variant?: 'primary' | 'secondary';\n}\n\nexport const Divider: FunctionComponent<DividerProps> = ({\n variant = 'primary',\n className,\n}) => {\n return (\n <hr\n role=\"separator\"\n className={classes([\n 'dropin-divider',\n `dropin-divider--${variant}`,\n className,\n ])}\n />\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, useMemo } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Price/Price.css';\n\nexport interface PriceProps\n extends Omit<HTMLAttributes<HTMLSpanElement>, 'size'> {\n amount?: number;\n currency?: string;\n locale?: string;\n formatOptions?: {\n [key: string]: any;\n };\n variant?: 'default' | 'strikethrough';\n weight?: 'bold' | 'normal';\n sale?: boolean;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const Price: FunctionComponent<PriceProps> = ({\n amount = 0,\n currency,\n locale = undefined,\n variant = 'default',\n weight = 'bold',\n className,\n children,\n sale = false,\n formatOptions = {},\n size = 'small',\n ...props\n}) => {\n const formatter = useMemo(\n () =>\n new Intl.NumberFormat(locale, {\n style: 'currency',\n currency: currency || 'USD',\n // These options are needed to round to whole numbers if that's what you want.\n minimumFractionDigits: 2, // (this suffices for whole numbers, but will print 2500.10 as $2,500.1)\n maximumFractionDigits: 2, // (causes 2500.99 to be printed as $2,501)\n ...formatOptions,\n }),\n [locale, currency, formatOptions]\n );\n\n const formattedAmount = useMemo(() => formatter.format(amount), [amount, formatter])\n\n return (\n <span\n {...props}\n className={classes([\n 'dropin-price',\n `dropin-price--${variant}`,\n `dropin-price--${size}`,\n `dropin-price--${weight}`,\n ['dropin-price--sale', sale],\n className,\n ])}\n >\n {formattedAmount}\n </span>\n );\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/RadioButton/RadioButton.css';\n\nexport interface RadioButtonProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'size' | 'label'> {\n label: string | VNode<HTMLAttributes<HTMLElement>>;\n name: string;\n value: string;\n size?: 'medium' | 'large';\n checked?: boolean;\n disabled?: boolean;\n error?: boolean;\n description?: string;\n}\n\nexport const RadioButton: FunctionComponent<RadioButtonProps> = ({\n name,\n label,\n value,\n size = 'medium',\n checked = false,\n disabled = false,\n error = false,\n description = '',\n className,\n children,\n ...props\n}) => {\n return (\n <label\n className={classes([\n className,\n 'dropin-radio-button',\n ['dropin-radio-button--error', error],\n ['dropin-radio-button--disabled', disabled],\n ])}\n >\n <input\n name={name}\n value={value}\n checked={checked}\n disabled={disabled}\n type=\"radio\"\n className={classes([\n 'dropin-radio-button__input',\n ['dropin-radio-button__input--error', error],\n ['dropin-radio-button__input--disabled', disabled],\n ])}\n {...props}\n />\n <span\n className={classes([\n 'dropin-radio-button__label',\n `dropin-radio-button__label--${size}`,\n ['dropin-radio-button__label--error', error],\n ['dropin-radio-button__label--disabled', disabled],\n ])}\n >\n {label}\n </span>\n <span\n className={classes([\n 'dropin-radio-button__description',\n `dropin-radio-button__description--${size}`,\n ['dropin-radio-button__description--disabled', disabled],\n ])}\n >\n {description}\n </span>\n </label>\n );\n};\n","import { ComponentChildren, FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Button/Button.css';\n\nexport interface ButtonProps\n extends Omit<\n HTMLAttributes<HTMLButtonElement | HTMLAnchorElement>,\n 'size' | 'icon'\n > {\n variant?: 'primary' | 'secondary' | 'tertiary';\n size?: 'medium' | 'large';\n children?: ComponentChildren;\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n disabled?: boolean;\n active?: boolean;\n activeChildren?: ComponentChildren;\n activeIcon?: VNode<HTMLAttributes<SVGSVGElement>>;\n}\n\nexport const Button: FunctionComponent<ButtonProps> = ({\n value,\n variant = 'primary',\n size = 'medium',\n icon,\n className,\n children,\n disabled = false,\n active = false,\n activeChildren,\n activeIcon,\n href,\n ...props\n}) => {\n let buttonType = 'dropin-button';\n\n if (\n (icon && !children) ||\n (icon && active && !activeChildren) ||\n (!icon && active && activeIcon)\n ) {\n buttonType = 'dropin-iconButton';\n }\n\n if (active && activeChildren) {\n buttonType = 'dropin-button';\n }\n\n className = classes([\n buttonType,\n `${buttonType}--${size}`,\n `${buttonType}--${variant}`,\n [`${buttonType}--${variant}--disabled`, disabled],\n children && icon && `${buttonType}--with-icon`,\n !children && activeChildren && icon && `${buttonType}--with-icon`,\n active && activeIcon && `${buttonType}--with-icon`,\n className,\n ]);\n\n const iconClassName = classes([\n 'dropin-button-icon',\n `dropin-button-icon--${variant}`,\n [`dropin-button-icon--${variant}--disabled`, disabled],\n icon?.props.className,\n ]);\n\n const attributes = href\n ? {\n node: <a />,\n role: 'link',\n href,\n ...props,\n disabled,\n active,\n }\n : {\n node: <button />,\n role: 'button',\n ...props,\n value,\n disabled,\n active,\n };\n\n return (\n <VComponent {...attributes} className={className}>\n {icon && !active && <VComponent node={icon} className={iconClassName} />}\n\n {activeIcon && active && (\n <VComponent node={activeIcon} className={iconClassName} />\n )}\n\n {children &&\n !active &&\n (typeof children === 'string' ? <span>{children}</span> : children)}\n\n {active &&\n activeChildren &&\n (typeof activeChildren === 'string' ? (\n <span>{activeChildren}</span>\n ) : (\n activeChildren\n ))}\n </VComponent>\n );\n};\n","import { Icon } from '@adobe/elsie/components';\nimport '@adobe/elsie/components/Picker/Picker.css';\nimport { ChevronDown } from '@adobe/elsie/icons';\nimport { classes } from '@adobe/elsie/lib';\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useEffect, useState } from 'preact/compat';\nimport { useRef } from 'preact/hooks';\n\nexport interface PickerOption {\n value: string | null;\n text?: string;\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n disabled?: boolean;\n}\n\nexport interface PickerProps\n extends Omit<HTMLAttributes<HTMLSelectElement>, 'value' | 'size' | 'icon'> {\n id?: string;\n name?: string;\n value?: string | null;\n placeholder?: string;\n variant?: 'primary' | 'secondary';\n size?: 'medium' | 'large';\n floatingLabel?: string;\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n options?: PickerOption[];\n defaultOption?: PickerOption;\n disabled?: boolean;\n error?: boolean;\n handleSelect?: (event: Event) => void;\n}\n\nexport const Picker: FunctionComponent<PickerProps> = ({\n name,\n value = null,\n options,\n variant = 'primary',\n floatingLabel,\n size = 'medium',\n handleSelect = () => {},\n disabled = false,\n error = false,\n placeholder,\n defaultOption,\n icon,\n className,\n ...props\n}) => {\n const id = props?.id || name || `dropin-picker-${Math.random().toString(36)}`;\n\n // find the first option that is not disabled\n const firstAvailableeOption = options?.find((option) => !option.disabled);\n\n const [selectedValue, setSelectedValue] = useState<PickerOption>({\n value,\n text: defaultOption?.text || placeholder || firstAvailableeOption?.text,\n icon,\n });\n\n useEffect(() => {\n const selected = options?.find((option) => option.value === value);\n\n setSelectedValue(\n selected ?? {\n value:\n (defaultOption?.value as string) ||\n ((placeholder || floatingLabel\n ? null\n : firstAvailableeOption?.value) as string),\n text: defaultOption?.text || placeholder || firstAvailableeOption?.text,\n icon,\n }\n );\n }, [value, options, placeholder, icon, defaultOption, floatingLabel]);\n\n const handleOptionClick = (event: Event) => {\n const { options, value } = event.target as HTMLSelectElement;\n\n for (const element of options) {\n if (element.selected) {\n setSelectedValue({ value, text: element.text, icon });\n handleSelect(event);\n }\n }\n };\n\n const optionsListItems = options?.map((option) => {\n const { value, text, disabled } = option;\n const selected = value === selectedValue.value;\n\n return (\n <option\n value={value as string}\n key={value}\n selected={selected}\n disabled={disabled}\n className={classes(['dropin-picker__option'])}\n >\n {text}\n </option>\n );\n });\n\n const placeholderOptionRef = useRef(null);\n // @ts-ignore\n const selected = !placeholderOptionRef.current?.selected || !!defaultOption;\n\n return (\n <div\n className={classes([\n className,\n 'dropin-picker',\n `dropin-picker__${size}`,\n ['dropin-picker__floating', !!floatingLabel],\n ['dropin-picker__selected', selected],\n ['dropin-picker__error', error],\n ['dropin-picker__disabled', disabled],\n ['dropin-picker__icon', icon],\n ])}\n >\n {icon && (\n // @ts-ignore\n <icon.type\n {...icon.props}\n className={'dropin-picker__icon--placeholder'}\n />\n )}\n\n <select\n id={id}\n className={classes([\n 'dropin-picker__select',\n `dropin-picker__select--${variant}`,\n `dropin-picker__select--${size}`,\n ['dropin-picker__select--floating', !!floatingLabel],\n ])}\n name={name}\n aria-label={name}\n disabled={disabled}\n onChange={handleOptionClick}\n {...props}\n >\n {!defaultOption && (floatingLabel || placeholder) && (\n <option\n value={''}\n key={value}\n ref={placeholderOptionRef}\n className={classes([\n 'dropin-picker__option dropin-picker__placeholder',\n ])}\n >\n {floatingLabel ?? placeholder}\n </option>\n )}\n\n {optionsListItems}\n </select>\n\n <Icon\n source={ChevronDown}\n size=\"24\"\n stroke=\"2\"\n className=\"dropin-picker__chevronDown\"\n />\n\n {floatingLabel && selected && (\n <label\n htmlFor={id}\n className={classes(['dropin-picker__floatingLabel', !!floatingLabel])}\n >\n {floatingLabel}\n </label>\n )}\n </div>\n );\n};\n","import '@adobe/elsie/components/Field/Field.css';\nimport { classes } from '@adobe/elsie/lib';\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\n\nexport interface FieldProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n label?: string;\n error?: string;\n hint?: string;\n success?: string;\n disabled?: boolean;\n children?: VNode;\n size?: 'medium' | 'large';\n}\n\nexport const Field: FunctionComponent<FieldProps> = ({\n className,\n label,\n error,\n hint,\n success,\n size = 'medium',\n disabled = false,\n children,\n ...props\n}) => {\n const id =\n children?.props?.id ?? `dropin-field-${Math.random().toString(36)}`;\n const ChildComponent =\n children && typeof children.type !== 'string' ? children.type : null;\n\n return (\n <div {...props} className={classes(['dropin-field', className])}>\n {label && (\n <label\n className={classes([\n 'dropin-field__label',\n ['dropin-field__label--disabled', disabled],\n `dropin-field__label--${size}`,\n ])}\n htmlFor={id}\n >\n {label}\n </label>\n )}\n\n <div className={classes(['dropin-field__content'])}>\n {ChildComponent && children && (\n <ChildComponent\n {...children.props}\n id={id}\n key={children.key}\n disabled={disabled}\n size={size}\n error={!!error}\n success={!!success && !error}\n />\n )}\n </div>\n\n <div\n className={classes([\n 'dropin-field__hint',\n [`dropin-field__hint--${size}`, size],\n ['dropin-field__hint--error', !!error],\n ['dropin-field__hint--success', !!success && !error],\n ['dropin-field__hint--disabled', !!disabled],\n ])}\n >\n {error || success || hint}\n </div>\n </div>\n );\n};\n","import { ComponentChildren, FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/ActionButton/ActionButton.css';\n\nexport interface ActionButtonProps\n extends Omit<HTMLAttributes<HTMLButtonElement>, 'icon'> {\n children?: ComponentChildren;\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n active?: boolean;\n disabled?: boolean;\n}\n\nexport const ActionButton: FunctionComponent<ActionButtonProps> = ({\n icon,\n className,\n children,\n active = false,\n disabled = false,\n ...props\n}) => {\n return (\n <button\n role=\"button\"\n disabled={disabled}\n {...props}\n className={classes([\n 'dropin-action-button',\n ['dropin-action-button--active', active],\n ['dropin-action-button--disabled', disabled],\n className,\n ])}\n >\n {icon && (\n <VComponent\n node={icon}\n className={classes(['dropin-action-button-icon'])}\n />\n )}\n {children &&\n (typeof children === 'string' ? <span>{children}</span> : children)}\n </button>\n );\n};\n","import { FunctionComponent, VNode, cloneElement } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/ActionButtonGroup/ActionButtonGroup.css';\nimport { useCallback, useState } from 'preact/hooks';\nimport { Children } from 'react';\nimport { ActionButtonProps } from '@adobe/elsie/components/ActionButton';\n\nexport interface ActionButtonGroupOption {\n value: string | null;\n text: string;\n icon?: VNode<SVGElement>;\n disabled?: boolean;\n}\n\nexport interface ActionButtonGroupProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'primary' | 'secondary';\n activeOption?: string;\n disabled?: boolean;\n dividers?: boolean;\n children: VNode<ActionButtonProps>[] | VNode<ActionButtonProps>;\n handleSelect?(value: string): void;\n}\n\nexport const ActionButtonGroup: FunctionComponent<ActionButtonGroupProps> = ({\n className,\n variant = 'primary',\n activeOption,\n disabled = false,\n dividers = true,\n children,\n handleSelect,\n ...props\n}) => {\n const [activeOptionState, setActiveOptionState] = useState(activeOption);\n\n const handleClick = useCallback(\n (option: any) => {\n const isOptionDisabled = disabled || option.props.disabled;\n if (!isOptionDisabled) {\n setActiveOptionState(option.props.value);\n if (handleSelect) {\n handleSelect(option.props.value);\n }\n }\n },\n [handleSelect, setActiveOptionState, disabled]\n );\n\n const buttonGroupOptions = Children.map(\n children,\n (child: VNode<ActionButtonProps>) => {\n const isOptionDisabled = disabled || child.props.disabled;\n const isOptionActive = child.props.value === activeOptionState;\n return cloneElement(child, {\n disabled: isOptionDisabled,\n active: isOptionActive,\n onClick: () => handleClick(child),\n className: classes([\n 'dropin-action-button-group__option',\n `dropin-action-button-group__option--${variant}`,\n ['dropin-action-button-group__option--active', isOptionActive],\n ['dropin-action-button-group__option--with-dividers', dividers],\n ]),\n });\n }\n );\n\n return (\n <div\n role=\"group\"\n {...props}\n className={classes([\n 'dropin-action-button-group',\n `dropin-action-button-group--${variant}`,\n className,\n ])}\n >\n {buttonGroupOptions}\n </div>\n );\n};\n","import { ComponentChildren, FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Card/Card.css';\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n variant?: 'primary' | 'secondary';\n children: ComponentChildren | ComponentChildren[];\n}\n\nexport const Card: FunctionComponent<CardProps> = ({\n variant = 'primary',\n className,\n children,\n ...props\n}) => {\n return (\n <div\n {...props}\n className={classes(['dropin-card', `dropin-card--${variant}`, className])}\n >\n <div class=\"dropin-card__content\">{children}</div>\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { ChangeEvent, HTMLAttributes, useRef, useState } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport { Check } from '@adobe/elsie/icons';\nimport { Icon } from '@adobe/elsie/components/Icon';\nimport '@adobe/elsie/components/Checkbox/Checkbox.css';\n\nexport interface CheckboxProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'size'> {\n name: string;\n size?: 'medium' | 'large';\n disabled?: boolean;\n error?: boolean;\n label?: string;\n description?: string;\n}\n\nexport const Checkbox: FunctionComponent<CheckboxProps> = ({\n name,\n value,\n size = 'medium',\n disabled = false,\n error = false,\n label = '',\n description = '',\n className,\n checked,\n ...props\n}) => {\n const [isChecked, setIsChecked] = useState(\n checked === undefined ? false : checked\n );\n const ref = useRef<HTMLInputElement>(null);\n\n const handleCheckboxChange = (e: ChangeEvent<HTMLInputElement>) => {\n props.onChange?.(e);\n setIsChecked(e.currentTarget.checked);\n };\n\n const handleOnKeyDown = (e: KeyboardEvent) => {\n if (e.key === ' ') {\n e.preventDefault();\n ref?.current?.click();\n }\n };\n\n return (\n <label\n className={classes([\n 'dropin-checkbox',\n ['dropin-checkbox--disabled', disabled],\n ])}\n >\n <input\n ref={ref}\n name={name}\n value={value}\n type=\"checkbox\"\n disabled={disabled}\n className={classes([\n 'dropin-checkbox__checkbox',\n ['dropin-checkbox__checkbox--error', error],\n className,\n ])}\n {...props}\n onChange={handleCheckboxChange}\n checked={isChecked}\n />\n <span\n aria-checked={isChecked ? 'true' : 'false'}\n aria-labelledby={`${name}-label`}\n aria-describedby={`${name}-description`}\n className={classes([\n 'dropin-checkbox__box',\n ['dropin-checkbox__box--error', error],\n ['dropin-checkbox__box--disabled', disabled],\n ])}\n role=\"checkbox\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={handleOnKeyDown}\n >\n <Icon\n className={classes(['dropin-checkbox__checkmark'])}\n source={Check}\n size=\"16\"\n stroke=\"3\"\n />\n </span>\n <div\n id={`${name}-label`}\n className={classes([\n 'dropin-checkbox__label',\n `dropin-checkbox__label--${size}`,\n ['dropin-checkbox__label--disabled', disabled],\n ])}\n >\n {label}\n </div>\n <div />\n <div\n id={`${name}-description`}\n role={'note'}\n className={classes([\n 'dropin-checkbox__description',\n `dropin-checkbox__description--${size}`,\n ['dropin-checkbox__description--disabled', disabled],\n ])}\n >\n {description}\n </div>\n </label>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, useCallback } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/ColorSwatch/ColorSwatch.css';\nimport { useText } from '@adobe/elsie/i18n';\n\nexport interface ColorSwatchProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'label' | 'size'> {\n name?: string;\n label?: string;\n groupAriaLabel?: string;\n id?: string;\n size?: 'medium' | 'large';\n color?: string;\n value?: string;\n disabled?: boolean;\n selected?: boolean;\n outOfStock?: boolean;\n multi?: boolean;\n onValue?: (value: any) => void;\n onUpdateError?: (error: Error) => void;\n}\n\nexport const ColorSwatch: FunctionComponent<ColorSwatchProps> = ({\n className,\n name,\n value,\n id,\n label,\n groupAriaLabel,\n size = 'medium',\n color,\n disabled = false,\n selected = false,\n outOfStock = false,\n multi = false,\n onValue,\n onUpdateError,\n ...props\n}) => {\n // i18n\n const outOfStockLabel = useText('Dropin.Swatches.outOfStock.label').label;\n const selectedLabel = useText('Dropin.Swatches.selected.label').label;\n const swatchLabel = useText('Dropin.Swatches.swatch.label').label;\n\n const onValueHandler = useCallback(\n async (newValue: any) => {\n if (onValue) {\n try {\n await onValue(newValue);\n } catch (e) {\n if (onUpdateError) {\n onUpdateError(e as Error);\n }\n }\n }\n },\n [onValue, onUpdateError]\n );\n\n const handleOnValue = (e: Event) => {\n const input = e.target as HTMLInputElement;\n\n onValueHandler(input.value);\n };\n\n const isValidColor = (color: string) => {\n const colorStyle = new Option().style;\n colorStyle.color = color;\n return colorStyle.color !== ''; // Returns true if the browser accepts this as a valid color\n };\n\n const defaultColor = 'var(--color-gray-300);';\n\n const validColor = color && isValidColor(color) ? color : defaultColor;\n\n const handleAriaLabel = () => {\n if (outOfStock) return `${groupAriaLabel}: ${label} ${outOfStockLabel}`;\n if (selected) return `${groupAriaLabel}: ${label} ${selectedLabel}`;\n return `${groupAriaLabel}: ${label} ${swatchLabel}`;\n };\n\n return (\n <label\n className={classes([\n 'dropin-color-swatch__container',\n `dropin-color-swatch__container--${size}`,\n className,\n ])}\n >\n <input\n type={multi ? 'checkbox' : 'radio'}\n name={name}\n id={id}\n value={value}\n aria-label={handleAriaLabel()}\n checked={selected}\n disabled={disabled}\n onChange={handleOnValue}\n {...props}\n className={classes([\n 'dropin-color-swatch',\n ['dropin-color-swatch--selected', selected],\n ['dropin-color-swatch--disabled', disabled],\n className,\n ])}\n />\n <span\n style={{ '--bg-color': validColor }}\n className={classes([\n 'dropin-color-swatch__span',\n ['dropin-color-swatch__span--out-of-stock', outOfStock],\n className,\n ])}\n />\n </label>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport {\n HTMLAttributes,\n useState,\n useEffect,\n useRef,\n useCallback,\n} from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/TextSwatch/TextSwatch.css';\nimport { useText } from '@adobe/elsie/i18n';\n\nexport interface TextSwatchProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'label'> {\n name?: string;\n label: string;\n groupAriaLabel?: string;\n value?: string;\n id: string;\n disabled?: boolean;\n selected?: boolean;\n outOfStock?: boolean;\n multi?: boolean;\n onValue?: (value: any) => void;\n onUpdateError?: (error: Error) => void;\n}\n\nexport const TextSwatch: FunctionComponent<TextSwatchProps> = ({\n className,\n name,\n value,\n label,\n groupAriaLabel,\n id,\n disabled = false,\n selected = false,\n outOfStock = false,\n multi = false,\n onValue,\n onUpdateError,\n ...props\n}) => {\n // i18n\n const outOfStockLabel = useText('Dropin.Swatches.outOfStock.label').label;\n const selectedLabel = useText('Dropin.Swatches.selected.label').label;\n const swatchLabel = useText('Dropin.Swatches.swatch.label').label;\n\n const [isOverflowing, setIsOverflowing] = useState(false);\n const spanRef = useRef<HTMLLabelElement>(null);\n\n const onValueHandler = useCallback(\n async (newValue: any) => {\n if (onValue) {\n try {\n await onValue(newValue);\n } catch (e) {\n if (onUpdateError) {\n onUpdateError(e as Error);\n }\n }\n }\n },\n [onValue, onUpdateError]\n );\n\n const handleOnValue = (e: Event) => {\n const input = e.target as HTMLInputElement;\n\n onValueHandler(input.value);\n };\n\n const handleAriaLabel = () => {\n if (outOfStock) return `${groupAriaLabel}: ${label} ${outOfStockLabel}`;\n if (selected) return `${groupAriaLabel}: ${label} ${selectedLabel}`;\n return `${groupAriaLabel}: ${label} ${swatchLabel}`;\n };\n\n useEffect(() => {\n if (\n spanRef.current &&\n spanRef.current.scrollWidth > spanRef.current.clientWidth\n ) {\n setIsOverflowing(true);\n }\n }, [label]);\n\n return (\n <div\n className=\"dropin-text-swatch__container\"\n {...(isOverflowing ? { 'data-tooltip': label } : {})}\n >\n <input\n type={multi ? 'checkbox' : 'radio'}\n name={name}\n id={id}\n value={value}\n aria-label={handleAriaLabel()}\n checked={selected}\n disabled={disabled}\n onChange={handleOnValue}\n {...props}\n className={classes([\n 'dropin-text-swatch',\n ['dropin-text-swatch--selected', selected],\n ['dropin-text-swatch--disabled', disabled],\n className,\n ])}\n />\n <label\n htmlFor={id}\n ref={spanRef}\n className={classes([\n 'dropin-text-swatch__label',\n ['dropin-text-swatch__label--out-of-stock', outOfStock],\n className,\n ])}\n >\n {label}\n </label>\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { useText } from '@adobe/elsie/i18n';\nimport { classes } from '@adobe/elsie/lib';\n\nimport '@adobe/elsie/components/ProgressSpinner/ProgressSpinner.css';\n\n/**\n * @param size this is the size of the spinner ranging in [12px, 24px, 36px, 48px]\n * @param stroke this is the stroke of the spinner ranging in [1px, 2px, 3px, 4px]\n */\nexport interface ProgressSpinnerProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n ariaLabel?: string;\n size?: 'small' | 'medium' | 'big' | 'large';\n stroke?: '1' | '2' | '3' | '4';\n}\n\nexport const ProgressSpinner: FunctionComponent<ProgressSpinnerProps> = ({\n ariaLabel,\n size = 'small',\n stroke = '4',\n children,\n className,\n style,\n ...props\n}) => {\n const commonClasses = [\n 'dropin-progress-spinner',\n `dropin-progress-spinner--shape-size-${size}`,\n `dropin-progress-spinner--shape-stroke-${stroke}`,\n ];\n\n const translations = useText({\n updating: 'Dropin.ProgressSpinner.updating.label',\n updatingChildren: 'Dropin.ProgressSpinner.updatingChildren.label',\n });\n\n const handleAriaLabel = () => {\n if (ariaLabel) return ariaLabel;\n return children ? translations.updatingChildren : translations.updating;\n };\n\n return children ? (\n // if we provide children to this component, it should act as a provider in order to add background with low opacity\n <div\n {...props}\n className={classes(['dropin-progress-spinner-provider'])}\n aria-live=\"polite\"\n role=\"status\"\n >\n <div aria-hidden={true}>{children}</div>\n <div\n aria-label={handleAriaLabel()}\n role=\"status\"\n className={classes(['dropin-progress-spinner-background', className])}\n style={style}\n />\n <div\n className={classes([\n 'dropin-progress-spinner-with-provider',\n ...commonClasses,\n ])}\n aria-hidden={true}\n />\n </div>\n ) : (\n // if there are no children, it should be able to be standalone and have no background\n <div\n {...props}\n className={classes([className, ...commonClasses])}\n aria-live=\"polite\"\n role=\"status\"\n aria-label={handleAriaLabel()}\n />\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, useCallback } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/ImageSwatch/ImageSwatch.css';\nimport { Image } from '@adobe/elsie/components/Image';\nimport { useText } from '@adobe/elsie/i18n';\n\nexport interface ImageSwatchProps\n extends Omit<HTMLAttributes<HTMLInputElement>, 'label'> {\n name?: string;\n label?: string;\n groupAriaLabel?: string;\n id?: string;\n src: string;\n alt?: string;\n value?: string;\n disabled?: boolean;\n selected?: boolean;\n outOfStock?: boolean;\n multi?: boolean;\n onValue?: (value: any) => void;\n onUpdateError?: (error: Error) => void;\n}\n\nexport const ImageSwatch: FunctionComponent<ImageSwatchProps> = ({\n className,\n name,\n value,\n id,\n label,\n groupAriaLabel,\n src,\n alt,\n disabled = false,\n selected = false,\n outOfStock = false,\n multi = false,\n onValue,\n onUpdateError,\n ...props\n}) => {\n const outOfStockLabel = useText('Dropin.Swatches.outOfStock.label').label;\n const selectedLabel = useText('Dropin.Swatches.selected.label').label;\n const swatchLabel = useText('Dropin.Swatches.swatch.label').label;\n\n const onValueHandler = useCallback(\n async (newValue: any) => {\n if (onValue) {\n try {\n await onValue(newValue);\n } catch (e) {\n if (onUpdateError) {\n onUpdateError(e as Error);\n }\n }\n }\n },\n [onValue, onUpdateError]\n );\n\n const handleOnValue = (e: Event) => {\n const input = e.target as HTMLInputElement;\n\n onValueHandler(input.value);\n };\n\n const handleAriaLabel = () => {\n if (outOfStock) return `${groupAriaLabel}: ${label} ${outOfStockLabel}`;\n if (selected) return `${groupAriaLabel}: ${label} ${selectedLabel}`;\n return `${groupAriaLabel}: ${label} ${swatchLabel}`;\n };\n\n return (\n <label className={classes(['dropin-image-swatch__container', className])}>\n <input\n type={multi ? 'checkbox' : 'radio'}\n name={name}\n id={id}\n value={value}\n aria-label={handleAriaLabel()}\n checked={selected}\n disabled={disabled}\n onChange={handleOnValue}\n {...props}\n className={classes([\n 'dropin-image-swatch',\n ['dropin-image-swatch--selected', selected],\n ['dropin-image-swatch--disabled', disabled],\n className,\n ])}\n />\n\n <span\n className={classes([\n 'dropin-image-swatch__span',\n ['dropin-image-swatch__span--out-of-stock', outOfStock],\n className,\n ])}\n >\n <Image\n src={src}\n className={classes(['dropin-image-swatch__content'])}\n params={{ width: 100, fit: 'bounds', crop: true }}\n alt={alt}\n loading={'lazy'}\n onError={(e: any) => (e.target.style.display = 'none')}\n />\n </span>\n </label>\n );\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useState } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport { Divider, Icon } from '@adobe/elsie/components';\nimport { Add, Minus } from '@adobe/elsie/icons';\nimport { useText } from '@adobe/elsie/i18n';\nimport '@adobe/elsie/components/Accordion/Accordion.css';\nexport interface AccordionSectionProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'icon'> {\n actionIconPosition?: 'left' | 'right';\n iconOpen?: VNode<HTMLAttributes<SVGSVGElement>>;\n iconClose?: VNode<HTMLAttributes<SVGSVGElement>>;\n iconLeft?: VNode<HTMLAttributes<SVGSVGElement>>;\n showIconLeft?: boolean;\n secondaryText?: string | VNode<HTMLAttributes<HTMLSpanElement>>;\n renderContentWhenClosed?: boolean;\n onStateChange?: (open: boolean) => void;\n}\n\nexport const AccordionSection: FunctionComponent<AccordionSectionProps> = ({\n className,\n children,\n title,\n secondaryText,\n actionIconPosition = 'left',\n iconOpen = Add,\n iconClose = Minus,\n iconLeft = Add,\n showIconLeft = false,\n renderContentWhenClosed = true,\n onStateChange,\n ...props\n}) => {\n const [open, setOpen] = useState<boolean>(false);\n const onClickHandler = (e: { stopImmediatePropagation: () => void }) => {\n e.stopImmediatePropagation();\n\n const next = !open;\n setOpen(next);\n onStateChange?.(next);\n };\n\n const buttonLabel = useText(\n `Dropin.Accordion.${open ? 'close' : 'open'}.label`\n ).label;\n\n const openIcon = (\n <Icon\n source={iconOpen}\n size=\"24\"\n onClick={onClickHandler}\n onKeyPress={onClickHandler}\n className={'dropin-accordion-section__open-icon'}\n />\n );\n\n const closeIcon = (\n <Icon\n source={iconClose}\n size=\"24\"\n onClick={onClickHandler}\n onKeyPress={onClickHandler}\n className={'dropin-accordion-section__close-icon'}\n />\n );\n\n const leftIcon = <Icon source={iconLeft} size=\"24\" />;\n\n return (\n <div\n {...props}\n className={classes(['dropin-accordion-section', className])}\n >\n <div className={'dropin-accordion-section__heading'}>\n <div\n className={'dropin-accordion-section__flex'}\n onClick={onClickHandler}\n onKeyPress={onClickHandler}\n role=\"button\"\n aria-label={`${buttonLabel} ${title}`}\n tabIndex={0}\n >\n <div className={'dropin-accordion-section__title-container'}>\n {actionIconPosition === 'left' && (open ? closeIcon : openIcon)}\n\n {showIconLeft && leftIcon}\n\n <h3 className={'dropin-accordion-section__title'}>{title}</h3>\n </div>\n </div>\n\n <div className={'dropin-accordion-section__secondary-text-container'}>\n {secondaryText && (\n <h4 className={'dropin-accordion-section__secondary-text'}>\n {secondaryText}\n </h4>\n )}\n\n {actionIconPosition === 'right' && (open ? closeIcon : openIcon)}\n </div>\n </div>\n\n <div\n className={'dropin-accordion-section__content-container'}\n style={{ display: open ? 'grid' : 'none' }}\n >\n {(open || (renderContentWhenClosed && !open)) && children}\n </div>\n </div>\n );\n};\n\nexport interface AccordionProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'icon'> {\n actionIconPosition?: 'left' | 'right';\n iconOpen?: VNode<HTMLAttributes<SVGSVGElement>>;\n iconClose?: VNode<HTMLAttributes<SVGSVGElement>>;\n iconLeft?: VNode<HTMLAttributes<SVGSVGElement>>;\n showIconLeft?: boolean;\n secondaryText?: string | VNode<HTMLAttributes<HTMLSpanElement>>;\n children: VNode<AccordionSectionProps>[] | VNode<AccordionSectionProps>;\n}\n\nexport const Accordion: FunctionComponent<AccordionProps> = ({\n className,\n children,\n actionIconPosition = 'left',\n iconOpen = Add,\n iconClose = Minus,\n ...props\n}) => {\n const divider = <Divider variant=\"secondary\" />;\n\n const renderAccordionSection = (child: VNode<AccordionSectionProps>) => (\n <>\n <AccordionSection\n {...child.props}\n actionIconPosition={actionIconPosition}\n iconOpen={iconOpen}\n iconClose={iconClose}\n />\n {divider}\n </>\n );\n\n return (\n <div {...props} className={classes(['dropin-accordion', className])}>\n {[\n divider,\n ...(\n (Array.isArray(children)\n ? children\n : [children]) as VNode<AccordionSectionProps>[]\n ).map(renderAccordionSection),\n ]}\n </div>\n );\n};\n","import { Button, Icon } from '@adobe/elsie/components';\nimport { useText } from '@adobe/elsie/i18n';\nimport { Close } from '@adobe/elsie/icons';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\n\nimport '@adobe/elsie/components/InLineAlert/InLineAlert.css';\nexport interface InLineAlertProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'icon'> {\n heading: string;\n description?: string;\n type?: 'error' | 'warning' | 'success';\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n additionalActions?: Array<{\n label: string;\n onClick: (event: Event) => void;\n }>;\n onDismiss?: (event: Event) => void;\n}\n\nexport const InLineAlert: FunctionComponent<InLineAlertProps> = ({\n className,\n type = 'warning',\n additionalActions,\n onDismiss,\n heading,\n description,\n icon,\n ...props\n}) => {\n const translations = useText({\n dismiss: 'Dropin.InlineAlert.dismissLabel',\n });\n\n return (\n <div\n {...props}\n className={classes([\n 'dropin-in-line-alert',\n `dropin-in-line-alert--${type}`,\n className,\n ])}\n >\n <div className={'dropin-in-line-alert__heading'}>\n <div className={'dropin-in-line-alert__title-container'}>\n {icon && (\n <VComponent node={icon} className={'dropin-in-line-alert__icon'} />\n )}\n\n <span className={'dropin-in-line-alert__title'}>{heading}</span>\n </div>\n\n <div className={'dropin-in-line-alert__actions-container'}>\n {additionalActions?.length == 1 && (\n <Button\n variant=\"tertiary\"\n className={'dropin-in-line-alert__additional-action'}\n onClick={additionalActions[0]?.onClick}\n aria-label={additionalActions[0]?.label}\n >\n {additionalActions[0]?.label}\n </Button>\n )}\n {onDismiss && (\n <Button\n icon={<Icon source={Close} size=\"24\" stroke=\"2\" />}\n className={'dropin-in-line-alert__dismiss-button'}\n variant=\"tertiary\"\n onClick={onDismiss}\n aria-label={translations.dismiss}\n />\n )}\n </div>\n </div>\n\n {description && (\n <p className={'dropin-in-line-alert__description'}>{description}</p>\n )}\n\n {additionalActions && additionalActions?.length > 1 && (\n <div className={'dropin-in-line-alert__additional-actions-container'}>\n {additionalActions.map((action) => (\n <Button\n key={action.label}\n variant=\"tertiary\"\n className={'dropin-in-line-alert__additional-action'}\n onClick={action.onClick}\n >\n {action.label}\n </Button>\n ))}\n </div>\n )}\n </div>\n );\n};\n","/*\nADOBE CONFIDENTIAL\nCopyright 2023 Adobe\nAll Rights Reserved.\nNOTICE: All information contained herein is, and remains\nthe property of Adobe and its suppliers, if any. The intellectual\nand technical concepts contained herein are proprietary to Adobe\nand its suppliers and are protected by all applicable intellectual\nproperty laws, including trade secret and copyright laws.\nDissemination of this information or reproduction of this material\nis strictly forbidden unless prior written permission is obtained\nfrom Adobe.\n*/\n\nimport { useText } from '@adobe/elsie/i18n';\nimport { classes } from '@adobe/elsie/lib';\nimport {\n FunctionComponent,\n HTMLAttributes,\n useCallback,\n useEffect,\n} from 'preact/compat';\nimport { Button } from '../Button';\nimport { Close as CloseSVG } from '@adobe/elsie/icons';\nimport { VNode } from 'preact';\n\nimport '@adobe/elsie/components/Modal/Modal.css';\n\nexport interface ModalProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size' | 'title'> {\n size?: 'small' | 'medium' | 'full';\n title?: VNode;\n centered?: boolean;\n onClose?: () => void;\n backgroundDim?: boolean;\n clickToDismiss?: boolean;\n escapeToDismiss?: boolean;\n showCloseButton?: boolean;\n}\n\nexport const Modal: FunctionComponent<ModalProps> = ({\n size = 'small',\n title = null,\n centered = false,\n backgroundDim = true,\n clickToDismiss = true,\n escapeToDismiss = true,\n onClose,\n showCloseButton = true,\n className,\n children = null,\n ...props\n}) => {\n const handleOnClose = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n const translations = useText({\n modalCloseLabel: 'Dropin.Modal.Close.label',\n });\n\n // Close on background click\n useEffect(() => {\n const handleOutsideClick = (event: MouseEvent) => {\n const modal = document.querySelector('.dropin-modal');\n const modalBody = document.querySelector('.dropin-modal__body');\n\n if (\n clickToDismiss &&\n modal &&\n modalBody &&\n !modalBody.contains(event.target as Node)\n ) {\n handleOnClose();\n }\n };\n\n document.addEventListener('mousedown', handleOutsideClick);\n\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOnClose, clickToDismiss]);\n\n // Close on ESC\n useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape' && escapeToDismiss) {\n handleOnClose();\n }\n };\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handleOnClose, escapeToDismiss]);\n\n // Prevent document scrolling\n useEffect(() => {\n const scrollingElement = document.scrollingElement as HTMLElement;\n\n const defaultOverflowValue = scrollingElement.style.overflow;\n\n scrollingElement.style.overflow = 'hidden';\n\n return () => {\n scrollingElement.style.overflow = defaultOverflowValue;\n };\n }, []);\n\n return (\n <div\n className={classes([\n 'dropin-modal',\n ['dropin-modal--dim', backgroundDim],\n ])}\n >\n <div\n {...props}\n className={classes([\n 'dropin-modal__body',\n [`dropin-modal__body--${size}`, size],\n className,\n ])}\n >\n <div\n className={classes([\n 'dropin-modal__header',\n ['dropin-modal__header-title', !!title],\n ])}\n >\n {title && (\n <div className={classes(['dropin-modal__header-title-content'])}>\n {title}\n </div>\n )}\n\n {showCloseButton && (\n <Button\n aria-label={translations.modalCloseLabel}\n variant=\"tertiary\"\n className=\"dropin-modal__header-close-button\"\n onClick={handleOnClose}\n icon={<CloseSVG />}\n />\n )}\n </div>\n\n <div\n className={classes([\n 'dropin-modal__content',\n ['dropin-modal__body--centered', centered],\n ])}\n >\n {children}\n </div>\n </div>\n </div>\n );\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useContext } from 'preact/compat';\nimport { classes, VComponent } from '@adobe/elsie/lib';\nimport {\n Button,\n CartItemSkeleton,\n Icon,\n Incrementer,\n UIContext,\n ProgressSpinner,\n} from '@adobe/elsie/components';\nimport { useText } from '@adobe/elsie/i18n';\nimport { Trash } from '@adobe/elsie/icons';\n\nimport '@adobe/elsie/components/CartItem/CartItem.css';\n\nexport interface CartItemProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'loading'> {\n ariaLabel?: string;\n image: VNode;\n title: VNode;\n price: VNode;\n taxIncluded?: boolean;\n taxExcluded?: boolean;\n total: VNode;\n totalExcludingTax?: VNode;\n sku: VNode;\n quantity?: number;\n description?: VNode;\n configurations?: { [key: string]: any };\n warning?: VNode;\n alert?: VNode;\n loading?: boolean;\n updating?: boolean;\n onRemove?: () => void;\n onQuantity?: (value: number) => void;\n}\n\nexport const CartItem: FunctionComponent<CartItemProps> = ({\n className,\n children,\n ariaLabel,\n image,\n title,\n price,\n taxIncluded = false,\n taxExcluded = false,\n total,\n totalExcludingTax,\n sku,\n configurations,\n warning,\n alert,\n quantity = 1,\n description,\n loading = false,\n updating = false,\n onQuantity,\n onRemove,\n ...props\n}) => {\n const { locale } = useContext(UIContext);\n\n const labels = useText({\n each: 'Dropin.CartItem.each.label',\n quantity: 'Dropin.CartItem.quantity.label',\n remove: 'Dropin.CartItem.remove.label',\n removeDefault: 'Dropin.CartItem.removeDefault.label',\n taxIncluded: 'Dropin.CartItem.taxIncluded.label',\n taxExcluded: 'Dropin.CartItem.taxExcluded.label',\n updating: 'Dropin.CartItem.updating.label',\n updatingDefault: 'Dropin.ProgressSpinner.updating.label',\n });\n\n if (loading) return <CartItemSkeleton />;\n\n return (\n <div\n {...props}\n className={classes([\n 'dropin-cart-item',\n ['dropin-cart-item--updating', updating],\n className,\n ])}\n >\n {updating && (\n <ProgressSpinner\n className={classes(['dropin-cart-item__spinner'])}\n ariaLabel={\n ariaLabel\n ? labels.updating?.replace('{product}', ariaLabel)\n : labels.updatingDefault\n }\n />\n )}\n <div className=\"dropin-cart-item__wrapper\">\n {/* Image */}\n <VComponent\n node={image}\n className={classes(['dropin-cart-item__image'])}\n />\n\n {/* Title */}\n <VComponent\n node={title}\n className={classes([\n 'dropin-cart-item__title',\n ['dropin-cart-item__title--edit', !!onQuantity || !!onRemove],\n ])}\n />\n\n {/* Description */}\n {description && (\n <VComponent\n node={description}\n className={classes(['dropin-cart-item__description'])}\n />\n )}\n\n {/* SKU */}\n <VComponent node={sku} className={classes(['dropin-cart-item__sku'])} />\n {/* Configurations */}\n {configurations && (\n <ul className={classes(['dropin-cart-item__configurations'])}>\n {Object.entries(configurations).map(([key, value]) => (\n <li\n key={key}\n className={classes(['dropin-cart-item__configurations__item'])}\n >\n {key}:{' '}\n <strong\n className={classes([\n 'dropin-cart-item__configurations__item__value',\n ])}\n >\n {value}\n </strong>\n </li>\n ))}\n </ul>\n )}\n\n {/* Price */}\n <span className={classes(['dropin-cart-item__price'])}>\n {!onQuantity && (\n <span className=\"dropin-cart-item__price__quantity\">\n {quantity.toLocaleString(locale)} x{' '}\n </span>\n )}\n\n <VComponent node={price} role=\"text\" />\n\n {quantity > 1 && (\n <>\n \n {labels.each}\n </>\n )}\n\n {taxIncluded && (\n <span\n data-testid=\"tax-message\"\n className=\"dropin-cart-item__price-tax-message\"\n >\n \n {labels.taxIncluded}\n </span>\n )}\n\n {taxExcluded && (\n <span\n data-testid=\"tax-message\"\n className=\"dropin-cart-item__price-tax-message\"\n >\n \n {labels.taxExcluded}\n </span>\n )}\n </span>\n\n {/* Quantity */}\n <div\n className={classes([\n 'dropin-cart-item__quantity',\n ['dropin-cart-item__quantity--edit', !!onQuantity],\n ])}\n >\n {onQuantity ? (\n <Incrementer\n className={classes(['dropin-cart-item__quantity__incrementer'])}\n value={quantity}\n min={1}\n onValue={(value) => onQuantity?.(Number(value))}\n name=\"quantity\"\n aria-label={labels.quantity}\n disabled={updating}\n />\n ) : (\n <span className={classes(['dropin-cart-item__quantity__value'])}>\n {labels.quantity}:{' '}\n <strong className=\"dropin-cart-item__quantity__number\">\n {Number(quantity).toLocaleString(locale)}\n </strong>\n </span>\n )}\n\n {/* Warning */}\n {warning && (\n <VComponent\n node={warning}\n className={classes([\n 'dropin-cart-item__warning',\n 'dropin-cart-item__warning--quantity',\n ])}\n />\n )}\n\n {/* Alert */}\n {alert && (\n <VComponent\n node={alert}\n className={classes([\n 'dropin-cart-item__alert',\n 'dropin-cart-item__alert--quantity',\n ])}\n />\n )}\n </div>\n\n {/* Warning */}\n {warning && (\n <VComponent\n node={warning}\n className={classes(['dropin-cart-item__warning'])}\n />\n )}\n\n {/* Alert */}\n {alert && (\n <VComponent\n node={alert}\n className={classes(['dropin-cart-item__alert'])}\n />\n )}\n\n {/* Total */}\n <div\n className={classes([\n 'dropin-cart-item__total',\n ['dropin-cart-item__total--edit', !!onRemove],\n ])}\n >\n <div className=\"dropin-cart-item__row-total\">\n <VComponent node={total} role=\"text\" />\n </div>\n {taxIncluded && (\n <span\n data-testid=\"tax-message\"\n className={classes(['dropin-cart-item__total-tax-message'])}\n >\n \n {labels.taxIncluded}\n </span>\n )}\n\n {taxExcluded && (\n <div className=\"dropin-cart-item__total-tax-excluded\">\n <span\n data-testid=\"tax-message\"\n className={classes([\n 'dropin-cart-item__total-tax-excluded-message',\n ])}\n >\n {totalExcludingTax && (\n <VComponent node={totalExcludingTax} role=\"text\" />\n )}\n \n {labels.taxExcluded}\n </span>\n </div>\n )}\n </div>\n </div>\n\n {/* Remove Item */}\n {onRemove && (\n <Button\n className={classes(['dropin-cart-item__remove'])}\n variant=\"tertiary\"\n onClick={() => onRemove?.()}\n icon={\n <Icon\n source={Trash}\n size=\"24\"\n stroke=\"2\"\n viewBox=\"0 0 24 24\"\n aria-label={\n ariaLabel\n ? labels.remove?.replace('{product}', ariaLabel)\n : labels.removeDefault\n }\n />\n }\n disabled={updating}\n />\n )}\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { Skeleton, SkeletonRow } from '@adobe/elsie/components';\n\nexport const CartItemSkeleton: FunctionComponent = () => {\n return (\n <div className=\"dropin-cart-item dropin-cart-item-skeleton\">\n <Skeleton className=\"dropin-cart-item__skeleton dropin-cart-item__wrapper\">\n <div className=\"dropin-cart-item__image\">\n <SkeletonRow className=\"dropin-cart-item__skeleton__item\" />\n </div>\n <div className=\"dropin-cart-item__title\">\n <SkeletonRow className=\"dropin-cart-item__skeleton__item\" />\n </div>\n <div className=\"dropin-cart-item__sku\">\n <SkeletonRow className=\"dropin-cart-item__skeleton__item\" />\n </div>\n <div className=\"dropin-cart-item__price\">\n <SkeletonRow className=\"dropin-cart-item__skeleton__item\" />\n </div>\n <div className=\"dropin-cart-item__quantity\">\n <SkeletonRow className=\"dropin-cart-item__skeleton__item\" />\n </div>\n <div className=\"dropin-cart-item__total\">\n <SkeletonRow className=\"dropin-cart-item__skeleton__item\" />\n </div>\n </Skeleton>\n </div>\n );\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, useRef, useState } from 'preact/compat';\nimport { VComponent, classes, getFormValues } from '@adobe/elsie/lib';\nimport { Text, useText } from '@adobe/elsie/i18n';\nimport {\n Accordion,\n AccordionSection,\n Divider,\n Skeleton,\n SkeletonRow,\n} from '@adobe/elsie/components';\n\nimport { ChevronDown, ChevronUp } from '@adobe/elsie/icons';\n\nimport '@adobe/elsie/components/PriceSummary/PriceSummary.css';\n\nexport interface PriceSummaryProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {\n heading: string;\n loading?: boolean;\n total?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n estimated?: boolean;\n priceWithoutTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n };\n subTotal?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n priceExcludingTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n taxIncluded?: boolean;\n taxExcluded?: boolean;\n zeroTaxSubtotal?: boolean;\n };\n shipping?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n estimated?: boolean;\n taxIncluded?: boolean;\n taxExcluded?: boolean;\n priceIncludingTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n priceExcludingTax?: VNode<HTMLAttributes<HTMLSpanElement>>;\n countryField?: VNode<HTMLAttributes<HTMLInputElement>>;\n stateField?: VNode<HTMLAttributes<HTMLInputElement>>;\n zipField?: VNode<HTMLAttributes<HTMLInputElement>>;\n destinationText?: string;\n onEstimate?: (formData: any) => void;\n estimateButton?: VNode<HTMLAttributes<HTMLButtonElement>>;\n };\n taxTotal?: {\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n estimated?: boolean;\n };\n taxesApplied?: {\n label: string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n }[];\n discounts?: {\n label: string;\n price: VNode<HTMLAttributes<HTMLSpanElement>>;\n caption?: VNode<HTMLAttributes<HTMLDivElement>>;\n }[];\n primaryAction?: VNode<HTMLAttributes<HTMLButtonElement>>;\n}\n\nexport const PriceSummary: FunctionComponent<PriceSummaryProps> = ({\n className,\n children,\n ...props\n}) => {\n const {\n heading,\n loading = true,\n total,\n subTotal,\n shipping,\n taxTotal,\n taxesApplied,\n discounts,\n primaryAction,\n ...restProps\n } = props;\n\n const [showTaxBreakdown, setShowTaxBreakdown] = useState(false);\n\n const estimateFormRef = useRef<HTMLFormElement>(null);\n const [showEstimateForm, setShowEstimateForm] = useState(true);\n const [estimateField, setEstimateField] = useState<'zip' | 'state'>('zip');\n\n const translations = useText({\n editZipAction: 'Dropin.PriceSummary.shipping.editZipAction',\n destinationLinkAriaLabel:\n 'Dropin.PriceSummary.shipping.destinationLinkAriaLabel',\n taxesBreakdownTitle: 'Dropin.PriceSummary.taxes.breakdown',\n subtotalLabel: 'Dropin.PriceSummary.subTotal.label',\n shippingLabel: 'Dropin.PriceSummary.shipping.label',\n showTaxBreakdown: 'Dropin.PriceSummary.taxes.showBreakdown',\n hideTaxBreakdown: 'Dropin.PriceSummary.taxes.hideBreakdown',\n zipPlaceholder: 'Dropin.PriceSummary.shipping.zipPlaceholder',\n });\n\n const onDestinationLinkClick = (e: Event) => {\n e.preventDefault();\n setShowEstimateForm((show) => !show);\n };\n\n const onAlternateFieldClick = (e: Event) => {\n e.preventDefault();\n setShowEstimateForm(true);\n\n setEstimateField((field) => (field === 'zip' ? 'state' : 'zip'));\n };\n\n const onSubmitEstimate = (e: Event) => {\n e.preventDefault();\n setShowEstimateForm(false);\n\n const formData = getFormValues(estimateFormRef.current!);\n\n shipping?.onEstimate?.(formData);\n };\n\n // Skeleton content to show while loading\n const skeletonContent = (\n <Skeleton data-testid=\"loading-skeleton\" rowGap=\"xsmall\">\n <SkeletonRow\n variant=\"row\"\n size=\"small\"\n lines={5}\n fullWidth={true}\n multilineGap=\"xsmall\"\n />\n </Skeleton>\n );\n\n // Entry for the shipping price\n const shippingContent = shipping && (\n <>\n <div\n data-testid=\"shipping-content\"\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__shipping',\n ])}\n >\n <span className={'dropin-price-summary__label'}>\n {shipping.estimated ? (\n shipping.destinationText ? (\n <>\n <Text id=\"Dropin.PriceSummary.shipping.estimatedDestination\" />\n <a\n className={'dropin-price-summary__shippingLink'}\n role=\"button\"\n href=\"\"\n onClick={onDestinationLinkClick}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onDestinationLinkClick(event);\n }\n }}\n tabIndex={0}\n aria-label={translations.destinationLinkAriaLabel}\n data-testid=\"shipping-destination-link\"\n >\n {shipping.destinationText}\n </a>\n </>\n ) : (\n <Text id=\"Dropin.PriceSummary.shipping.estimated\" />\n )\n ) : (\n <Text id=\"Dropin.PriceSummary.shipping.label\" />\n )}\n </span>\n <VComponent\n node={shipping.price}\n className={'dropin-price-summary__price'}\n />\n\n {shipping.estimated && (\n <>\n <div className={classes(['dropin-price-summary__caption'])}>\n <a\n href=\"#\"\n className={'dropin-price-summary__shippingLink'}\n onClick={onAlternateFieldClick}\n data-testid=\"shipping-alternate-field-link\"\n >\n {estimateField === 'zip' ? (\n <Text id=\"Dropin.PriceSummary.shipping.alternateField.state\" />\n ) : (\n <Text id=\"Dropin.PriceSummary.shipping.alternateField.zip\" />\n )}\n </a>\n </div>\n </>\n )}\n\n {/* Edit shipping address form */}\n {shipping.estimated && (\n <>\n <form\n className={classes([\n 'dropin-price-summary__shipping--edit',\n ['dropin-price-summary__shipping--hide', !showEstimateForm],\n ])}\n ref={estimateFormRef}\n data-testid=\"shipping-estimate-form\"\n >\n {shipping.countryField && (\n <VComponent\n node={shipping.countryField}\n className={classes([\n 'dropin-price-summary__shipping--country',\n ])}\n />\n )}\n {estimateField === 'state'\n ? shipping.stateField && (\n <VComponent\n node={shipping.stateField}\n className={classes([\n 'dropin-price-summary__shipping--state',\n ])}\n />\n )\n : shipping.zipField && (\n <VComponent\n node={shipping.zipField}\n className={classes([\n 'dropin-price-summary__shipping--zip',\n ])}\n />\n )}\n {shipping.estimateButton && (\n <VComponent\n node={shipping.estimateButton}\n className={classes([\n 'dropin-price-summary__shipping--action',\n ])}\n onClick={onSubmitEstimate}\n type=\"submit\"\n />\n )}\n </form>\n </>\n )}\n\n {shipping.taxIncluded && (\n <div\n data-testid=\"shipping-tax-included\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n <Text id=\"Dropin.PriceSummary.shipping.withTaxes\" />\n </span>\n </div>\n )}\n\n {shipping.taxExcluded ? (\n <div\n data-testid=\"shipping-tax-included-excluded\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n {shipping.priceExcludingTax}{' '}\n <Text id=\"Dropin.PriceSummary.shipping.withoutTaxes\" />\n </span>\n </div>\n ) : undefined}\n </div>\n </>\n );\n\n // Entry for the discounts\n const discountContent = discounts && (\n <>\n {discounts.map((discount) => (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__discount',\n ])}\n key={discount.label}\n >\n <span className={classes(['dropin-price-summary__label'])}>\n {discount.label}\n </span>\n <VComponent\n node={discount.price}\n className={classes(['dropin-price-summary__price'])}\n />\n {discount.caption && (\n <VComponent\n node={discount.caption}\n className={classes(['dropin-price-summary__caption'])}\n />\n )}\n </div>\n ))}\n </>\n );\n\n // Entry for the total tax and breakdown (if provided)\n const taxContent = taxesApplied ? (\n /* Show breakdown if provided */\n <>\n <Accordion\n data-testid=\"tax-breakdown\"\n className={'dropin-price-summary__taxes'}\n iconOpen={ChevronDown}\n iconClose={ChevronUp}\n >\n <AccordionSection\n title={translations.taxesBreakdownTitle}\n secondaryText={\n !showTaxBreakdown && taxTotal ? (\n <VComponent\n node={taxTotal.price}\n className={'dropin-price-summary__price'}\n />\n ) : undefined\n }\n renderContentWhenClosed={false}\n onStateChange={setShowTaxBreakdown}\n >\n <div className={classes(['dropin-price-summary__appliedTaxes'])}>\n {taxesApplied.map((tax) => (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__taxEntry',\n ])}\n key={tax.label}\n >\n <span\n className={classes([\n 'dropin-price-summary__label',\n 'dropin-price-summary__label--muted',\n ])}\n >\n {tax.label}\n </span>\n\n <VComponent\n node={tax.price}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--muted',\n ])}\n />\n </div>\n ))}\n </div>\n\n <div className={classes(['dropin-price-summary__entry'])}>\n <span className={'dropin-price-summary__label'}>\n <Text id=\"Dropin.PriceSummary.taxes.total\" />\n </span>\n {taxTotal && (\n <VComponent\n node={taxTotal.price}\n className={'dropin-price-summary__price'}\n />\n )}\n </div>\n </AccordionSection>\n </Accordion>\n </>\n ) : (\n taxTotal && (\n /* Otherwise, show total only */\n <div\n data-testid=\"tax-total-only\"\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__taxTotal',\n ])}\n >\n <span className={'dropin-price-summary__label'}>\n {taxTotal.estimated ? (\n <Text id=\"Dropin.PriceSummary.taxes.estimated\" />\n ) : (\n <Text id=\"Dropin.PriceSummary.taxes.totalOnly\" />\n )}\n </span>\n <VComponent\n node={taxTotal.price}\n className={'dropin-price-summary__price'}\n />\n </div>\n )\n );\n\n // Entry for the total\n const totalContent = total && (\n <>\n <div\n data-testid=\"total-content\"\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__total',\n total.estimated && 'dropin-price-summary__total--padded',\n ])}\n >\n <span\n className={classes([\n 'dropin-price-summary__label',\n 'dropin-price-summary__label--bold',\n ])}\n >\n {total.estimated ? (\n <Text id=\"Dropin.PriceSummary.total.estimated\" />\n ) : (\n <Text id=\"Dropin.PriceSummary.total.label\" />\n )}\n </span>\n <VComponent\n node={total.price}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--bold',\n ])}\n />\n </div>\n </>\n );\n\n // Entry for the total without tax\n const totalWithoutTaxContent = total && total.priceWithoutTax && (\n <div\n data-testid=\"total-without-tax\"\n className={\n 'dropin-price-summary__entry dropin-price-summary__totalWithoutTax'\n }\n >\n <span\n className={classes([\n 'dropin-price-summary__label',\n 'dropin-price-summary__label--muted',\n ])}\n >\n <Text id=\"Dropin.PriceSummary.total.withoutTax\" />\n </span>\n <VComponent\n node={total.priceWithoutTax}\n className={classes([\n 'dropin-price-summary__price',\n 'dropin-price-summary__price--muted',\n ])}\n />\n </div>\n );\n\n // Entry for the primary action\n const primaryActionContent = primaryAction && (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__primaryAction',\n ])}\n >\n {primaryAction}\n </div>\n );\n\n const subTotalContent = subTotal && (\n <div\n className={classes([\n 'dropin-price-summary__entry',\n 'dropin-price-summary__subTotal',\n ])}\n >\n <span className={'dropin-price-summary__label'}>\n <Text id=\"Dropin.PriceSummary.subTotal.label\" />\n </span>\n <VComponent\n node={subTotal.price}\n className={'dropin-price-summary__price'}\n />\n {subTotal.taxIncluded && (\n <div\n data-testid=\"sub-total-tax-caption\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n <Text id=\"Dropin.PriceSummary.subTotal.withTaxes\" />\n </span>\n </div>\n )}\n\n {subTotal.taxExcluded ? (\n <div\n data-testid=\"sub-total-tax-caption-excluded\"\n className={classes(['dropin-price-summary__caption'])}\n >\n <span>\n {subTotal.priceExcludingTax}\n \n <Text id=\"Dropin.PriceSummary.subTotal.withoutTaxes\" />\n </span>\n </div>\n ) : undefined}\n </div>\n );\n return (\n <div\n {...restProps}\n className={classes(['dropin-price-summary', className])}\n >\n <div className={'dropin-price-summary__heading'}>{heading}</div>\n\n <Divider\n variant=\"primary\"\n className={'dropin-price-summary__divider-primary'}\n />\n\n {loading ? (\n skeletonContent\n ) : (\n <>\n {subTotalContent}\n\n {shippingContent}\n\n {discountContent}\n\n {taxContent}\n\n {totalContent}\n\n {totalWithoutTaxContent}\n\n {primaryActionContent}\n </>\n )}\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, Children } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\n\nimport '@adobe/elsie/components/CartList/CartList.css';\n\nexport interface CartListProps extends HTMLAttributes<HTMLDivElement> {}\n\nexport const CartList: FunctionComponent<CartListProps> = ({\n className,\n children,\n ...props\n}) => {\n return (\n <div {...props} className={classes(['dropin-cart-list', className])}>\n <div\n className=\"dropin-cart-list__wrapper\"\n aria-live=\"assertive\"\n aria-relevant=\"all\"\n >\n {Children.map(children, (child, key) => {\n return (\n <div key={key} className=\"dropin-cart-list__item\">\n {child}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n","import { FunctionComponent } from 'preact';\nimport { HTMLAttributes, useMemo } from 'preact/compat';\nimport { classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/PriceRange/PriceRange.css';\nimport { Price } from '@adobe/elsie/components/Price';\nimport { useText } from '@adobe/elsie/i18n';\n\nexport interface PriceRangeProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'size'> {\n locale?: string;\n currency?: string;\n amount?: number; // simple product\n variant?: 'default' | 'strikethrough';\n minimumAmount?: number; // configurable product\n maximumAmount?: number; // configurable product\n display?: 'dash' | 'from to' | 'as low as';\n size?: 'small' | 'medium' | 'large';\n specialPrice?: number;\n sale?: boolean;\n}\n\nexport const PriceRange: FunctionComponent<PriceRangeProps> = ({\n className,\n children,\n locale,\n currency,\n amount,\n variant = 'default',\n minimumAmount,\n maximumAmount,\n size = 'small',\n display = 'dash',\n specialPrice,\n sale = false,\n ...props\n}) => {\n const isSimpleProduct = useMemo(\n () =>\n amount ||\n minimumAmount === maximumAmount ||\n (minimumAmount && !maximumAmount) ||\n (maximumAmount && !minimumAmount),\n [amount, maximumAmount, minimumAmount]\n );\n\n return (\n <div>\n {/* Simple product price or when configurable product minimum price equals to maximum price */}\n {isSimpleProduct ? (\n <div {...props} className={classes(['dropin-price-range', className])}>\n <Price\n amount={amount ?? minimumAmount ?? maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n variant={variant}\n sale={sale}\n />\n </div>\n ) : (\n <div {...props} className={classes(['dropin-price-range', className])}>\n {display === 'dash' ? (\n <Dashed\n specialPrice={specialPrice}\n minimumAmount={minimumAmount}\n maximumAmount={maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n sale={sale}\n />\n ) : null}\n\n {display === 'from to' ? (\n <FromTo\n specialPrice={specialPrice}\n minimumAmount={minimumAmount}\n maximumAmount={maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n sale={sale}\n />\n ) : null}\n\n {display === 'as low as' ? (\n <SpecialPrice\n specialPrice={specialPrice}\n minimumAmount={minimumAmount}\n maximumAmount={maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n sale={sale}\n />\n ) : null}\n </div>\n )}\n </div>\n );\n};\n\n// Variations\n\nfunction Dashed({\n specialPrice,\n minimumAmount,\n maximumAmount,\n currency,\n locale,\n size,\n sale,\n}: PriceRangeProps) {\n return (\n <>\n <Price\n amount={specialPrice ?? minimumAmount}\n currency={currency}\n locale={locale}\n size={size}\n sale={!!specialPrice && sale}\n />\n <span className=\"dropin-price-range__separator\">-</span>\n <Price\n amount={maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n />\n </>\n );\n}\n\nfunction FromTo({\n specialPrice,\n minimumAmount,\n maximumAmount,\n currency,\n locale,\n size,\n sale,\n}: PriceRangeProps) {\n // Translations\n const translations = useText({\n from: 'Dropin.PriceRange.from.label',\n to: 'Dropin.PriceRange.to.label',\n asLowAs: 'Dropin.PriceRange.asLowAs.label',\n });\n\n return (\n <>\n <span\n className={classes([\n 'dropin-price-range__from',\n `dropin-price-range__from--${size}`,\n ])}\n >\n {translations.from}\n </span>\n <Price\n amount={specialPrice ?? minimumAmount}\n currency={currency}\n locale={locale}\n size={size}\n sale={!!specialPrice && sale}\n />\n <span\n className={classes([\n 'dropin-price-range__to',\n `dropin-price-range__to--${size}`,\n ])}\n >\n {translations.to}\n </span>\n <Price\n amount={maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n />\n </>\n );\n}\n\nfunction SpecialPrice({\n specialPrice,\n minimumAmount,\n maximumAmount,\n currency,\n locale,\n size,\n sale,\n}: PriceRangeProps) {\n // Translations\n const translations = useText({\n from: 'Dropin.PriceRange.from.label',\n to: 'Dropin.PriceRange.to.label',\n asLowAs: 'Dropin.PriceRange.asLowAs.label',\n });\n\n return (\n <>\n <span\n className={classes([\n 'dropin-price-range__as-low-as',\n `dropin-price-range__as-low-as--${size}`,\n ])}\n >\n {translations.asLowAs}\n </span>\n {specialPrice ? (\n <div>\n <Price\n amount={maximumAmount}\n currency={currency}\n locale={locale}\n size={size}\n variant=\"strikethrough\"\n />\n <Price\n amount={specialPrice}\n currency={currency}\n locale={locale}\n size={size}\n className=\"dropin-price-range__special\"\n sale={!!specialPrice && sale}\n />\n </div>\n ) : (\n <Price\n amount={minimumAmount}\n currency={currency}\n locale={locale}\n size={size}\n />\n )}\n </>\n );\n}\n","import { HTMLAttributes } from 'preact/compat';\nimport { FunctionComponent, VNode } from 'preact';\nimport { VComponent, classes } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/Breadcrumbs/Breadcrumbs.css';\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n categories: VNode[];\n separator?: VNode<HTMLAttributes<SVGSVGElement>>;\n}\n\nexport const Breadcrumbs: FunctionComponent<BreadcrumbsProps> = ({\n className,\n categories,\n separator,\n ...props\n}) => {\n return (\n <>\n {categories?.length > 1 && (\n <nav\n role=\"navigation\"\n {...props}\n className={classes(['dropin-breadcrumbs__container', className])}\n >\n <ul className=\"dropin-breadcrumbs__items\">\n {categories?.map((category: VNode, index: number) => {\n return (\n <li\n key={index}\n className={classes([\n 'dropin-breadcrumbs__item',\n [\n 'dropin-breadcrumbs__item--last',\n index === categories.length - 1,\n ],\n ])}\n >\n <VComponent\n node={category}\n className=\"dropin-breadcrumbs__link\"\n />\n {!separator && index !== categories.length - 1 && (\n <span className=\"dropin-breadcrumbs__separator--default\">\n {' '}\n /{' '}\n </span>\n )}\n {separator && index !== categories.length - 1 && (\n <VComponent\n node={separator}\n className=\"dropin-breadcrumbs__separator--icon\"\n />\n )}\n </li>\n );\n })}\n </ul>\n </nav>\n )}\n </>\n );\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes } from 'preact/compat';\nimport { classes, VComponent } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/AlertBanner/AlertBanner.css';\nimport { Button, Icon } from '@adobe/elsie/components';\nimport { Close } from '@adobe/elsie/icons';\nimport { useText } from '@adobe/elsie/i18n';\n\nexport interface AlertBannerProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'icon' | 'action'> {\n variant: 'brand' | 'neutral' | 'success' | 'warning';\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n message: VNode;\n onDismiss: () => void;\n action?: {\n label: string;\n onClick: (event: Event) => void;\n };\n}\n\nexport const AlertBanner: FunctionComponent<AlertBannerProps> = ({\n className,\n variant,\n icon,\n message,\n onDismiss,\n action,\n ...props\n}) => {\n const translations = useText({\n dismiss: 'Dropin.InlineAlert.dismissLabel',\n });\n\n return (\n <div\n {...props}\n className={classes([\n className,\n 'dropin-alert-banner',\n `dropin-alert-banner--${variant}`,\n ])}\n >\n <div className={'dropin-alert-banner__content'}>\n {icon && (\n <VComponent\n node={icon}\n aria-hidden=\"true\"\n className={'dropin-alert-banner__icon'}\n />\n )}\n\n {/* Message */}\n <VComponent\n node={message}\n className={classes(['dropin-alert-banner__message'])}\n />\n </div>\n\n <div className={'dropin-alert-banner__actions'}>\n {action && (\n <Button\n variant=\"tertiary\"\n className={'dropin-alert-banner__action'}\n onClick={action.onClick}\n aria-label={action.label}\n >\n {action.label}\n </Button>\n )}\n\n <Button\n icon={<Icon source={Close} size=\"24\" stroke=\"2\" />}\n className=\"dropin-alert-banner__dismiss-button\"\n variant=\"primary\"\n onClick={onDismiss}\n aria-label={translations.dismiss}\n />\n </div>\n </div>\n );\n};\n","import { FunctionComponent, VNode } from 'preact';\nimport { HTMLAttributes, JSX } from 'preact/compat';\nimport { classes, VComponent } from '@adobe/elsie/lib';\nimport '@adobe/elsie/components/IllustratedMessage/IllustratedMessage.css';\nimport { Card } from '@adobe/elsie/components';\n\nexport interface IllustratedMessageProps\n extends Omit<HTMLAttributes<HTMLDivElement>, 'icon' | 'action'> {\n icon?: VNode<HTMLAttributes<SVGSVGElement>>;\n heading?: string;\n headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;\n message?: VNode<HTMLAttributes<HTMLElement>>;\n action?: VNode;\n variant?: 'primary' | 'secondary';\n}\n\nexport const IllustratedMessage: FunctionComponent<IllustratedMessageProps> = ({\n className,\n icon,\n heading,\n headingLevel = 2,\n message,\n action,\n variant = 'secondary',\n ...props\n}) => {\n const Heading =\n headingLevel >= 1 && headingLevel <= 6\n ? (`h${headingLevel}` as keyof JSX.IntrinsicElements)\n : 'h2';\n\n return (\n <div\n {...props}\n className={classes(['dropin-illustrated-message', className])}\n >\n <Card variant={variant}>\n {icon && (\n <VComponent\n node={icon}\n aria-hidden=\"true\"\n size=\"80\"\n className=\"dropin-illustrated-message__icon\"\n />\n )}\n\n {heading && (\n <Heading className=\"dropin-illustrated-message__heading\">\n {heading}\n </Heading>\n )}\n\n {message && (\n <VComponent\n node={message}\n className=\"dropin-illustrated-message__message\"\n />\n )}\n\n {action && (\n <VComponent\n node={action}\n className=\"dropin-illustrated-message__action\"\n />\n )}\n </Card>\n </div>\n );\n};\n"],"file":"components.js"}
|
package/event-bus.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-bus.js","sources":["../../event-bus/src/index.ts"],"sourcesContent":["import { Events } from './events-catalog';\n\nexport * from './events-catalog';\n\nconst hash = Date.now().toString(36).substring(2);\n\
|
|
1
|
+
{"version":3,"file":"event-bus.js","sources":["../../event-bus/src/index.ts"],"sourcesContent":["import { Events } from './events-catalog';\n\nexport * from './events-catalog';\n\nconst hash = Date.now().toString(36).substring(2);\n\nexport class events {\n static _identifier = hash;\n\n static _logger: BroadcastChannel | null = null;\n\n static _lastEvent: { [key: string]: { payload: any } } = {};\n\n static on<K extends keyof Events>(\n event: K,\n handler: (payload: Events[K]) => void,\n options?: { eager?: boolean }\n ) {\n if (typeof BroadcastChannel === 'undefined') {\n return;\n }\n\n const subscriber = new BroadcastChannel('ElsieSDK/EventBus');\n\n if (options?.eager) {\n const lastEvent = this._lastEvent[event];\n\n if (lastEvent) {\n handler(lastEvent.payload);\n }\n }\n\n subscriber.addEventListener('message', ({ data }) => {\n // ignore events from other instances (only if identifier is set)\n if (this._identifier && this._identifier !== data.identifier) return;\n\n if (data.event === event) {\n handler(data.payload);\n }\n });\n\n // unsubscribe if leaving page\n window.addEventListener('beforeunload', () => {\n subscriber.close();\n });\n\n return {\n off() {\n subscriber.close();\n },\n };\n }\n\n static emit<K extends keyof Events>(event: K, payload: Events[K]) {\n if (typeof BroadcastChannel === 'undefined') {\n return;\n }\n\n const publisher = new BroadcastChannel('ElsieSDK/EventBus');\n\n publisher.postMessage({ event, identifier: this._identifier, payload });\n\n this._lastEvent[event] = {\n payload,\n };\n\n publisher.close();\n }\n\n static enableLogger(enabled: boolean) {\n if (typeof BroadcastChannel === 'undefined') {\n return;\n }\n\n // reset logger\n this._logger?.close();\n this._logger = null;\n\n if (enabled === false) return;\n\n // create new logger\n this._logger = new BroadcastChannel('ElsieSDK/EventBus');\n\n this._logger.addEventListener('message', ({ data }) => {\n if (this._identifier && this._identifier !== data.identifier) return;\n console.group(`📡 Event (${data.identifier}) ➡ ${data.event}`);\n console.log(data.payload);\n console.groupEnd();\n });\n\n\n // unsubscribe if leaving page\n window.addEventListener('beforeunload', () => {\n this._logger?.close();\n });\n }\n}\n"],"names":["hash","Date","now","toString","substring","events","on","event","handler","options","BroadcastChannel","subscriber","eager","lastEvent","_lastEvent","payload","addEventListener","data","_identifier","identifier","close","off","emit","publisher","postMessage","enableLogger","enabled","_a","_logger","console","group","log","groupEnd","__publicField"],"mappings":"wKAIA,MAAMA,EAAOC,KAAKC,MAAMC,SAAS,EAAE,EAAEC,UAAU,CAAC,EAEzC,MAAMC,CAAO,CAOlB,OAAOC,GACLC,EACAC,EACAC,EACA,CACI,GAAA,OAAOC,iBAAqB,IAC9B,OAGIC,MAAAA,EAAa,IAAID,iBAAiB,mBAAmB,EAE3D,GAAID,GAAAA,MAAAA,EAASG,MAAO,CACZC,MAAAA,EAAY,KAAKC,WAAWP,CAAK,EAEnCM,GACFL,EAAQK,EAAUE,OAAO,CAE7B,CAEWC,OAAAA,EAAAA,iBAAiB,UAAW,CAAC,CAAEC,KAAAA,CAAAA,IAAW,CAE/C,KAAKC,aAAe,KAAKA,cAAgBD,EAAKE,YAE9CF,EAAKV,QAAUA,GACjBC,EAAQS,EAAKF,OAAO,CACtB,CACD,EAGMC,OAAAA,iBAAiB,eAAgB,IAAM,CAC5CL,EAAWS,MAAM,CAAA,CAClB,EAEM,CACLC,KAAM,CACJV,EAAWS,MAAM,CACnB,CAAA,CAEJ,CAEA,OAAOE,KAA6Bf,EAAUQ,EAAoB,CAC5D,GAAA,OAAOL,iBAAqB,IAC9B,OAGIa,MAAAA,EAAY,IAAIb,iBAAiB,mBAAmB,EAE1Da,EAAUC,YAAY,CAAEjB,MAAAA,EAAOY,WAAY,KAAKD,YAAaH,QAAAA,CAAAA,CAAS,EAEjED,KAAAA,WAAWP,CAAK,EAAI,CACvBQ,QAAAA,CAAAA,EAGFQ,EAAUH,MAAM,CAClB,CAEA,OAAOK,aAAaC,EAAkB,CAjExC,IAAAC,EAkEQ,OAAOjB,iBAAqB,OAKhCiB,EAAA,KAAKC,UAAL,MAAAD,EAAcP,QACd,KAAKQ,QAAU,KAEXF,IAAY,KAGXE,KAAAA,QAAU,IAAIlB,iBAAiB,mBAAmB,EAElDkB,KAAAA,QAAQZ,iBAAiB,UAAW,CAAC,CAAEC,KAAAA,CAAAA,IAAW,CACjD,KAAKC,aAAe,KAAKA,cAAgBD,EAAKE,aAClDU,QAAQC,MAAO,aAAYb,EAAKE,UAAW,OAAMF,EAAKV,KAAM,EAAC,EACrDwB,QAAAA,IAAId,EAAKF,OAAO,EACxBc,QAAQG,SAAS,EAAA,CAClB,EAIMhB,OAAAA,iBAAiB,eAAgB,IAAM,CAxFlD,IAAAW,GAyFMA,EAAA,KAAKC,UAAL,MAAAD,EAAcP,OAAM,CACrB,GACH,CACF,CAzFEa,EADW5B,EACJa,cAAclB,GAErBiC,EAHW5B,EAGJuB,UAAmC,MAE1CK,EALW5B,EAKJS,aAAkD,CAAA"}
|
package/fetch-graphql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-graphql.js","sources":["../../fetch-graphql/src/index.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"fetch-graphql.js","sources":["../../fetch-graphql/src/index.ts"],"sourcesContent":["export type Header = { [key: string]: string | null };\n\nexport type FetchOptions = {\n method?: 'GET' | 'POST';\n variables?: { [key: string]: any };\n signal?: AbortSignal;\n cache?:\n | 'default'\n | 'no-store'\n | 'reload'\n | 'no-cache'\n | 'force-cache'\n | 'only-if-cached';\n};\n\nexport type FetchQueryError = Array<{\n message: string;\n extensions: { category: string };\n}>;\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n Accept: 'application/json',\n};\n\nclass FetchGraphQLMesh {\n public _endpoint?: string;\n\n get endpoint() {\n return this._endpoint;\n }\n\n get fetchGraphQlHeaders() {\n return this._fetchGraphQlHeaders;\n }\n\n public _fetchGraphQlHeaders: Header | undefined;\n\n public setEndpoint(endpoint: string) {\n this._endpoint = endpoint;\n }\n\n public setFetchGraphQlHeader(key: string, value: string | null) {\n this._fetchGraphQlHeaders = {\n ...this.fetchGraphQlHeaders,\n [key]: value,\n };\n }\n\n public removeFetchGraphQlHeader(key: string) {\n delete this._fetchGraphQlHeaders?.[key];\n }\n\n public setFetchGraphQlHeaders(header: Header) {\n this._fetchGraphQlHeaders = { ...header };\n }\n\n public async fetchGraphQl<T = any>(\n query: string,\n options?: FetchOptions\n ): Promise<{ errors?: FetchQueryError; data: T }> {\n const endpoint = this.endpoint;\n const fetchGraphQlHeaders = this.fetchGraphQlHeaders;\n\n if (!endpoint) throw Error('Missing \"url\"');\n\n const method = options?.method ?? 'POST';\n const cache = options?.cache;\n const signal = options?.signal;\n\n let body;\n const url = new URL(endpoint);\n const headers = {\n ...defaultHeaders,\n ...fetchGraphQlHeaders,\n };\n\n if (method === 'POST') {\n body = JSON.stringify({\n query,\n variables: options?.variables,\n });\n }\n\n if (method === 'GET') {\n url.searchParams.append('query', minimizeGraphQlQuery(query));\n\n if (options?.variables)\n url.searchParams.append('variables', JSON.stringify(options.variables));\n }\n\n return await fetch(url, {\n method,\n headers,\n body,\n cache,\n signal,\n }).then((r) => r.json());\n }\n\n public getConfig() {\n return {\n endpoint: this.endpoint,\n fetchGraphQlHeaders: this.fetchGraphQlHeaders,\n };\n }\n\n public getMethods() {\n return {\n setEndpoint: this.setEndpoint.bind(this),\n setFetchGraphQlHeader: this.setFetchGraphQlHeader.bind(this),\n removeFetchGraphQlHeader: this.removeFetchGraphQlHeader.bind(this),\n setFetchGraphQlHeaders: this.setFetchGraphQlHeaders.bind(this),\n fetchGraphQl: this.fetchGraphQl.bind(this),\n getConfig: this.getConfig.bind(this),\n };\n }\n}\n\nconst mesh = new FetchGraphQLMesh();\n\nexport class FetchGraphQL extends FetchGraphQLMesh {\n get endpoint() {\n return this._endpoint ?? mesh.endpoint;\n }\n\n get fetchGraphQlHeaders() {\n return (\n (this._endpoint\n ? this._fetchGraphQlHeaders\n : { ...this._fetchGraphQlHeaders, ...mesh.fetchGraphQlHeaders }) || {}\n );\n }\n}\n\nfunction minimizeGraphQlQuery(query: string) {\n // Remove comments\n query = query.replace(/#.*/g, '');\n\n // Remove extra spaces, tabs, and line breaks\n query = query.replace(/\\s+/g, ' ');\n\n return query.trim();\n}\n\n// Global Mesh instance\nexport const {\n setEndpoint,\n setFetchGraphQlHeaders,\n setFetchGraphQlHeader,\n removeFetchGraphQlHeader,\n fetchGraphQl,\n getConfig,\n} = mesh.getMethods();\n"],"names":["defaultHeaders","Accept","FetchGraphQLMesh","_endpoint","_fetchGraphQlHeaders","endpoint","fetchGraphQlHeaders","setEndpoint","setFetchGraphQlHeader","key","value","removeFetchGraphQlHeader","_a","setFetchGraphQlHeaders","header","fetchGraphQl","query","options","Error","method","cache","signal","body","url","URL","headers","JSON","stringify","variables","searchParams","append","minimizeGraphQlQuery","fetch","then","r","json","getConfig","getMethods","bind","mesh","FetchGraphQL","replace","trim"],"mappings":"wKAoBA,MAAMA,EAAiB,CACrB,eAAgB,mBAChBC,OAAQ,kBACV,EAEA,MAAMC,CAAiB,CAAvB,cACSC,EAAAA,kBAUAC,EAAAA,6BARP,IAAIC,UAAW,CACb,OAAO,KAAKF,SACd,CAEA,IAAIG,qBAAsB,CACxB,OAAO,KAAKF,oBACd,CAIOG,YAAYF,EAAkB,CACnC,KAAKF,UAAYE,CACnB,CAEOG,sBAAsBC,EAAaC,EAAsB,CAC9D,KAAKN,qBAAuB,CAC1B,GAAG,KAAKE,oBACR,CAACG,CAAG,EAAGC,CAAAA,CAEX,CAEOC,yBAAyBF,EAAa,CA7B/C,IAAAG,GA8BWA,EAAA,KAAKR,uBAAL,aAAAQ,EAA4BH,EACrC,CAEOI,uBAAuBC,EAAgB,CAC5C,KAAKV,qBAAuB,CAAE,GAAGU,CAAAA,CACnC,CAEA,MAAaC,aACXC,EACAC,EACgD,CAChD,MAAMZ,EAAW,KAAKA,SAChBC,EAAsB,KAAKA,oBAEjC,GAAI,CAACD,EAAU,MAAMa,MAAM,eAAe,EAEpCC,MAAAA,GAASF,GAAAA,YAAAA,EAASE,SAAU,OAC5BC,EAAQH,GAAAA,YAAAA,EAASG,MACjBC,EAASJ,GAAAA,YAAAA,EAASI,OAEpBC,IAAAA,EACEC,MAAAA,EAAM,IAAIC,IAAInB,CAAQ,EACtBoB,EAAU,CACd,GAAGzB,EACH,GAAGM,CAAAA,EAGL,OAAIa,IAAW,SACbG,EAAOI,KAAKC,UAAU,CACpBX,MAAAA,EACAY,UAAWX,GAAAA,YAAAA,EAASW,SAAAA,CACrB,GAGCT,IAAW,QACbI,EAAIM,aAAaC,OAAO,QAASC,EAAqBf,CAAK,CAAC,EAExDC,GAAAA,MAAAA,EAASW,WACXL,EAAIM,aAAaC,OAAO,YAAaJ,KAAKC,UAAUV,EAAQW,SAAS,CAAC,GAGnE,MAAMI,MAAMT,EAAK,CACtBJ,OAAAA,EACAM,QAAAA,EACAH,KAAAA,EACAF,MAAAA,EACAC,OAAAA,CAAAA,CACD,EAAEY,KAAYC,GAAAA,EAAEC,KAAM,CAAA,CACzB,CAEOC,WAAY,CACV,MAAA,CACL/B,SAAU,KAAKA,SACfC,oBAAqB,KAAKA,mBAAAA,CAE9B,CAEO+B,YAAa,CACX,MAAA,CACL9B,YAAa,KAAKA,YAAY+B,KAAK,IAAI,EACvC9B,sBAAuB,KAAKA,sBAAsB8B,KAAK,IAAI,EAC3D3B,yBAA0B,KAAKA,yBAAyB2B,KAAK,IAAI,EACjEzB,uBAAwB,KAAKA,uBAAuByB,KAAK,IAAI,EAC7DvB,aAAc,KAAKA,aAAauB,KAAK,IAAI,EACzCF,UAAW,KAAKA,UAAUE,KAAK,IAAI,CAAA,CAEvC,CACF,CAEA,MAAMC,EAAO,IAAIrC,EAEV,MAAMsC,UAAqBtC,CAAiB,CACjD,IAAIG,UAAW,CACN,OAAA,KAAKF,WAAaoC,EAAKlC,QAChC,CAEA,IAAIC,qBAAsB,CAErB,OAAA,KAAKH,UACF,KAAKC,qBACL,CAAE,GAAG,KAAKA,qBAAsB,GAAGmC,EAAKjC,uBAA0B,EAE1E,CACF,CAEA,SAASyB,EAAqBf,EAAe,CAEnCA,OAAAA,EAAAA,EAAMyB,QAAQ,OAAQ,EAAE,EAGxBzB,EAAAA,EAAMyB,QAAQ,OAAQ,GAAG,EAE1BzB,EAAM0B,MACf,CAGa,KAAA,CACXnC,YAAAA,EACAM,uBAAAA,EACAL,sBAAAA,EACAG,yBAAAA,EACAI,aAAAA,EACAqB,UAAAA,CACF,EAAIG,EAAKF,WAAW"}
|
package/i18n.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{y as p,b as er,G as or,P as k,a as G}from"./chunks/icons/Add.js";function B(r,t,n,e,a){for(t=t.split?t.split("."):t,e=0;e<t.length;e++)r=r?r[t[e]]:a;return r===a?n:r}var R,ar={};function u(r,t,n){if(r.nodeType===3){var e="textContent"in r?r.textContent:r.nodeValue||"";if(u.options.trim!==!1){var a=t===0||t===n.length-1;if((!(e=e.match(/^[\s\n]+$/g)&&u.options.trim!=="all"?" ":e.replace(/(^[\s\n]+|[\s\n]+$)/g,u.options.trim==="all"||a?"":" "))||e===" ")&&n.length>1&&a)return null}return e}if(r.nodeType!==1)return null;var i=String(r.nodeName).toLowerCase();if(i==="script"&&!u.options.allowScripts)return null;var o,l,c=u.h(i,function(m){var j=m&&m.length;if(!j)return null;for(var M={},O=0;O<j;O++){var d=m[O],C=d.name,T=d.value;C.substring(0,2)==="on"&&u.options.allowEvents&&(T=new Function(T)),M[C]=T}return M}(r.attributes),(l=(o=r.childNodes)&&Array.prototype.map.call(o,u).filter(ir))&&l.length?l:null);return u.visitor&&u.visitor(c),c}var V,ir=function(r){return r},lr={};function N(r){var t=(r.type||"").toLowerCase(),n=N.map;n&&n.hasOwnProperty(t)?(r.type=n[t],r.props=Object.keys(r.props||{}).reduce(function(e,a){var i;return e[i=a,i.replace(/-(.)/g,function(o,l){return l.toUpperCase()})]=r.props[a],e},{})):r.type=t.replace(/[^a-z0-9-]/i,"")}const ur=function(r){function t(){r.apply(this,arguments)}return r&&(t.__proto__=r),(t.prototype=Object.create(r&&r.prototype)).constructor=t,t.setReviver=function(n){V=n},t.prototype.shouldComponentUpdate=function(n){var e=this.props;return n.wrap!==e.wrap||n.type!==e.type||n.markup!==e.markup},t.prototype.setComponents=function(n){if(this.map={},n){for(var e in n)if(n.hasOwnProperty(e)){var a=e.replace(/([A-Z]+)([A-Z][a-z0-9])|([a-z0-9]+)([A-Z])/g,"$1$3-$2$4").toLowerCase();this.map[a]=n[e]}}},t.prototype.render=function(n){var e=n.wrap;e===void 0&&(e=!0);var a,i=n.type,o=n.markup,l=n.components,c=n.reviver,m=n.onError,j=n["allow-scripts"],M=n["allow-events"],O=n.trim,d=function(h,_){var z={};for(var w in h)Object.prototype.hasOwnProperty.call(h,w)&&_.indexOf(w)===-1&&(z[w]=h[w]);return z}(n,["wrap","type","markup","components","reviver","onError","allow-scripts","allow-events","trim"]),C=c||this.reviver||this.constructor.prototype.reviver||V||p;this.setComponents(l);var T={allowScripts:j,allowEvents:M,trim:O};try{a=function(h,_,z,w,tr){var x=function(P,$){var v,A,I,H,nr=$==="html"?"text/html":"application/xml";$==="html"?(H="body",I=`<!DOCTYPE html>
|
|
2
|
+
<html><body>`+P+"</body></html>"):(H="xml",I=`<?xml version="1.0" encoding="UTF-8"?>
|
|
3
|
+
<xml>`+P+"</xml>");try{v=new DOMParser().parseFromString(I,nr)}catch(b){A=b}if(v||$!=="html"||((v=R||(R=function(){if(document.implementation&&document.implementation.createHTMLDocument)return document.implementation.createHTMLDocument("");var b=document.createElement("iframe");return b.style.cssText="position:absolute; left:0; top:-999em; width:1px; height:1px; overflow:hidden;",b.setAttribute("sandbox","allow-forms"),document.body.appendChild(b),b.contentWindow.document}())).open(),v.write(I),v.close()),v){var W=v.getElementsByTagName(H)[0],f=W.firstChild;return P&&!f&&(W.error="Document parse failed."),f&&String(f.nodeName).toLowerCase()==="parsererror"&&(f.removeChild(f.firstChild),f.removeChild(f.lastChild),W.error=f.textContent||f.nodeValue||A||"Unknown error",W.removeChild(f)),W}}(h,_);if(x&&x.error)throw new Error(x.error);var Z=x&&x.body||x;N.map=w||lr;var F=Z&&function(P,$,v,A){return u.visitor=$,u.h=v,u.options=A||ar,u(P)}(Z,N,z,tr);return N.map=null,F&&F.props&&F.props.children||null}(o,i,C,this.map,T)}catch(h){m?m({error:h}):typeof console<"u"&&console.error&&console.error("preact-markup: "+h)}if(e===!1)return a||null;var U=d.hasOwnProperty("className")?"className":"class",g=d[U];return g?g.splice?g.splice(0,0,"markup"):typeof g=="string"?d[U]+=" markup":typeof g=="object"&&(g.markup=!0):d[U]="markup",C("div",d,a||null)},t}(er);var y=or({intl:{}});function Y(r){return r!=null}function L(r,t){for(var n in t)r[n]=t[n];return r}function q(r,t){var n=L({},r);for(var e in t)t.hasOwnProperty(e)&&(r[e]&&t[e]&&typeof r[e]=="object"&&typeof t[e]=="object"?n[e]=q(r[e],t[e]):n[e]=r[e]||t[e]);return n}function pr(r){if(r=r||{},typeof r=="string"&&(r=r.split(",")),"join"in r){for(var t={},n=0;n<r.length;n++){var e=r[n].trim();e&&(t[e.split(".").pop()]=e)}return t}return r}function cr(r,t){var n={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&t.indexOf(e)===-1&&(n[e]=r[e]);return n}var sr=/[?&#]intl=show/;function J(r){var t=r.scope,n=r.mark,e=r.definition,a=cr(r,["scope","mark","definition"]),i=a,o=k(y),l=o.intl,c=L({},l||{});return t&&(c.scope=t),e&&(c.dictionary=q(c.dictionary||{},e)),(n||typeof location<"u"&&String(location).match(sr))&&(c.mark=!0),p(y.Provider,{value:{intl:c}},i.children)}function s(r,t){if(arguments.length<2)return t=r,function(e){return s(e,t)};function n(e){return p(J,t||{},p(r,e))}return n.getWrappedComponent=r&&r.getWrappedComponent||function(){return r},n}var fr={};function K(r,t,n,e){return r&&r.replace(/\{\{([\w.-]+)\}\}/g,vr.bind(null,t||fr,n,e))}function vr(r,t,n,e,a){for(var i=a.split("."),o=r,l=0;l<i.length;l++){if(o=o[i[l]],o==null)return"";if(o&&o.type===D)return E(o.props.id,t,n,o.props.fields,o.props.plural,o.props.fallback)}return typeof o=="string"&&o.match(/\{\{/)&&(o=K(o,r)),o}function E(r,t,n,e,a,i){t&&(r=t+"."+r);var o=n&&B(n,r);return(a||a===0)&&o&&typeof o=="object"&&(o.splice?o=o[a]||o[0]:a===0&&Y(o.none||o.zero)?o=o.none||o.zero:a===1&&Y(o.one||o.singular)?o=o.one||o.singular:o=o.some||o.many||o.plural||o.other||o),o&&K(o,e,t,n)||i||null}function Q(r){var t=r.value,n=r.id,e=k(y),a=e.intl;if(a&&a.mark){var i="dictionary"+(a&&a.scope?"."+a.scope:"")+"."+n;return p("mark",{style:{background:t?B(a,i)?"rgba(119,231,117,.5)":"rgba(229,226,41,.5)":"rgba(228,147,51,.5)"},title:n},t)}return t}function D(r){var t=r.id,n=r.children,e=r.plural,a=r.fields,i=k(y),o=i.intl,l=E(t,o&&o.scope,o&&o.dictionary,a,e,n);return p(Q,{id:t,value:l})}function S(r,t,n){var e={};t=t||{},r=pr(r);for(var a in r)if(r.hasOwnProperty(a)&&r[a]){var i=r[a];!n&&typeof i=="string"?e[a]=E(i,t.scope,t.dictionary):i.type===D&&(i=L({fallback:i.props.children},i.props),e[a]=E(i.id,t.scope,t.dictionary,i.fields,i.plural,i.fallback))}return e}function X(r){var t=r.children,n=k(y),e=n.intl;return t&&t.length?t.map(function(a){return G(a,S(a.props,e,!0))}):t&&G(t,S(t.props,e,!0))}function rr(r,t){var n={};for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&t.indexOf(e)===-1&&(n[e]=r[e]);return n}function mr(r){var t=r.id,n=r.fields,e=r.plural,a=r.children,i=rr(r,["id","fields","plural","children"]),o=i;return p(X,null,p(dr,Object.assign({},{html:p(D,{id:t,fields:n,plural:e,children:a}),id:t},o)))}function dr(r){var t=r.html,n=r.id,e=rr(r,["html","id"]),a=e;return p(Q,{id:n,value:t&&(typeof t=="string"?p(ur,Object.assign({},{type:"html",trim:!1},a,{markup:t})):p("span",null,t))})}function hr(r){return function(n){function e(a,i){var o=k(y),l=o.intl,c=typeof r=="function"?r(a,{intl:l}):r,m=S(c,l);return p(n,L(L({},a),m))}return e.getWrappedComponent=n&&n.getWrappedComponent||function(){return n},e}}function yr(r){var t=k(y),n=t.intl;return S(typeof r=="function"?r({intl:n}):r,n)}s.intl=s;s.IntlContext=y;s.IntlProvider=J;s.Text=D;s.MarkupText=mr;s.Localizer=X;s.withText=hr;s.useText=yr;s.translate=E;export{y as IntlContext,J as IntlProvider,X as Localizer,mr as MarkupText,D as Text,s as default,s as intl,E as translate,yr as useText,hr as withText};
|
|
4
|
+
//# sourceMappingURL=i18n.js.map
|
package/i18n.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n.js","sources":["../../../node_modules/dlv/dist/dlv.es.js","../../../node_modules/preact-markup/dist/preact-markup.module.js","../../../node_modules/preact-i18n/dist/preact-i18n.esm.js"],"sourcesContent":["export default function(t,e,l,n,r){for(e=e.split?e.split(\".\"):e,n=0;n<e.length;n++)t=t?t[e[n]]:r;return t===r?l:t}\n//# sourceMappingURL=dlv.es.js.map\n","import{h as r,Component as t}from\"preact\";var e,o={};function n(r,t,e){if(3===r.nodeType){var o=\"textContent\"in r?r.textContent:r.nodeValue||\"\";if(!1!==n.options.trim){var a=0===t||t===e.length-1;if((!(o=o.match(/^[\\s\\n]+$/g)&&\"all\"!==n.options.trim?\" \":o.replace(/(^[\\s\\n]+|[\\s\\n]+$)/g,\"all\"===n.options.trim||a?\"\":\" \"))||\" \"===o)&&e.length>1&&a)return null}return o}if(1!==r.nodeType)return null;var p=String(r.nodeName).toLowerCase();if(\"script\"===p&&!n.options.allowScripts)return null;var l,s,u=n.h(p,function(r){var t=r&&r.length;if(!t)return null;for(var e={},o=0;o<t;o++){var a=r[o],i=a.name,p=a.value;\"on\"===i.substring(0,2)&&n.options.allowEvents&&(p=new Function(p)),e[i]=p}return e}(r.attributes),(s=(l=r.childNodes)&&Array.prototype.map.call(l,n).filter(i))&&s.length?s:null);return n.visitor&&n.visitor(u),u}var a,i=function(r){return r},p={};function l(r){var t=(r.type||\"\").toLowerCase(),e=l.map;e&&e.hasOwnProperty(t)?(r.type=e[t],r.props=Object.keys(r.props||{}).reduce(function(t,e){var o;return t[(o=e,o.replace(/-(.)/g,function(r,t){return t.toUpperCase()}))]=r.props[e],t},{})):r.type=t.replace(/[^a-z0-9-]/i,\"\")}export default(function(t){function i(){t.apply(this,arguments)}return t&&(i.__proto__=t),(i.prototype=Object.create(t&&t.prototype)).constructor=i,i.setReviver=function(r){a=r},i.prototype.shouldComponentUpdate=function(r){var t=this.props;return r.wrap!==t.wrap||r.type!==t.type||r.markup!==t.markup},i.prototype.setComponents=function(r){if(this.map={},r)for(var t in r)if(r.hasOwnProperty(t)){var e=t.replace(/([A-Z]+)([A-Z][a-z0-9])|([a-z0-9]+)([A-Z])/g,\"$1$3-$2$4\").toLowerCase();this.map[e]=r[t]}},i.prototype.render=function(t){var i=t.wrap;void 0===i&&(i=!0);var s,u=t.type,c=t.markup,m=t.components,v=t.reviver,f=t.onError,d=t[\"allow-scripts\"],h=t[\"allow-events\"],y=t.trim,w=function(r,t){var e={};for(var o in r)Object.prototype.hasOwnProperty.call(r,o)&&-1===t.indexOf(o)&&(e[o]=r[o]);return e}(t,[\"wrap\",\"type\",\"markup\",\"components\",\"reviver\",\"onError\",\"allow-scripts\",\"allow-events\",\"trim\"]),C=v||this.reviver||this.constructor.prototype.reviver||a||r;this.setComponents(m);var g={allowScripts:d,allowEvents:h,trim:y};try{s=function(r,t,a,i,s){var u=function(r,t){var o,n,a,i,p=\"html\"===t?\"text/html\":\"application/xml\";\"html\"===t?(i=\"body\",a=\"<!DOCTYPE html>\\n<html><body>\"+r+\"</body></html>\"):(i=\"xml\",a='<?xml version=\"1.0\" encoding=\"UTF-8\"?>\\n<xml>'+r+\"</xml>\");try{o=(new DOMParser).parseFromString(a,p)}catch(r){n=r}if(o||\"html\"!==t||((o=e||(e=function(){if(document.implementation&&document.implementation.createHTMLDocument)return document.implementation.createHTMLDocument(\"\");var r=document.createElement(\"iframe\");return r.style.cssText=\"position:absolute; left:0; top:-999em; width:1px; height:1px; overflow:hidden;\",r.setAttribute(\"sandbox\",\"allow-forms\"),document.body.appendChild(r),r.contentWindow.document}())).open(),o.write(a),o.close()),o){var l=o.getElementsByTagName(i)[0],s=l.firstChild;return r&&!s&&(l.error=\"Document parse failed.\"),s&&\"parsererror\"===String(s.nodeName).toLowerCase()&&(s.removeChild(s.firstChild),s.removeChild(s.lastChild),l.error=s.textContent||s.nodeValue||n||\"Unknown error\",l.removeChild(s)),l}}(r,t);if(u&&u.error)throw new Error(u.error);var c=u&&u.body||u;l.map=i||p;var m=c&&function(r,t,e,a){return n.visitor=t,n.h=e,n.options=a||o,n(r)}(c,l,a,s);return l.map=null,m&&m.props&&m.props.children||null}(c,u,C,this.map,g)}catch(r){f?f({error:r}):\"undefined\"!=typeof console&&console.error&&console.error(\"preact-markup: \"+r)}if(!1===i)return s||null;var x=w.hasOwnProperty(\"className\")?\"className\":\"class\",b=w[x];return b?b.splice?b.splice(0,0,\"markup\"):\"string\"==typeof b?w[x]+=\" markup\":\"object\"==typeof b&&(b.markup=!0):w[x]=\"markup\",C(\"div\",w,s||null)},i}(t));\n//# sourceMappingURL=preact-markup.module.js.map\n","import { createContext, h, cloneElement } from 'preact';\nimport { useContext } from 'preact/hooks';\nimport delve from 'dlv';\nimport Markup from 'preact-markup';\n\nvar IntlContext = createContext({ intl: {} });\n\n/** Check if an object is not null or undefined\n *\t@private\n */\nfunction defined(obj) {\n\treturn obj!==null && obj!==undefined;\n}\n\n\n/** A simpler Object.assign\n * @private\n */\nfunction assign(obj, props) {\n\tfor (var i in props) {\n\t\tobj[i] = props[i];\n\t}\n\treturn obj;\n}\n\n\n/** Recursively copy keys from `source` to `target`, skipping truthy values already in `target`.\n *\t@private\n */\nfunction deepAssign(target, source) {\n\tvar out = assign({}, target);\n\tfor (var i in source) {\n\t\tif (source.hasOwnProperty(i)) {\n\t\t\tif (target[i] && source[i] && typeof target[i]==='object' && typeof source[i]==='object') {\n\t\t\t\tout[i] = deepAssign(target[i], source[i]);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tout[i] = target[i] || source[i];\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/** select('foo,bar') creates a mapping: `{ foo, bar }`\n *\t@private\n */\nfunction select(properties) {\n\tproperties = properties || {};\n\tif (typeof properties==='string') {\n\t\tproperties = properties.split(',');\n\t}\n\tif ('join' in properties) {\n\t\tvar selected = {};\n\t\tfor (var i=0; i<properties.length; i++) {\n\t\t\tvar val = properties[i].trim();\n\t\t\tif (val) { selected[val.split('.').pop()] = val; }\n\t\t}\n\t\treturn selected;\n\t}\n\treturn properties;\n}\n\nfunction objectWithoutProperties (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\n\nvar URL_FLAG = /[?&#]intl=show/;\n\n\n/** `<IntlProvider>` is a nestable internationalization definition provider.\n *\tIt exposes an Intl scope & definition into the tree,\n *\tmaking them available to descendant components.\n *\n *\t> **Note:** When nested, gives precedence to keys higher up the tree!\n *\t> This means lower-level components can set their defaults by wrapping themselves\n *\t> in an `<IntlProvider>`, but still remain localizable by their parent components.\n *\n *\t@name IntlProvider\n *\t@param props\n *\t@param {String} [props.scope]\t\t\tNest `definition` under a root key, and set the active scope for the tree (essentially prefixing all `<Text />` keys).\n *\t@param {Boolean} [props.mark=false]\t\tIf `true`, all `<Text>` elements will be shown with a red/green background indicating whether they have valid Intl keys.\n *\t@param {Object} [props.definition={}]\tMerge the given definition into the current intl definition, giving the *current* definition precedence (i.e., only adding keys, acting as defaults)\n *\n *\t@example\n *\t// generally imported from a JSON file:\n *\tlet definition = {\n *\t\tfoo: 'Le Feux'\n *\t};\n *\n *\t<IntlProvider scope=\"weather\" definition={definition}>\n *\t\t<Text key=\"foo\">The Foo</Text>\n *\t</IntlProvider>\n *\n *\t// This will render the text:\n *\t\"Le Feux\"\n */\n\nfunction IntlProvider(ref) {\n\tvar scope = ref.scope;\n\tvar mark = ref.mark;\n\tvar definition = ref.definition;\n\tvar rest = objectWithoutProperties( ref, [\"scope\", \"mark\", \"definition\"] );\n\tvar props = rest;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar parentIntl = ref$1.intl;\n\tvar intl = assign({}, parentIntl || {});\n\n\t// set active scope for the tree if given\n\tif (scope) { intl.scope = scope; }\n\n\t// merge definition into current with lower precedence\n\tif (definition) {\n\t\tintl.dictionary = deepAssign(intl.dictionary || {}, definition);\n\t}\n\n\tif (mark || (typeof location!=='undefined' && String(location).match(URL_FLAG))) {\n\t\tintl.mark = true;\n\t}\n\n\treturn (\n\t\th( IntlContext.Provider, { value: { intl: intl } },\n\t\t\tprops.children\n\t\t)\n\t);\n}\n\n/**\n * Higher-order function that creates an `<IntlProvider />` wrapper component for the given component. It\n * takes two forms depending on how many arguments it's given:\n * It can take a functional form like:\n * intl(ComponentToWrap, options)\n *\n * or it can take an annotation form like:\n * @intl(options)\n * class ComponentToWrap extends Component {}\n *\n *\t@param {Component or Object} args[0] If there are two arguments, the first argument is the Component to wrap in `<IntlProvider/>`. If there is just one argument, this is the options object to pass as `props` to `<IntlProvider/>`. See the definition of the options param below for details.\n *\t@param {Object} options If there are two arguments, the second argument is Passed as `props` to `<IntlProvider />`\n *\t@param [options.scope]\t\t\tNest `definition` under a root key, and set the active scope for the tree (essentially prefixing all `<Text />` keys).\n *\t@param [options.definition={}]\tMerge the given definition into the current intl definition, giving the *current* definition precedence (i.e., only adding keys, acting as defaults)\n */\nfunction intl(Child, options) {\n\tif (arguments.length<2) {\n\t\toptions = Child;\n\t\treturn function (Child) { return intl(Child, options); };\n\t}\n\tfunction IntlProviderWrapper(props) {\n\t\treturn h(\n\t\t\tIntlProvider,\n\t\t\toptions || {},\n\t\t\th(Child, props)\n\t\t);\n\t}\n\n\tIntlProviderWrapper.getWrappedComponent = Child && Child.getWrappedComponent || (function () { return Child; });\n\treturn IntlProviderWrapper;\n}\n\nvar EMPTY = {};\n\n/** Populate {{template.fields}} within a given string.\n *\n *\t@private\n *\t@param {String} template\tThe string containing fields to be resolved\n *\t@param {Object} [fields={}]\tOptionally nested object of fields, referencable from `template`.\n *\t@example\n *\t\ttemplate('foo{{bar}}', { bar:'baz' }) === 'foobaz'\n */\nfunction template(template, fields, scope, dictionary) {\n\treturn template && template.replace(/\\{\\{([\\w.-]+)\\}\\}/g, replacer.bind(null, fields || EMPTY, scope, dictionary));\n}\n\n/** Replacement callback for injecting fields into a String\n *\t@private\n */\nfunction replacer(currentFields, scope, dictionary, s, field) {\n\tvar parts = field.split('.'),\n\t\tv = currentFields;\n\tfor (var i=0; i<parts.length; i++) {\n\t\tv = v[parts[i]];\n\t\tif (v == null) { return ''; } // eslint-disable-line eqeqeq\n\n\t\t//allow field values to be <Text /> nodes\n\t\tif (v && v.type === Text) {\n\t\t\treturn translate(v.props.id, scope, dictionary, v.props.fields, v.props.plural, v.props.fallback);\n\t\t}\n\t}\n\t// allow for recursive {{config.xx}} references:\n\tif (typeof v==='string' && v.match(/\\{\\{/)) {\n\t\tv = template(v, currentFields);\n\t}\n\treturn v;\n}\n\n/** Attempts to look up a translated value from a given dictionary.\n * Also supports json templating using the format: {{variable}}\n * Falls back to default text.\n *\n * @param {String} id \t\t\tIntl field name/id (subject to scope)\n * @param {String} [scope='']\t\tScope, which prefixes `id` with `${scope}.`\n * @param {Object} dictionary\t\tA nested object containing translations\n * @param {Object} [fields={}]\t\tTemplate fields for use by translated strings\n * @param {Number} [plural]\t\tIndicates a quantity, used to trigger pluralization\n * @param {String|Array} [fallback]\tText to return if no translation is found\n * @returns {String} translated\n */\nfunction translate(id, scope, dictionary, fields, plural, fallback) {\n\tif (scope) { id = scope + '.' + id; }\n\n\tvar value = dictionary && delve(dictionary, id);\n\n\t// plural forms:\n\t// key: ['plural', 'singular']\n\t// key: { none, one, many }\n\t// key: { zero, one, other }\n\t// key: { singular, plural }\n\tif ((plural || plural===0) && value && typeof value==='object') {\n\t\tif (value.splice) {\n\t\t\tvalue = value[plural] || value[0];\n\t\t}\n\t\telse if (plural===0 && defined(value.none || value.zero)) {\n\t\t\tvalue = value.none || value.zero;\n\t\t}\n\t\telse if (plural===1 && defined(value.one || value.singular)) {\n\t\t\tvalue = value.one || value.singular;\n\t\t}\n\t\telse {\n\t\t\tvalue = value.some || value.many || value.plural || value.other || value;\n\t\t}\n\t}\n\n\treturn value && template(value, fields, scope, dictionary) || fallback || null;\n}\n\n/** Highlight/colorize the i18n'd node if `mark` is set on `intl` in context. If not, just returns `value`\n *\n *\t@private\n *\t@param {String|VNode} value\tThe l10n'd text/vnode to highlight or pass through\n *\t@param {string} id\tThe key used to lookup the value in the intl dictionary\n */\nfunction HighlightI18N(ref) {\n\tvar value = ref.value;\n\tvar id = ref.id;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar intl = ref$1.intl;\n\n\tif (intl && intl.mark) {\n\t\tvar dictionaryKey = \"dictionary\" + (intl && intl.scope ? (\".\" + (intl.scope)) : '') + \".\" + id;\n\t\treturn (\n\t\t\th( 'mark', {\n\t\t\t\tstyle: {\n\t\t\t\t\tbackground: value\n\t\t\t\t\t\t? delve(intl, dictionaryKey)\n\t\t\t\t\t\t\t? 'rgba(119,231,117,.5)'\n\t\t\t\t\t\t\t: 'rgba(229,226,41,.5)'\n\t\t\t\t\t\t: 'rgba(228,147,51,.5)'\n\t\t\t\t}, title: id },\n\t\t\t\tvalue\n\t\t\t)\n\t\t);\n\t}\n\n\treturn value;\n}\n\n/** `<Text>` renders internationalized text.\n *\tIt attempts to look up translated values from a dictionary in context.\n *\n *\tTemplate strings can contain `{{field}}` placeholders,\n *\twhich injects values from the `fields` prop.\n *\n *\tWhen string lookup fails, renders its children as fallback text.\n *\n *\t@param {Object} props props\n *\t@param {String} props.id Key to look up in intl dictionary, within any parent scopes (`$scope1.$scope2.$id`)\n *\t@param {ReactElement} [props.children] Fallback text if no definition is found\n *\t@param {Object} [props.fields={}] Values to inject into template `{{fields}}`. Values in the `fields` object will be coerced to strings, with the exception of `<Text/>` nodes which will be resolved to their translated value\n *\t@param {Number} [props.plural] Integer \"count\", used to select plural forms\n *\n *\t@example\n *\t// If there is no dictionary in context..\n *\t<Text id=\"foo\">The Foo</Text>\n *\t// ..produces the text:\n *\t\"The Foo\"\n *\n *\t@example\n *\t// Given a dictionary and some fields..\n *\t<IntlProvider definition={{ foo:'Le Feux {{bar}}' }}>\n *\t\t<Text id=\"foo\" fields={{ bar: 'BEAR' }}>The Foo</Text>\n *\t</IntlProvider>\n *\t// ..produces the text:\n *\t\"Le Feux BEAR\"\n *\n *\t@example\n *\t// Within a scope, both `id` and the definition are namespaced..\n *\t<IntlProvider scope=\"weather\" definition={{ foo:'Le Feux' }}>\n *\t\t<Text id=\"foo\">The Foo</Text>\n *\t</IntlProvider>\n *\t// ..produces the text:\n *\t\"Le Feux\"\n */\nfunction Text(ref) {\n\tvar id = ref.id;\n\tvar fallback = ref.children;\n\tvar plural = ref.plural;\n\tvar fields = ref.fields;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar intl = ref$1.intl;\n\n\tvar value = translate(\n\t\tid,\n\t\tintl && intl.scope,\n\t\tintl && intl.dictionary,\n\t\tfields,\n\t\tplural,\n\t\tfallback\n\t);\n\n\treturn h( HighlightI18N, { id: id, value: value });\n}\n\n/** Translates the property values in an Object, returning a copy.\n *\t**Note:** By default, `String` keys will be treated as Intl ID's.\n *\tPass `true` to return an Object containing *only* translated\n *\tvalues where the prop is a <Text /> node.\n *\n *\t@private\n *\t@param {Object} props\tAn object with values to translate\n *\t@param {Object} intl\tAn intl context object (eg: `context.intl`)\n *\t@param {Boolean} [onlyTextNodes=false]\tOnly process `<Text />` values\n *\t@returns {Object} translatedProps\n */\nfunction translateMapping(props, intl, onlyTextNodes) {\n\tvar out = {};\n\tintl = intl || {};\n\tprops = select(props);\n\tfor (var name in props) {\n\t\tif (props.hasOwnProperty(name) && props[name]) {\n\t\t\tvar def = props[name];\n\n\t\t\t// if onlyTextNodes=true, skip any props that aren't <Text /> vnodes\n\t\t\tif (!onlyTextNodes && typeof def==='string') {\n\t\t\t\tout[name] = translate(def, intl.scope, intl.dictionary);\n\t\t\t}\n\t\t\telse if (def.type===Text) {\n\t\t\t\t// it's a <Text />, just grab its props:\n\t\t\t\tdef = assign({\n\t\t\t\t\t// use children as fallback content\n\t\t\t\t\tfallback: def.props.children\n\t\t\t\t}, def.props);\n\t\t\t\tout[name] = translate(def.id, intl.scope, intl.dictionary, def.fields, def.plural, def.fallback);\n\t\t\t}\n\t\t}\n\t}\n\treturn out;\n}\n\n/** `<Localizer />` is a Compositional Component.\n *\tIt \"renders\" out any `<Text />` values in its child's props.\n *\n *\t@name Localizer\n *\t@param {Object} props\n *\t@param {Object} props.children\tChild components with props to localize.\n *\t@param {Object} context\n *\t@param {Object} context.intl\t\t[internal] dictionary and scope info\n *\t@example\n *\t<Localizer>\n *\t\t<input placeholder={<Text id=\"username.placeholder\" />} />\n *\t</Localizer>\n *\t// produces:\n *\t<input placeholder=\"foo\" />\n *\n *\t@example\n *\t<Localizer>\n *\t\t<abbr title={<Text id=\"oss-title\">Open Source Software</Text>}>\n *\t\t\t<Text id=\"oss\">OSS</Text>\n *\t\t</abbr>\n *\t</Localizer>\n *\t// produces:\n *\t<abbr title=\"Open Source Software\">OSS</abbr>\n */\nfunction Localizer(ref) {\n\tvar children = ref.children;\n\n\tvar ref$1 = useContext(IntlContext);\n\tvar intl = ref$1.intl;\n\n\treturn children && children.length\n\t\t? children.map(function (child) { return cloneElement(child, translateMapping(child.props, intl, true)); })\n\t\t: children && cloneElement(children, translateMapping(children.props, intl, true));\n}\n\nfunction objectWithoutProperties$1 (obj, exclude) { var target = {}; for (var k in obj) if (Object.prototype.hasOwnProperty.call(obj, k) && exclude.indexOf(k) === -1) target[k] = obj[k]; return target; }\n\n/* eslint-disable react/no-danger */\n\n/** `<MarkupText>` is just like {@link Text} but it can also contain html markup in rendered strings. It wraps its contents in a `<span>` tag.\n *\n *\t@param {Object} props\t\t\t\tprops\n *\t@param {String} props.id\t\t\tKey to look up in intl dictionary, within any parent scopes (`$scope1.$scope2.$id`)\n *\t@param {Object} [props.fields={}]\tValues to inject into template `{{fields}}`. Values in the `fields` object will be coerced to strings, with the exception of `<Text/>` nodes which will be resolved to their translated value\n *\t@param {Number} [props.plural]\t\tInteger \"count\", used to select plural forms\n *\n *\t@example\n *\t// If there is no dictionary in context..\n *\t<MarkupText id=\"foo\"><b>The Foo</b></MarkupText>\n *\t// ..produces the vnode:\n *\t<span><b>The Foo</b></span>\n *\n *\t@example\n *\t// Given a dictionary and some fields..\n *\t<IntlProvider definition={{ foo:'Le Feux <b>{{bar}}</b>' }}>\n *\t\t<MarkupText id=\"foo\" fields={{ bar: 'BEAR' }}>The Foo</MarkupText>\n *\t</IntlProvider>\n *\t// ..produces the vnode:\n *\t<span>Le Feux <b>BEAR</b></span>\n *\n *\t@example\n *\t// Within a scope, both `id` and the definition are namespaced..\n *\t<IntlProvider scope=\"weather\" definition={{ foo:'Le <a href=\"http://foo.com\">Feux</a>' }}>\n *\t\t<MarkupText id=\"foo\">The Foo</MarkupText>\n *\t</IntlProvider>\n *\t// ..produces the vnode:\n *\t<span>Le <a href=\"http://foo.com\">Feux</a></span>\n *\n *\t@example\n *\t// renders nothing if there is no key match and no fallback\n *\t<div><MarkupText /></div>\n *\t// ..produces the vnode:\n *\t<div/>\n */\nfunction MarkupText(ref) {\n\tvar id = ref.id;\n\tvar fields = ref.fields;\n\tvar plural = ref.plural;\n\tvar children = ref.children;\n\tvar rest = objectWithoutProperties$1( ref, [\"id\", \"fields\", \"plural\", \"children\"] );\n\tvar props = rest;\n\n\treturn (\n\t\th( Localizer, null,\n\t\t\th( Html, Object.assign({}, { html: h( Text, { id: id, fields: fields, plural: plural, children: children }), id: id }, props))\n\t\t)\n\t);\n}\n\nfunction Html(ref) {\n\tvar html = ref.html;\n\tvar id = ref.id;\n\tvar rest = objectWithoutProperties$1( ref, [\"html\", \"id\"] );\n\tvar props = rest;\n\n\treturn (\n\t\th( HighlightI18N, {\n\t\t\tid: id, value: !html ? html : typeof html === 'string' ? h( Markup, Object.assign({}, { type: \"html\", trim: false }, props, { markup: html })) : h( 'span', null, html ) })\n\t);\n}\n\n/** `@withText()` is a Higher Order Component, often used as a decorator.\n *\n *\tIt wraps a child component and passes it translations\n *\tbased on a mapping to the dictionary & scope in context.\n *\n *\t@param {Object|Function|String} mapping\t\tMaps prop names to intl keys (or `<Text>` nodes).\n *\n *\t@example @withText({\n *\t\tplaceholder: 'user.placeholder'\n *\t})\n *\tclass Foo {\n *\t\t// now the `placeholder` prop is our localized String:\n *\t\trender({ placeholder }) {\n *\t\t\treturn <input placeholder={placeholder} />\n *\t\t}\n *\t}\n *\n *\t@example @withText({\n *\t\tplaceholder: <Text id=\"user.placeholder\">fallback text</Text>\n *\t})\n *\tclass Foo {\n *\t\trender({ placeholder }) {\n *\t\t\treturn <input placeholder={placeholder} />\n *\t\t}\n *\t}\n *\n *\t@example @withText('user.placeholder')\n *\tclass Foo {\n *\t\t// for Strings/Arrays, the last path segment becomes the prop name:\n *\t\trender({ placeholder }) {\n *\t\t\treturn <input placeholder={placeholder} />\n *\t\t}\n *\t}\n *\n *\t@example <caption>Works with functional components, too</caption>\n *\tconst Foo = withText('user.placeholder')( props =>\n *\t\t<input placeholder={props.placeholder} />\n *\t)\n *\n * \t@example <caption>getWrappedComponent() returns wrapped child Component</caption>\n *\tconst Foo = () => <div/>;\n *\tconst WrappedFoo = withText('user.placeholer')(Foo);\n *\tWrappedFoo.getWrappedComponent() === Foo; // true\n */\nfunction withText(mapping) {\n\treturn function withTextWrapper(Child) {\n\t\tfunction WithTextWrapper(props, context) {\n\t\t\tvar ref = useContext(IntlContext);\n\t\t\tvar intl = ref.intl;\n\n\t\t\tvar map = typeof mapping==='function' ? mapping(props, { intl: intl }) : mapping;\n\t\t\tvar translations = translateMapping(map, intl);\n\t\t\treturn h(Child, assign(assign({}, props), translations));\n\t\t}\n\n\t\tWithTextWrapper.getWrappedComponent = Child && Child.getWrappedComponent || (function () { return Child; });\n\t\treturn WithTextWrapper;\n\t};\n}\n\n/** `useText` is the hook version of {@link withText}\n *\n *\t@param {Object|Function|String} mapping\t\tMaps prop names to intl keys (or `<Text>` nodes).\n *\n *\t@example function MyComponent() {\n *\t\tconst { placeholder } = useText({\n *\t\t\tplaceholder: 'user.placeholder'\n *\t\t});\n *\t\treturn <input placeholder={placeholder} />\n *\t}\n *\n *\t@example function MyComponent() {\n *\t\tconst { placeholder } = useText({\n *\t\t\tplaceholder: <Text id=\"user.placeholder\">fallback text</Text>\n *\t\t});\n *\t\treturn <input placeholder={placeholder} />\n *\t}\n *\n *\t@example function MyComponent() {\n *\t\t// for Strings/Arrays, the last path segment becomes the prop name:\n *\t\tconst { placeholder } = useText('user.placeholder');\n *\n *\t\treturn <input placeholder={placeholder} />\n *\t}\n */\nfunction useText(mapping) {\n\tvar ref = useContext(IntlContext);\n\tvar intl = ref.intl;\n\n\treturn translateMapping(\n\t\ttypeof mapping==='function' ? mapping({ intl: intl }) : mapping,\n\t\tintl\n\t);\n}\n\nintl.intl = intl;\nintl.IntlContext = IntlContext;\nintl.IntlProvider = IntlProvider;\nintl.Text = Text;\nintl.MarkupText = MarkupText;\nintl.Localizer = Localizer;\nintl.withText = withText;\nintl.useText = useText;\nintl.translate = translate;\n\nexport default intl;\nexport { IntlContext, IntlProvider, Localizer, MarkupText, Text, intl, translate, useText, withText };\n//# sourceMappingURL=preact-i18n.esm.js.map\n"],"names":["delve","t","e","l","n","r","o","p","s","u","a","i","Markup","c","m","v","f","d","h","y","w","g","x","b","IntlContext","createContext","defined","obj","assign","props","deepAssign","target","source","out","select","properties","selected","val","objectWithoutProperties","exclude","k","URL_FLAG","IntlProvider","ref","scope","mark","definition","rest","ref$1","useContext","parentIntl","intl","Child","options","IntlProviderWrapper","EMPTY","template","fields","dictionary","replacer","currentFields","field","parts","Text","translate","id","plural","fallback","value","HighlightI18N","dictionaryKey","translateMapping","onlyTextNodes","name","def","Localizer","children","child","cloneElement","objectWithoutProperties$1","MarkupText","Html","html","withText","mapping","WithTextWrapper","context","map","translations","useText"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|