@dropins/tools 1.2.1 → 1.3.0-alpha01

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 (127) hide show
  1. package/chunks/cjs.js +4 -0
  2. package/chunks/cjs.js.map +1 -0
  3. package/chunks/deviceUtils.js +13 -12
  4. package/chunks/deviceUtils.js.map +1 -0
  5. package/chunks/icons/Add.js +1 -0
  6. package/chunks/icons/Add.js.map +1 -0
  7. package/chunks/icons/AddressBook.js +1 -0
  8. package/chunks/icons/AddressBook.js.map +1 -0
  9. package/chunks/icons/Bulk.js +1 -0
  10. package/chunks/icons/Bulk.js.map +1 -0
  11. package/chunks/icons/Burger.js +1 -0
  12. package/chunks/icons/Burger.js.map +1 -0
  13. package/chunks/icons/Card.js +1 -0
  14. package/chunks/icons/Card.js.map +1 -0
  15. package/chunks/icons/Cart.js +1 -0
  16. package/chunks/icons/Cart.js.map +1 -0
  17. package/chunks/icons/Check.js +1 -0
  18. package/chunks/icons/Check.js.map +1 -0
  19. package/chunks/icons/CheckWithCircle.js +1 -0
  20. package/chunks/icons/CheckWithCircle.js.map +1 -0
  21. package/chunks/icons/ChevronDown.js +1 -0
  22. package/chunks/icons/ChevronDown.js.map +1 -0
  23. package/chunks/icons/ChevronRight.js +1 -0
  24. package/chunks/icons/ChevronRight.js.map +1 -0
  25. package/chunks/icons/ChevronUp.js +1 -0
  26. package/chunks/icons/ChevronUp.js.map +1 -0
  27. package/chunks/icons/Close.js +1 -0
  28. package/chunks/icons/Close.js.map +1 -0
  29. package/chunks/icons/Coupon.js +1 -0
  30. package/chunks/icons/Coupon.js.map +1 -0
  31. package/chunks/icons/Date.js +1 -0
  32. package/chunks/icons/Date.js.map +1 -0
  33. package/chunks/icons/Delivery.js +1 -0
  34. package/chunks/icons/Delivery.js.map +1 -0
  35. package/chunks/icons/EmptyBox.js +1 -0
  36. package/chunks/icons/EmptyBox.js.map +1 -0
  37. package/chunks/icons/Eye.js +1 -0
  38. package/chunks/icons/Eye.js.map +1 -0
  39. package/chunks/icons/EyeClose.js +1 -0
  40. package/chunks/icons/EyeClose.js.map +1 -0
  41. package/chunks/icons/Gift.js +1 -0
  42. package/chunks/icons/Gift.js.map +1 -0
  43. package/chunks/icons/GiftCard.js +1 -0
  44. package/chunks/icons/GiftCard.js.map +1 -0
  45. package/chunks/icons/Heart.js +1 -0
  46. package/chunks/icons/Heart.js.map +1 -0
  47. package/chunks/icons/HeartFilled.js +1 -0
  48. package/chunks/icons/HeartFilled.js.map +1 -0
  49. package/chunks/icons/InfoFilled.js +1 -0
  50. package/chunks/icons/InfoFilled.js.map +1 -0
  51. package/chunks/icons/Locker.js +1 -0
  52. package/chunks/icons/Locker.js.map +1 -0
  53. package/chunks/icons/Minus.js +1 -0
  54. package/chunks/icons/Minus.js.map +1 -0
  55. package/chunks/icons/Order.js +1 -0
  56. package/chunks/icons/Order.js.map +1 -0
  57. package/chunks/icons/OrderError.js +1 -0
  58. package/chunks/icons/OrderError.js.map +1 -0
  59. package/chunks/icons/OrderSuccess.js +1 -0
  60. package/chunks/icons/OrderSuccess.js.map +1 -0
  61. package/chunks/icons/PaymentError.js +1 -0
  62. package/chunks/icons/PaymentError.js.map +1 -0
  63. package/chunks/icons/Placeholder.js +1 -0
  64. package/chunks/icons/Placeholder.js.map +1 -0
  65. package/chunks/icons/PlaceholderFilled.js +1 -0
  66. package/chunks/icons/PlaceholderFilled.js.map +1 -0
  67. package/chunks/icons/Search.js +1 -0
  68. package/chunks/icons/Search.js.map +1 -0
  69. package/chunks/icons/SearchFilled.js +1 -0
  70. package/chunks/icons/SearchFilled.js.map +1 -0
  71. package/chunks/icons/Sort.js +1 -0
  72. package/chunks/icons/Sort.js.map +1 -0
  73. package/chunks/icons/Star.js +1 -0
  74. package/chunks/icons/Star.js.map +1 -0
  75. package/chunks/icons/Trash.js +1 -0
  76. package/chunks/icons/Trash.js.map +1 -0
  77. package/chunks/icons/User.js +1 -0
  78. package/chunks/icons/User.js.map +1 -0
  79. package/chunks/icons/View.js +1 -0
  80. package/chunks/icons/View.js.map +1 -0
  81. package/chunks/icons/Wallet.js +1 -0
  82. package/chunks/icons/Wallet.js.map +1 -0
  83. package/chunks/icons/Warning.js +1 -0
  84. package/chunks/icons/Warning.js.map +1 -0
  85. package/chunks/icons/WarningFilled.js +1 -0
  86. package/chunks/icons/WarningFilled.js.map +1 -0
  87. package/chunks/icons/WarningWithCircle.js +1 -0
  88. package/chunks/icons/WarningWithCircle.js.map +1 -0
  89. package/chunks/image-params-keymap.js +1 -0
  90. package/chunks/image-params-keymap.js.map +1 -0
  91. package/chunks/initializer.js +3 -2
  92. package/chunks/initializer.js.map +1 -0
  93. package/components.js +2 -1
  94. package/components.js.map +1 -0
  95. package/event-bus.js +1 -0
  96. package/event-bus.js.map +1 -0
  97. package/fetch-graphql.js +2 -1
  98. package/fetch-graphql.js.map +1 -0
  99. package/i18n.js +1 -0
  100. package/i18n.js.map +1 -0
  101. package/initializer.js +3 -2
  102. package/initializer.js.map +1 -0
  103. package/lib/aem/configs.d.ts +1 -0
  104. package/lib/aem/configs.js +4 -0
  105. package/lib/aem/configs.js.map +1 -0
  106. package/lib.js +2 -1
  107. package/lib.js.map +1 -0
  108. package/package.json +1 -1
  109. package/preact-compat.js +1 -0
  110. package/preact-compat.js.map +1 -0
  111. package/preact-hooks.js +1 -0
  112. package/preact-hooks.js.map +1 -0
  113. package/preact-jsx-runtime.js +1 -0
  114. package/preact-jsx-runtime.js.map +1 -0
  115. package/preact.js +1 -0
  116. package/preact.js.map +1 -0
  117. package/recaptcha.js +1 -0
  118. package/recaptcha.js.map +1 -0
  119. package/signals.js +1 -0
  120. package/signals.js.map +1 -0
  121. package/types/elsie/src/components/ProductItemCard/ProductItemCard.d.ts +14 -0
  122. package/types/elsie/src/components/ProductItemCard/ProductItemCardSkeleton.d.ts +4 -0
  123. package/types/elsie/src/components/ProductItemCard/index.d.ts +11 -0
  124. package/types/elsie/src/components/index.d.ts +1 -0
  125. package/types/elsie/src/lib/aem/configs.d.ts +63 -0
  126. package/types/fetch-graphql/src/index.d.ts +41 -1
  127. package/types/recaptcha/src/index.d.ts +2 -0
