@dropins/tools 0.24.0-alpha2 → 0.24.0-alpha6

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 (182) hide show
  1. package/chunks/initializer.js +1 -1
  2. package/chunks/vcomponent.js.map +1 -1
  3. package/components.d.ts +1 -0
  4. package/components.js.map +1 -1
  5. package/event-bus.d.ts +1 -0
  6. package/event-bus.js.map +1 -1
  7. package/fetch-graphql.d.ts +1 -0
  8. package/i18n.d.ts +1 -0
  9. package/initializer.d.ts +1 -0
  10. package/initializer.js +1 -1
  11. package/lib.d.ts +1 -0
  12. package/lib.js.map +1 -1
  13. package/package.json +1 -1
  14. package/preact-compat.d.ts +1 -0
  15. package/preact-hooks.d.ts +1 -0
  16. package/preact-jsx-runtime.d.ts +1 -0
  17. package/preact.d.ts +1 -0
  18. package/types/elsie/src/components/Accordion/Accordion.d.ts +26 -0
  19. package/types/elsie/src/components/Accordion/Accordion.d.ts.map +1 -0
  20. package/types/elsie/src/components/Accordion/index.d.ts +3 -0
  21. package/types/elsie/src/components/Accordion/index.d.ts.map +1 -0
  22. package/types/elsie/src/components/ActionButton/ActionButton.d.ts +11 -0
  23. package/types/elsie/src/components/ActionButton/ActionButton.d.ts.map +1 -0
  24. package/types/elsie/src/components/ActionButton/index.d.ts +2 -0
  25. package/types/elsie/src/components/ActionButton/index.d.ts.map +1 -0
  26. package/types/elsie/src/components/ActionButtonGroup/ActionButtonGroup.d.ts +20 -0
  27. package/types/elsie/src/components/ActionButtonGroup/ActionButtonGroup.d.ts.map +1 -0
  28. package/types/elsie/src/components/ActionButtonGroup/index.d.ts +2 -0
  29. package/types/elsie/src/components/ActionButtonGroup/index.d.ts.map +1 -0
  30. package/types/elsie/src/components/AlertBanner/AlertBanner.d.ts +15 -0
  31. package/types/elsie/src/components/AlertBanner/AlertBanner.d.ts.map +1 -0
  32. package/types/elsie/src/components/AlertBanner/index.d.ts +3 -0
  33. package/types/elsie/src/components/AlertBanner/index.d.ts.map +1 -0
  34. package/types/elsie/src/components/Breadcrumbs/Breadcrumbs.d.ts +9 -0
  35. package/types/elsie/src/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  36. package/types/elsie/src/components/Breadcrumbs/index.d.ts +3 -0
  37. package/types/elsie/src/components/Breadcrumbs/index.d.ts.map +1 -0
  38. package/types/elsie/src/components/Button/Button.d.ts +15 -0
  39. package/types/elsie/src/components/Button/Button.d.ts.map +1 -0
  40. package/types/elsie/src/components/Button/index.d.ts +3 -0
  41. package/types/elsie/src/components/Button/index.d.ts.map +1 -0
  42. package/types/elsie/src/components/Card/Card.d.ts +9 -0
  43. package/types/elsie/src/components/Card/Card.d.ts.map +1 -0
  44. package/types/elsie/src/components/Card/index.d.ts +2 -0
  45. package/types/elsie/src/components/Card/index.d.ts.map +1 -0
  46. package/types/elsie/src/components/CartItem/CartItem.d.ts +27 -0
  47. package/types/elsie/src/components/CartItem/CartItem.d.ts.map +1 -0
  48. package/types/elsie/src/components/CartItem/CartItemSkeleton.d.ts +4 -0
  49. package/types/elsie/src/components/CartItem/CartItemSkeleton.d.ts.map +1 -0
  50. package/types/elsie/src/components/CartItem/index.d.ts +4 -0
  51. package/types/elsie/src/components/CartItem/index.d.ts.map +1 -0
  52. package/types/elsie/src/components/CartList/CartList.d.ts +7 -0
  53. package/types/elsie/src/components/CartList/CartList.d.ts.map +1 -0
  54. package/types/elsie/src/components/CartList/index.d.ts +3 -0
  55. package/types/elsie/src/components/CartList/index.d.ts.map +1 -0
  56. package/types/elsie/src/components/Checkbox/Checkbox.d.ts +13 -0
  57. package/types/elsie/src/components/Checkbox/Checkbox.d.ts.map +1 -0
  58. package/types/elsie/src/components/Checkbox/index.d.ts +2 -0
  59. package/types/elsie/src/components/Checkbox/index.d.ts.map +1 -0
  60. package/types/elsie/src/components/ColorSwatch/ColorSwatch.d.ts +20 -0
  61. package/types/elsie/src/components/ColorSwatch/ColorSwatch.d.ts.map +1 -0
  62. package/types/elsie/src/components/ColorSwatch/index.d.ts +3 -0
  63. package/types/elsie/src/components/ColorSwatch/index.d.ts.map +1 -0
  64. package/types/elsie/src/components/Divider/Divider.d.ts +8 -0
  65. package/types/elsie/src/components/Divider/Divider.d.ts.map +1 -0
  66. package/types/elsie/src/components/Divider/index.d.ts +3 -0
  67. package/types/elsie/src/components/Divider/index.d.ts.map +1 -0
  68. package/types/elsie/src/components/Field/Field.d.ts +14 -0
  69. package/types/elsie/src/components/Field/Field.d.ts.map +1 -0
  70. package/types/elsie/src/components/Field/index.d.ts +2 -0
  71. package/types/elsie/src/components/Field/index.d.ts.map +1 -0
  72. package/types/elsie/src/components/Icon/Icon.d.ts +18 -0
  73. package/types/elsie/src/components/Icon/Icon.d.ts.map +1 -0
  74. package/types/elsie/src/components/Icon/index.d.ts +2 -0
  75. package/types/elsie/src/components/Icon/index.d.ts.map +1 -0
  76. package/types/elsie/src/components/IllustratedMessage/IllustratedMessage.d.ts +13 -0
  77. package/types/elsie/src/components/IllustratedMessage/IllustratedMessage.d.ts.map +1 -0
  78. package/types/elsie/src/components/IllustratedMessage/index.d.ts +3 -0
  79. package/types/elsie/src/components/IllustratedMessage/index.d.ts.map +1 -0
  80. package/types/elsie/src/components/Image/Image.d.ts +11 -0
  81. package/types/elsie/src/components/Image/Image.d.ts.map +1 -0
  82. package/types/elsie/src/components/Image/index.d.ts +2 -0
  83. package/types/elsie/src/components/Image/index.d.ts.map +1 -0
  84. package/types/elsie/src/components/ImageSwatch/ImageSwatch.d.ts +20 -0
  85. package/types/elsie/src/components/ImageSwatch/ImageSwatch.d.ts.map +1 -0
  86. package/types/elsie/src/components/ImageSwatch/index.d.ts +3 -0
  87. package/types/elsie/src/components/ImageSwatch/index.d.ts.map +1 -0
  88. package/types/elsie/src/components/InLineAlert/InLineAlert.d.ts +17 -0
  89. package/types/elsie/src/components/InLineAlert/InLineAlert.d.ts.map +1 -0
  90. package/types/elsie/src/components/InLineAlert/index.d.ts +3 -0
  91. package/types/elsie/src/components/InLineAlert/index.d.ts.map +1 -0
  92. package/types/elsie/src/components/Incrementer/Incrementer.d.ts +17 -0
  93. package/types/elsie/src/components/Incrementer/Incrementer.d.ts.map +1 -0
  94. package/types/elsie/src/components/Incrementer/index.d.ts +2 -0
  95. package/types/elsie/src/components/Incrementer/index.d.ts.map +1 -0
  96. package/types/elsie/src/components/Input/Input.d.ts +19 -0
  97. package/types/elsie/src/components/Input/Input.d.ts.map +1 -0
  98. package/types/elsie/src/components/Input/index.d.ts +3 -0
  99. package/types/elsie/src/components/Input/index.d.ts.map +1 -0
  100. package/types/elsie/src/components/Modal/Modal.d.ts +15 -0
  101. package/types/elsie/src/components/Modal/Modal.d.ts.map +1 -0
  102. package/types/elsie/src/components/Modal/index.d.ts +2 -0
  103. package/types/elsie/src/components/Modal/index.d.ts.map +1 -0
  104. package/types/elsie/src/components/Picker/Picker.d.ts +26 -0
  105. package/types/elsie/src/components/Picker/Picker.d.ts.map +1 -0
  106. package/types/elsie/src/components/Picker/index.d.ts +2 -0
  107. package/types/elsie/src/components/Picker/index.d.ts.map +1 -0
  108. package/types/elsie/src/components/Price/Price.d.ts +17 -0
  109. package/types/elsie/src/components/Price/Price.d.ts.map +1 -0
  110. package/types/elsie/src/components/Price/index.d.ts +2 -0
  111. package/types/elsie/src/components/Price/index.d.ts.map +1 -0
  112. package/types/elsie/src/components/PriceRange/PriceRange.d.ts +17 -0
  113. package/types/elsie/src/components/PriceRange/PriceRange.d.ts.map +1 -0
  114. package/types/elsie/src/components/PriceRange/index.d.ts +3 -0
  115. package/types/elsie/src/components/PriceRange/index.d.ts.map +1 -0
  116. package/types/elsie/src/components/PriceSummary/PriceSummary.d.ts +49 -0
  117. package/types/elsie/src/components/PriceSummary/PriceSummary.d.ts.map +1 -0
  118. package/types/elsie/src/components/PriceSummary/index.d.ts +3 -0
  119. package/types/elsie/src/components/PriceSummary/index.d.ts.map +1 -0
  120. package/types/elsie/src/components/ProgressSpinner/ProgressSpinner.d.ts +14 -0
  121. package/types/elsie/src/components/ProgressSpinner/ProgressSpinner.d.ts.map +1 -0
  122. package/types/elsie/src/components/ProgressSpinner/index.d.ts +3 -0
  123. package/types/elsie/src/components/ProgressSpinner/index.d.ts.map +1 -0
  124. package/types/elsie/src/components/RadioButton/RadioButton.d.ts +15 -0
  125. package/types/elsie/src/components/RadioButton/RadioButton.d.ts.map +1 -0
  126. package/types/elsie/src/components/RadioButton/index.d.ts +3 -0
  127. package/types/elsie/src/components/RadioButton/index.d.ts.map +1 -0
  128. package/types/elsie/src/components/Skeleton/Skeleton.d.ts +17 -0
  129. package/types/elsie/src/components/Skeleton/Skeleton.d.ts.map +1 -0
  130. package/types/elsie/src/components/Skeleton/index.d.ts +2 -0
  131. package/types/elsie/src/components/Skeleton/index.d.ts.map +1 -0
  132. package/types/elsie/src/components/TextSwatch/TextSwatch.d.ts +18 -0
  133. package/types/elsie/src/components/TextSwatch/TextSwatch.d.ts.map +1 -0
  134. package/types/elsie/src/components/TextSwatch/index.d.ts +3 -0
  135. package/types/elsie/src/components/TextSwatch/index.d.ts.map +1 -0
  136. package/types/elsie/src/components/UIProvider/UIProvider.d.ts +17 -0
  137. package/types/elsie/src/components/UIProvider/UIProvider.d.ts.map +1 -0
  138. package/types/elsie/src/components/UIProvider/index.d.ts +2 -0
  139. package/types/elsie/src/components/UIProvider/index.d.ts.map +1 -0
  140. package/types/elsie/src/components/index.d.ts +34 -0
  141. package/types/elsie/src/components/index.d.ts.map +1 -0
  142. package/types/elsie/src/i18n/en_US.json.d.ts +120 -0
  143. package/types/elsie/src/i18n/index.d.ts +356 -0
  144. package/types/elsie/src/i18n/index.d.ts.map +1 -0
  145. package/types/elsie/src/icons/index.d.ts +35 -0
  146. package/types/elsie/src/icons/index.d.ts.map +1 -0
  147. package/types/elsie/src/lib/classes.d.ts +6 -0
  148. package/types/elsie/src/lib/classes.d.ts.map +1 -0
  149. package/types/elsie/src/lib/config.d.ts +7 -0
  150. package/types/elsie/src/lib/config.d.ts.map +1 -0
  151. package/types/elsie/src/lib/debounce.d.ts +2 -0
  152. package/types/elsie/src/lib/debounce.d.ts.map +1 -0
  153. package/types/elsie/src/lib/deepmerge.d.ts +2 -0
  154. package/types/elsie/src/lib/deepmerge.d.ts.map +1 -0
  155. package/types/elsie/src/lib/form-values.d.ts +5 -0
  156. package/types/elsie/src/lib/form-values.d.ts.map +1 -0
  157. package/types/elsie/src/lib/i18n.d.ts +8 -0
  158. package/types/elsie/src/lib/i18n.d.ts.map +1 -0
  159. package/types/elsie/src/lib/image-params-keymap.d.ts +4 -0
  160. package/types/elsie/src/lib/image-params-keymap.d.ts.map +1 -0
  161. package/types/elsie/src/lib/index.d.ts +14 -0
  162. package/types/elsie/src/lib/index.d.ts.map +1 -0
  163. package/types/elsie/src/lib/initializer.d.ts +37 -0
  164. package/types/elsie/src/lib/initializer.d.ts.map +1 -0
  165. package/types/elsie/src/lib/render.d.ts +11 -0
  166. package/types/elsie/src/lib/render.d.ts.map +1 -0
  167. package/types/elsie/src/lib/resolve-image.d.ts +10 -0
  168. package/types/elsie/src/lib/resolve-image.d.ts.map +1 -0
  169. package/types/elsie/src/lib/slot.d.ts +44 -0
  170. package/types/elsie/src/lib/slot.d.ts.map +1 -0
  171. package/types/elsie/src/lib/tests.d.ts +5 -0
  172. package/types/elsie/src/lib/tests.d.ts.map +1 -0
  173. package/types/elsie/src/lib/types.d.ts +10 -0
  174. package/types/elsie/src/lib/types.d.ts.map +1 -0
  175. package/types/elsie/src/lib/vcomponent.d.ts +9 -0
  176. package/types/elsie/src/lib/vcomponent.d.ts.map +1 -0
  177. package/types/event-bus/src/events-catalog.d.ts +16 -0
  178. package/types/event-bus/src/events-catalog.d.ts.map +1 -0
  179. package/types/event-bus/src/index.d.ts +20 -0
  180. package/types/event-bus/src/index.d.ts.map +1 -0
  181. package/types/fetch-graphql/src/index.d.ts +62 -0
  182. package/types/fetch-graphql/src/index.d.ts.map +1 -0
