@anker-in/campaign-ui 0.2.10-beta.33 → 0.2.10-beta.34

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 (46) hide show
  1. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  2. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +2 -2
  3. package/dist/cjs/components/registration/authCodeActivate/Message.d.ts +4 -0
  4. package/dist/cjs/components/registration/authCodeActivate/Message.js +2 -0
  5. package/dist/cjs/components/registration/authCodeActivate/Message.js.map +7 -0
  6. package/dist/cjs/components/registration/authCodeActivate/index.d.ts +3 -0
  7. package/dist/cjs/components/registration/authCodeActivate/index.js +2 -0
  8. package/dist/cjs/components/registration/authCodeActivate/index.js.map +7 -0
  9. package/dist/cjs/components/registration/authCodeActivate/type.d.ts +23 -0
  10. package/dist/cjs/components/registration/authCodeActivate/type.js +2 -0
  11. package/dist/cjs/components/registration/authCodeActivate/type.js.map +7 -0
  12. package/dist/cjs/components/registration/index.d.ts +1 -0
  13. package/dist/cjs/components/registration/index.js +2 -0
  14. package/dist/cjs/components/registration/index.js.map +7 -0
  15. package/dist/cjs/components/registration/modalContainer.js +1 -1
  16. package/dist/cjs/components/registration/modalContainer.js.map +2 -2
  17. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  18. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +2 -2
  19. package/dist/esm/components/registration/authCodeActivate/Message.d.ts +4 -0
  20. package/dist/esm/components/registration/authCodeActivate/Message.js +2 -0
  21. package/dist/esm/components/registration/authCodeActivate/Message.js.map +7 -0
  22. package/dist/esm/components/registration/authCodeActivate/index.d.ts +3 -0
  23. package/dist/esm/components/registration/authCodeActivate/index.js +2 -0
  24. package/dist/esm/components/registration/authCodeActivate/index.js.map +7 -0
  25. package/dist/esm/components/registration/authCodeActivate/type.d.ts +23 -0
  26. package/dist/esm/components/registration/authCodeActivate/type.js +1 -0
  27. package/dist/esm/components/registration/authCodeActivate/type.js.map +7 -0
  28. package/dist/esm/components/registration/index.d.ts +1 -0
  29. package/dist/esm/components/registration/index.js +2 -0
  30. package/dist/esm/components/registration/index.js.map +7 -0
  31. package/dist/esm/components/registration/modalContainer.js +1 -1
  32. package/dist/esm/components/registration/modalContainer.js.map +2 -2
  33. package/package.json +1 -1
  34. package/src/components/credits/creditsCash/RedeemableItem.tsx +1 -1
  35. package/dist/cjs/components/credits/creditsRedeemList/CardValue.d.ts +0 -6
  36. package/dist/cjs/components/credits/creditsRedeemList/CardValue.js +0 -2
  37. package/dist/cjs/components/credits/creditsRedeemList/CardValue.js.map +0 -7
  38. package/dist/esm/components/credits/creditsRedeemList/CardValue.d.ts +0 -6
  39. package/dist/esm/components/credits/creditsRedeemList/CardValue.js +0 -2
  40. package/dist/esm/components/credits/creditsRedeemList/CardValue.js.map +0 -7
  41. package/dist/index.d.mts +0 -493
  42. package/dist/index.d.ts +0 -493
  43. package/dist/index.js +0 -31210
  44. package/dist/index.js.map +0 -1
  45. package/dist/index.mjs +0 -31196
  46. package/dist/index.mjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/registration/modalContainer.tsx"],