package/lib.js.map ADDED
@@ -0,0 +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"],"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 { cloneElement, ComponentChildren, RefObject, VNode, createElement } from 'preact';\nimport {\n StateUpdater,\n useContext,\n useState,\n useRef,\n useEffect,\n useMemo,\n useCallback,\n} from 'preact/hooks';\nimport { IntlContext, Lang } from '@adobe-commerce/elsie/i18n';\nimport { HTMLAttributes } from 'preact/compat';\nimport { SlotQueueContext } from './render';\n\nimport '@adobe-commerce/elsie/components/UIProvider/debugger.css';\n\ntype MutateElement = (elem: HTMLElement) => void;\n\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}\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 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>] {\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((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 }, [contentTag]);\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 },\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 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(context as K & DefaultSlotContext<K>, elementRef.current as HTMLDivElement | null);\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) {\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];\n}\n\n// Slot Component\ninterface SlotPropsComponent<T>\n extends Omit<HTMLAttributes<HTMLElement>, 'slot'> {\n name: string;\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 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] = 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) {\n slotsQueue.value.add(name);\n slotsQueue.value = new Set(slotsQueue.value);\n }\n }, [name, slotsQueue]);\n\n return createElement(\n slotTag,\n {\n ...props,\n ref: elementRef,\n 'data-slot': name,\n },\n slotProps.children\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"],"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","Slot","slot","slotTag","slotProps","attrs"],"mappings":"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"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@dropins/tools", "version": "1.2.1", "license": "SEE LICENSE IN LICENSE.md"}
1
+ {"name": "@dropins/tools", "version": "1.3.0-alpha01", "license": "SEE LICENSE IN LICENSE.md"}
package/preact-compat.js CHANGED
@@ -1,3 +1,4 @@
1
1
  /*! Copyright 2025 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,f as c,G as i,_ as m,i as f,j as E,m as _,R as S,n as p,r as C,s as R,u as y,v as I,w as L,z as N,I 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,a as A,g as P,c as k,W as w,d 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
+ //# sourceMappingURL=preact-compat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact-compat.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/preact-hooks.js CHANGED
@@ -1,3 +1,4 @@
1
1
  /*! Copyright 2025 Adobe
2
2
  All Rights Reserved. */
