@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.
Files changed (178) hide show
  1. package/chunks/icons/Add.js +2 -0
  2. package/chunks/icons/Add.js.map +1 -0
  3. package/chunks/icons/Bulk.js +2 -0
  4. package/chunks/icons/Bulk.js.map +1 -0
  5. package/chunks/icons/Burger.js +2 -0
  6. package/chunks/icons/Burger.js.map +1 -0
  7. package/chunks/icons/Card.js +2 -0
  8. package/chunks/icons/Card.js.map +1 -0
  9. package/chunks/icons/Cart.js +2 -0
  10. package/chunks/icons/Cart.js.map +1 -0
  11. package/chunks/icons/Check.js +2 -0
  12. package/chunks/icons/Check.js.map +1 -0
  13. package/chunks/icons/CheckWithCircle.js +2 -0
  14. package/chunks/icons/CheckWithCircle.js.map +1 -0
  15. package/chunks/icons/ChevronDown.js +2 -0
  16. package/chunks/icons/ChevronDown.js.map +1 -0
  17. package/chunks/icons/ChevronRight.js +2 -0
  18. package/chunks/icons/ChevronRight.js.map +1 -0
  19. package/chunks/icons/ChevronUp.js +2 -0
  20. package/chunks/icons/ChevronUp.js.map +1 -0
  21. package/chunks/icons/Close.js +2 -0
  22. package/chunks/icons/Close.js.map +1 -0
  23. package/chunks/icons/Delivery.js +2 -0
  24. package/chunks/icons/Delivery.js.map +1 -0
  25. package/chunks/icons/Heart.js +2 -0
  26. package/chunks/icons/Heart.js.map +1 -0
  27. package/chunks/icons/HeartFilled.js +2 -0
  28. package/chunks/icons/HeartFilled.js.map +1 -0
  29. package/chunks/icons/InfoFilled.js +2 -0
  30. package/chunks/icons/InfoFilled.js.map +1 -0
  31. package/chunks/icons/Locker.js +2 -0
  32. package/chunks/icons/Locker.js.map +1 -0
  33. package/chunks/icons/Minus.js +2 -0
  34. package/chunks/icons/Minus.js.map +1 -0
  35. package/chunks/icons/Order.js +2 -0
  36. package/chunks/icons/Order.js.map +1 -0
  37. package/chunks/icons/OrderError.js +2 -0
  38. package/chunks/icons/OrderError.js.map +1 -0
  39. package/chunks/icons/OrderSuccess.js +2 -0
  40. package/chunks/icons/OrderSuccess.js.map +1 -0
  41. package/chunks/icons/PaymentError.js +2 -0
  42. package/chunks/icons/PaymentError.js.map +1 -0
  43. package/chunks/icons/Placeholder.js +2 -0
  44. package/chunks/icons/Placeholder.js.map +1 -0
  45. package/chunks/icons/PlaceholderFilled.js +2 -0
  46. package/chunks/icons/PlaceholderFilled.js.map +1 -0
  47. package/chunks/icons/Search.js +2 -0
  48. package/chunks/icons/Search.js.map +1 -0
  49. package/chunks/icons/SearchFilled.js +2 -0
  50. package/chunks/icons/SearchFilled.js.map +1 -0
  51. package/chunks/icons/Sort.js +2 -0
  52. package/chunks/icons/Sort.js.map +1 -0
  53. package/chunks/icons/Star.js +2 -0
  54. package/chunks/icons/Star.js.map +1 -0
  55. package/chunks/icons/Trash.js +2 -0
  56. package/chunks/icons/Trash.js.map +1 -0
  57. package/chunks/icons/User.js +2 -0
  58. package/chunks/icons/User.js.map +1 -0
  59. package/chunks/icons/View.js +2 -0
  60. package/chunks/icons/View.js.map +1 -0
  61. package/chunks/icons/Wallet.js +2 -0
  62. package/chunks/icons/Wallet.js.map +1 -0
  63. package/chunks/icons/Warning.js +2 -0
  64. package/chunks/icons/Warning.js.map +1 -0
  65. package/chunks/icons/WarningFilled.js +2 -0
  66. package/chunks/icons/WarningFilled.js.map +1 -0
  67. package/chunks/icons/WarningWithCircle.js +2 -0
  68. package/chunks/icons/WarningWithCircle.js.map +1 -0
  69. package/chunks/image-params-keymap.js +2 -0
  70. package/chunks/image-params-keymap.js.map +1 -0
  71. package/chunks/initializer.js +4 -0
  72. package/chunks/initializer.js.map +1 -0
  73. package/chunks/vcomponent.js +3 -0
  74. package/chunks/vcomponent.js.map +1 -0
  75. package/components.js +2 -0
  76. package/components.js.map +1 -0
  77. package/event-bus.js.map +1 -1
  78. package/fetch-graphql.js.map +1 -1
  79. package/i18n.js +4 -0
  80. package/i18n.js.map +1 -0
  81. package/initializer.js +3 -4
  82. package/initializer.js.map +1 -1
  83. package/lib.js +12 -0
  84. package/lib.js.map +1 -0
  85. package/package.json +1 -1
  86. package/preact-compat.js +1 -1
  87. package/preact-compat.js.map +1 -1
  88. package/preact-hooks.js +1 -1
  89. package/preact-hooks.js.map +1 -1
  90. package/preact-jsx-runtime.js +1 -1
  91. package/preact-jsx-runtime.js.map +1 -1
  92. package/preact.js +1 -1
  93. package/preact.js.map +1 -1
  94. package/chunks/Add__CiEO_sX7HP.js +0 -2
  95. package/chunks/Add__CiEO_sX7HP.js.map +0 -1
  96. package/chunks/Bulk__jqrVxjXdJm.js +0 -2
  97. package/chunks/Bulk__jqrVxjXdJm.js.map +0 -1
  98. package/chunks/Burger__GYqlod8RZB.js +0 -2
  99. package/chunks/Burger__GYqlod8RZB.js.map +0 -1
  100. package/chunks/Card__DIzTAV64lz.js +0 -2
  101. package/chunks/Card__DIzTAV64lz.js.map +0 -1
  102. package/chunks/Cart__DRuAcF9J-5.js +0 -2
  103. package/chunks/Cart__DRuAcF9J-5.js.map +0 -1
  104. package/chunks/CheckWithCircle__D4l-TfZdbK.js +0 -2
  105. package/chunks/CheckWithCircle__D4l-TfZdbK.js.map +0 -1
  106. package/chunks/Check__DlOKHUTGj4.js +0 -2
  107. package/chunks/Check__DlOKHUTGj4.js.map +0 -1
  108. package/chunks/ChevronDown__BQ2yC5Yu4N.js +0 -2
  109. package/chunks/ChevronDown__BQ2yC5Yu4N.js.map +0 -1
  110. package/chunks/ChevronRight__CXhTq2_n_c.js +0 -2
  111. package/chunks/ChevronRight__CXhTq2_n_c.js.map +0 -1
  112. package/chunks/ChevronUp__DKfBFRUuWH.js +0 -2
  113. package/chunks/ChevronUp__DKfBFRUuWH.js.map +0 -1
  114. package/chunks/Close__DQxKl-RcDt.js +0 -2
  115. package/chunks/Close__DQxKl-RcDt.js.map +0 -1
  116. package/chunks/Delivery__a9-T5HVKDK.js +0 -2
  117. package/chunks/Delivery__a9-T5HVKDK.js.map +0 -1
  118. package/chunks/HeartFilled__Dj4aPKvfnx.js +0 -2
  119. package/chunks/HeartFilled__Dj4aPKvfnx.js.map +0 -1
  120. package/chunks/Heart__DFBg3PN_KB.js +0 -2
  121. package/chunks/Heart__DFBg3PN_KB.js.map +0 -1
  122. package/chunks/InfoFilled__CHHYiir40t.js +0 -2
  123. package/chunks/InfoFilled__CHHYiir40t.js.map +0 -1
  124. package/chunks/Locker__DzVLBHHoR_.js +0 -2
  125. package/chunks/Locker__DzVLBHHoR_.js.map +0 -1
  126. package/chunks/Minus__CefO5Dkv_0.js +0 -2
  127. package/chunks/Minus__CefO5Dkv_0.js.map +0 -1
  128. package/chunks/OrderError__XbjKC-sSCd.js +0 -2
  129. package/chunks/OrderError__XbjKC-sSCd.js.map +0 -1
  130. package/chunks/OrderSuccess__DtnleJKX9F.js +0 -2
  131. package/chunks/OrderSuccess__DtnleJKX9F.js.map +0 -1
  132. package/chunks/Order__Z70_F6tdrw.js +0 -2
  133. package/chunks/Order__Z70_F6tdrw.js.map +0 -1
  134. package/chunks/PaymentError__Ds3bFy-kcj.js +0 -2
  135. package/chunks/PaymentError__Ds3bFy-kcj.js.map +0 -1
  136. package/chunks/PlaceholderFilled__FkPyKAGBpP.js +0 -2
  137. package/chunks/PlaceholderFilled__FkPyKAGBpP.js.map +0 -1
  138. package/chunks/Placeholder__CTVN3RA7Z-.js +0 -2
  139. package/chunks/Placeholder__CTVN3RA7Z-.js.map +0 -1
  140. package/chunks/SearchFilled__BaDTuy0_sW.js +0 -2
  141. package/chunks/SearchFilled__BaDTuy0_sW.js.map +0 -1
  142. package/chunks/Search__BWCfAPAUn_.js +0 -2
  143. package/chunks/Search__BWCfAPAUn_.js.map +0 -1
  144. package/chunks/Sort__CuKl1kIenH.js +0 -2
  145. package/chunks/Sort__CuKl1kIenH.js.map +0 -1
  146. package/chunks/Star__Cy2oOHG-EW.js +0 -2
  147. package/chunks/Star__Cy2oOHG-EW.js.map +0 -1
  148. package/chunks/Trash__BVZwxilyNs.js +0 -2
  149. package/chunks/Trash__BVZwxilyNs.js.map +0 -1
  150. package/chunks/User__DJozoccuIX.js +0 -2
  151. package/chunks/User__DJozoccuIX.js.map +0 -1
  152. package/chunks/View__BWHjsBwNDO.js +0 -2
  153. package/chunks/View__BWHjsBwNDO.js.map +0 -1
  154. package/chunks/Wallet__CFGqcZl49Z.js +0 -2
  155. package/chunks/Wallet__CFGqcZl49Z.js.map +0 -1
  156. package/chunks/WarningFilled__DpNvLtGflO.js +0 -2
  157. package/chunks/WarningFilled__DpNvLtGflO.js.map +0 -1
  158. package/chunks/WarningWithCircle__z1B4rFgzNa.js +0 -2
  159. package/chunks/WarningWithCircle__z1B4rFgzNa.js.map +0 -1
  160. package/chunks/Warning__cRnOb-Q7RP.js +0 -2
  161. package/chunks/Warning__cRnOb-Q7RP.js.map +0 -1
  162. package/chunks/classes__DJBjVfEyCI.js +0 -2
  163. package/chunks/classes__DJBjVfEyCI.js.map +0 -1
  164. package/chunks/image-params-keymap__DLgj2E8cak.js +0 -15
  165. package/chunks/image-params-keymap__DLgj2E8cak.js.map +0 -1
  166. package/chunks/preload-helper__uemlvruIqb.js +0 -2
  167. package/chunks/preload-helper__uemlvruIqb.js.map +0 -1
  168. package/components/Icon.js +0 -2
  169. package/components/Icon.js.map +0 -1
  170. package/components/UIProvider.js +0 -2
  171. package/components/UIProvider.js.map +0 -1
  172. package/types.d.ts +0 -242
  173. package/typing/elsie/src/lib/initializer.d.ts +0 -84
  174. package/typing/elsie/src/lib/initializer.d.ts.map +0 -1
  175. package/typing/event-bus/src/index.d.ts +0 -51
  176. package/typing/event-bus/src/index.d.ts.map +0 -1
  177. package/typing/fetch-graphql/src/index.d.ts +0 -105
  178. 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 &nbsp;\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 &nbsp;\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 &nbsp;\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 &nbsp;\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 &nbsp;\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 &nbsp;\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\n/**\n * `events` is a class that provides static methods for event handling.\n *\n * @class\n * @extends {Events}\n *\n * @property {Function} on - Subscribes to an event. Accepts an event name, a handler function, and an optional options object.\n * @property {Function} emit - Emits an event. Accepts an event name and a payload.\n * @property {Function} enableLogger - Enables or disables logging of events. Accepts a boolean.\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 * Subscribes to an event.\n *\n * @param {string} event - The name of the event to subscribe to.\n * @param {Function} handler - The function to call when the event is emitted.\n * @param {Object} [options] - An optional object with additional options.\n * @param {boolean} [options.eager] - If true, the handler will be called immediately with the last emitted event.\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 * Emits an event.\n *\n * @param {string} event - The name of the event to emit.\n * @param {*} payload - The data to send with the event.\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 * Enables or disables logging of events.\n *\n * @param {boolean} enabled - If true, events will be logged to the console.\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 // 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,EAYzC,MAAMC,CAAO,CAclB,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,CAOA,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,CAMA,OAAOK,aAAaC,EAAkB,CA3FxC,IAAAC,EA4FQ,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,EAGMhB,OAAAA,iBAAiB,eAAgB,IAAM,CAjHlD,IAAAW,GAkHMA,EAAA,KAAKC,UAAL,MAAAD,EAAcP,OAAM,CACrB,GACH,CACF,CAxGEa,EADW5B,EACJa,cAAclB,GAErBiC,EAHW5B,EAGJuB,UAAmC,MAE1CK,EALW5B,EAKJS,aAAkD,CAAA"}
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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-graphql.js","sources":["../../fetch-graphql/src/index.ts"],"sourcesContent":["/**\n * @typedef {Object} Header\n * @property {string|null} key - The header name and value.\n */\nexport type Header = { [key: string]: string | null };\n\n/**\n * Type representing options for a fetch request.\n * @typedef {Object} FetchOptions\n * @property {'GET'|'POST'} [method] - The HTTP method to use for the request.\n * @property {Object} [variables] - Variables to include in the request.\n * @property {AbortSignal} [signal] - An AbortSignal to cancel the request.\n * @property {'default'|'no-store'|'reload'|'no-cache'|'force-cache'|'only-if-cached'} [cache] - The cache mode to use for the request.\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\n/**\n * Represents an array of error objects that might be returned from a fetch query.\n * Each error object contains a message and extensions with a category.\n *\n * @typedef {Object} FetchQueryError\n * @property {string} message - The error message.\n * @property {Object} extensions - Additional error information.\n * @property {string} extensions.category - The category of the error.\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\n/**\n * `FetchGraphQL` is a class that extends `FetchGraphQLMesh`. It provides methods to get the GraphQL endpoint and headers.\n *\n * @property {string} endpoint - Gets the GraphQL endpoint. If `_endpoint` is not defined, it will return the `mesh.endpoint`.\n * @property {Object} fetchGraphQlHeaders - Gets the GraphQL headers. If `_endpoint` is defined, it will return `_fetchGraphQlHeaders`.\n * Otherwise, it will return a combination of `_fetchGraphQlHeaders` and `mesh.fetchGraphQlHeaders`.\n * If neither is defined, it will return an empty object.\n *\n * @extends 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/**\n * Exports several methods from the `mesh` object.\n *\n * @property {Function} setEndpoint - Sets the GraphQL endpoint. Accepts a string as parameter.\n * @property {Function} setFetchGraphQlHeaders - Sets the GraphQL headers. Accepts an object of headers as parameter.\n * @property {Function} setFetchGraphQlHeader - Sets a specific GraphQL header. Accepts a key-value pair as parameters.\n * @property {Function} removeFetchGraphQlHeader - Removes a specific GraphQL header. Accepts the key of the header as parameter.\n * @property {Function} fetchGraphQl - Fetches GraphQL data. Accepts a query string and an optional options object as parameters. Returns a promise that resolves with the fetched data.\n * @property {Function} getConfig - Gets the configuration. Returns an object with the endpoint and GraphQL headers.\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":"wKAyCA,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,EAYV,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,CAca,KAAA,CACXnC,YAAAA,EACAM,uBAAAA,EACAL,sBAAAA,EACAG,yBAAAA,EACAI,aAAAA,EACAqB,UAAAA,CACF,EAAIG,EAAKF,WAAW"}
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]}