package/components.js.map CHANGED
@@ -1 +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 variant?: 'primary' | 'secondary';\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 variant = 'primary',\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 `dropin-in-line-alert--${variant}`,\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"}
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 { FunctionComponent } from 'preact';\nimport { classes } from '@adobe/elsie/lib/classes';\nimport { lazy, Suspense, SVGProps } 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(\n () => import('@adobe/elsie/icons/PlaceholderFilled.svg')\n ),\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(\n () => import('@adobe/elsie/icons/WarningWithCircle.svg')\n ),\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<SVGProps<SVGSVGElement>, 'size'> {\n source:\n | FunctionComponent<SVGProps<SVGSVGElement> & { title?: string }>\n | IconType;\n size?: '12' | '16' | '24' | '32' | '64' | '80';\n stroke?: '1' | '2' | '3' | '4';\n className?: string;\n title?: string;\n}\n\nexport type IconNode = FunctionComponent<\n SVGProps<SVGSVGElement> & { title?: 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 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, IconNode } 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?: IconNode;\n iconClose?: IconNode;\n iconLeft?: IconNode;\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?: IconNode;\n iconClose?: IconNode;\n iconLeft?: IconNode;\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 variant?: 'primary' | 'secondary';\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 variant = 'primary',\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 `dropin-in-line-alert--${variant}`,\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"}