3
3
  import{q as a,x as u,P as t,y as r,a as o,g as f,c,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
+ //# sourceMappingURL=preact-hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact-hooks.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,3 +1,4 @@
1
1
  /*! Copyright 2025 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
+ //# sourceMappingURL=preact-jsx-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact-jsx-runtime.js","sources":["../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js"],"sourcesContent":["import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\"&quot;\";break;case 38:f=\"&amp;\";break;case 60:f=\"&lt;\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),_=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(_=\"px;\"),i=i+l+\":\"+a+_}}return e+'=\"'+i+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(t)+'\"'}function _(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=_(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,_ as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n"],"names":["t","n","e","o","f","i","u","a","c","p","l","r","_"],"mappings":"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","x_google_ignoreList":[0]}
package/preact.js CHANGED
@@ -1,3 +1,4 @@
1
1
  /*! Copyright 2025 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
+ //# sourceMappingURL=preact.js.map
package/preact.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preact.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/recaptcha.js CHANGED
@@ -12,3 +12,4 @@ import{FetchGraphQL as l}from"./fetch-graphql.js";const n={failedFetch:"Failed t
12
12
  theme
13
13
  }
14
14
  }`,c=new l().getMethods();class R{constructor(){var e;this._enableReCAPTCHA=!1,this._recaptchaBackendEndpoint=((e=c.getConfig())==null?void 0:e.endpoint)||"",this._recaptchaScriptUrl="https://www.google.com/recaptcha/api.js",this._configStorageKey="recaptchaConfig",this._logger=!1}async _updateBadgePosition(e,t){if(t)if((t==null?void 0:t.badgePosition)==="inline")await w(e,t,this._logger);else{if(!await m())return;const r=document.querySelector(h);t.theme&&r&&!r.src.includes("theme=dark")&&!r.src.includes("theme=light")&&r.setAttribute("src",`${r.src}&theme=${t.theme}`)}}async _addRecaptchaScript(){const e=await this._loadConfig();if(!document.getElementById("recaptchaId")&&e){const t=e.websiteKey,a=e.badgePosition==="inline",r=e.languageCode;if(!t)return;const i=document.createElement("script");i.setAttribute("id","recaptchaId"),i.defer=!0,i.src=a?`${this._recaptchaScriptUrl}?render=${t}&badge=none&hl=${r}`:`${this._recaptchaScriptUrl}?render=${t}&badge=${e.badgePosition}&hl=${r}`,document.head.appendChild(i)}}async _fetchStoreConfig(){var e;try{const t=await c.fetchGraphQl(S,{method:"GET",cache:"force-cache"});if((e=t==null?void 0:t.errors)!=null&&e.length){this._logger&&console.error(t.errors[0].message);return}return t}catch(t){this._logger&&console.error(`${n.failedFetch}:`,t)}}async _loadConfig(){const e=await g(this._configStorageKey);return e?(this._enableReCAPTCHA=!!e.isEnabled,e):(this._logger&&console.error(n.failedGetStorageConfig),null)}setEndpoint(e){e&&(this._recaptchaBackendEndpoint=e,c.setEndpoint(e))}async setConfig(e){var t,a;try{const r=await this._fetchStoreConfig();if(!((t=r==null?void 0:r.data)!=null&&t.recaptchaV3Config)){sessionStorage.removeItem(this._configStorageKey);return}const i=b((a=r==null?void 0:r.data)==null?void 0:a.recaptchaV3Config),s=f(i,e);s&&p(this._configStorageKey,s,this._logger)}catch(r){this._logger&&console.error(n.failedSetStorageConfig,r),sessionStorage.removeItem(this._configStorageKey)}}async initReCaptcha(e=3e3){setTimeout(()=>{(async()=>{try{const t=await this._loadConfig();if(!(t!=null&&t.forms)||!t.isEnabled)return;await this._addRecaptchaScript(),t.badgePosition==="inline"?await Promise.all(t.forms.map(a=>this._updateBadgePosition(a.badgeId,t))):await this._updateBadgePosition("",t)}catch(t){this._logger&&console.error(n.failedInitializing,t)}})()},e)}async verifyReCaptcha(){try{const e=await this._loadConfig();return!(e!=null&&e.forms)||!e.websiteKey||!e.isEnabled?void 0:await y(e.websiteKey)}catch(e){this._logger&&console.error(e)}}enableLogger(e){this._logger=e}getMethods(){return{enableLogger:this.enableLogger.bind(this),setEndpoint:this.setEndpoint.bind(this),setConfig:this.setConfig.bind(this),initReCaptcha:this.initReCaptcha.bind(this),verifyReCaptcha:this.verifyReCaptcha.bind(this)}}}const E=new R,{initReCaptcha:P,verifyReCaptcha:I,setEndpoint:O,setConfig:A,enableLogger:v}=E.getMethods();export{R as RecaptchaModule,v as enableLogger,P as initReCaptcha,c as recaptchaFetchApi,A as setConfig,O as setEndpoint,I as verifyReCaptcha};
15
+ //# sourceMappingURL=recaptcha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recaptcha.js","sources":["@dropins/tools/src/recaptcha/configs/message.config.ts","@dropins/tools/src/recaptcha/configs/typeForms.config.ts","@dropins/tools/src/recaptcha/configs/recaptchaBadgeSelector.config.ts","@dropins/tools/src/recaptcha/lib/_extendConfig.ts","@dropins/tools/src/recaptcha/lib/_storageConfig.ts","@dropins/tools/src/recaptcha/lib/_checkRecaptchaBadge.ts","@dropins/tools/src/recaptcha/lib/_convertKeysToCamelCase.ts","@dropins/tools/src/recaptcha/services/recaptcha.service.ts","@dropins/tools/src/recaptcha/graphql/recaptchaConfig.graphql.ts","@dropins/tools/src/recaptcha/index.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 recaptchaMessage = {\n failedFetch: 'Failed to fetch config from backend with status:',\n failedSetStorageConfig: 'Failed to set storage config',\n failedGetStorageConfig: 'Configuration could not be loaded.',\n failedExecutionRecaptcha: 'Recaptcha execution failed',\n failedInitializing: 'An error occurred while initializing ReCaptcha:',\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\nexport const typeDefaultForm: Record<string, string> = {\n PLACE_ORDER: 'placeOrder',\n CONTACT: 'contactUs',\n CUSTOMER_LOGIN: 'generateCustomerToken',\n CUSTOMER_FORGOT_PASSWORD: 'requestPasswordResetEmail',\n CUSTOMER_CREATE: 'createCustomerV2',\n CUSTOMER_EDIT: 'updateCustomerV2',\n NEWSLETTER: 'subscribeEmailToNewsletter',\n PRODUCT_REVIEW: 'createProductReview',\n SENDFRIEND: 'SENDFRIEND',\n BRAINTREE: 'BRAINTREE',\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\nexport const recaptchaBadgeSelector = '.grecaptcha-badge iframe';","/********************************************************************\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 { ReCaptchaV3Model } from '../types/recaptcha.types';\nimport { typeDefaultForm } from '../configs/typeForms.config';\n\nexport const extendConfig = (\n config: ReCaptchaV3Model,\n modifyParams: any[]\n): ReCaptchaV3Model | undefined => {\n if (config && config.forms) {\n const modifyForm = config.forms.concat(modifyParams).map((el) => {\n if (typeof el !== 'string') return { ...el, enabledBadgePlace: false };\n\n return {\n badgeId: typeDefaultForm[el],\n enabledBadgePlace: false,\n };\n });\n\n return { ...config, forms: [...new Set(modifyForm)] };\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\nimport { recaptchaMessage } from '../configs';\nimport { ReCaptchaV3Model } from '../types/recaptcha.types';\n\nconst getConfigStorage = async (\n storageKey: string,\n retries = 1,\n delay = 1000\n): Promise<ReCaptchaV3Model | null> => {\n const storedConfig = sessionStorage.getItem(storageKey);\n\n if (storedConfig !== null) {\n return JSON.parse(storedConfig);\n } else if (retries > 0) {\n await new Promise((resolve) => setTimeout(resolve, delay));\n\n return getConfigStorage(storageKey, retries - 1, delay);\n }\n\n return null;\n};\n\nconst setConfigStorage = (\n storageKey: string,\n config: ReCaptchaV3Model,\n logger: boolean\n) => {\n if (!storageKey || !config.websiteKey) return null;\n\n try {\n sessionStorage.setItem(storageKey, JSON.stringify(config));\n } catch (error) {\n logger && console.error(recaptchaMessage.failedSetStorageConfig, error);\n return null;\n }\n};\n\nexport { getConfigStorage, setConfigStorage };\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 { recaptchaBadgeSelector } from '../configs';\n\nconst waitForElement = (selector: string): Promise<void> => {\n return new Promise((resolve, reject) => {\n try {\n // Check if the element is already in the DOM\n if (document.querySelector(selector)) {\n resolve();\n return;\n }\n\n // Create an observer to watch for changes\n const observer = new MutationObserver(() => {\n if (document.querySelector(selector)) {\n resolve();\n observer.disconnect();\n }\n });\n\n // Start observing the body for child changes only\n observer.observe(document.body, {\n childList: true,\n subtree: false,\n });\n } catch (error) {\n reject(error);\n }\n });\n};\n\nexport const checkRecaptchaBadge = async (): Promise<boolean> => {\n try {\n await waitForElement(recaptchaBadgeSelector);\n return true;\n } catch (error) {\n return false;\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\nexport const convertKeysToCamelCase = (obj: {\n [key: string]: any;\n}): { [key: string]: string | number | boolean } => {\n const camelCaseKey = (key: string): string => {\n return key.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());\n };\n\n return Object.keys(obj).reduce((result, key) => {\n const newKey = camelCaseKey(key);\n result[newKey] = obj[key];\n return result;\n }, {} as { [key: string]: any });\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 { recaptchaMessage } from '../configs';\nimport {\n MutationObserverInit,\n ReCaptchaV3Model,\n} from '../types/recaptcha.types';\nconst { failedExecutionRecaptcha } = recaptchaMessage;\n\nexport const getRecaptchaToken = async (\n websiteKey: string\n): Promise<string> => {\n if (!(window as any).grecaptcha) {\n return Promise.reject(failedExecutionRecaptcha);\n }\n\n try {\n const token = await window.grecaptcha.execute(websiteKey, {\n action: 'click',\n });\n\n return token;\n } catch (error) {\n return Promise.reject(`${failedExecutionRecaptcha} : ${error}`);\n }\n};\n\nexport const waitForReCaptcha = () => {\n return new Promise((resolve) => {\n const observer = new MutationObserver((_, obs) => {\n if (window.grecaptcha) {\n obs.disconnect();\n resolve(true);\n }\n });\n\n const observerOptions: MutationObserverInit = {\n childList: true,\n subtree: true,\n attributes: true,\n };\n\n observer.observe(document.body, observerOptions);\n });\n};\n\nexport const verifyReCaptchaLoad = async (\n badgeId: string,\n config: ReCaptchaV3Model,\n logger: boolean\n): Promise<void> => {\n if (!window.grecaptcha) {\n await waitForReCaptcha();\n }\n\n return grecaptcha.ready(() => {\n const badgeContainers = document.querySelectorAll(`#${badgeId}`);\n\n if (!badgeContainers.length) return;\n\n // Handle the case when multiple instances of the drop-in container rendered on the same page\n\n badgeContainers.forEach(\n (element) => (element.id = `${element.id}_${Math.random().toString(36)}`) // NOSONAR\n );\n\n badgeContainers.forEach((element) => {\n if (element.innerHTML === '') {\n try {\n grecaptcha.render(element.id, {\n sitekey: config.websiteKey as string,\n badge: config.badgePosition,\n size: 'invisible',\n theme: config.theme ?? 'light',\n });\n } catch (error) {\n logger && console.error(error);\n }\n }\n });\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\nexport const RECAPTCHA_CONFIGURATION_V3 = `query {\n recaptchaV3Config {\n is_enabled\n website_key\n minimum_score\n badge_position\n language_code\n failure_message\n forms\n theme\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\nimport {\n ReCaptchaV3Response,\n PropsFormTypes,\n ReCaptchaV3Model,\n} from './types/recaptcha.types';\nimport { recaptchaMessage, recaptchaBadgeSelector } from './configs';\nimport {\n extendConfig,\n setConfigStorage,\n getConfigStorage,\n checkRecaptchaBadge,\n convertKeysToCamelCase,\n} from './lib';\nimport {\n getRecaptchaToken,\n verifyReCaptchaLoad,\n} from './services/recaptcha.service';\nimport { RECAPTCHA_CONFIGURATION_V3 } from './graphql/recaptchaConfig.graphql';\n\nimport { FetchGraphQL } from '@adobe-commerce/fetch-graphql';\n\nexport const recaptchaFetchApi = new FetchGraphQL().getMethods();\n\nexport class RecaptchaModule {\n _enableReCAPTCHA: boolean = false;\n _recaptchaBackendEndpoint: string =\n recaptchaFetchApi.getConfig()?.endpoint || '';\n _recaptchaScriptUrl: string = 'https://www.google.com/recaptcha/api.js';\n _configStorageKey: string = 'recaptchaConfig';\n _logger: boolean = false;\n\n async _updateBadgePosition(\n badgeId: string,\n config: ReCaptchaV3Model\n ): Promise<void | null> {\n if (!config) return;\n\n if (config?.badgePosition === 'inline') {\n await verifyReCaptchaLoad(badgeId, config, this._logger);\n } else {\n const isBadgeLoaded = await checkRecaptchaBadge();\n\n if (!isBadgeLoaded) return;\n\n const recaptchaBadge = document.querySelector(\n recaptchaBadgeSelector\n ) as HTMLIFrameElement;\n\n const shouldUpdateSrc =\n config.theme &&\n recaptchaBadge &&\n !recaptchaBadge.src.includes('theme=dark') &&\n !recaptchaBadge.src.includes('theme=light');\n\n if (shouldUpdateSrc) {\n recaptchaBadge.setAttribute(\n 'src',\n `${recaptchaBadge.src}&theme=${config.theme}`\n );\n }\n }\n }\n\n async _addRecaptchaScript(): Promise<void> {\n const config = await this._loadConfig();\n\n if (!document.getElementById('recaptchaId') && config) {\n const webApiKey = config.websiteKey;\n const isBadgeGlobal = config.badgePosition === 'inline';\n const languageCode = config.languageCode;\n\n if (!webApiKey) return;\n\n const script = document.createElement('script');\n script.setAttribute('id', 'recaptchaId');\n script.defer = true;\n script.src = isBadgeGlobal\n ? `${this._recaptchaScriptUrl}?render=${webApiKey}&badge=none&hl=${languageCode}`\n : `${this._recaptchaScriptUrl}?render=${webApiKey}&badge=${config.badgePosition}&hl=${languageCode}`;\n\n document.head.appendChild(script);\n }\n }\n\n async _fetchStoreConfig(): Promise<ReCaptchaV3Response | undefined> {\n try {\n const response = await recaptchaFetchApi.fetchGraphQl(\n RECAPTCHA_CONFIGURATION_V3,\n {\n method: 'GET',\n cache: 'force-cache',\n }\n );\n\n if (response?.errors?.length) {\n this._logger && console.error(response.errors[0].message);\n\n return;\n }\n\n return response;\n } catch (error) {\n this._logger && console.error(`${recaptchaMessage.failedFetch}:`, error);\n }\n }\n\n async _loadConfig(): Promise<ReCaptchaV3Model | null> {\n const config = await getConfigStorage(this._configStorageKey);\n\n if (!config) {\n this._logger && console.error(recaptchaMessage.failedGetStorageConfig);\n\n return null;\n }\n\n this._enableReCAPTCHA = !!config.isEnabled;\n\n return config;\n }\n\n setEndpoint(url: string) {\n if (!url) return;\n\n this._recaptchaBackendEndpoint = url;\n recaptchaFetchApi.setEndpoint(url);\n }\n\n async setConfig(configList: PropsFormTypes[]) {\n try {\n const config = await this._fetchStoreConfig();\n\n if (!config?.data?.recaptchaV3Config) {\n sessionStorage.removeItem(this._configStorageKey);\n return;\n }\n\n const transformConfig: ReCaptchaV3Model = convertKeysToCamelCase(\n config?.data?.recaptchaV3Config\n );\n\n const extendedRecaptchaConfig = extendConfig(transformConfig, configList);\n\n if (extendedRecaptchaConfig) {\n setConfigStorage(\n this._configStorageKey,\n extendedRecaptchaConfig,\n this._logger\n );\n }\n } catch (error) {\n this._logger &&\n console.error(recaptchaMessage.failedSetStorageConfig, error);\n\n sessionStorage.removeItem(this._configStorageKey);\n }\n }\n\n async initReCaptcha(lazyLoadTimeout = 3000) {\n // IIFE added to fix SonarQube error \"Promise returned in function argument where a void return was expected\"\n setTimeout(() => {\n (async () => {\n try {\n const config = await this._loadConfig();\n\n if (!config?.forms || !config.isEnabled) {\n return;\n }\n\n await this._addRecaptchaScript();\n\n if (config.badgePosition === 'inline') {\n await Promise.all(\n (config.forms as PropsFormTypes[]).map((element) =>\n this._updateBadgePosition(element.badgeId, config)\n )\n );\n } else {\n await this._updateBadgePosition('', config);\n }\n } catch (error) {\n this._logger &&\n console.error(recaptchaMessage.failedInitializing, error);\n }\n })();\n }, lazyLoadTimeout);\n }\n\n async verifyReCaptcha(): Promise<string | undefined> {\n try {\n const config = await this._loadConfig();\n\n if (!config?.forms || !config.websiteKey || !config.isEnabled) {\n return undefined;\n }\n\n return await getRecaptchaToken(config.websiteKey);\n } catch (error) {\n this._logger && console.error(error);\n }\n }\n\n enableLogger(logger: boolean) {\n this._logger = logger;\n }\n\n getMethods() {\n return {\n enableLogger: this.enableLogger.bind(this),\n setEndpoint: this.setEndpoint.bind(this),\n setConfig: this.setConfig.bind(this),\n initReCaptcha: this.initReCaptcha.bind(this),\n verifyReCaptcha: this.verifyReCaptcha.bind(this),\n };\n }\n}\n\nconst recaptcha = new RecaptchaModule();\n\nconst { initReCaptcha, verifyReCaptcha, setEndpoint, setConfig, enableLogger } =\n recaptcha.getMethods();\n\nexport { setEndpoint, setConfig, initReCaptcha, verifyReCaptcha, enableLogger };\n"],"names":["recaptchaMessage","typeDefaultForm","recaptchaBadgeSelector","extendConfig","config","modifyParams","modifyForm","el","getConfigStorage","storageKey","retries","delay","storedConfig","resolve","setConfigStorage","logger","error","waitForElement","selector","reject","observer","checkRecaptchaBadge","convertKeysToCamelCase","obj","camelCaseKey","key","_","letter","result","newKey","failedExecutionRecaptcha","getRecaptchaToken","websiteKey","waitForReCaptcha","obs","observerOptions","verifyReCaptchaLoad","badgeId","badgeContainers","element","RECAPTCHA_CONFIGURATION_V3","recaptchaFetchApi","FetchGraphQL","RecaptchaModule","_a","recaptchaBadge","webApiKey","isBadgeGlobal","languageCode","script","response","url","configList","transformConfig","_b","extendedRecaptchaConfig","lazyLoadTimeout","recaptcha","initReCaptcha","verifyReCaptcha","setEndpoint","setConfig","enableLogger"],"mappings":"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"}
package/signals.js CHANGED
@@ -1,3 +1,4 @@
1
1
  /*! Copyright 2025 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
+ //# sourceMappingURL=signals.js.map
package/signals.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signals.js","sources":["../../../node_modules/@preact/signals-core/dist/signals-core.module.js","../../../node_modules/@preact/signals/dist/signals.module.js"],"sourcesContent":["var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;while(void 0!==h){var r=h;h=void 0;f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}f=0;s--;if(t)throw i}else s--}function r(i){if(s>0)return i();s++;try{return i()}finally{t()}}var o=void 0;function n(i){var t=o;o=void 0;try{return i()}finally{o=t}}var h=void 0,s=0,f=0,v=0;function e(i){if(void 0!==o){var t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}}function u(i){this.v=i;this.i=0;this.n=void 0;this.t=void 0}u.prototype.brand=i;u.prototype.h=function(){return!0};u.prototype.S=function(i){if(this.t!==i&&void 0===i.e){i.x=this.t;if(void 0!==this.t)this.t.e=i;this.t=i}};u.prototype.U=function(i){if(void 0!==this.t){var t=i.e,r=i.x;if(void 0!==t){t.x=r;i.e=void 0}if(void 0!==r){r.e=t;i.x=void 0}if(i===this.t)this.t=r}};u.prototype.subscribe=function(i){var t=this;return E(function(){var r=t.value,n=o;o=void 0;try{i(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 i=o;o=void 0;try{return this.value}finally{o=i}};Object.defineProperty(u.prototype,\"value\",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(f>100)throw new Error(\"Cycle detected\");this.v=i;this.i++;v++;s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{t()}}}});function d(i){return new u(i)}function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function y(i){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4}(y.prototype=new u).h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=o;try{a(this);o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(y.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i){return new y(i)}function _(i){var r=i.u;i.u=void 0;if(\"function\"==typeof r){s++;var n=o;o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;g(i);throw t}finally{o=n;t()}}}function g(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;_(i)}function p(i){if(o!==this)throw new Error(\"Out-of-order effect\");l(this);o=i;this.f&=-2;if(8&this.f)g(this);t()}function b(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}b.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.u=t}finally{i()}};b.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;_(this);a(this);s++;var i=o;o=this;return p.bind(this,i)};b.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};b.prototype.d=function(){this.f|=8;if(!(1&this.f))g(this)};function E(i){var t=new b(i);try{t.c()}catch(i){t.d();throw i}return t.d.bind(t)}export{u as Signal,r as batch,w as computed,E as effect,d as signal,n as untracked};//# sourceMappingURL=signals-core.module.js.map\n","import{Component as n,options as r,isValidElement as i}from\"preact\";import{useMemo as t,useRef as f,useEffect as o}from\"preact/hooks\";import{Signal as e,computed as u,signal as a,effect as c}from\"@preact/signals-core\";export{Signal,batch,computed,effect,signal,untracked}from\"@preact/signals-core\";var v,s;function l(n,i){r[n]=i.bind(null,r[n]||function(){})}function d(n){if(s)s();s=n&&n.S()}function p(n){var r=this,f=n.data,o=useSignal(f);o.value=f;var e=t(function(){var n=r.__v;while(n=n.__)if(n.__c){n.__c.__$f|=4;break}r.__$u.c=function(){var n;if(!i(e.peek())&&3===(null==(n=r.base)?void 0:n.nodeType))r.base.data=e.peek();else{r.__$f|=1;r.setState({})}};return u(function(){var n=o.value.value;return 0===n?0:!0===n?\"\":n||\"\"})},[]);return e.value}p.displayName=\"_st\";Object.defineProperties(e.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:p},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});l(\"__b\",function(n,r){if(\"string\"==typeof r.type){var i,t=r.props;for(var f in t)if(\"children\"!==f){var o=t[f];if(o instanceof e){if(!i)r.__np=i={};i[f]=o;t[f]=o.peek()}}}n(r)});l(\"__r\",function(n,r){d();var i,t=r.__c;if(t){t.__$f&=-2;if(void 0===(i=t.__$u))t.__$u=i=function(n){var r;c(function(){r=this});r.c=function(){t.__$f|=1;t.setState({})};return r}()}v=t;d(i);n(r)});l(\"__e\",function(n,r,i,t){d();v=void 0;n(r,i,t)});l(\"diffed\",function(n,r){d();v=void 0;var i;if(\"string\"==typeof r.type&&(i=r.__e)){var t=r.__np,f=r.props;if(t){var o=i.U;if(o)for(var e in o){var u=o[e];if(void 0!==u&&!(e in t)){u.d();o[e]=void 0}}else i.U=o={};for(var a in t){var c=o[a],s=t[a];if(void 0===c){c=_(i,a,s,f);o[a]=c}else c.o(s,f)}}}n(r)});function _(n,r,i,t){var f=r in n&&void 0===n.ownerSVGElement,o=a(i);return{o:function(n,r){o.value=n;t=r},d:c(function(){var i=o.value.value;if(t[r]!==i){t[r]=i;if(f)n[r]=i;else if(i)n.setAttribute(r,i);else n.removeAttribute(r)}})}}l(\"unmount\",function(n,r){if(\"string\"==typeof r.type){var i=r.__e;if(i){var t=i.U;if(t){i.U=void 0;for(var f in t){var o=t[f];if(o)o.d()}}}}else{var e=r.__c;if(e){var u=e.__$u;if(u){e.__$u=void 0;u.d()}}}n(r)});l(\"__h\",function(n,r,i,t){if(t<3||9===t)r.__$f|=2;n(r,i,t)});n.prototype.shouldComponentUpdate=function(n,r){var i=this.__$u;if(!(i&&void 0!==i.s||4&this.__$f))return!0;if(3&this.__$f)return!0;for(var t in r)return!0;for(var f in n)if(\"__source\"!==f&&n[f]!==this.props[f])return!0;for(var o in this.props)if(!(o in n))return!0;return!1};function useSignal(n){return t(function(){return a(n)},[])}function useComputed(n){var r=f(n);r.current=n;v.__$f|=4;return t(function(){return u(function(){return r.current()})},[])}function useSignalEffect(n){var r=f(n);r.current=n;o(function(){return c(function(){return r.current()})},[])}export{useComputed,useSignal,useSignalEffect};//# sourceMappingURL=signals.module.js.map\n"],"names":["i","t","s","h","f","o","c","r","n","v","e","E","d","a","l","y","w","_","g","p","b","useSignal","u","useComputed","useSignalEffect"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -0,0 +1,14 @@
1
+ import { FunctionComponent, VNode } from 'preact';
2
+ import { HTMLAttributes } from 'preact/compat';
3
+
4
+ export interface ProductItemCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'loading'> {
5
+ image?: VNode;
6
+ titleNode?: VNode;
7
+ price?: VNode;
8
+ sku?: VNode;
9
+ actionButton?: VNode;
10
+ swatches?: VNode;
11
+ initialized?: boolean;
12
+ }
13
+ export declare const ProductItemCard: FunctionComponent<ProductItemCardProps>;
14
+ //# sourceMappingURL=ProductItemCard.d.ts.map
@@ -0,0 +1,4 @@
1
+ import { FunctionComponent } from 'preact';
2
+
3
+ export declare const ProductItemCardSkeleton: FunctionComponent;
4
+ //# sourceMappingURL=ProductItemCardSkeleton.d.ts.map
@@ -0,0 +1,11 @@
1
+ /********************************************************************
2
+ * Copyright 2025 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 * from './ProductItemCard';
10
+ export { ProductItemCard as default } from './ProductItemCard';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -46,4 +46,5 @@ export * from './Header';
46
46
  export * from './Tag';
47
47
  export * from './ContentGrid';
48
48
  export * from './Pagination';
49
+ export * from './ProductItemCard';
49
50
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,63 @@
1
+ interface ConfigHeaders {
2
+ all?: Record<string, string>;
3
+ [key: string]: Record<string, string> | undefined;
4
+ }
5
+ interface ConfigPublic {
6
+ default: ConfigRoot;
7
+ [key: string]: ConfigRoot;
8
+ }
9
+ interface ConfigRoot {
10
+ headers?: ConfigHeaders;
11
+ [key: string]: any;
12
+ }
13
+ interface Config {
14
+ public: ConfigPublic;
15
+ [key: string]: any;
16
+ }
17
+ /**
18
+ * Reset the config state
19
+ */
20
+ declare function resetConfig(): void;
21
+ /**
22
+ * Get cookie
23
+ * @param {string} cookieName - The name of the cookie to get
24
+ * @returns {string} - The value of the cookie
25
+ */
26
+ declare function getCookie(cookieName: string): string | undefined;
27
+ /**
28
+ * Get root path
29
+ * @param {Object} [configObj=config] - The config object.
30
+ * @returns {string} - The root path.
31
+ */
32
+ declare function getRootPath(configObj?: Config | null): string;
33
+ /**
34
+ * Get list of root paths from public config
35
+ * @returns {Array} - The list of root paths.
36
+ */
37
+ declare function getListOfRootPaths(): string[];
38
+ /**
39
+ * Checks if the public config contains more than "default"
40
+ * @returns {boolean} - true if public config contains more than "default"
41
+ */
42
+ declare function isMultistore(): boolean;
43
+ /**
44
+ * Retrieves headers from config entries like commerce.headers.pdp.my-header, etc and
45
+ * returns as object of all headers like { my-header: value, ... }
46
+ * @param {string} scope - The scope of the headers to retrieve.
47
+ * @returns {Object} - The headers.
48
+ */
49
+ declare function getHeaders(scope: string): Record<string, string>;
50
+ /**
51
+ * Initializes the configuration system.
52
+ * @returns {Promise<void>}
53
+ */
54
+ declare function initializeConfig(): Promise<ConfigRoot>;
55
+ /**
56
+ * Retrieves a configuration value.
57
+ *
58
+ * @param {string} configParam - The configuration parameter to retrieve.
59
+ * @returns {string|undefined} - The value of the configuration parameter, or undefined.
60
+ */
61
+ declare function getConfigValue(configParam: string): any;
62
+ export { initializeConfig, getCookie, getRootPath, getListOfRootPaths, isMultistore, getConfigValue, getHeaders, resetConfig, };
63
+ //# sourceMappingURL=configs.d.ts.map
@@ -23,11 +23,21 @@ export type FetchQueryError = Array<{
23
23
  category: string;
24
24
  };
25
25
  }>;
