@dropins/tools 1.6.0-beta3 → 1.7.0-alpha1

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 (81) hide show
  1. package/chunks/Image.js +1 -1
  2. package/chunks/cjs.js +1 -1
  3. package/chunks/get-path-value.js +1 -1
  4. package/chunks/get-price-formatter.js +2 -2
  5. package/chunks/get-price-formatter.js.map +1 -1
  6. package/chunks/icons/Add.js +1 -1
  7. package/chunks/icons/AddressBook.js +1 -1
  8. package/chunks/icons/Bulk.js +1 -1
  9. package/chunks/icons/Burger.js +1 -1
  10. package/chunks/icons/Business.js +1 -1
  11. package/chunks/icons/Card.js +1 -1
  12. package/chunks/icons/Cart.js +1 -1
  13. package/chunks/icons/Check.js +1 -1
  14. package/chunks/icons/CheckWithCircle.js +1 -1
  15. package/chunks/icons/ChevronDown.js +1 -1
  16. package/chunks/icons/ChevronRight.js +1 -1
  17. package/chunks/icons/ChevronUp.js +1 -1
  18. package/chunks/icons/Close.js +1 -1
  19. package/chunks/icons/Coupon.js +1 -1
  20. package/chunks/icons/Date.js +1 -1
  21. package/chunks/icons/Delivery.js +1 -1
  22. package/chunks/icons/Edit.js +1 -1
  23. package/chunks/icons/EmptyBox.js +1 -1
  24. package/chunks/icons/Eye.js +1 -1
  25. package/chunks/icons/EyeClose.js +1 -1
  26. package/chunks/icons/Gift.js +1 -1
  27. package/chunks/icons/GiftCard.js +1 -1
  28. package/chunks/icons/Heart.js +1 -1
  29. package/chunks/icons/HeartFilled.js +1 -1
  30. package/chunks/icons/InfoFilled.js +1 -1
  31. package/chunks/icons/List.js +1 -1
  32. package/chunks/icons/Locker.js +1 -1
  33. package/chunks/icons/Minus.js +1 -1
  34. package/chunks/icons/Order.js +1 -1
  35. package/chunks/icons/OrderError.js +1 -1
  36. package/chunks/icons/OrderSuccess.js +1 -1
  37. package/chunks/icons/PaymentError.js +1 -1
  38. package/chunks/icons/Placeholder.js +1 -1
  39. package/chunks/icons/PlaceholderFilled.js +1 -1
  40. package/chunks/icons/Purchase.js +1 -1
  41. package/chunks/icons/Quote.js +1 -1
  42. package/chunks/icons/Search.js +1 -1
  43. package/chunks/icons/SearchFilled.js +1 -1
  44. package/chunks/icons/Sort.js +1 -1
  45. package/chunks/icons/Star.js +1 -1
  46. package/chunks/icons/Structure.js +1 -1
  47. package/chunks/icons/Team.js +1 -1
  48. package/chunks/icons/Trash.js +1 -1
  49. package/chunks/icons/User.js +1 -1
  50. package/chunks/icons/View.js +1 -1
  51. package/chunks/icons/Wallet.js +1 -1
  52. package/chunks/icons/Warning.js +1 -1
  53. package/chunks/icons/WarningFilled.js +1 -1
  54. package/chunks/icons/WarningWithCircle.js +1 -1
  55. package/chunks/image-params-keymap.js +1 -1
  56. package/chunks/initializer.js +2 -2
  57. package/chunks/locale-config.js +1 -1
  58. package/chunks/vcomponent.js +1 -1
  59. package/components.js +2 -2
  60. package/components.js.map +1 -1
  61. package/event-bus.js +1 -1
  62. package/fetch-graphql.js +1 -1
  63. package/i18n.js +1 -1
  64. package/initializer.js +2 -2
  65. package/lib/aem/assets.js +1 -1
  66. package/lib/aem/configs.js +1 -1
  67. package/lib.js +2 -2
  68. package/lib.js.map +1 -1
  69. package/package.json +1 -1
  70. package/preact-compat.js +1 -1
  71. package/preact-hooks.js +1 -1
  72. package/preact-jsx-runtime.js +1 -1
  73. package/preact.js +1 -1
  74. package/recaptcha.js +1 -1
  75. package/shims/importmap.js +1 -1
  76. package/signals.js +1 -1
  77. package/types/elsie/src/components/CartItem/CartItem.d.ts +1 -0
  78. package/types/elsie/src/components/RadioButton/RadioButton.d.ts +2 -1
  79. package/types/elsie/src/lib/debounce.d.ts +4 -1
  80. package/types/elsie/src/lib/extension-manager.d.ts +24 -0
  81. package/types/elsie/src/lib/index.d.ts +1 -0