4
- "sourcesContent": ["import { classNames as cn } from '@anker-in/lib'\nimport { useEffect, useState, type UIEvent } from 'react'\nimport ReactModal from 'react-modal'\n\nexport type ModalContainerProps = {\n overlayClassName?: string\n className?: string\n scrollClassName?: string\n title?: string\n titleClassName?: string\n useAnimation?: boolean // \u4F7F\u7528\u52A8\u753B\u5C55\u793A\n animationClassName?: string // \u52A8\u753B\u5C55\u793A\u63A7\u5236\u7684classname\n isOpen: boolean\n children?: any\n onClose: () => void\n onScrollEnd?: (event: UIEvent<HTMLDivElement>) => void\n}\n\nexport const CreditsModalContainer = ({\n isOpen,\n title,\n className = '',\n overlayClassName = '',\n scrollClassName = '',\n onClose,\n onScrollEnd,\n children,\n useAnimation,\n animationClassName,\n titleClassName = '',\n ...props\n}: ModalContainerProps): React.ReactElement => {\n const [animationShow, setAnimationShow] = useState(false)\n\n useEffect(() => {\n if (!useAnimation) {\n return\n }\n requestAnimationFrame(() => {\n setAnimationShow(isOpen ?? false)\n })\n }, [isOpen, useAnimation])\n\n return (\n <ReactModal\n isOpen={isOpen ?? false}\n overlayClassName={cn(\n 'fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end',\n overlayClassName\n )}\n className={classNames(\n 'min-md:max-h-[calc(100vh-96px)] relative flex min-h-[200px] flex-col overflow-hidden rounded-[16px] bg-white outline-none transition-all duration-300 md:h-[88.27vh] md:w-full md:rounded-b-none',\n animationShow ? '' : animationClassName,\n className\n )}\n onRequestClose={onClose}\n {...props}\n >\n <div\n className={cn(\n 'flex w-full shrink-0 items-center justify-between',\n title ? 'min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]' : 'h-[48px] px-[16px]',\n titleClassName\n )}\n >\n <div className=\"text-[18px] font-bold\">{title}</div>\n <div\n className=\"size-[22px] cursor-pointer\"\n onClick={onClose}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClose?.()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n <div\n className={cn(\n 'my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]',\n !title && 'mt-0',\n 'min-l:px-[32px]',\n scrollClassName\n )}\n onScroll={event => {\n const targetElement = event.target as HTMLDivElement\n\n if (targetElement.scrollHeight <= targetElement.clientHeight) {\n return\n }\n\n if (targetElement.scrollTop + targetElement.clientHeight >= targetElement.scrollHeight - 50) {\n onScrollEnd && onScrollEnd(event)\n }\n }}\n >\n {children}\n </div>\n </ReactModal>\n )\n}\n"],
5
- "mappings": "AA0DM,OAOE,OAAAA,EAPF,QAAAC,MAAA,oBA1DN,OAAS,cAAcC,MAAU,gBACjC,OAAS,aAAAC,EAAW,YAAAC,MAA8B,QAClD,OAAOC,MAAgB,cAgBhB,MAAMC,EAAwB,CAAC,CACpC,OAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,GACnB,gBAAAC,EAAkB,GAClB,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,eAAAC,EAAiB,GACjB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAACC,EAAeC,CAAgB,EAAIhB,EAAS,EAAK,EAExD,OAAAD,EAAU,IAAM,CACTY,GAGL,sBAAsB,IAAM,CAC1BK,EAAiBb,GAAU,EAAK,CAClC,CAAC,CACH,EAAG,CAACA,EAAQQ,CAAY,CAAC,EAGvBd,EAACI,EAAA,CACC,OAAQE,GAAU,GAClB,iBAAkBL,EAChB,gGACAQ,CACF,EACA,UAAW,WACT,mMACAS,EAAgB,GAAKH,EACrBP,CACF,EACA,eAAgBG,EACf,GAAGM,EAEJ,UAAAjB,EAAC,OACC,UAAWC,EACT,oDACAM,EAAQ,+DAAiE,qBACzES,CACF,EAEA,UAAAjB,EAAC,OAAI,UAAU,wBAAyB,SAAAQ,EAAM,EAC9CR,EAAC,OACC,UAAU,6BACV,QAASY,EACT,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACjC,EAAE,eAAe,EACjBA,IAAU,EAEd,EACA,KAAK,SACL,SAAU,EAEV,SAAAZ,EAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,SAAAA,EAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,syCACF,KAAK,UACP,EACF,EACF,GACF,EACAA,EAAC,OACC,UAAWE,EACT,2EACA,CAACM,GAAS,OACV,kBACAG,CACF,EACA,SAAUU,GAAS,CACjB,MAAMC,EAAgBD,EAAM,OAExBC,EAAc,cAAgBA,EAAc,cAI5CA,EAAc,UAAYA,EAAc,cAAgBA,EAAc,aAAe,IACvFT,GAAeA,EAAYQ,CAAK,CAEpC,EAEC,SAAAP,EACH,GACF,CAEJ",
4
+ "sourcesContent": ["import { classNames as cn } from '@anker-in/lib'\nimport { useEffect, useState, type UIEvent } from 'react'\nimport ReactModal from 'react-modal'\n\nexport type ModalContainerProps = {\n overlayClassName?: string\n className?: string\n scrollClassName?: string\n title?: string\n titleClassName?: string\n useAnimation?: boolean // \u4F7F\u7528\u52A8\u753B\u5C55\u793A\n animationClassName?: string // \u52A8\u753B\u5C55\u793A\u63A7\u5236\u7684classname\n isOpen: boolean\n children?: any\n onClose: () => void\n onScrollEnd?: (event: UIEvent<HTMLDivElement>) => void\n}\n\nexport const CreditsModalContainer = ({\n isOpen,\n title,\n className = '',\n overlayClassName = '',\n scrollClassName = '',\n onClose,\n onScrollEnd,\n children,\n useAnimation,\n animationClassName,\n titleClassName = '',\n ...props\n}: ModalContainerProps): React.ReactElement => {\n const [animationShow, setAnimationShow] = useState(false)\n\n useEffect(() => {\n if (!useAnimation) {\n return\n }\n requestAnimationFrame(() => {\n setAnimationShow(isOpen ?? false)\n })\n }, [isOpen, useAnimation])\n\n return (\n <ReactModal\n isOpen={isOpen ?? false}\n overlayClassName={cn(\n 'fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end',\n overlayClassName\n )}\n className={cn(\n 'min-md:max-h-[calc(100vh-96px)] relative flex min-h-[200px] flex-col overflow-hidden rounded-[16px] bg-white outline-none transition-all duration-300 md:h-[88.27vh] md:w-full md:rounded-b-none',\n animationShow ? '' : animationClassName,\n className\n )}\n onRequestClose={onClose}\n {...props}\n >\n <div\n className={cn(\n 'flex w-full shrink-0 items-center justify-between',\n title ? 'min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]' : 'h-[48px] px-[16px]',\n titleClassName\n )}\n >\n <div className=\"text-[18px] font-bold\">{title}</div>\n <div\n className=\"size-[22px] cursor-pointer\"\n onClick={onClose}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClose?.()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n <div\n className={cn(\n 'my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]',\n !title && 'mt-0',\n 'min-l:px-[32px]',\n scrollClassName\n )}\n onScroll={event => {\n const targetElement = event.target as HTMLDivElement\n\n if (targetElement.scrollHeight <= targetElement.clientHeight) {\n return\n }\n\n if (targetElement.scrollTop + targetElement.clientHeight >= targetElement.scrollHeight - 50) {\n onScrollEnd && onScrollEnd(event)\n }\n }}\n >\n {children}\n </div>\n </ReactModal>\n )\n}\n"],
5
+ "mappings": "AA0DM,OAOE,OAAAA,EAPF,QAAAC,MAAA,oBA1DN,OAAS,cAAcC,MAAU,gBACjC,OAAS,aAAAC,EAAW,YAAAC,MAA8B,QAClD,OAAOC,MAAgB,cAgBhB,MAAMC,EAAwB,CAAC,CACpC,OAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,GACnB,gBAAAC,EAAkB,GAClB,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EACA,mBAAAC,EACA,eAAAC,EAAiB,GACjB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAACC,EAAeC,CAAgB,EAAIhB,EAAS,EAAK,EAExD,OAAAD,EAAU,IAAM,CACTY,GAGL,sBAAsB,IAAM,CAC1BK,EAAiBb,GAAU,EAAK,CAClC,CAAC,CACH,EAAG,CAACA,EAAQQ,CAAY,CAAC,EAGvBd,EAACI,EAAA,CACC,OAAQE,GAAU,GAClB,iBAAkBL,EAChB,gGACAQ,CACF,EACA,UAAWR,EACT,mMACAiB,EAAgB,GAAKH,EACrBP,CACF,EACA,eAAgBG,EACf,GAAGM,EAEJ,UAAAjB,EAAC,OACC,UAAWC,EACT,oDACAM,EAAQ,+DAAiE,qBACzES,CACF,EAEA,UAAAjB,EAAC,OAAI,UAAU,wBAAyB,SAAAQ,EAAM,EAC9CR,EAAC,OACC,UAAU,6BACV,QAASY,EACT,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACjC,EAAE,eAAe,EACjBA,IAAU,EAEd,EACA,KAAK,SACL,SAAU,EAEV,SAAAZ,EAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,SAAAA,EAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,syCACF,KAAK,UACP,EACF,EACF,GACF,EACAA,EAAC,OACC,UAAWE,EACT,2EACA,CAACM,GAAS,OACV,kBACAG,CACF,EACA,SAAUU,GAAS,CACjB,MAAMC,EAAgBD,EAAM,OAExBC,EAAc,cAAgBA,EAAc,cAI5CA,EAAc,UAAYA,EAAc,cAAgBA,EAAc,aAAe,IACvFT,GAAeA,EAAYQ,CAAK,CAEpC,EAEC,SAAAP,EACH,GACF,CAEJ",
6
6
  "names": ["jsx", "jsxs", "cn", "useEffect", "useState", "ReactModal", "CreditsModalContainer", "isOpen", "title", "className", "overlayClassName", "scrollClassName", "onClose", "onScrollEnd", "children", "useAnimation", "animationClassName", "titleClassName", "props", "animationShow", "setAnimationShow", "event", "targetElement"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/campaign-ui",
3
- "version": "0.2.10-beta.33",
3
+ "version": "0.2.10-beta.34",
4
4
  "description": "Campaign UI components and utilities for Anker projects",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -81,7 +81,7 @@ function RedeemableItem({
81
81
  })
82
82
  if (!isLogin) {
83
83
  openSignUpPopup()
84
- } else if (!profile?.activated && !(authCodeActivate.isSendingActivateEmail || authCodeActivate.isSuccess)) {
84
+ } else if (!profile?.activated && !authCodeActivate.isSuccess) {
85
85
  authCodeActivate.openAuthCodePopup()
86
86
  authCodeActivate.setOnSuccess(buyNow)
87
87
  } else {
@@ -1,6 +0,0 @@
1
- import { RedeemableItem } from '../type';
2
- import { CreditsRedeemListCopy } from './type';
3
- export declare const CardValue: ({ item, copy }: {
4
- item: RedeemableItem;
5
- copy: CreditsRedeemListCopy;
6
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- "use strict";var i=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var n=Object.getOwnPropertyNames;var s=Object.prototype.hasOwnProperty;var f=(e,t)=>{for(var a in t)i(e,a,{get:t[a],enumerable:!0})},c=(e,t,a,p)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of n(t))!s.call(e,o)&&o!==a&&i(e,o,{get:()=>t[o],enumerable:!(p=d(t,o))||p.enumerable});return e};var u=e=>c(i({},"__esModule",{value:!0}),e);var h={};f(h,{CardValue:()=>g});module.exports=u(h);var l=require("react/jsx-runtime"),x=require("@anker-in/headless-ui"),r=require("@anker-in/lib"),m=require("../context/const");const g=({item:e,copy:t})=>{switch(e.config?.type){case m.ConsumeType.Product:return(0,l.jsx)("div",{className:(0,r.classNames)("relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]"),children:(0,l.jsx)(x.Picture,{className:"h-full w-auto [&_img]:h-full [&_img]:object-contain",source:e.config?.image?.url||e.product.images?.[0]?.url})});default:break}return e.config?.type===m.ConsumeType.ShippingCoupon?(0,l.jsx)(x.Text,{className:"text-[32px] font-bold leading-none md:text-[12px] l-xxl:text-[18px] md-l:text-[14px]",html:e.config?.value}):(0,l.jsxs)("div",{className:"flex items-end",children:[(0,l.jsx)(x.Text,{className:"text-[64px] font-extrabold leading-none md:text-[20px] l-xxl:text-[40px] md-l:text-[22px]",html:e.config?.value}),(0,l.jsx)(x.Text,{className:"ml-[4px] text-[24px] font-bold leading-[2] md:ml-[2px] l:text-[12px] xxl:leading-[1.4] l-xxl:text-[20px]",html:e.config?.type===m.ConsumeType.GiftCard?t?.giftCardLabel:t?.off})]})};
2
- //# sourceMappingURL=CardValue.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/components/credits/creditsRedeemList/CardValue.tsx"],
4
- "sourcesContent": ["import { Text, Picture } from '@anker-in/headless-ui'\nimport { classNames } from '@anker-in/lib'\nimport { RedeemableItem } from '../type'\nimport { ConsumeType } from '../context/const'\nimport { CreditsRedeemListCopy } from './type'\n\nexport const CardValue = ({ item, copy }: { item: RedeemableItem; copy: CreditsRedeemListCopy }) => {\n switch (item.config?.type) {\n case ConsumeType.Product:\n return (\n <div className={classNames('relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]')}>\n <Picture\n className=\"h-full w-auto [&_img]:h-full [&_img]:object-contain\"\n source={item.config?.image?.url || item.product.images?.[0]?.url}\n ></Picture>\n </div>\n )\n break\n\n default:\n break\n }\n if (item.config?.type === ConsumeType.ShippingCoupon) {\n return (\n <Text\n className=\"text-[32px] font-bold leading-none md:text-[12px] l-xxl:text-[18px] md-l:text-[14px]\"\n html={item.config?.value}\n />\n )\n } else {\n return (\n <div className=\"flex items-end\">\n <Text\n className=\"text-[64px] font-extrabold leading-none md:text-[20px] l-xxl:text-[40px] md-l:text-[22px]\"\n html={item.config?.value}\n />\n <Text\n className=\"ml-[4px] text-[24px] font-bold leading-[2] md:ml-[2px] l:text-[12px] xxl:leading-[1.4] l-xxl:text-[20px]\"\n html={item.config?.type === ConsumeType.GiftCard ? copy?.giftCardLabel : copy?.off}\n />\n </div>\n )\n }\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,eAAAE,IAAA,eAAAC,EAAAH,GAWU,IAAAI,EAAA,6BAXVC,EAA8B,iCAC9BC,EAA2B,yBAE3BC,EAA4B,4BAGrB,MAAML,EAAY,CAAC,CAAE,KAAAM,EAAM,KAAAC,CAAK,IAA6D,CAClG,OAAQD,EAAK,QAAQ,KAAM,CACzB,KAAK,cAAY,QACf,SACE,OAAC,OAAI,aAAW,cAAW,2EAA2E,EACpG,mBAAC,WACC,UAAU,sDACV,OAAQA,EAAK,QAAQ,OAAO,KAAOA,EAAK,QAAQ,SAAS,CAAC,GAAG,IAC9D,EACH,EAIJ,QACE,KACJ,CACA,OAAIA,EAAK,QAAQ,OAAS,cAAY,kBAElC,OAAC,QACC,UAAU,uFACV,KAAMA,EAAK,QAAQ,MACrB,KAIA,QAAC,OAAI,UAAU,iBACb,oBAAC,QACC,UAAU,4FACV,KAAMA,EAAK,QAAQ,MACrB,KACA,OAAC,QACC,UAAU,2GACV,KAAMA,EAAK,QAAQ,OAAS,cAAY,SAAWC,GAAM,cAAgBA,GAAM,IACjF,GACF,CAGN",
6
- "names": ["CardValue_exports", "__export", "CardValue", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_lib", "import_const", "item", "copy"]
7
- }
@@ -1,6 +0,0 @@
1
- import { RedeemableItem } from '../type';
2
- import { CreditsRedeemListCopy } from './type';
3
- export declare const CardValue: ({ item, copy }: {
4
- item: RedeemableItem;
5
- copy: CreditsRedeemListCopy;
6
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,2 +0,0 @@
1
- import{jsx as t,jsxs as i}from"react/jsx-runtime";import{Text as l,Picture as a}from"@anker-in/headless-ui";import{classNames as m}from"@anker-in/lib";import{ConsumeType as x}from"../context/const";const u=({item:e,copy:o})=>{switch(e.config?.type){case x.Product:return t("div",{className:m("relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]"),children:t(a,{className:"h-full w-auto [&_img]:h-full [&_img]:object-contain",source:e.config?.image?.url||e.product.images?.[0]?.url})});default:break}return e.config?.type===x.ShippingCoupon?t(l,{className:"text-[32px] font-bold leading-none md:text-[12px] l-xxl:text-[18px] md-l:text-[14px]",html:e.config?.value}):i("div",{className:"flex items-end",children:[t(l,{className:"text-[64px] font-extrabold leading-none md:text-[20px] l-xxl:text-[40px] md-l:text-[22px]",html:e.config?.value}),t(l,{className:"ml-[4px] text-[24px] font-bold leading-[2] md:ml-[2px] l:text-[12px] xxl:leading-[1.4] l-xxl:text-[20px]",html:e.config?.type===x.GiftCard?o?.giftCardLabel:o?.off})]})};export{u as CardValue};
2
- //# sourceMappingURL=CardValue.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../../../src/components/credits/creditsRedeemList/CardValue.tsx"],
4
- "sourcesContent": ["import { Text, Picture } from '@anker-in/headless-ui'\nimport { classNames } from '@anker-in/lib'\nimport { RedeemableItem } from '../type'\nimport { ConsumeType } from '../context/const'\nimport { CreditsRedeemListCopy } from './type'\n\nexport const CardValue = ({ item, copy }: { item: RedeemableItem; copy: CreditsRedeemListCopy }) => {\n switch (item.config?.type) {\n case ConsumeType.Product:\n return (\n <div className={classNames('relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]')}>\n <Picture\n className=\"h-full w-auto [&_img]:h-full [&_img]:object-contain\"\n source={item.config?.image?.url || item.product.images?.[0]?.url}\n ></Picture>\n </div>\n )\n break\n\n default:\n break\n }\n if (item.config?.type === ConsumeType.ShippingCoupon) {\n return (\n <Text\n className=\"text-[32px] font-bold leading-none md:text-[12px] l-xxl:text-[18px] md-l:text-[14px]\"\n html={item.config?.value}\n />\n )\n } else {\n return (\n <div className=\"flex items-end\">\n <Text\n className=\"text-[64px] font-extrabold leading-none md:text-[20px] l-xxl:text-[40px] md-l:text-[22px]\"\n html={item.config?.value}\n />\n <Text\n className=\"ml-[4px] text-[24px] font-bold leading-[2] md:ml-[2px] l:text-[12px] xxl:leading-[1.4] l-xxl:text-[20px]\"\n html={item.config?.type === ConsumeType.GiftCard ? copy?.giftCardLabel : copy?.off}\n />\n </div>\n )\n }\n}\n"],
5
- "mappings": "AAWU,cAAAA,EAoBJ,QAAAC,MApBI,oBAXV,OAAS,QAAAC,EAAM,WAAAC,MAAe,wBAC9B,OAAS,cAAAC,MAAkB,gBAE3B,OAAS,eAAAC,MAAmB,mBAGrB,MAAMC,EAAY,CAAC,CAAE,KAAAC,EAAM,KAAAC,CAAK,IAA6D,CAClG,OAAQD,EAAK,QAAQ,KAAM,CACzB,KAAKF,EAAY,QACf,OACEL,EAAC,OAAI,UAAWI,EAAW,2EAA2E,EACpG,SAAAJ,EAACG,EAAA,CACC,UAAU,sDACV,OAAQI,EAAK,QAAQ,OAAO,KAAOA,EAAK,QAAQ,SAAS,CAAC,GAAG,IAC9D,EACH,EAIJ,QACE,KACJ,CACA,OAAIA,EAAK,QAAQ,OAASF,EAAY,eAElCL,EAACE,EAAA,CACC,UAAU,uFACV,KAAMK,EAAK,QAAQ,MACrB,EAIAN,EAAC,OAAI,UAAU,iBACb,UAAAD,EAACE,EAAA,CACC,UAAU,4FACV,KAAMK,EAAK,QAAQ,MACrB,EACAP,EAACE,EAAA,CACC,UAAU,2GACV,KAAMK,EAAK,QAAQ,OAASF,EAAY,SAAWG,GAAM,cAAgBA,GAAM,IACjF,GACF,CAGN",
6
- "names": ["jsx", "jsxs", "Text", "Picture", "classNames", "ConsumeType", "CardValue", "item", "copy"]
7
- }
package/dist/index.d.mts DELETED
@@ -1,493 +0,0 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import React from 'react';
3
- export { useCopilotAction, useCopilotChat, useCopilotReadable } from '@copilotkit/react-core';
4
- export { ActionExecutionMessage, Role, TextMessage } from '@copilotkit/runtime-client-gql';
5
- import * as swr_dist_mutation from 'swr/dist/mutation';
6
-
7
- interface ChatProps {
8
- title: string;
9
- runtimeUrl: string;
10
- shopifyDomain: string;
11
- /** GA 的 client id
12
- */
13
- userId: string;
14
- /** 是否登陆用户 0 or 1
15
- */
16
- account?: string;
17
- /** 用户浏览器语言
18
- */
19
- locale?: string;
20
- /** 开场白
21
- */
22
- prologue?: string;
23
- /** ?a=1&b=2
24
- */
25
- query?: string;
26
- /** 'follow' or 'unfollow' | true or false
27
- * follow: ResponseButton 会跟随在 messages 的后边
28
- * unfollow: ResponseButton 在聊天框底部
29
- */
30
- showResponseButton?: string | boolean;
31
- /** messages 的回调事件
32
- * 每次生成/接受新的messages,会将 整个 messages list 传递给外部
33
- */
34
- messagesCallback?: (_messages: any) => void;
35
- /** 通用 action 的触发事件
36
- */
37
- commonRender?: string | ((_props: any) => React.ReactElement);
38
- /** shulex的 action 的触发事件
39
- */
40
- shulexRender?: string | ((_props: any) => React.ReactElement);
41
- /** 通用 积分 换 Coupon 的触发事件
42
- */
43
- pointsExchangeCouponRender?: string | ((_props: any) => React.ReactElement);
44
- /** 跳转 checkout action 卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
45
- * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
46
- */
47
- gotocheckoutRender?: string | ((_props: any) => React.ReactElement);
48
- /** 打开购物车 action 卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
49
- * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
50
- */
51
- gotocartRender?: string | ((_props: any) => React.ReactElement);
52
- /** 打开购物车 action 的触发事件
53
- */
54
- addtocartHandler?: (_args: any) => Promise<any>;
55
- /** 加购卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
56
- * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
57
- */
58
- addtocartRender?: string | ((_props: any) => React.ReactElement);
59
- /** 订阅卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
60
- * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
61
- */
62
- signupRender?: string | ((_props: any) => React.ReactElement);
63
- /** 产品卡片,接受参数: {"status":"complete","args":[{"sku":["A3936031"],"handle":"space-a40-a3936031"}],"result":""}
64
- * 后端接口文档:https://anker-in.feishu.cn/wiki/DOYJwE9oxipWmYk072ncnJNznBb
65
- */
66
- productRender?: string | ((_props: any) => React.ReactElement);
67
- /** CopilotPopup 自定义参数,参考:https://docs.copilotkit.ai/reference/components/CopilotPopup */
68
- popup?: any;
69
- /** 文案,{"productRenderTipMessage": "","popupTip": "Hi ! Welcome to soundcore Innovations live chat!", "popupTipTimeout": [3000, 6000]} */
70
- lang?: any;
71
- /** 参考此文档:https://docs.copilotkit.ai/concepts/customize-look-and-feel */
72
- style?: any;
73
- className?: string;
74
- }
75
- declare const Chat: (props: ChatProps) => react_jsx_runtime.JSX.Element;
76
-
77
- declare enum ConsumeType {
78
- Coupon = "coupon",
79
- GiftCard = "giftCard",
80
- GoGift = "goGift",
81
- Product = "product"
82
- }
83
- declare enum DTC_TASK_TYPE {
84
- FirstPurchase = "firstPurchase",
85
- UploadReceipt = "uploadReceipt",
86
- Shopping = "shopping"
87
- }
88
-
89
- interface BaseResponse {
90
- brand: string;
91
- }
92
- interface CreditInfoResponse extends BaseResponse {
93
- total_credit: number;
94
- available_credit: number;
95
- pending_credit: number;
96
- expired_credit: number;
97
- cancel_credit: number;
98
- consumed_credit: number;
99
- }
100
-
101
- declare function CreditsProvider({ children, profile, removeProfile, isLoadingProfile, openSignInPopup, openSignUpPopup, taskIdToTypeMapping, creditInfo, customer, customerLoading, fetchCreditInfo, gtm, }: {
102
- children: React.ReactNode;
103
- profile: any;
104
- removeProfile: () => void;
105
- isLoadingProfile: boolean;
106
- openSignInPopup: () => void;
107
- openSignUpPopup: () => void;
108
- taskIdToTypeMapping: Record<string, DTC_TASK_TYPE>;
109
- creditInfo?: CreditInfoResponse;
110
- customer: any;
111
- fetchCreditInfo: (user_id: string) => void;
112
- customerLoading: boolean;
113
- gtm: {
114
- pageGroup: string;
115
- };
116
- }): react_jsx_runtime.JSX.Element;
117
- declare function useCreditsContext(): {
118
- profile: any;
119
- isLoadingProfile: boolean;
120
- removeProfile: () => void;
121
- taskIdToTypeMapping: Record<string, DTC_TASK_TYPE>;
122
- openSignInPopup: () => void;
123
- openSignUpPopup: () => void;
124
- creditInfo?: CreditInfoResponse;
125
- customer?: any;
126
- customerLoading: boolean;
127
- fetchCreditInfo: (user_id: string) => void;
128
- gtm: {
129
- pageGroup: string;
130
- };
131
- };
132
-
133
- declare const useUploadReceipt: () => swr_dist_mutation.SWRMutationResponse<{
134
- ok: boolean;
135
- code: number;
136
- }, any, "/api/multipass/mktsrv/v1/credit/upload_third_party_order", {
137
- orderName: string;
138
- }>;
139
-
140
- type ReceiptCopy = {
141
- title: string;
142
- description: string;
143
- placeholder: string;
144
- note: string;
145
- submit: string;
146
- successTitle: string;
147
- successDescription: string;
148
- gotIt: string;
149
- failedTitle: string;
150
- successIcon: string;
151
- failedIcon: string;
152
- failedReasons: {
153
- code: string;
154
- id: string;
155
- description: string;
156
- }[];
157
- };
158
- declare function CreditsUploadReceiptModal({ isOpen, onClose, copy, onSuccess, }: {
159
- isOpen: boolean;
160
- onClose: () => void;
161
- copy: ReceiptCopy;
162
- onSuccess: () => void;
163
- }): react_jsx_runtime.JSX.Element;
164
-
165
- type Img = {
166
- url: string;
167
- alt: string;
168
- };
169
- type BannerProps = {
170
- copy: {
171
- pcImg: Img;
172
- laptopImg: Img;
173
- mobileImg: Img;
174
- joinNow: string;
175
- loginIn: string;
176
- login: {
177
- title: string;
178
- description: string;
179
- };
180
- unLogin: {
181
- title: string;
182
- description: string;
183
- };
184
- };
185
- };
186
- declare function CreditsBanner({ copy }: BannerProps): react_jsx_runtime.JSX.Element;
187
-
188
- interface BenefitItemCopy {
189
- icon: {
190
- alt: string;
191
- url: string;
192
- };
193
- text: string;
194
- note?: string;
195
- tag?: string;
196
- }
197
-
198
- interface CreditsBenefitsProps {
199
- copy: {
200
- title: string;
201
- benefits: BenefitItemCopy[];
202
- };
203
- }
204
- declare const CreditsBenefits: ({ copy }: CreditsBenefitsProps) => react_jsx_runtime.JSX.Element;
205
-
206
- interface MyRewardsMetafields {
207
- title: string;
208
- orderNumberLabel: string;
209
- valueLabel: string;
210
- receivedLabel: string;
211
- failedLabel: string;
212
- approveSuccessLabel: string;
213
- couponTab: string;
214
- productTab: string;
215
- pendingLabel: string;
216
- unfulfilledLabel: string;
217
- fulfilledLabel: string;
218
- confirmedTip: string;
219
- pendingTip: string;
220
- processingTip: string;
221
- ShippedTip: string;
222
- emptyListLabel: string;
223
- pointUnit: string;
224
- code: string;
225
- copied: string;
226
- copy: string;
227
- emptyListImage: {
228
- url: string;
229
- alt?: string;
230
- };
231
- }
232
-
233
- interface MyActivitiesMetafields {
234
- title: string;
235
- tips: string;
236
- allTab: string;
237
- earnedTab: string;
238
- deductedTab: string;
239
- expiredTab: string;
240
- activationTask: string;
241
- updateNameTask: string;
242
- updatePhoneTask: string;
243
- updateBirthdayTask: string;
244
- updateAppNameTask: string;
245
- subscriptionTask: string;
246
- refundTask: string;
247
- productUnApprovedTask: string;
248
- pendingTips?: string;
249
- pendingTips2?: string;
250
- firstPurchaseTask: string;
251
- uploadReceiptTask: string;
252
- shoppingTask: string;
253
- emptyListImage: {
254
- url: string;
255
- alt?: string;
256
- };
257
- emptyListLabel: string;
258
- }
259
-
260
- type ButtonConfig = {
261
- text: string;
262
- type: 'activities' | 'rewards';
263
- };
264
- interface InfoCardProps {
265
- data: {
266
- balanceLabel: string;
267
- comingSoonLabel: string;
268
- comingSoonTips: string;
269
- buttons: ButtonConfig[];
270
- pointUnit: string;
271
- infoIcon: string;
272
- myActivities: MyActivitiesMetafields;
273
- myRewards: MyRewardsMetafields;
274
- };
275
- }
276
- declare function CreditsInfoCard({ data }: InfoCardProps): react_jsx_runtime.JSX.Element;
277
-
278
- type BenefitItem = {
279
- title: string;
280
- credits: string;
281
- id: string;
282
- };
283
- type WaysToGetCreditsCopy = {
284
- title: string;
285
- subtitle: string;
286
- equalCredits: string;
287
- musicIcon: string;
288
- list: BenefitItem[];
289
- mainImage: {
290
- url: string;
291
- alt: string;
292
- };
293
- joinNow: string;
294
- activate: string;
295
- completed: string;
296
- completeProfile: string;
297
- makeFirstPurchase: string;
298
- goShopLink: string;
299
- uploadReceipt: string;
300
- shopNow: string;
301
- subscribe: string;
302
- sendEmailSuccess: string;
303
- creditsIcon: {
304
- url: string;
305
- alt: string;
306
- };
307
- receipt: ReceiptCopy;
308
- };
309
- type CreditsWaysToGetCreditsProps = {
310
- copy: WaysToGetCreditsCopy;
311
- classNames?: {
312
- equalCreditsText?: string;
313
- subtitle?: string;
314
- };
315
- activate: {
316
- openAuthCodePopup: () => void;
317
- isSuccess: boolean;
318
- isSendingActivateEmail: boolean;
319
- };
320
- subscribe: {
321
- openSubscribePopup: () => void;
322
- isSuccess: boolean;
323
- };
324
- uploadReceipt: {
325
- openUploadReceiptPopup: () => void;
326
- isSuccess: boolean;
327
- };
328
- };
329
-
330
- declare const CreditsWaysToGetCredits: ({ copy, activate, subscribe, uploadReceipt, classNames, }: CreditsWaysToGetCreditsProps) => react_jsx_runtime.JSX.Element;
331
-
332
- type FaqCopy = {
333
- title: string;
334
- subTitle: string;
335
- learnMore: {
336
- link: string;
337
- label: string;
338
- };
339
- items: {
340
- category_name: string;
341
- question: string;
342
- answer: string;
343
- }[];
344
- };
345
- declare const CreditsFaq: ({ copy }: {
346
- copy: FaqCopy;
347
- }) => react_jsx_runtime.JSX.Element;
348
-
349
- type RedeemableItemConfig = {
350
- title: string;
351
- desc: string;
352
- price: string;
353
- credit: string;
354
- rules: string;
355
- image: {
356
- url: string;
357
- };
358
- mobileImage: {
359
- url: string;
360
- };
361
- redeemId: number;
362
- };
363
- type CreditsCashCopy = {
364
- title: string;
365
- list: (RedeemableItemConfig & {
366
- products: {
367
- handle: string;
368
- sku: string;
369
- }[];
370
- })[];
371
- soldOut: string;
372
- ruleLabel: string;
373
- unlockRewards: string;
374
- btnRedeem: string;
375
- off: string;
376
- insufficientCredits: string;
377
- };
378
-
379
- declare const CreditsCash: ({ copy, className, hideTitle, cardClassName, authCodeActivate, }: {
380
- copy: CreditsCashCopy;
381
- className?: string;
382
- hideTitle?: boolean;
383
- cardClassName?: string;
384
- authCodeActivate: {
385
- openAuthCodePopup: Function;
386
- isSuccess: boolean;
387
- setOnSuccess: (arg: Function) => void;
388
- isSendingActivateEmail: boolean;
389
- };
390
- }) => react_jsx_runtime.JSX.Element;
391
-
392
- type CreditsPageCommon = {
393
- pointUnit: string;
394
- ruleLabel: string;
395
- soldOut: string;
396
- imageMapping: {
397
- [key in ConsumeType]: {
398
- url: string;
399
- };
400
- };
401
- };
402
-
403
- type CreditsRedeemListCopy = {
404
- title: string;
405
- giftCardLabel: string;
406
- unlockRewards: string;
407
- btnRedeem: string;
408
- list: {
409
- label: string;
410
- list: {
411
- id: string;
412
- type: string;
413
- value: string;
414
- rules: string[];
415
- }[];
416
- }[];
417
- validatorInfo: {
418
- addressInfo: {
419
- name: string;
420
- country: string;
421
- province: string;
422
- city: string;
423
- address: string;
424
- };
425
- };
426
- redeemModal: {
427
- confirmTitle: string;
428
- confirmButton: string;
429
- commonError: string;
430
- redeemLimitError: string;
431
- inventoryNotEnough: string;
432
- creditsNotEnough: string;
433
- crossSiteError: string;
434
- errorImageUrl: string;
435
- coupon: {
436
- successDesc: string;
437
- successTitle: string;
438
- successButton: string;
439
- successButtonUrl: string;
440
- };
441
- product: {
442
- required: string;
443
- invalidEmail: string;
444
- shippingAddress: string;
445
- shippingProduct: string;
446
- addressForm: {
447
- key: string;
448
- type: string;
449
- label: string;
450
- isSelect: boolean;
451
- required: boolean;
452
- placeholder: string;
453
- }[][];
454
- form: {
455
- key: string;
456
- type: string;
457
- isSelect: boolean;
458
- required: boolean;
459
- placeholder: string;
460
- }[][];
461
- successDesc: string[];
462
- rules: string[];
463
- steps: {
464
- imageUrl: string;
465
- title: string;
466
- }[];
467
- quantityLabel: string;
468
- totalPriceLabel: string;
469
- variantLabel: string;
470
- shippingFeeLabel: string;
471
- paymentButton: string;
472
- stepTitle: string;
473
- };
474
- };
475
- copied: string;
476
- off: string;
477
- copy: string;
478
- } & CreditsPageCommon;
479
-
480
- declare function CreditsRedeemList({ copy, className, tabClassName, hideTitle, cardClassName, activate, }: {
481
- copy: CreditsRedeemListCopy;
482
- className?: string;
483
- tabClassName?: string;
484
- hideTitle?: boolean;
485
- cardClassName?: string;
486
- activate: {
487
- openAuthCodePopup: () => void;
488
- isSuccess: boolean;
489
- setOnSuccess: (callback: Function) => void;
490
- };
491
- }): react_jsx_runtime.JSX.Element;
492
-
493
- export { Chat, CreditsBanner, CreditsBenefits, CreditsCash, CreditsFaq, CreditsInfoCard, CreditsProvider, CreditsRedeemList, CreditsUploadReceiptModal, CreditsWaysToGetCredits, useCreditsContext, useUploadReceipt as useCreditsUploadReceipt };