26
+ export type BeforeHook = (requestInit: RequestInit) => RequestInit;
27
+ export type AfterHook<T = any> = (requestInit: RequestInit, response: {
28
+ errors?: FetchQueryError;
29
+ data: T;
30
+ }) => {
31
+ errors?: FetchQueryError;
32
+ data: T;
33
+ };
26
34
  declare class FetchGraphQLMesh {
27
35
  _endpoint?: string;
28
36
  get endpoint(): string | undefined;
29
37
  get fetchGraphQlHeaders(): Header;
30
38
  _fetchGraphQlHeaders: Header;
39
+ _beforeHooks: BeforeHook[];
40
+ _afterHooks: AfterHook[];
31
41
  /**
32
42
  * Sets the GraphQL endpoint.
33
43
  * @param endpoint - The GraphQL endpoint.
@@ -62,6 +72,34 @@ declare class FetchGraphQLMesh {
62
72
  * ```
63
73
  */
64
74
  setFetchGraphQlHeaders(header: Header | ((prev: Header) => Header)): void;
75
+ /**
76
+ * Adds a hook executed before the GraphQL call.
77
+ * @param hook - The hook function.
78
+ * @example
79
+ * ```js
80
+ * // add before hook
81
+ * addBeforeHook((requestInit) => console.log('About to execute ' + requestInit.method + ' call.'));
82
+ *
83
+ * // modify the requestInit before executing the request
84
+ * addBeforeHook((requestInit) => {method: requestInit.method, body: 'new body'});
85
+ * ```
86
+ */
87
+ addBeforeHook(hook: BeforeHook): void;
88
+ /**
89
+ * Adds a hook executed before the GraphQL call.
90
+ * @param hook - The hook function.
91
+ * @example
92
+ * ```js
93
+ * // add before hook
94
+ * addAfterHook((requestInit, response) => console.log(
95
+ * 'The result of ' + requestInit.method + ' call is ' + response.json().body
96
+ * ));
97
+ *
98
+ * // modify the response
99
+ * addAfterHook((requestInit, response) => new Response(JSON.stringify({ ...response, modified: true }));
100
+ * ```
101
+ */
102
+ addAfterHook(hook: AfterHook): void;
65
103
  /**
66
104
  * Fetches GraphQL data.
67
105
  * @param query - The GraphQL query.
@@ -92,6 +130,8 @@ declare class FetchGraphQLMesh {
92
130
  endpoint: string | undefined;
93
131
  fetchGraphQlHeaders: Header;
94
132
  };
133
+ addBeforeHook: (hook: BeforeHook) => void;
134
+ addAfterHook: (hook: AfterHook<any>) => void;
95
135
  };
96
136
  }
97
137
  /**
@@ -121,6 +161,6 @@ export declare const setEndpoint: (endpoint: string) => void, setFetchGraphQlHea
121
161
  }>, getConfig: () => {
122
162
  endpoint: string | undefined;
123
163
  fetchGraphQlHeaders: Header;
124
- };
164
+ }, addBeforeHook: (hook: BeforeHook) => void, addAfterHook: (hook: AfterHook) => void;
125
165
  export {};
126
166
  //# sourceMappingURL=index.d.ts.map
@@ -13,6 +13,8 @@ export declare const recaptchaFetchApi: {
13
13
  endpoint: string | undefined;
14
14
  fetchGraphQlHeaders: import('@adobe-commerce/fetch-graphql').Header;
15
15
  };
16
+ addBeforeHook: (hook: import('@adobe-commerce/fetch-graphql').BeforeHook) => void;
17
+ addAfterHook: (hook: import('@adobe-commerce/fetch-graphql').AfterHook<any>) => void;
16
18
  };
17
19
  export declare class RecaptchaModule {
18
20
  _enableReCAPTCHA: boolean;