package/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.js","sources":["/@dropins/tools/src/lib/form-values.ts","/@dropins/tools/src/lib/deepmerge.ts","/@dropins/tools/src/lib/i18n.ts","/@dropins/tools/src/lib/slot.tsx","/@dropins/tools/src/lib/get-cookie.ts"],"sourcesContent":["/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nexport const getFormValues = (form: HTMLFormElement) => {\n const formData: any = new FormData(form);\n const result = Object.fromEntries(formData);\n return result;\n};\n\nexport const getFormErrors = (form: HTMLFormElement) => {\n const formData: any = new FormData(form);\n\n const data = Object.fromEntries(formData);\n\n const result = Object.entries(data).reduce((result, [key]) => {\n // @ts-ignore\n const field = form.elements[key];\n\n return field?.validationMessage\n ? { ...result, [key]: field.validationMessage }\n : { ...result };\n }, {});\n\n return result;\n};\n","/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport deepmerge from 'deepmerge';\n\nexport { default as deepmerge } from 'deepmerge';\n\nconst mergeOptions = {\n arrayMerge: (target: any, source: any, options: any) => {\n const destination = target.slice();\n\n source.forEach((item: any, index: number) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(\n item,\n options\n );\n } else if (options.isMergeableObject(item)) {\n destination[index] = deepmerge(target[index], item, options);\n } else if (target.indexOf(item) === -1) {\n destination.push(item);\n }\n });\n return destination;\n },\n};\n\nexport function merge<T>(\n prev: T,\n next?: { [key: string]: any }\n) {\n if (!next) return prev;\n\n return deepmerge<T, { [key: string]: any }>(\n prev,\n next,\n mergeOptions\n );\n}\n","/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\n/**\n * Convert locale from Magento standard to react-intl BCP 47 language tag\n *\n * @param {string} locale - A locale (e.g. `fr_FR`).\n * @returns {string} A BCP 47 language tag (e.g. `fr-FR`).\n */\nexport const toLanguageTag = (locale: string) => {\n return locale.replace('_', '-');\n};\n","/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { IntlContext, Lang } from '@adobe-commerce/elsie/i18n';\nimport {\n cloneElement,\n ComponentChildren,\n createElement,\n RefObject,\n VNode,\n} from 'preact';\nimport { Children, HTMLAttributes, isValidElement } from 'preact/compat';\nimport {\n StateUpdater,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport { SlotQueueContext } from './render';\n\nimport '@adobe-commerce/elsie/components/UIProvider/debugger.css';\n\ntype MutateElement = (elem: HTMLElement) => void;\n\ninterface State {\n get: (key: string) => void;\n set: (key: string, value: any) => void;\n}\n\ninterface SlotElement {\n appendChild: MutateElement;\n prependChild: MutateElement;\n appendSibling: MutateElement;\n prependSibling: MutateElement;\n remove: () => void;\n}\n\ninterface PrivateContext<T> {\n _setProps: (s: StateUpdater<{}>) => void;\n _registerMethod: (\n cb: (next: T & DefaultSlotContext<T>, state: State) => void\n ) => void;\n // eslint-disable-next-line no-undef\n _htmlElementToVNode: (element: HTMLElement, tag: keyof HTMLElementTagNameMap) => VNode;\n}\n\ninterface DefaultSlotContext<T> extends PrivateContext<T> {\n dictionary: Lang;\n getSlotElement: (key: string) => SlotElement;\n replaceWith: MutateElement;\n appendChild: MutateElement;\n prependChild: MutateElement;\n appendSibling: MutateElement;\n prependSibling: MutateElement;\n remove: () => void;\n onRender: (cb: (next: T & DefaultSlotContext<T>) => void) => void;\n onChange: (cb: (next: T & DefaultSlotContext<T>) => void) => void;\n}\n\ntype Context<T> = T & ThisType<DefaultSlotContext<T>>; // NOSONAR\n\nexport type SlotProps<T = any> = (\n ctx: T & DefaultSlotContext<T>,\n element: HTMLDivElement | null\n) => Promise<void> | void;\n\nexport type SlotMethod<P = any> = (\n callback: (next: unknown, state: State) => P\n) => void;\n\n// Slot Hook\nexport function useSlot<K, V extends HTMLElement>(\n name: string,\n // @ts-ignore\n context: Context<K> = {},\n callback?: SlotProps<K>,\n children?: ComponentChildren,\n render?: Function,\n // eslint-disable-next-line no-undef\n contentTag: keyof HTMLElementTagNameMap = 'div'\n): [RefObject<V>, Record<string, any>, 'loading' | 'pending' | 'ready'] {\n const slotsQueue = useContext(SlotQueueContext);\n\n // HTML Element\n const elementRef = useRef<V>(null);\n\n const status = useRef<'pending' | 'ready' | 'loading'>('pending');\n\n // Methods\n const methodsRef = useRef<any>([]);\n\n // Children VNodes\n const [props, _setProps] = useState<Record<string, any>>({\n children: [children],\n });\n\n // Attributes\n const [_state, setState] = useState<any>({});\n\n const state = useMemo(\n () => ({\n get: (key: string) => _state[key],\n set: (key: string, value: any) => {\n setState({ ...state, [key]: value });\n },\n }),\n [_state]\n );\n\n /** Internationalization */\n // @ts-ignore\n const { intl }: any = useContext(IntlContext);\n\n // @ts-ignore\n context.dictionary = intl.dictionary;\n\n /** Privates */\n // @ts-ignore\n context._setProps = (next: State<any>) => {\n _setProps((prev) => {\n // next props\n const _next = typeof next === 'function' ? next(prev) : next;\n\n // On render method...\n if (render) {\n const renderNode = cloneElement(render(prev), { key: 'render' });\n\n // find index of existing render node\n const index = prev.children.findIndex((n: any) => n?.key === 'render');\n\n // replace existing render node\n prev.children[index] = renderNode;\n }\n\n return _next;\n });\n };\n\n const _registerMethod = useCallback((cb: Function) => {\n if (typeof cb === 'function') {\n methodsRef.current.push(cb);\n } else {\n console.warn('Skipped: Invalid _registerMethod', cb);\n }\n }, []);\n\n // @ts-ignore\n context._registerMethod = _registerMethod;\n\n const _htmlElementToVNode = useCallback(\n (elem: HTMLElement) => {\n return createElement(\n contentTag,\n {\n 'data-slot-html-element': elem.tagName.toLowerCase(),\n ref: (refElem: HTMLElement | null): void => {\n refElem?.appendChild(elem);\n },\n },\n null\n );\n },\n [contentTag]\n );\n\n // @ts-ignore\n context._htmlElementToVNode = _htmlElementToVNode;\n\n /** Prebuilt Methods */\n // @ts-ignore\n context.getSlotElement = useCallback(\n (key: string) => {\n const element = elementRef.current?.querySelector(\n `[data-slot-key=\"${key}\"]`\n );\n\n log(\n `🟦 \"${name}\" Slot getSlotElement: ${key}`,\n elementRef.current?.cloneNode(true),\n element?.cloneNode(true)\n );\n\n if (!element) return;\n\n return {\n appendChild: (elem: HTMLElement) => {\n element.appendChild(elem);\n },\n\n prependChild: (elem: HTMLElement) => {\n element.insertBefore(elem, element.firstChild);\n },\n\n appendSibling: (elem: HTMLElement) => {\n const parent = element.parentNode;\n parent?.insertBefore(elem, element.nextSibling);\n },\n\n prependSibling: (elem: HTMLElement) => {\n const parent = element.parentNode;\n parent?.insertBefore(elem, element);\n },\n\n remove: () => {\n element.remove();\n },\n };\n },\n [name]\n );\n\n // @ts-ignore\n context.onRender = useCallback((cb: Function) => {\n methodsRef.current.push(cb);\n }, []);\n\n /**\n * @deprecated Use `onRender` instead.\n */\n // @ts-ignore\n context.onChange = context.onRender;\n\n // @ts-ignore\n context.replaceWith = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const children = _htmlElementToVNode(elem);\n\n next._setProps({ children: [children] });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.appendChild = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const vnode = _htmlElementToVNode(elem);\n\n next._setProps((prev: any) => {\n return {\n ...prev,\n children: [...prev.children, vnode],\n };\n });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.prependChild = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const vnode = _htmlElementToVNode(elem);\n\n next._setProps((prev: any) => {\n return {\n ...prev,\n children: [vnode, ...prev.children],\n };\n });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.appendSibling = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod(() => {\n const parent = elementRef.current?.parentNode;\n\n parent?.insertBefore(elem, elementRef.current?.nextSibling ?? null);\n });\n },\n [_registerMethod]\n );\n\n // @ts-ignore\n context.prependSibling = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod(() => {\n const parent = elementRef.current?.parentNode;\n\n parent?.insertBefore(elem, elementRef.current);\n });\n },\n [_registerMethod]\n );\n\n // @ts-ignore\n context.remove = useCallback(() => {\n // @ts-ignore\n _registerMethod(() => {\n elementRef.current?.remove();\n });\n }, [_registerMethod]);\n\n const handleLifeCycleRender = useCallback(async () => {\n if (status.current === 'loading') return;\n\n status.current = 'loading';\n\n log(`🟨 \"${name}\" Slot Rendered`);\n\n // Reset\n const renderNode = render\n ? cloneElement(render(props), { key: 'render' })\n : null;\n _setProps({ children: [renderNode ?? children] });\n\n // Run all registered methods\n methodsRef.current.forEach((method: any) => {\n method(context, state);\n });\n\n status.current = 'ready';\n }, [children, context, name, props, render, state]);\n\n // Initialization\n const handleLifeCycleInit = useCallback(async () => {\n if (!callback) return;\n\n try {\n status.current = 'loading';\n\n log(`🟩 \"${name}\" Slot Initialized`);\n await callback(\n context as K & DefaultSlotContext<K>,\n elementRef.current as HTMLDivElement | null\n );\n } catch (error) {\n console.error(`Error in \"${callback.name}\" Slot callback`, error);\n } finally {\n status.current = 'ready';\n\n // first render\n await handleLifeCycleRender();\n }\n }, [callback, context, handleLifeCycleRender, name]);\n\n // Initialization\n useEffect(() => {\n handleLifeCycleInit().finally(() => {\n if (slotsQueue && slotsQueue.value.has(name)) {\n slotsQueue.value.delete(name);\n slotsQueue.value = new Set(slotsQueue.value);\n }\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Update\n useEffect(() => {\n handleLifeCycleRender();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(context), JSON.stringify(_state)]);\n\n return [elementRef, props, status.current];\n}\n\n/**\n * Recursively processes children elements to conditionally prevent image loading.\n * \n * This function traverses the children tree and modifies img elements to prevent\n * premature loading during slot initialization. When isReady is false, img src\n * attributes are set to empty string to prevent network requests, while preserving\n * the original src in a data attribute for debugging purposes.\n * \n * @param children - The children elements to process (can be any React/Preact children)\n * @param isReady - Whether the slot is ready to load images (true) or should prevent loading (false)\n * @returns Processed children with conditional image src attributes\n */\nconst processChildren = (children: any, isReady: boolean): any => {\n return Children.map(children, child => {\n // Handle text nodes, numbers, etc.\n if (!isValidElement(child)) {\n return child;\n }\n\n // Handle img elements - conditionally set src\n if (child.props.src) {\n return cloneElement(child, {\n ...child.props,\n src: isReady ? child.props.src : \"\",\n // Optionally preserve original src in data attribute for debugging\n 'data-original-src': child.props.src,\n });\n }\n\n // Handle elements with children - recursively process them\n if (child.props && child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: processChildren(child.props.children, isReady),\n });\n }\n\n // Return other elements as-is\n return child;\n });\n};\n\n// Slot Component\ninterface SlotPropsComponent<T>\n extends Omit<HTMLAttributes<HTMLElement>, 'slot'> {\n name: string;\n lazy?: boolean;\n slot?: SlotProps<T>;\n context?: Context<T>;\n render?: (props: Record<string, any>) => VNode | VNode[];\n // eslint-disable-next-line no-undef\n slotTag?: keyof HTMLElementTagNameMap; // The tag for the slot wrapper itself\n // eslint-disable-next-line no-undef\n contentTag?: keyof HTMLElementTagNameMap; // The tag for dynamically inserted content\n children?: ComponentChildren;\n}\n\nexport function Slot<T>({\n name,\n lazy = false,\n context,\n slot,\n children,\n render,\n slotTag = 'div',\n contentTag = 'div',\n ...props\n}: Readonly<SlotPropsComponent<T>>): VNode<{\n ref: RefObject<HTMLElement>;\n 'data-slot': string;\n [key: string]: any;\n}> {\n const slotsQueue = useContext(SlotQueueContext);\n\n const [elementRef, slotProps, status] = useSlot<T, HTMLElement>(\n name,\n context,\n slot,\n children,\n render,\n contentTag\n );\n\n useMemo(() => {\n if (!name) {\n return console.warn('Slot \"name\" is required');\n }\n\n // add slot to queue\n if (slotsQueue && lazy === false) {\n slotsQueue.value.add(name);\n slotsQueue.value = new Set(slotsQueue.value);\n }\n }, [name, lazy, slotsQueue]);\n\n return createElement(\n slotTag,\n {\n ...props,\n ref: elementRef,\n 'data-slot': name,\n },\n processChildren(slotProps.children, status === 'ready')\n );\n}\n\n// Debugger\n\n// @ts-ignore\nwindow.DROPINS = window.DROPINS || {};\n\n// @ts-ignore\nwindow.DROPINS.showSlots = async (state) => {\n // cache state in session storage\n window.sessionStorage.setItem(\n 'dropin-debugger--show-slots',\n state.toString()\n );\n\n document.body.classList.toggle('dropin-debugger--show-slots', state);\n};\n\nlet log: (...attrs: any) => void = () => {};\n\n// @ts-ignore\nwindow.DROPINS.logSlots = async (state) => {\n // cache state in session storage\n window.sessionStorage.setItem('dropin-debugger--log-slots', state.toString());\n\n log = state ? (...attrs) => console.log(...attrs) : () => {};\n};\n\n/** Persistent Settings */\n\n// @ts-ignore\nwindow.DROPINS.showSlots(\n window.sessionStorage.getItem('dropin-debugger--show-slots') === 'true'\n);\n\n// @ts-ignore\nwindow.DROPINS.logSlots(\n window.sessionStorage.getItem('dropin-debugger--log-slots') === 'true'\n);\n","/**\n * Get cookie\n * @param {string} cookieName - The name of the cookie to get\n * @returns {string} - The value of the cookie\n */\nexport function getCookie(cookieName: string): string | undefined {\n const cookies = document.cookie.split(';');\n let foundValue;\n\n cookies.forEach((cookie) => {\n const [name, value] = cookie.trim().split('=');\n if (name === cookieName) {\n foundValue = decodeURIComponent(value);\n }\n });\n\n return foundValue;\n}\n"],"names":["getFormValues","form","formData","getFormErrors","data","result","key","field","mergeOptions","target","source","options","destination","item","index","deepmerge","merge","prev","next","toLanguageTag","locale","useSlot","name","context","callback","children","render","contentTag","slotsQueue","useContext","SlotQueueContext","elementRef","useRef","status","methodsRef","props","_setProps","useState","_state","setState","state","useMemo","value","intl","IntlContext","_next","renderNode","cloneElement","n","_registerMethod","useCallback","cb","_htmlElementToVNode","elem","createElement","refElem","element","_a","log","_b","parent","vnode","handleLifeCycleRender","method","handleLifeCycleInit","error","useEffect","processChildren","isReady","Children","child","isValidElement","Slot","lazy","slot","slotTag","slotProps","attrs","getCookie","cookieName","cookies","foundValue","cookie"],"mappings":"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"}
1
+ {"version":3,"file":"lib.js","sources":["/@dropins/tools/src/lib/form-values.ts","/@dropins/tools/src/lib/deepmerge.ts","/@dropins/tools/src/lib/i18n.ts","/@dropins/tools/src/lib/slot.tsx","/@dropins/tools/src/lib/get-cookie.ts","/@dropins/tools/src/lib/extension-manager.ts"],"sourcesContent":["/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nexport const getFormValues = (form: HTMLFormElement) => {\n const formData: any = new FormData(form);\n const result = Object.fromEntries(formData);\n return result;\n};\n\nexport const getFormErrors = (form: HTMLFormElement) => {\n const formData: any = new FormData(form);\n\n const data = Object.fromEntries(formData);\n\n const result = Object.entries(data).reduce((result, [key]) => {\n // @ts-ignore\n const field = form.elements[key];\n\n return field?.validationMessage\n ? { ...result, [key]: field.validationMessage }\n : { ...result };\n }, {});\n\n return result;\n};\n","/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\nimport deepmerge from 'deepmerge';\n\nexport { default as deepmerge } from 'deepmerge';\n\nconst mergeOptions = {\n arrayMerge: (target: any, source: any, options: any) => {\n const destination = target.slice();\n\n source.forEach((item: any, index: number) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(\n item,\n options\n );\n } else if (options.isMergeableObject(item)) {\n destination[index] = deepmerge(target[index], item, options);\n } else if (target.indexOf(item) === -1) {\n destination.push(item);\n }\n });\n return destination;\n },\n};\n\nexport function merge<T>(\n prev: T,\n next?: { [key: string]: any }\n) {\n if (!next) return prev;\n\n return deepmerge<T, { [key: string]: any }>(\n prev,\n next,\n mergeOptions\n );\n}\n","/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this \n * file in accordance with the terms of the Adobe license agreement \n * accompanying it. \n *******************************************************************/\n\n/**\n * Convert locale from Magento standard to react-intl BCP 47 language tag\n *\n * @param {string} locale - A locale (e.g. `fr_FR`).\n * @returns {string} A BCP 47 language tag (e.g. `fr-FR`).\n */\nexport const toLanguageTag = (locale: string) => {\n return locale.replace('_', '-');\n};\n","/********************************************************************\n * Copyright 2024 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nimport { IntlContext, Lang } from '@adobe-commerce/elsie/i18n';\nimport {\n cloneElement,\n ComponentChildren,\n createElement,\n RefObject,\n VNode,\n} from 'preact';\nimport { Children, HTMLAttributes, isValidElement } from 'preact/compat';\nimport {\n StateUpdater,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport { SlotQueueContext } from './render';\n\nimport '@adobe-commerce/elsie/components/UIProvider/debugger.css';\n\ntype MutateElement = (elem: HTMLElement) => void;\n\ninterface State {\n get: (key: string) => void;\n set: (key: string, value: any) => void;\n}\n\ninterface SlotElement {\n appendChild: MutateElement;\n prependChild: MutateElement;\n appendSibling: MutateElement;\n prependSibling: MutateElement;\n remove: () => void;\n}\n\ninterface PrivateContext<T> {\n _setProps: (s: StateUpdater<{}>) => void;\n _registerMethod: (\n cb: (next: T & DefaultSlotContext<T>, state: State) => void\n ) => void;\n // eslint-disable-next-line no-undef\n _htmlElementToVNode: (element: HTMLElement, tag: keyof HTMLElementTagNameMap) => VNode;\n}\n\ninterface DefaultSlotContext<T> extends PrivateContext<T> {\n dictionary: Lang;\n getSlotElement: (key: string) => SlotElement;\n replaceWith: MutateElement;\n appendChild: MutateElement;\n prependChild: MutateElement;\n appendSibling: MutateElement;\n prependSibling: MutateElement;\n remove: () => void;\n onRender: (cb: (next: T & DefaultSlotContext<T>) => void) => void;\n onChange: (cb: (next: T & DefaultSlotContext<T>) => void) => void;\n}\n\ntype Context<T> = T & ThisType<DefaultSlotContext<T>>; // NOSONAR\n\nexport type SlotProps<T = any> = (\n ctx: T & DefaultSlotContext<T>,\n element: HTMLDivElement | null\n) => Promise<void> | void;\n\nexport type SlotMethod<P = any> = (\n callback: (next: unknown, state: State) => P\n) => void;\n\n// Slot Hook\nexport function useSlot<K, V extends HTMLElement>(\n name: string,\n // @ts-ignore\n context: Context<K> = {},\n callback?: SlotProps<K>,\n children?: ComponentChildren,\n render?: Function,\n // eslint-disable-next-line no-undef\n contentTag: keyof HTMLElementTagNameMap = 'div'\n): [RefObject<V>, Record<string, any>, 'loading' | 'pending' | 'ready'] {\n const slotsQueue = useContext(SlotQueueContext);\n\n // HTML Element\n const elementRef = useRef<V>(null);\n\n const status = useRef<'pending' | 'ready' | 'loading'>('pending');\n\n // Methods\n const methodsRef = useRef<any>([]);\n\n // Children VNodes\n const [props, _setProps] = useState<Record<string, any>>({\n children: [children],\n });\n\n // Attributes\n const [_state, setState] = useState<any>({});\n\n const state = useMemo(\n () => ({\n get: (key: string) => _state[key],\n set: (key: string, value: any) => {\n setState({ ...state, [key]: value });\n },\n }),\n [_state]\n );\n\n /** Internationalization */\n // @ts-ignore\n const { intl }: any = useContext(IntlContext);\n\n // @ts-ignore\n context.dictionary = intl.dictionary;\n\n /** Privates */\n // @ts-ignore\n context._setProps = (next: State<any>) => {\n _setProps((prev) => {\n // next props\n const _next = typeof next === 'function' ? next(prev) : next;\n\n // On render method...\n if (render) {\n const renderNode = cloneElement(render(prev), { key: 'render' });\n\n // find index of existing render node\n const index = prev.children.findIndex((n: any) => n?.key === 'render');\n\n // replace existing render node\n prev.children[index] = renderNode;\n }\n\n return _next;\n });\n };\n\n const _registerMethod = useCallback((cb: Function) => {\n if (typeof cb === 'function') {\n methodsRef.current.push(cb);\n } else {\n console.warn('Skipped: Invalid _registerMethod', cb);\n }\n }, []);\n\n // @ts-ignore\n context._registerMethod = _registerMethod;\n\n const _htmlElementToVNode = useCallback(\n (elem: HTMLElement) => {\n return createElement(\n contentTag,\n {\n 'data-slot-html-element': elem.tagName.toLowerCase(),\n ref: (refElem: HTMLElement | null): void => {\n refElem?.appendChild(elem);\n },\n },\n null\n );\n },\n [contentTag]\n );\n\n // @ts-ignore\n context._htmlElementToVNode = _htmlElementToVNode;\n\n /** Prebuilt Methods */\n // @ts-ignore\n context.getSlotElement = useCallback(\n (key: string) => {\n const element = elementRef.current?.querySelector(\n `[data-slot-key=\"${key}\"]`\n );\n\n log(\n `🟦 \"${name}\" Slot getSlotElement: ${key}`,\n elementRef.current?.cloneNode(true),\n element?.cloneNode(true)\n );\n\n if (!element) return;\n\n return {\n appendChild: (elem: HTMLElement) => {\n element.appendChild(elem);\n },\n\n prependChild: (elem: HTMLElement) => {\n element.insertBefore(elem, element.firstChild);\n },\n\n appendSibling: (elem: HTMLElement) => {\n const parent = element.parentNode;\n parent?.insertBefore(elem, element.nextSibling);\n },\n\n prependSibling: (elem: HTMLElement) => {\n const parent = element.parentNode;\n parent?.insertBefore(elem, element);\n },\n\n remove: () => {\n element.remove();\n },\n };\n },\n [name]\n );\n\n // @ts-ignore\n context.onRender = useCallback((cb: Function) => {\n methodsRef.current.push(cb);\n }, []);\n\n /**\n * @deprecated Use `onRender` instead.\n */\n // @ts-ignore\n context.onChange = context.onRender;\n\n // @ts-ignore\n context.replaceWith = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const children = _htmlElementToVNode(elem);\n\n next._setProps({ children: [children] });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.appendChild = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const vnode = _htmlElementToVNode(elem);\n\n next._setProps((prev: any) => {\n return {\n ...prev,\n children: [...prev.children, vnode],\n };\n });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.prependChild = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod((next) => {\n // @ts-ignore\n const vnode = _htmlElementToVNode(elem);\n\n next._setProps((prev: any) => {\n return {\n ...prev,\n children: [vnode, ...prev.children],\n };\n });\n });\n },\n [_htmlElementToVNode, _registerMethod]\n );\n\n // @ts-ignore\n context.appendSibling = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod(() => {\n const parent = elementRef.current?.parentNode;\n\n parent?.insertBefore(elem, elementRef.current?.nextSibling ?? null);\n });\n },\n [_registerMethod]\n );\n\n // @ts-ignore\n context.prependSibling = useCallback(\n (elem: HTMLElement) => {\n // @ts-ignore\n _registerMethod(() => {\n const parent = elementRef.current?.parentNode;\n\n parent?.insertBefore(elem, elementRef.current);\n });\n },\n [_registerMethod]\n );\n\n // @ts-ignore\n context.remove = useCallback(() => {\n // @ts-ignore\n _registerMethod(() => {\n elementRef.current?.remove();\n });\n }, [_registerMethod]);\n\n const handleLifeCycleRender = useCallback(async () => {\n if (status.current === 'loading') return;\n\n status.current = 'loading';\n\n log(`🟨 \"${name}\" Slot Rendered`);\n\n // Reset\n const renderNode = render\n ? cloneElement(render(props), { key: 'render' })\n : null;\n _setProps({ children: [renderNode ?? children] });\n\n // Run all registered methods\n methodsRef.current.forEach((method: any) => {\n method(context, state);\n });\n\n status.current = 'ready';\n }, [children, context, name, props, render, state]);\n\n // Initialization\n const handleLifeCycleInit = useCallback(async () => {\n if (!callback) return;\n\n try {\n status.current = 'loading';\n\n log(`🟩 \"${name}\" Slot Initialized`);\n await callback(\n context as K & DefaultSlotContext<K>,\n elementRef.current as HTMLDivElement | null\n );\n } catch (error) {\n console.error(`Error in \"${callback.name}\" Slot callback`, error);\n } finally {\n status.current = 'ready';\n\n // first render\n await handleLifeCycleRender();\n }\n }, [callback, context, handleLifeCycleRender, name]);\n\n // Initialization\n useEffect(() => {\n handleLifeCycleInit().finally(() => {\n if (slotsQueue && slotsQueue.value.has(name)) {\n slotsQueue.value.delete(name);\n slotsQueue.value = new Set(slotsQueue.value);\n }\n });\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Update\n useEffect(() => {\n handleLifeCycleRender();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(context), JSON.stringify(_state)]);\n\n return [elementRef, props, status.current];\n}\n\n/**\n * Recursively processes children elements to conditionally prevent image loading.\n * \n * This function traverses the children tree and modifies img elements to prevent\n * premature loading during slot initialization. When isReady is false, img src\n * attributes are set to empty string to prevent network requests, while preserving\n * the original src in a data attribute for debugging purposes.\n * \n * @param children - The children elements to process (can be any React/Preact children)\n * @param isReady - Whether the slot is ready to load images (true) or should prevent loading (false)\n * @returns Processed children with conditional image src attributes\n */\nconst processChildren = (children: any, isReady: boolean): any => {\n return Children.map(children, child => {\n // Handle text nodes, numbers, etc.\n if (!isValidElement(child)) {\n return child;\n }\n\n // Handle img elements - conditionally set src\n if (child.props.src) {\n return cloneElement(child, {\n ...child.props,\n src: isReady ? child.props.src : \"\",\n // Optionally preserve original src in data attribute for debugging\n 'data-original-src': child.props.src,\n });\n }\n\n // Handle elements with children - recursively process them\n if (child.props && child.props.children) {\n return cloneElement(child, {\n ...child.props,\n children: processChildren(child.props.children, isReady),\n });\n }\n\n // Return other elements as-is\n return child;\n });\n};\n\n// Slot Component\ninterface SlotPropsComponent<T>\n extends Omit<HTMLAttributes<HTMLElement>, 'slot'> {\n name: string;\n lazy?: boolean;\n slot?: SlotProps<T>;\n context?: Context<T>;\n render?: (props: Record<string, any>) => VNode | VNode[];\n // eslint-disable-next-line no-undef\n slotTag?: keyof HTMLElementTagNameMap; // The tag for the slot wrapper itself\n // eslint-disable-next-line no-undef\n contentTag?: keyof HTMLElementTagNameMap; // The tag for dynamically inserted content\n children?: ComponentChildren;\n}\n\nexport function Slot<T>({\n name,\n lazy = false,\n context,\n slot,\n children,\n render,\n slotTag = 'div',\n contentTag = 'div',\n ...props\n}: Readonly<SlotPropsComponent<T>>): VNode<{\n ref: RefObject<HTMLElement>;\n 'data-slot': string;\n [key: string]: any;\n}> {\n const slotsQueue = useContext(SlotQueueContext);\n\n const [elementRef, slotProps, status] = useSlot<T, HTMLElement>(\n name,\n context,\n slot,\n children,\n render,\n contentTag\n );\n\n useMemo(() => {\n if (!name) {\n return console.warn('Slot \"name\" is required');\n }\n\n // add slot to queue\n if (slotsQueue && lazy === false) {\n slotsQueue.value.add(name);\n slotsQueue.value = new Set(slotsQueue.value);\n }\n }, [name, lazy, slotsQueue]);\n\n return createElement(\n slotTag,\n {\n ...props,\n ref: elementRef,\n 'data-slot': name,\n },\n processChildren(slotProps.children, status === 'ready')\n );\n}\n\n// Debugger\n\n// @ts-ignore\nwindow.DROPINS = window.DROPINS || {};\n\n// @ts-ignore\nwindow.DROPINS.showSlots = async (state) => {\n // cache state in session storage\n window.sessionStorage.setItem(\n 'dropin-debugger--show-slots',\n state.toString()\n );\n\n document.body.classList.toggle('dropin-debugger--show-slots', state);\n};\n\nlet log: (...attrs: any) => void = () => {};\n\n// @ts-ignore\nwindow.DROPINS.logSlots = async (state) => {\n // cache state in session storage\n window.sessionStorage.setItem('dropin-debugger--log-slots', state.toString());\n\n log = state ? (...attrs) => console.log(...attrs) : () => {};\n};\n\n/** Persistent Settings */\n\n// @ts-ignore\nwindow.DROPINS.showSlots(\n window.sessionStorage.getItem('dropin-debugger--show-slots') === 'true'\n);\n\n// @ts-ignore\nwindow.DROPINS.logSlots(\n window.sessionStorage.getItem('dropin-debugger--log-slots') === 'true'\n);\n","/**\n * Get cookie\n * @param {string} cookieName - The name of the cookie to get\n * @returns {string} - The value of the cookie\n */\nexport function getCookie(cookieName: string): string | undefined {\n const cookies = document.cookie.split(';');\n let foundValue;\n\n cookies.forEach((cookie) => {\n const [name, value] = cookie.trim().split('=');\n if (name === cookieName) {\n foundValue = decodeURIComponent(value);\n }\n });\n\n return foundValue;\n}\n","/********************************************************************\n * Copyright 2026 Adobe\n * All Rights Reserved.\n *\n * NOTICE: Adobe permits you to use, modify, and distribute this\n * file in accordance with the terms of the Adobe license agreement\n * accompanying it.\n *******************************************************************/\n\nexport interface Extension {\n id: string;\n name: string;\n externalScripts?: string[];\n externalStyles?: string[];\n hooks?: Record<\n string,\n (payload: { context: Record<string, unknown> }) => Promise<void> | void\n >;\n}\n\nexport interface ExtensionManager {\n executeHook(\n hookName: string,\n context?: Record<string, unknown>,\n ): Promise<void>;\n}\n\nexport function loadScript(src: string): Promise<void> {\n return new Promise((resolve, reject) => {\n if (document.querySelector(`script[src=\"${src}\"]`)) {\n resolve();\n return;\n }\n\n const script = document.createElement('script');\n script.src = src;\n script.onload = () => resolve();\n script.onerror = () =>\n reject(new Error(`Failed to load script: ${src}`));\n document.head.appendChild(script);\n });\n}\n\nexport function loadStyle(href: string): Promise<void> {\n return new Promise((resolve) => {\n if (document.querySelector(`link[href=\"${href}\"]`)) {\n resolve();\n return;\n }\n\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = href;\n link.onload = () => resolve();\n document.head.appendChild(link);\n });\n}\n\nexport async function createExtensionManager(\n extensions: Extension[],\n): Promise<ExtensionManager> {\n const scripts = extensions.flatMap((ext) => ext.externalScripts || []);\n const styles = extensions.flatMap((ext) => ext.externalStyles || []);\n\n await Promise.all([...scripts.map(loadScript), ...styles.map(loadStyle)]);\n\n return {\n async executeHook(hookName: string, context: Record<string, unknown> = {}) {\n for (const ext of extensions) {\n if (ext.hooks?.[hookName]) {\n try {\n await ext.hooks[hookName]({ context });\n } catch (error) {\n console.error(\n `[ExtensionManager] Error in hook \"${hookName}\" for extension \"${ext.name}\":`,\n error,\n );\n throw error;\n }\n }\n }\n },\n };\n}\n"],"names":["getFormValues","form","formData","getFormErrors","data","result","key","field","mergeOptions","target","source","options","destination","item","index","deepmerge","merge","prev","next","toLanguageTag","locale","useSlot","name","context","callback","children","render","contentTag","slotsQueue","useContext","SlotQueueContext","elementRef","useRef","status","methodsRef","props","_setProps","useState","_state","setState","state","useMemo","value","intl","IntlContext","_next","renderNode","cloneElement","n","_registerMethod","useCallback","cb","_htmlElementToVNode","elem","createElement","refElem","element","_a","log","_b","parent","vnode","handleLifeCycleRender","method","handleLifeCycleInit","error","useEffect","processChildren","isReady","Children","child","isValidElement","Slot","lazy","slot","slotTag","slotProps","attrs","getCookie","cookieName","cookies","foundValue","cookie","loadScript","src","resolve","reject","script","loadStyle","href","link","createExtensionManager","extensions","scripts","ext","styles","hookName"],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/tools", "version": "1.6.0-beta3", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/tools", "version": "1.7.0-alpha1", "license": "SEE LICENSE IN LICENSE.md"}
package/preact-compat.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{N as a,b as t,k as n,C as r,e as u,L as o,U as d,o as l,i as c,G as i,_ as m,j as f,n as E,m as _,R as S,r as p,s as C,u as R,v as y,w as I,z as L,I as N,f as O,F as T,J as b,K as h,M as x,O as D,Q as F,q as M,x as g,P as U,V,y as v,c as A,g as P,d as k,W as w,a as z,T as B,p as W,A as Y,h as j,X as q,Y as G,Z as H}from"./chunks/icons/Add.js";export{a as Children,t as Component,n as Fragment,r as PureComponent,u as StrictMode,o as Suspense,d as SuspenseList,l as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,c as cloneElement,i as createContext,m as createElement,f as createFactory,E as createPortal,_ as createRef,S as default,p as findDOMNode,C as flushSync,R as forwardRef,y as hydrate,I as isElement,L as isFragment,N as isMemo,O as isValidElement,T as lazy,b as memo,h as render,x as startTransition,D as unmountComponentAtNode,F as unstable_batchedUpdates,M as useCallback,g as useContext,U as useDebugValue,V as useDeferredValue,v as useEffect,A as useErrorBoundary,P as useId,k as useImperativeHandle,w as useInsertionEffect,z as useLayoutEffect,B as useMemo,W as useReducer,Y as useRef,j as useState,q as useSyncExternalStore,G as useTransition,H as version};
4
4
  //# sourceMappingURL=preact-compat.js.map
package/preact-hooks.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{q as a,x as u,P as t,y as r,c as o,g as f,d as c,a as d,T as l,p as m,A as n,h as p}from"./chunks/icons/Add.js";export{a as useCallback,u as useContext,t as useDebugValue,r as useEffect,o as useErrorBoundary,f as useId,c as useImperativeHandle,d as useLayoutEffect,l as useMemo,m as useReducer,n as useRef,p as useState};
4
4
  //# sourceMappingURL=preact-hooks.js.map
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{l,k as _}from"./chunks/icons/Add.js";var v=/["&<]/;function p(r){if(r.length===0||v.test(r)===!1)return r;for(var t=0,e=0,a="",n="";e<r.length;e++){switch(r.charCodeAt(e)){case 34:n="&quot;";break;case 38:n="&amp;";break;case 60:n="&lt;";break;default:continue}e!==t&&(a+=r.slice(t,e)),a+=n,t=e+1}return e!==t&&(a+=r.slice(t,e)),a}var y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d=0,x=Array.isArray;function b(r,t,e,a,n,i){t||(t={});var s,o,f=t;if("ref"in f)for(o in f={},t)o=="ref"?s=t[o]:f[o]=t[o];var u={type:r,props:f,key:e,ref:s,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--d,__i:-1,__u:0,__source:n,__self:i};if(typeof r=="function"&&(s=r.defaultProps))for(o in s)f[o]===void 0&&(f[o]=s[o]);return l.vnode&&l.vnode(u),u}function k(r){var t=b(_,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},g=/[A-Z]/g;function m(r,t){if(l.attr){var e=l.attr(r,t);if(typeof e=="string")return e}if(r==="ref"||r==="key")return"";if(r==="style"&&typeof t=="object"){var a="";for(var n in t){var i=t[n];if(i!=null&&i!==""){var s=n[0]=="-"?n:c[n]||(c[n]=n.replace(g,"-$&").toLowerCase()),o=";";typeof i!="number"||s.startsWith("--")||y.test(s)||(o="px;"),a=a+s+":"+i+o}}return r+'="'+a+'"'}return t==null||t===!1||typeof t=="function"||typeof t=="object"?"":t===!0?r:r+'="'+p(t)+'"'}function j(r){if(r==null||typeof r=="boolean"||typeof r=="function")return null;if(typeof r=="object"){if(r.constructor===void 0)return r;if(x(r)){for(var t=0;t<r.length;t++)r[t]=j(r[t]);return r}}return p(""+r)}export{_ as Fragment,b as jsx,m as jsxAttr,b as jsxDEV,j as jsxEscape,k as jsxTemplate,b as jsxs};
4
4
  //# sourceMappingURL=preact-jsx-runtime.js.map
package/preact.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{b as t,k as s,E as r,G as n,_ as o,m as l,_ as m,D as c,t as d,l as i,B as E,H as h}from"./chunks/icons/Add.js";export{t as Component,s as Fragment,r as cloneElement,n as createContext,o as createElement,l as createRef,m as h,c as hydrate,d as isValidElement,i as options,E as render,h as toChildArray};
4
4
  //# sourceMappingURL=preact.js.map
package/recaptcha.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{FetchGraphQL as l}from"./fetch-graphql.js";const n={failedFetch:"Failed to fetch config from backend with status:",failedSetStorageConfig:"Failed to set storage config",failedGetStorageConfig:"Configuration could not be loaded.",failedExecutionRecaptcha:"Recaptcha execution failed",failedInitializing:"An error occurred while initializing ReCaptcha:"},u={PLACE_ORDER:"placeOrder",CONTACT:"contactUs",CUSTOMER_LOGIN:"generateCustomerToken",CUSTOMER_FORGOT_PASSWORD:"requestPasswordResetEmail",CUSTOMER_CREATE:"createCustomerV2",CUSTOMER_EDIT:"updateCustomerV2",NEWSLETTER:"subscribeEmailToNewsletter",PRODUCT_REVIEW:"createProductReview",SENDFRIEND:"SENDFRIEND",BRAINTREE:"BRAINTREE"},h=".grecaptcha-badge iframe",f=(o,e)=>{if(o&&o.forms){const t=o.forms.concat(e).map(a=>typeof a!="string"?{...a,enabledBadgePlace:!1}:{badgeId:u[a],enabledBadgePlace:!1});return{...o,forms:[...new Set(t)]}}},g=async(o,e=1,t=1e3)=>{const a=sessionStorage.getItem(o);return a!==null?JSON.parse(a):e>0?(await new Promise(r=>setTimeout(r,t)),g(o,e-1,t)):null},p=(o,e,t)=>{if(!o||!e.websiteKey)return null;try{sessionStorage.setItem(o,JSON.stringify(e))}catch(a){return t&&console.error(n.failedSetStorageConfig,a),null}},C=o=>new Promise((e,t)=>{try{if(document.querySelector(o)){e();return}const a=new MutationObserver(()=>{document.querySelector(o)&&(e(),a.disconnect())});a.observe(document.body,{childList:!0,subtree:!1})}catch(a){t(a)}}),m=async()=>{try{return await C(h),!0}catch{return!1}},b=o=>{const e=t=>t.replace(/_([a-z])/g,(a,r)=>r.toUpperCase());return Object.keys(o).reduce((t,a)=>{const r=e(a);return t[r]=o[a],t},{})},{failedExecutionRecaptcha:d}=n,y=async o=>{if(!window.grecaptcha)return Promise.reject(d);try{return await window.grecaptcha.execute(o,{action:"click"})}catch(e){return Promise.reject(`${d} : ${e}`)}},_=()=>new Promise(o=>{const e=new MutationObserver((a,r)=>{window.grecaptcha&&(r.disconnect(),o(!0))}),t={childList:!0,subtree:!0,attributes:!0};e.observe(document.body,t)}),w=async(o,e,t)=>(window.grecaptcha||await _(),grecaptcha.ready(()=>{const a=document.querySelectorAll(`#${o}`);a.length&&(a.forEach(r=>r.id=`${r.id}_${Math.random().toString(36)}`),a.forEach(r=>{if(r.innerHTML==="")try{grecaptcha.render(r.id,{sitekey:e.websiteKey,badge:e.badgePosition,size:"invisible",theme:e.theme??"light"})}catch(i){t&&console.error(i)}}))})),S=`query {
4
4
  recaptchaV3Config {
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  console.warn(`[importmap not supported] This browser does not support import maps. A fallback shim is now being used to enable module loading.
4
4
  `,`You may see warnings like: "Relative module specifiers must start with './', '../', or '/'." — these can be safely ignored.`);document.head.prepend(Object.assign(document.createElement("script"),{type:"esms-options",innerHTML:JSON.stringify({shimMode:!0})}));document.querySelectorAll("script").forEach(U=>{U.type==="importmap"?U.setAttribute("type","importmap-shim"):U.type==="module"&&U.setAttribute("type","module-shim")});(function(){const U=typeof document<"u",Q=()=>{},dt=U?document.querySelector("script[type=esms-options]"):void 0,j=dt?JSON.parse(dt.innerHTML):{};Object.assign(j,self.esmsInitOptions||{});let y=!U||!!j.shimMode;const ge=ee(y&&j.onimport),ve=ee(y&&j.resolve);let Yt=j.fetch?ee(j.fetch):fetch;const Gt=j.meta?ee(y&&j.meta):Q,pt=j.mapOverrides;let N=j.nonce;if(!N&&U){const r=document.querySelector("script[nonce]");r&&(N=r.nonce||r.getAttribute("nonce"))}const Qt=ee(j.onerror||Q),{revokeBlobURLs:bt,noLoadEventRetriggers:$e,globalLoadEventRetrigger:Vt,enforceIntegrity:Xt}=j;function ee(r){return typeof r=="string"?self[r]:r}const Ae=Array.isArray(j.polyfillEnable)?j.polyfillEnable:[],Se=Ae.includes("css-modules"),Oe=Ae.includes("json-modules"),te=Ae.includes("wasm-modules"),re=Ae.includes("source-phase"),mt=j.onpolyfill?ee(j.onpolyfill):()=>{console.log("%c^^ Module error above is polyfilled and can be ignored ^^","font-weight:900;color:#391")},Zt=!navigator.userAgentData&&!!navigator.userAgent.match(/Edge\/\d+\.\d+/),V=U?document.baseURI:`${location.protocol}//${location.host}${location.pathname.includes("/")?location.pathname.slice(0,location.pathname.lastIndexOf("/")+1):location.pathname}`,I=(r,n="text/javascript")=>URL.createObjectURL(new Blob([r],{type:n}));let{skip:W}=j;if(Array.isArray(W)){const r=W.map(n=>new URL(n,V).href);W=n=>r.some(o=>o[o.length-1]==="/"&&n.startsWith(o)||n===o)}else if(typeof W=="string"){const r=new RegExp(W);W=n=>r.test(n)}else W instanceof RegExp&&(W=r=>W.test(r));const e0=r=>self.dispatchEvent(Object.assign(new Event("error"),{error:r})),qe=r=>{(self.reportError||e0)(r),Qt(r)};function oe(r){return r?` imported from ${r}`:""}let Ee=!1;function t0(){Ee=!0}if(!y)if(document.querySelectorAll("script[type=module-shim],script[type=importmap-shim],link[rel=modulepreload-shim]").length)y=!0;else{let r=!1;for(const n of document.querySelectorAll("script[type=module],script[type=importmap]"))if(r){if(n.type==="importmap"&&r){Ee=!0;break}}else n.type!=="module"||n.ep||(r=!0)}const r0=/\\/g;function xe(r){try{if(r.indexOf(":")!==-1)return new URL(r).href}catch{}}function ht(r,n){return D(r,n)||xe(r)||D("./"+r,n)}function D(r,n){const o=n.indexOf("#"),d=n.indexOf("?");if(o+d>-2&&(n=n.slice(0,o===-1?d:d===-1||d>o?o:d)),r.indexOf("\\")!==-1&&(r=r.replace(r0,"/")),r[0]==="/"&&r[1]==="/")return n.slice(0,n.indexOf(":")+1)+r;if(r[0]==="."&&(r[1]==="/"||r[1]==="."&&(r[2]==="/"||r.length===2&&(r+="/"))||r.length===1&&(r+="/"))||r[0]==="/"){const c=n.slice(0,n.indexOf(":")+1);if(c==="blob:")throw new TypeError(`Failed to resolve module specifier "${r}". Invalid relative url or base scheme isn't hierarchical.`);let l;if(n[c.length+1]==="/"?c!=="file:"?(l=n.slice(c.length+2),l=l.slice(l.indexOf("/")+1)):l=n.slice(8):l=n.slice(c.length+(n[c.length]==="/")),r[0]==="/")return n.slice(0,n.length-l.length-1)+r;const p=l.slice(0,l.lastIndexOf("/")+1)+r,m=[];let w=-1;for(let b=0;b<p.length;b++)if(w===-1){if(p[b]==="."){if(p[b+1]==="."&&(p[b+2]==="/"||b+2===p.length)){m.pop(),b+=2;continue}if(p[b+1]==="/"||b+1===p.length){b+=1;continue}}for(;p[b]==="/";)b++;w=b}else p[b]==="/"&&(m.push(p.slice(w,b+1)),w=-1);return w!==-1&&m.push(p.slice(w)),n.slice(0,n.length-l.length)+m.join("")}}function kt(r,n,o){const d={imports:Object.assign({},o.imports),scopes:Object.assign({},o.scopes),integrity:Object.assign({},o.integrity)};if(r.imports&&yt(r.imports,d.imports,n,o),r.scopes)for(let c in r.scopes){const l=ht(c,n);yt(r.scopes[c],d.scopes[l]||(d.scopes[l]={}),n,o)}return r.integrity&&s0(r.integrity,d.integrity,n),d}function Je(r,n){if(n[r])return r;let o=r.length;do{const d=r.slice(0,o+1);if(d in n)return d}while((o=r.lastIndexOf("/",o-1))!==-1)}function wt(r,n){const o=Je(r,n);if(o){const d=n[o];return d===null?void 0:d+r.slice(o.length)}}function De(r,n,o){let d=o&&Je(o,r.scopes);for(;d;){const c=wt(n,r.scopes[d]);if(c)return c;d=Je(d.slice(0,d.lastIndexOf("/")),r.scopes)}return wt(n,r.imports)||n.indexOf(":")!==-1&&n}function yt(r,n,o,d){for(let c in r){const l=D(c,o)||c;if((!y||!pt)&&n[l]&&n[l]!==r[l])throw Error(`Rejected map override "${l}" from ${n[l]} to ${r[l]}.`);let p=r[c];if(typeof p!="string")continue;const m=De(d,D(p,o)||p,o);m?n[l]=m:console.warn(`Mapping "${c}" -> "${r[c]}" does not resolve`)}}function s0(r,n,o){for(let d in r){const c=D(d,o)||d;if((!y||!pt)&&n[c]&&n[c]!==r[c])throw Error(`Rejected map integrity override "${c}" from ${n[c]} to ${r[c]}.`);n[c]=r[d]}}let H=!U&&(0,eval)("u=>import(u)"),ce;const n0=U&&new Promise(r=>{const n=Object.assign(document.createElement("script"),{src:I("self._d=u=>import(u)"),ep:!0});n.setAttribute("nonce",N),n.addEventListener("load",()=>{if(!(ce=!!(H=self._d))){let o;window.addEventListener("error",d=>o=d),H=(d,c)=>new Promise((l,p)=>{const m=Object.assign(document.createElement("script"),{type:"module",src:I(`import*as m from'${d}';self._esmsi=m`)});o=void 0,m.ep=!0,N&&m.setAttribute("nonce",N),m.addEventListener("error",w),m.addEventListener("load",w);function w(b){document.head.removeChild(m),self._esmsi?(l(self._esmsi,V),self._esmsi=void 0):(p(!(b instanceof Event)&&b||o&&o.error||new Error(`Error loading ${c&&c.errUrl||d} (${m.src}).`)),o=void 0)}document.head.appendChild(m)})}document.head.removeChild(n),delete self._d,r()}),document.head.appendChild(n)});let Le=!1,Ce=!1;const Fe=U&&HTMLScriptElement.supports;let se=Fe&&Fe.name==="supports"&&Fe("importmap"),je=ce,Me=!1,Ue=!1;const Ie=[0,97,115,109,1,0,0,0];let i0=Promise.resolve(n0).then(()=>{if(ce)return U?new Promise(r=>{const n=document.createElement("iframe");n.style.display="none",n.setAttribute("nonce",N);function o({data:m}){Array.isArray(m)&&m[0]==="esms"&&([,se,je,Ce,Le,Me,Ue]=m,r(),document.head.removeChild(n),window.removeEventListener("message",o,!1))}window.addEventListener("message",o,!1);const d=`<script nonce=${N||""}>b=(s,type='text/javascript')=>URL.createObjectURL(new Blob([s],{type}));document.head.appendChild(Object.assign(document.createElement('script'),{type:'importmap',nonce:"${N}",innerText:\`{"imports":{"x":"\${b('')}"}}\`}));Promise.all([${se?"true,true":"'x',b('import.meta')"}, ${Se?`b(\`import"\${b('','text/css')}"with{type:"css"}\`)`:"false"}, ${Oe?`b(\`import"\${b('{}','text/json')}"with{type:"json"}\`)`:"false"}, ${te?`b(\`import"\${b(new Uint8Array(${JSON.stringify(Ie)}),'application/wasm')}"\`)`:"false"}, ${te&&re?`b(\`import source x from "\${b(new Uint8Array(${JSON.stringify(Ie)}),'application/wasm')}"\`)`:"false"}].map(x =>typeof x==='string'?import(x).then(()=>true,()=>false):x)).then(a=>parent.postMessage(['esms'].concat(a),'*'))<\/script>`;let c=!1,l=!1;function p(){if(!c){l=!0;return}const m=n.contentDocument;if(m&&m.head.childNodes.length===0){const w=m.createElement("script");N&&w.setAttribute("nonce",N),w.innerHTML=d.slice(15+(N?N.length:0),-9),m.head.appendChild(w)}}n.onload=p,document.head.appendChild(n),c=!0,"srcdoc"in n?n.srcdoc=d:n.contentDocument.write(d),l&&p()}):Promise.all([se||H(I("import.meta")).then(()=>je=!0,Q),Se&&H(I(`import"${I("","text/css")}"with{type:"css"}`)).then(()=>Ce=!0,Q),Oe&&H(I(`import"${I("{}","text/json")}"with{type:"json"}`)).then(()=>Le=!0,Q),te&&H(I(`import"${I(new Uint8Array(Ie),"application/wasm")}"`)).then(()=>Me=!0,Q),te&&re&&H(I(`import source x from"${I(new Uint8Array(Ie),"application/wasm")}"`)).then(()=>Ue=!0,Q)])}),A,Pe,Be,le=2<<19;const gt=new Uint8Array(new Uint16Array([1]).buffer)[0]===1?function(r,n){const o=r.length;let d=0;for(;d<o;)n[d]=r.charCodeAt(d++)}:function(r,n){const o=r.length;let d=0;for(;d<o;){const c=r.charCodeAt(d);n[d++]=(255&c)<<8|c>>>8}},a0="xportmportlassetaourceromsyncunctionssertvoyiedelecontininstantybreareturdebuggeawaithrwhileforifcatcfinallels";let O,vt,g;function o0(r,n="@"){O=r,vt=n;const o=2*O.length+(2<<18);if(o>le||!A){for(;o>le;)le*=2;Pe=new ArrayBuffer(le),gt(a0,new Uint16Array(Pe,16,110)),A=function(p,m,w){var b=new p.Int8Array(w),f=new p.Int16Array(w),t=new p.Int32Array(w),R=new p.Uint8Array(w),$=new p.Uint16Array(w),E=1040;function _(){var e=0,s=0,a=0,u=0,i=0,h=0;h=E,E=E+10240|0,b[804]=1,b[803]=0,f[399]=0,f[400]=0,t[69]=t[2],b[805]=0,t[68]=0,b[802]=0,t[70]=h+2048,t[71]=h,b[806]=0,e=(t[3]|0)+-2|0,t[72]=e,s=e+(t[66]<<1)|0,t[73]=s;e:for(;;){if(a=e+2|0,t[72]=a,e>>>0>=s>>>0){i=18;break}r:do switch(f[a>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{if(!(f[400]|0)&&we(a)|0&&!(P(e+4|0,16,10)|0)&&(K(),(b[804]|0)==0)){i=9;break e}else i=17;break}case 105:{we(a)|0&&!(P(e+4|0,26,10)|0)&&Y(),i=17;break}case 59:{i=17;break}case 47:switch(f[e+4>>1]|0){case 47:{at();break r}case 42:{it(1);break r}default:{i=16;break e}}default:{i=16;break e}}while(!1);(i|0)==17&&(i=0,t[69]=t[72]),e=t[72]|0,s=t[73]|0}(i|0)==9?(e=t[72]|0,t[69]=e,i=19):(i|0)==16?(b[804]=0,t[72]=e,i=19):(i|0)==18&&(b[802]|0?e=0:(e=a,i=19));do if((i|0)==19){e:for(;;){if(s=e+2|0,t[72]=s,e>>>0>=(t[73]|0)>>>0){i=86;break}r:do switch(f[s>>1]|0){case 9:case 10:case 11:case 12:case 13:case 32:break;case 101:{!(f[400]|0)&&we(s)|0&&!(P(e+4|0,16,10)|0)&&K(),i=85;break}case 105:{we(s)|0&&!(P(e+4|0,26,10)|0)&&Y(),i=85;break}case 99:{we(s)|0&&!(P(e+4|0,36,8)|0)&&ae(f[e+12>>1]|0)|0&&(b[806]=1),i=85;break}case 40:{u=t[70]|0,s=f[400]|0,i=s&65535,t[u+(i<<3)>>2]=1,a=t[69]|0,f[400]=s+1<<16>>16,t[u+(i<<3)+4>>2]=a,i=85;break}case 41:{if(s=f[400]|0,!(s<<16>>16)){i=36;break e}i=s+-1<<16>>16,f[400]=i,u=f[399]|0,s=u&65535,u<<16>>16&&(t[(t[70]|0)+((i&65535)<<3)>>2]|0)==5&&(s=t[(t[71]|0)+(s+-1<<2)>>2]|0,a=s+4|0,t[a>>2]|0||(t[a>>2]=(t[69]|0)+2),t[s+12>>2]=e+4,f[399]=u+-1<<16>>16),i=85;break}case 123:{i=t[69]|0,u=t[63]|0,e=i;do if((f[i>>1]|0)==41&(u|0)!=0&&(t[u+4>>2]|0)==(i|0))if(s=t[64]|0,t[63]=s,s){t[s+32>>2]=0;break}else{t[59]=0;break}while(!1);u=t[70]|0,a=f[400]|0,i=a&65535,t[u+(i<<3)>>2]=b[806]|0?6:2,f[400]=a+1<<16>>16,t[u+(i<<3)+4>>2]=e,b[806]=0,i=85;break}case 125:{if(e=f[400]|0,!(e<<16>>16)){i=49;break e}u=t[70]|0,i=e+-1<<16>>16,f[400]=i,(t[u+((i&65535)<<3)>>2]|0)==4&&me(),i=85;break}case 39:{M(39),i=85;break}case 34:{M(34),i=85;break}case 47:switch(f[e+4>>1]|0){case 47:{at();break r}case 42:{it(1);break r}default:{e=t[69]|0,s=f[e>>1]|0;t:do if(y0(s)|0)switch(s<<16>>16){case 46:if(((f[e+-2>>1]|0)+-48&65535)<10){i=66;break t}else break t;case 43:if((f[e+-2>>1]|0)==43){i=66;break t}else break t;case 45:if((f[e+-2>>1]|0)==45){i=66;break t}else break t;default:break t}else{switch(s<<16>>16){case 41:if(A0(t[(t[70]|0)+($[400]<<3)+4>>2]|0)|0)break t;i=66;break t;case 125:break;default:{i=66;break t}}a=t[70]|0,u=$[400]|0,!(w0(t[a+(u<<3)+4>>2]|0)|0)&&(t[a+(u<<3)>>2]|0)!=6&&(i=66)}while(!1);t:do if((i|0)==66&&!(L(e)|0)){switch(s<<16>>16){case 0:break t;case 47:{if(b[805]|0)break t;break}default:}if(i=t[65]|0,i|0&&e>>>0>=(t[i>>2]|0)>>>0&&e>>>0<=(t[i+4>>2]|0)>>>0){nt(),b[805]=0,i=85;break r}a=t[3]|0;do{if(e>>>0<=a>>>0)break;e=e+-2|0,t[69]=e,s=f[e>>1]|0}while(!(We(s)|0));if(He(s)|0){do{if(e>>>0<=a>>>0)break;e=e+-2|0,t[69]=e}while(He(f[e>>1]|0)|0);if(v0(e)|0){nt(),b[805]=0,i=85;break r}}b[805]=1,i=85;break r}while(!1);nt(),b[805]=0,i=85;break r}}case 96:{u=t[70]|0,a=f[400]|0,i=a&65535,t[u+(i<<3)+4>>2]=t[69],f[400]=a+1<<16>>16,t[u+(i<<3)>>2]=3,me(),i=85;break}default:i=85}while(!1);(i|0)==85&&(i=0,t[69]=t[72]),e=t[72]|0}if((i|0)==36){T(),e=0;break}else if((i|0)==49){T(),e=0;break}else if((i|0)==86){e=b[802]|0?0:(f[399]|f[400])<<16>>16==0;break}}while(!1);return E=h,e|0}function K(){var e=0,s=0,a=0,u=0,i=0,h=0,x=0,Z=0,ct=0,lt=0,ft=0,ut=0,v=0,S=0;Z=t[72]|0,ct=t[65]|0,S=Z+12|0,t[72]=S,a=k(1)|0,e=t[72]|0,(e|0)==(S|0)&&!(Ne(a)|0)||(v=3);e:do if((v|0)==3){r:do switch(a<<16>>16){case 123:{for(t[72]=e+2,e=k(1)|0,s=t[72]|0;;){if(ye(e)|0?(M(e),e=(t[72]|0)+2|0,t[72]=e):(J(e)|0,e=t[72]|0),k(1)|0,e=he(s,e)|0,e<<16>>16==44&&(t[72]=(t[72]|0)+2,e=k(1)|0),e<<16>>16==125){v=15;break}if(S=s,s=t[72]|0,(s|0)==(S|0)){v=12;break}if(s>>>0>(t[73]|0)>>>0){v=14;break}}if((v|0)==12){T();break e}else if((v|0)==14){T();break e}else if((v|0)==15){b[803]=1,t[72]=(t[72]|0)+2;break r}break}case 42:{t[72]=e+2,k(1)|0,S=t[72]|0,he(S,S)|0;break}default:{switch(b[804]=0,a<<16>>16){case 100:{switch(Z=e+14|0,t[72]=Z,(k(1)|0)<<16>>16){case 97:{s=t[72]|0,!(P(s+2|0,66,8)|0)&&(i=s+10|0,He(f[i>>1]|0)|0)&&(t[72]=i,k(0)|0,v=22);break}case 102:{v=22;break}case 99:{s=t[72]|0,!(P(s+2|0,36,8)|0)&&(u=s+10|0,S=f[u>>1]|0,ae(S)|0|S<<16>>16==123)&&(t[72]=u,h=k(1)|0,h<<16>>16!=123)&&(ut=h,v=31);break}default:}t:do if((v|0)==22&&(x=t[72]|0,(P(x+2|0,74,14)|0)==0)){if(a=x+16|0,s=f[a>>1]|0,!(ae(s)|0))switch(s<<16>>16){case 40:case 42:break;default:break t}t[72]=a,s=k(1)|0,s<<16>>16==42&&(t[72]=(t[72]|0)+2,s=k(1)|0),s<<16>>16!=40&&(ut=s,v=31)}while(!1);if((v|0)==31&&(lt=t[72]|0,J(ut)|0,ft=t[72]|0,ft>>>0>lt>>>0)){ie(e,Z,lt,ft),t[72]=(t[72]|0)+-2;break e}ie(e,Z,0,0),t[72]=e+12;break e}case 97:{t[72]=e+10,k(0)|0,e=t[72]|0,v=35;break}case 102:{v=35;break}case 99:{if(!(P(e+2|0,36,8)|0)&&(s=e+10|0,We(f[s>>1]|0)|0)){t[72]=s,S=k(1)|0,v=t[72]|0,J(S)|0,S=t[72]|0,ie(v,S,v,S),t[72]=(t[72]|0)+-2;break e}e=e+4|0,t[72]=e;break}case 108:case 118:break;default:break e}if((v|0)==35){t[72]=e+16,e=k(1)|0,e<<16>>16==42&&(t[72]=(t[72]|0)+2,e=k(1)|0),v=t[72]|0,J(e)|0,S=t[72]|0,ie(v,S,v,S),t[72]=(t[72]|0)+-2;break e}t[72]=e+6,b[804]=0,a=k(1)|0,e=t[72]|0,a=(J(a)|0|32)<<16>>16==123,u=t[72]|0,a&&(t[72]=u+2,S=k(1)|0,e=t[72]|0,J(S)|0);t:for(;s=t[72]|0,(s|0)!=(e|0);){if(ie(e,s,e,s),s=k(1)|0,a)switch(s<<16>>16){case 93:case 125:break e;default:}if(e=t[72]|0,s<<16>>16!=44){v=51;break}switch(t[72]=e+2,s=k(1)|0,e=t[72]|0,s<<16>>16){case 91:case 123:{v=51;break t}default:}J(s)|0}if((v|0)==51&&(t[72]=e+-2),!a)break e;t[72]=u+-2;break e}}while(!1);if(S=(k(1)|0)<<16>>16==102,e=t[72]|0,S&&!(P(e+2|0,60,6)|0))for(t[72]=e+8,G(Z,k(1)|0,0),e=ct|0?ct+16|0:240;;){if(e=t[e>>2]|0,!e)break e;t[e+12>>2]=0,t[e+8>>2]=0,e=e+16|0}t[72]=e+-2}while(!1)}function Y(){var e=0,s=0,a=0,u=0,i=0,h=0,x=0;i=t[72]|0,a=i+12|0,t[72]=a,u=k(1)|0,s=t[72]|0;e:do if(u<<16>>16!=46)u<<16>>16==115&s>>>0>a>>>0?!(P(s+2|0,50,10)|0)&&(e=s+12|0,ae(f[e>>1]|0)|0)?h=14:(s=6,a=0,h=46):(e=u,a=0,h=15);else switch(t[72]=s+2,(k(1)|0)<<16>>16){case 109:{if(e=t[72]|0,P(e+2|0,44,6)|0||(s=t[69]|0,!(ot(s)|0)&&(f[s>>1]|0)==46))break e;q(i,i,e+8|0,2);break e}case 115:{if(e=t[72]|0,P(e+2|0,50,10)|0||(s=t[69]|0,!(ot(s)|0)&&(f[s>>1]|0)==46))break e;e=e+12|0,h=14;break e}default:break e}while(!1);(h|0)==14&&(t[72]=e,e=k(1)|0,a=1,h=15);e:do if((h|0)==15)switch(e<<16>>16){case 40:{if(s=t[70]|0,x=f[400]|0,u=x&65535,t[s+(u<<3)>>2]=5,e=t[72]|0,f[400]=x+1<<16>>16,t[s+(u<<3)+4>>2]=e,(f[t[69]>>1]|0)==46)break e;switch(t[72]=e+2,s=k(1)|0,q(i,t[72]|0,0,e),a?(e=t[63]|0,t[e+28>>2]=5):e=t[63]|0,i=t[71]|0,x=f[399]|0,f[399]=x+1<<16>>16,t[i+((x&65535)<<2)>>2]=e,s<<16>>16){case 39:{M(39);break}case 34:{M(34);break}default:{t[72]=(t[72]|0)+-2;break e}}switch(e=(t[72]|0)+2|0,t[72]=e,(k(1)|0)<<16>>16){case 44:{t[72]=(t[72]|0)+2,k(1)|0,i=t[63]|0,t[i+4>>2]=e,x=t[72]|0,t[i+16>>2]=x,b[i+24>>0]=1,t[72]=x+-2;break e}case 41:{f[400]=(f[400]|0)+-1<<16>>16,x=t[63]|0,t[x+4>>2]=e,t[x+12>>2]=(t[72]|0)+2,b[x+24>>0]=1,f[399]=(f[399]|0)+-1<<16>>16;break e}default:{t[72]=(t[72]|0)+-2;break e}}}case 123:{if(a){s=12,a=1,h=46;break e}if(e=t[72]|0,f[400]|0){t[72]=e+-2;break e}for(;!(e>>>0>=(t[73]|0)>>>0);){if(e=k(1)|0,ye(e)|0)M(e);else if(e<<16>>16==125){h=36;break}e=(t[72]|0)+2|0,t[72]=e}if((h|0)==36&&(t[72]=(t[72]|0)+2),x=(k(1)|0)<<16>>16==102,e=t[72]|0,x&&P(e+2|0,60,6)|0){T();break e}if(t[72]=e+8,e=k(1)|0,ye(e)|0){G(i,e,0);break e}else{T();break e}}default:{if(a){s=12,a=1,h=46;break e}switch(e<<16>>16){case 42:case 39:case 34:{a=0,h=48;break e}default:{s=6,a=0,h=46;break e}}}}while(!1);(h|0)==46&&(e=t[72]|0,(e|0)==(i+(s<<1)|0)?t[72]=e+-2:h=48);do if((h|0)==48){if(f[400]|0){t[72]=(t[72]|0)+-2;break}for(e=t[73]|0,s=t[72]|0;;){if(s>>>0>=e>>>0){h=55;break}if(u=f[s>>1]|0,ye(u)|0){h=53;break}x=s+2|0,t[72]=x,s=x}if((h|0)==53){G(i,u,a);break}else if((h|0)==55){T();break}}while(!1)}function L(e){e=e|0;var s=0,a=0;e:do switch(f[e>>1]|0){case 100:switch(f[e+-2>>1]|0){case 105:{s=C(e+-4|0,98,2)|0;break e}case 108:{s=C(e+-4|0,102,3)|0;break e}default:{s=0;break e}}case 101:switch(f[e+-2>>1]|0){case 115:switch(f[e+-4>>1]|0){case 108:{s=ke(e+-6|0,101)|0;break e}case 97:{s=ke(e+-6|0,99)|0;break e}default:{s=0;break e}}case 116:{s=C(e+-4|0,108,4)|0;break e}case 117:{s=C(e+-4|0,116,6)|0;break e}default:{s=0;break e}}case 102:{if((f[e+-2>>1]|0)==111)if(a=e+-4|0,(a|0)!=(t[3]|0)&&(s=f[a>>1]|0,!(We(s)|0)))if(s<<16>>16==101)switch(f[e+-6>>1]|0){case 99:{s=C(e+-8|0,128,6)|0;break e}case 112:{s=C(e+-8|0,140,2)|0;break e}default:{s=0;break e}}else s=0;else s=1;else s=0;break}case 107:{s=C(e+-2|0,144,4)|0;break}case 110:{s=e+-2|0,ke(s,105)|0?s=1:s=C(s,152,5)|0;break}case 111:{s=ke(e+-2|0,100)|0;break}case 114:{s=C(e+-2|0,162,7)|0;break}case 116:{s=C(e+-2|0,176,4)|0;break}case 119:switch(f[e+-2>>1]|0){case 101:{s=ke(e+-4|0,110)|0;break e}case 111:{s=C(e+-4|0,184,3)|0;break e}default:{s=0;break e}}default:s=0}while(!1);return s|0}function G(e,s,a){e=e|0,s=s|0,a=a|0;var u=0,i=0;switch(u=(t[72]|0)+2|0,s<<16>>16){case 39:{M(39),i=5;break}case 34:{M(34),i=5;break}default:T()}do if((i|0)==5){if(q(e,u,t[72]|0,1),a&&(t[(t[63]|0)+28>>2]=4),t[72]=(t[72]|0)+2,s=k(0)|0,a=s<<16>>16==97,a?(u=t[72]|0,P(u+2|0,88,10)|0&&(i=13)):(u=t[72]|0,s<<16>>16==119&&(f[u+2>>1]|0)==105&&(f[u+4>>1]|0)==116&&(f[u+6>>1]|0)==104||(i=13)),(i|0)==13){t[72]=u+-2;break}if(t[72]=u+((a?6:4)<<1),(k(1)|0)<<16>>16!=123){t[72]=u;break}a=t[72]|0,s=a;e:for(;;){switch(t[72]=s+2,s=k(1)|0,s<<16>>16){case 39:{M(39),t[72]=(t[72]|0)+2,s=k(1)|0;break}case 34:{M(34),t[72]=(t[72]|0)+2,s=k(1)|0;break}default:s=J(s)|0}if(s<<16>>16!=58){i=22;break}switch(t[72]=(t[72]|0)+2,(k(1)|0)<<16>>16){case 39:{M(39);break}case 34:{M(34);break}default:{i=26;break e}}switch(t[72]=(t[72]|0)+2,(k(1)|0)<<16>>16){case 125:{i=31;break e}case 44:break;default:{i=30;break e}}if(t[72]=(t[72]|0)+2,(k(1)|0)<<16>>16==125){i=31;break}s=t[72]|0}if((i|0)==22){t[72]=u;break}else if((i|0)==26){t[72]=u;break}else if((i|0)==30){t[72]=u;break}else if((i|0)==31){i=t[63]|0,t[i+16>>2]=a,t[i+12>>2]=(t[72]|0)+2;break}}while(!1)}function me(){var e=0,s=0,a=0,u=0;s=t[73]|0,a=t[72]|0;e:for(;;){if(e=a+2|0,a>>>0>=s>>>0){s=10;break}switch(f[e>>1]|0){case 96:{s=7;break e}case 36:{if((f[a+4>>1]|0)==123){s=6;break e}break}case 92:{e=a+4|0;break}default:}a=e}(s|0)==6?(e=a+4|0,t[72]=e,s=t[70]|0,u=f[400]|0,a=u&65535,t[s+(a<<3)>>2]=4,f[400]=u+1<<16>>16,t[s+(a<<3)+4>>2]=e):(s|0)==7?(t[72]=e,a=t[70]|0,u=(f[400]|0)+-1<<16>>16,f[400]=u,(t[a+((u&65535)<<3)>>2]|0)!=3&&T()):(s|0)==10&&(t[72]=e,T())}function k(e){e=e|0;var s=0,a=0,u=0;a=t[72]|0;e:do{s=f[a>>1]|0;r:do if(s<<16>>16!=47)if(e){if(ae(s)|0)break;break e}else{if(He(s)|0)break;break e}else switch(f[a+2>>1]|0){case 47:{at();break r}case 42:{it(e);break r}default:{s=47;break e}}while(!1);u=t[72]|0,a=u+2|0,t[72]=a}while(u>>>0<(t[73]|0)>>>0);return s|0}function q(e,s,a,u){e=e|0,s=s|0,a=a|0,u=u|0;var i=0,h=0;h=t[67]|0,t[67]=h+36,i=t[63]|0,t[(i|0?i+32|0:236)>>2]=h,t[64]=i,t[63]=h,t[h+8>>2]=e,(u|0)==2?(e=3,i=a):(i=(u|0)==1,e=i?1:2,i=i?a+2|0:0),t[h+12>>2]=i,t[h+28>>2]=e,t[h>>2]=s,t[h+4>>2]=a,t[h+16>>2]=0,t[h+20>>2]=u,s=(u|0)==1,b[h+24>>0]=s&1,t[h+32>>2]=0,s|(u|0)==2&&(b[803]=1)}function M(e){e=e|0;var s=0,a=0,u=0,i=0;for(i=t[73]|0,s=t[72]|0;;){if(u=s+2|0,s>>>0>=i>>>0){s=9;break}if(a=f[u>>1]|0,a<<16>>16==e<<16>>16){s=10;break}if(a<<16>>16==92)a=s+4|0,(f[a>>1]|0)==13?(s=s+6|0,s=(f[s>>1]|0)==10?s:a):s=a;else if(Kt(a)|0){s=9;break}else s=u}(s|0)==9?(t[72]=u,T()):(s|0)==10&&(t[72]=u)}function he(e,s){e=e|0,s=s|0;var a=0,u=0,i=0,h=0;return a=t[72]|0,u=f[a>>1]|0,h=(e|0)==(s|0),i=h?0:e,h=h?0:s,u<<16>>16==97&&(t[72]=a+4,a=k(1)|0,e=t[72]|0,ye(a)|0?(M(a),s=(t[72]|0)+2|0,t[72]=s):(J(a)|0,s=t[72]|0),u=k(1)|0,a=t[72]|0),(a|0)!=(e|0)&&ie(e,s,i,h),u|0}function k0(){var e=0,s=0,a=0;a=t[73]|0,s=t[72]|0;e:for(;;){if(e=s+2|0,s>>>0>=a>>>0){s=6;break}switch(f[e>>1]|0){case 13:case 10:{s=6;break e}case 93:{s=7;break e}case 92:{e=s+4|0;break}default:}s=e}return(s|0)==6?(t[72]=e,T(),e=0):(s|0)==7&&(t[72]=e,e=93),e|0}function nt(){var e=0,s=0,a=0;e:for(;;){if(e=t[72]|0,s=e+2|0,t[72]=s,e>>>0>=(t[73]|0)>>>0){a=7;break}switch(f[s>>1]|0){case 13:case 10:{a=7;break e}case 47:break e;case 91:{k0()|0;break}case 92:{t[72]=e+4;break}default:}}(a|0)==7&&T()}function w0(e){switch(e=e|0,f[e>>1]|0){case 62:{e=(f[e+-2>>1]|0)==61;break}case 41:case 59:{e=1;break}case 104:{e=C(e+-2|0,210,4)|0;break}case 121:{e=C(e+-2|0,218,6)|0;break}case 101:{e=C(e+-2|0,230,3)|0;break}default:e=0}return e|0}function it(e){e=e|0;var s=0,a=0,u=0,i=0,h=0;for(i=(t[72]|0)+2|0,t[72]=i,a=t[73]|0;s=i+2|0,!(i>>>0>=a>>>0||(u=f[s>>1]|0,!e&&Kt(u)|0));){if(u<<16>>16==42&&(f[i+4>>1]|0)==47){h=8;break}i=s}(h|0)==8&&(t[72]=s,s=i+4|0),t[72]=s}function P(e,s,a){e=e|0,s=s|0,a=a|0;var u=0,i=0;e:do if(!a)e=0;else{for(;u=b[e>>0]|0,i=b[s>>0]|0,u<<24>>24==i<<24>>24;)if(a=a+-1|0,a)e=e+1|0,s=s+1|0;else{e=0;break e}e=(u&255)-(i&255)|0}while(!1);return e|0}function Ne(e){e=e|0;e:do switch(e<<16>>16){case 38:case 37:case 33:{e=1;break}default:if((e&-8)<<16>>16==40|(e+-58&65535)<6)e=1;else{switch(e<<16>>16){case 91:case 93:case 94:{e=1;break e}default:}e=(e+-123&65535)<4}}while(!1);return e|0}function y0(e){e=e|0;e:do switch(e<<16>>16){case 38:case 37:case 33:break;default:if(!((e+-58&65535)<6|(e+-40&65535)<7&e<<16>>16!=41)){switch(e<<16>>16){case 91:case 94:break e;default:}return e<<16>>16!=125&(e+-123&65535)<4|0}}while(!1);return 1}function zt(e){e=e|0;var s=0;s=f[e>>1]|0;e:do if((s+-9&65535)>=5){switch(s<<16>>16){case 160:case 32:{s=1;break e}default:}if(Ne(s)|0)return s<<16>>16!=46|(ot(e)|0)|0;s=0}else s=1;while(!1);return s|0}function g0(e){e=e|0;var s=0,a=0,u=0,i=0;return a=E,E=E+16|0,u=a,t[u>>2]=0,t[66]=e,s=t[3]|0,i=s+(e<<1)|0,e=i+2|0,f[i>>1]=0,t[u>>2]=e,t[67]=e,t[59]=0,t[63]=0,t[61]=0,t[60]=0,t[65]=0,t[62]=0,E=a,s|0}function ie(e,s,a,u){e=e|0,s=s|0,a=a|0,u=u|0;var i=0,h=0;i=t[67]|0,t[67]=i+20,h=t[65]|0,t[(h|0?h+16|0:240)>>2]=i,t[65]=i,t[i>>2]=e,t[i+4>>2]=s,t[i+8>>2]=a,t[i+12>>2]=u,t[i+16>>2]=0,b[803]=1}function C(e,s,a){e=e|0,s=s|0,a=a|0;var u=0,i=0;return u=e+(0-a<<1)|0,i=u+2|0,e=t[3]|0,i>>>0>=e>>>0&&!(P(i,s,a<<1)|0)?(i|0)==(e|0)?e=1:e=zt(u)|0:e=0,e|0}function v0(e){switch(e=e|0,f[e>>1]|0){case 107:{e=C(e+-2|0,144,4)|0;break}case 101:{(f[e+-2>>1]|0)==117?e=C(e+-4|0,116,6)|0:e=0;break}default:e=0}return e|0}function ke(e,s){e=e|0,s=s|0;var a=0;return a=t[3]|0,a>>>0<=e>>>0&&(f[e>>1]|0)==s<<16>>16?(a|0)==(e|0)?a=1:a=We(f[e+-2>>1]|0)|0:a=0,a|0}function We(e){e=e|0;e:do if((e+-9&65535)<5)e=1;else{switch(e<<16>>16){case 32:case 160:{e=1;break e}default:}e=e<<16>>16!=46&(Ne(e)|0)}while(!1);return e|0}function at(){var e=0,s=0,a=0;e=t[73]|0,a=t[72]|0;e:for(;s=a+2|0,!(a>>>0>=e>>>0);)switch(f[s>>1]|0){case 13:case 10:break e;default:a=s}t[72]=s}function J(e){for(e=e|0;!(ae(e)|0||Ne(e)|0);)if(e=(t[72]|0)+2|0,t[72]=e,e=f[e>>1]|0,!(e<<16>>16)){e=0;break}return e|0}function $0(){var e=0;switch(e=t[(t[61]|0)+20>>2]|0,e|0){case 1:{e=-1;break}case 2:{e=-2;break}default:e=e-(t[3]|0)>>1}return e|0}function A0(e){return e=e|0,!(C(e,190,5)|0)&&!(C(e,200,3)|0)?e=C(e,206,2)|0:e=1,e|0}function He(e){switch(e=e|0,e<<16>>16){case 160:case 32:case 12:case 11:case 9:{e=1;break}default:e=0}return e|0}function ot(e){return e=e|0,(f[e>>1]|0)==46&&(f[e+-2>>1]|0)==46?e=(f[e+-4>>1]|0)==46:e=0,e|0}function we(e){return e=e|0,(t[3]|0)==(e|0)?e=1:e=zt(e+-2|0)|0,e|0}function S0(){var e=0;return e=t[(t[62]|0)+12>>2]|0,e?e=e-(t[3]|0)>>1:e=-1,e|0}function O0(){var e=0;return e=t[(t[61]|0)+12>>2]|0,e?e=e-(t[3]|0)>>1:e=-1,e|0}function E0(){var e=0;return e=t[(t[62]|0)+8>>2]|0,e?e=e-(t[3]|0)>>1:e=-1,e|0}function x0(){var e=0;return e=t[(t[61]|0)+16>>2]|0,e?e=e-(t[3]|0)>>1:e=-1,e|0}function L0(){var e=0;return e=t[(t[61]|0)+4>>2]|0,e?e=e-(t[3]|0)>>1:e=-1,e|0}function C0(){var e=0;return e=t[61]|0,e=t[(e|0?e+32|0:236)>>2]|0,t[61]=e,(e|0)!=0|0}function j0(){var e=0;return e=t[62]|0,e=t[(e|0?e+16|0:240)>>2]|0,t[62]=e,(e|0)!=0|0}function T(){b[802]=1,t[68]=(t[72]|0)-(t[3]|0)>>1,t[72]=(t[73]|0)+2}function ae(e){return e=e|0,(e|128)<<16>>16==160|(e+-9&65535)<5|0}function ye(e){return e=e|0,e<<16>>16==39|e<<16>>16==34|0}function M0(){return(t[(t[61]|0)+8>>2]|0)-(t[3]|0)>>1|0}function U0(){return(t[(t[62]|0)+4>>2]|0)-(t[3]|0)>>1|0}function Kt(e){return e=e|0,e<<16>>16==13|e<<16>>16==10|0}function I0(){return(t[t[61]>>2]|0)-(t[3]|0)>>1|0}function P0(){return(t[t[62]>>2]|0)-(t[3]|0)>>1|0}function R0(){return R[(t[61]|0)+24>>0]|0|0}function _0(e){e=e|0,t[3]=e}function T0(){return t[(t[61]|0)+28>>2]|0}function N0(){return(b[803]|0)!=0|0}function W0(){return(b[804]|0)!=0|0}function H0(){return t[68]|0}function q0(e){return e=e|0,E=e+992+15&-16,992}return{su:q0,ai:x0,e:H0,ee:U0,ele:S0,els:E0,es:P0,f:W0,id:$0,ie:L0,ip:R0,is:I0,it:T0,ms:N0,p:_,re:j0,ri:C0,sa:g0,se:O0,ses:_0,ss:M0}}(typeof self<"u"?self:global,{},Pe),Be=A.su(le-(2<<17))}const d=O.length+1;A.ses(Be),A.sa(d-1),gt(O,new Uint16Array(Pe,Be,d)),A.p()||(g=A.e(),F());const c=[],l=[];for(;A.ri();){const p=A.is(),m=A.ie(),w=A.ai(),b=A.id(),f=A.ss(),t=A.se(),R=A.it();let $;A.ip()&&($=ze(b===-1?p:p+1,O.charCodeAt(b===-1?p-1:p))),c.push({t:R,n:$,s:p,e:m,ss:f,se:t,d:b,a:w})}for(;A.re();){const p=A.es(),m=A.ee(),w=A.els(),b=A.ele(),f=O.charCodeAt(p),t=w>=0?O.charCodeAt(w):-1;l.push({s:p,e:m,ls:w,le:b,n:f===34||f===39?ze(p+1,f):O.slice(p,m),ln:w<0?void 0:t===34||t===39?ze(w+1,t):O.slice(w,b)})}return[c,l,!!A.f(),!!A.ms()]}function ze(r,n){g=r;let o="",d=g;for(;;){g>=O.length&&F();const c=O.charCodeAt(g);if(c===n)break;c===92?(o+=O.slice(d,g),o+=c0(),d=g):(c===8232||c===8233||$t(c)&&F(),++g)}return o+=O.slice(d,g++),o}function c0(){let r=O.charCodeAt(++g);switch(++g,r){case 110:return`
package/signals.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! Copyright 2025 Adobe
1
+ /*! Copyright 2026 Adobe
2
2
  All Rights Reserved. */
3
3
  import{b as V,l as E,A as N,T as U,y as q,t as z}from"./chunks/icons/Add.js";var B=Symbol.for("preact-signals");function b(){if(v>1)v--;else{for(var t,i=!1;d!==void 0;){var r=d;for(d=void 0,x++;r!==void 0;){var n=r.o;if(r.o=void 0,r.f&=-3,!(8&r.f)&&j(r))try{r.c()}catch(f){i||(t=f,i=!0)}r=n}}if(x=0,v--,i)throw t}}function K(t){if(v>0)return t();v++;try{return t()}finally{b()}}var o=void 0;function L(t){var i=o;o=void 0;try{return t()}finally{o=i}}var d=void 0,v=0,x=0,y=0;function O(t){if(o!==void 0){var i=t.n;if(i===void 0||i.t!==o)return i={i:0,S:t,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:i},o.s!==void 0&&(o.s.n=i),o.s=i,t.n=i,32&o.f&&t.S(i),i;if(i.i===-1)return i.i=0,i.n!==void 0&&(i.n.p=i.p,i.p!==void 0&&(i.p.n=i.n),i.p=o.s,i.n=void 0,o.s.n=i,o.s=i),i}}function u(t){this.v=t,this.i=0,this.n=void 0,this.t=void 0}u.prototype.brand=B;u.prototype.h=function(){return!0};u.prototype.S=function(t){this.t!==t&&t.e===void 0&&(t.x=this.t,this.t!==void 0&&(this.t.e=t),this.t=t)};u.prototype.U=function(t){if(this.t!==void 0){var i=t.e,r=t.x;i!==void 0&&(i.x=r,t.e=void 0),r!==void 0&&(r.e=i,t.x=void 0),t===this.t&&(this.t=r)}};u.prototype.subscribe=function(t){var i=this;return $(function(){var r=i.value,n=o;o=void 0;try{t(r)}finally{o=n}})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+""};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var t=o;o=void 0;try{return this.value}finally{o=t}};Object.defineProperty(u.prototype,"value",{get:function(){var t=O(this);return t!==void 0&&(t.i=this.i),this.v},set:function(t){if(t!==this.v){if(x>100)throw new Error("Cycle detected");this.v=t,this.i++,y++,v++;try{for(var i=this.t;i!==void 0;i=i.x)i.t.N()}finally{b()}}}});function C(t){return new u(t)}function j(t){for(var i=t.s;i!==void 0;i=i.n)if(i.S.i!==i.i||!i.S.h()||i.S.i!==i.i)return!0;return!1}function A(t){for(var i=t.s;i!==void 0;i=i.n){var r=i.S.n;if(r!==void 0&&(i.r=r),i.S.n=i,i.i=-1,i.n===void 0){t.s=i;break}}}function P(t){for(var i=t.s,r=void 0;i!==void 0;){var n=i.p;i.i===-1?(i.S.U(i),n!==void 0&&(n.n=i.n),i.n!==void 0&&(i.n.p=n)):r=i,i.S.n=i.r,i.r!==void 0&&(i.r=void 0),i=n}t.s=r}function h(t){u.call(this,void 0),this.x=t,this.s=void 0,this.g=y-1,this.f=4}(h.prototype=new u).h=function(){if(this.f&=-3,1&this.f)return!1;if((36&this.f)==32||(this.f&=-5,this.g===y))return!0;if(this.g=y,this.f|=1,this.i>0&&!j(this))return this.f&=-2,!0;var t=o;try{A(this),o=this;var i=this.x();(16&this.f||this.v!==i||this.i===0)&&(this.v=i,this.f&=-17,this.i++)}catch(r){this.v=r,this.f|=16,this.i++}return o=t,P(this),this.f&=-2,!0};h.prototype.S=function(t){if(this.t===void 0){this.f|=36;for(var i=this.s;i!==void 0;i=i.n)i.S.S(i)}u.prototype.S.call(this,t)};h.prototype.U=function(t){if(this.t!==void 0&&(u.prototype.U.call(this,t),this.t===void 0)){this.f&=-33;for(var i=this.s;i!==void 0;i=i.n)i.S.U(i)}};h.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var t=this.t;t!==void 0;t=t.x)t.t.N()}};Object.defineProperty(h.prototype,"value",{get:function(){if(1&this.f)throw new Error("Cycle detected");var t=O(this);if(this.h(),t!==void 0&&(t.i=this.i),16&this.f)throw this.v;return this.v}});function T(t){return new h(t)}function G(t){var i=t.u;if(t.u=void 0,typeof i=="function"){v++;var r=o;o=void 0;try{i()}catch(n){throw t.f&=-2,t.f|=8,m(t),n}finally{o=r,b()}}}function m(t){for(var i=t.s;i!==void 0;i=i.n)i.S.U(i);t.x=void 0,t.s=void 0,G(t)}function D(t){if(o!==this)throw new Error("Out-of-order effect");P(this),o=t,this.f&=-2,8&this.f&&m(this),b()}function p(t){this.x=t,this.u=void 0,this.s=void 0,this.o=void 0,this.f=32}p.prototype.c=function(){var t=this.S();try{if(8&this.f||this.x===void 0)return;var i=this.x();typeof i=="function"&&(this.u=i)}finally{t()}};p.prototype.S=function(){if(1&this.f)throw new Error("Cycle detected");this.f|=1,this.f&=-9,G(this),A(this),v++;var t=o;return o=this,D.bind(this,t)};p.prototype.N=function(){2&this.f||(this.f|=2,this.o=d,d=this)};p.prototype.d=function(){this.f|=8,1&this.f||m(this)};function $(t){var i=new p(t);try{i.c()}catch(r){throw i.d(),r}return i.d.bind(i)}var w,g;function c(t,i){E[t]=i.bind(null,E[t]||function(){})}function S(t){g&&g(),g=t&&t.S()}function J(t){var i=this,r=t.data,n=H(r);n.value=r;var f=U(function(){for(var e=i.__v;e=e.__;)if(e.__c){e.__c.__$f|=4;break}return i.__$u.c=function(){var s;!z(f.peek())&&((s=i.base)==null?void 0:s.nodeType)===3?i.base.data=f.peek():(i.__$f|=1,i.setState({}))},T(function(){var s=n.value.value;return s===0?0:s===!0?"":s||""})},[]);return f.value}J.displayName="_st";Object.defineProperties(u.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:J},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});c("__b",function(t,i){if(typeof i.type=="string"){var r,n=i.props;for(var f in n)if(f!=="children"){var e=n[f];e instanceof u&&(r||(i.__np=r={}),r[f]=e,n[f]=e.peek())}}t(i)});c("__r",function(t,i){S();var r,n=i.__c;n&&(n.__$f&=-2,(r=n.__$u)===void 0&&(n.__$u=r=function(f){var e;return $(function(){e=this}),e.c=function(){n.__$f|=1,n.setState({})},e}())),w=n,S(r),t(i)});c("__e",function(t,i,r,n){S(),w=void 0,t(i,r,n)});c("diffed",function(t,i){S(),w=void 0;var r;if(typeof i.type=="string"&&(r=i.__e)){var n=i.__np,f=i.props;if(n){var e=r.U;if(e)for(var s in e){var a=e[s];a!==void 0&&!(s in n)&&(a.d(),e[s]=void 0)}else r.U=e={};for(var l in n){var _=e[l],k=n[l];_===void 0?(_=F(r,l,k,f),e[l]=_):_.o(k,f)}}}t(i)});function F(t,i,r,n){var f=i in t&&t.ownerSVGElement===void 0,e=C(r);return{o:function(s,a){e.value=s,n=a},d:$(function(){var s=e.value.value;n[i]!==s&&(n[i]=s,f?t[i]=s:s?t.setAttribute(i,s):t.removeAttribute(i))})}}c("unmount",function(t,i){if(typeof i.type=="string"){var r=i.__e;if(r){var n=r.U;if(n){r.U=void 0;for(var f in n){var e=n[f];e&&e.d()}}}}else{var s=i.__c;if(s){var a=s.__$u;a&&(s.__$u=void 0,a.d())}}t(i)});c("__h",function(t,i,r,n){(n<3||n===9)&&(i.__$f|=2),t(i,r,n)});V.prototype.shouldComponentUpdate=function(t,i){var r=this.__$u;if(!(r&&r.s!==void 0||4&this.__$f)||3&this.__$f)return!0;for(var n in i)return!0;for(var f in t)if(f!=="__source"&&t[f]!==this.props[f])return!0;for(var e in this.props)if(!(e in t))return!0;return!1};function H(t){return U(function(){return C(t)},[])}function M(t){var i=N(t);return i.current=t,w.__$f|=4,U(function(){return T(function(){return i.current()})},[])}function Q(t){var i=N(t);i.current=t,q(function(){return $(function(){return i.current()})},[])}export{u as Signal,K as batch,T as computed,$ as effect,C as signal,L as untracked,M as useComputed,H as useSignal,Q as useSignalEffect};
4
4
  //# sourceMappingURL=signals.js.map
@@ -6,6 +6,7 @@ export interface CartItemProps extends Omit<HTMLAttributes<HTMLDivElement>, 'tit
6
6
  image?: VNode;
7
7
  title?: VNode;
8
8
  price?: VNode;
9
+ rowTotalFooter?: VNode;
9
10
  taxIncluded?: boolean;
10
11
  taxExcluded?: boolean;
11
12
  total?: VNode;
@@ -1,7 +1,7 @@
1
1
  import { FunctionComponent, VNode } from 'preact';
2
2
  import { HTMLAttributes } from 'preact/compat';
3
3
 
4
- export interface RadioButtonProps extends Omit<HTMLAttributes<HTMLInputElement>, 'size' | 'label'> {
4
+ export interface RadioButtonProps extends Omit<HTMLAttributes<HTMLInputElement>, 'size' | 'label' | 'icon'> {
5
5
  label: string | VNode<HTMLAttributes<HTMLElement>>;
6
6
  name: string;
7
7
  value: string;
@@ -11,6 +11,7 @@ export interface RadioButtonProps extends Omit<HTMLAttributes<HTMLInputElement>,
11
11
  error?: boolean;
12
12
  description?: string;
13
13
  busy?: boolean;
14
+ icon?: VNode<HTMLAttributes<SVGSVGElement>> | VNode<HTMLAttributes<HTMLImageElement>>;
14
15
  }
15
16
  export declare const RadioButton: FunctionComponent<RadioButtonProps>;
16
17
  //# sourceMappingURL=RadioButton.d.ts.map
@@ -6,5 +6,8 @@
6
6
  * file in accordance with the terms of the Adobe license agreement
7
7
  * accompanying it.
8
8
  *******************************************************************/
9
- export declare const debounce: (fn: Function, ms: number) => (this: any, ...args: any[]) => void;
9
+ export declare const debounce: (fn: Function, ms: number) => {
10
+ (this: any, ...args: any[]): void;
11
+ cancel(): void;
12
+ };
10
13
  //# sourceMappingURL=debounce.d.ts.map
@@ -0,0 +1,24 @@
1
+ /********************************************************************
2
+ * Copyright 2026 Adobe
3
+ * All Rights Reserved.
4
+ *
5
+ * NOTICE: Adobe permits you to use, modify, and distribute this
6
+ * file in accordance with the terms of the Adobe license agreement
7
+ * accompanying it.
8
+ *******************************************************************/
9
+ export interface Extension {
10
+ id: string;
11
+ name: string;
12
+ externalScripts?: string[];
13
+ externalStyles?: string[];
14
+ hooks?: Record<string, (payload: {
15
+ context: Record<string, unknown>;
16
+ }) => Promise<void> | void>;
17
+ }
18
+ export interface ExtensionManager {
19
+ executeHook(hookName: string, context?: Record<string, unknown>): Promise<void>;
20
+ }
21
+ export declare function loadScript(src: string): Promise<void>;
22
+ export declare function loadStyle(href: string): Promise<void>;
23
+ export declare function createExtensionManager(extensions: Extension[]): Promise<ExtensionManager>;
24
+ //# sourceMappingURL=extension-manager.d.ts.map
@@ -25,4 +25,5 @@ export * from './deviceUtils';
25
25
  export * from './get-path-value';
26
26
  export * from './get-cookie';
27
27
  export * from './get-price-formatter';
28
+ export * from './extension-manager';
28
29
  //# sourceMappingURL=index.d.ts.map