@aurora-is-near/intents-swap-widget 3.18.1 → 3.18.2

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 (145) hide show
  1. package/dist/components/Accordion.js +13 -13
  2. package/dist/components/Accordion.js.map +1 -1
  3. package/dist/components/Banner.js +33 -19
  4. package/dist/components/Banner.js.map +1 -1
  5. package/dist/components/BlockingError.js +11 -16
  6. package/dist/components/BlockingError.js.map +1 -1
  7. package/dist/components/Button.d.ts +2 -2
  8. package/dist/components/Button.js +2 -2
  9. package/dist/components/Button.js.map +1 -1
  10. package/dist/components/CloseButton.js +6 -6
  11. package/dist/components/CloseButton.js.map +1 -1
  12. package/dist/components/CopyButton.js +4 -4
  13. package/dist/components/CopyButton.js.map +1 -1
  14. package/dist/components/DirectionSwitcher.js +12 -11
  15. package/dist/components/DirectionSwitcher.js.map +1 -1
  16. package/dist/components/Input.d.ts +5 -3
  17. package/dist/components/Input.js +16 -16
  18. package/dist/components/Input.js.map +1 -1
  19. package/dist/components/StatusWidget.js +8 -21
  20. package/dist/components/StatusWidget.js.map +1 -1
  21. package/dist/{config-DJObWR7Z.js → config-CgCb5P7j.js} +585 -565
  22. package/dist/{config-DJObWR7Z.js.map → config-CgCb5P7j.js.map} +1 -1
  23. package/dist/config.js +21 -5
  24. package/dist/config.js.map +1 -1
  25. package/dist/errors.js +1 -1
  26. package/dist/ext/alchemy/index.js +1 -1
  27. package/dist/ext/index.js +1 -1
  28. package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
  29. package/dist/features/BalanceRpcLoader/index.js +1 -1
  30. package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
  31. package/dist/features/ChainsDropdown/AllNetworksIcon.js +3 -3
  32. package/dist/features/ChainsDropdown/AllNetworksIcon.js.map +1 -1
  33. package/dist/features/ChainsDropdown/ChainItem.js +7 -7
  34. package/dist/features/ChainsDropdown/ChainItem.js.map +1 -1
  35. package/dist/features/ChainsDropdown/index.js +45 -33
  36. package/dist/features/ChainsDropdown/index.js.map +1 -1
  37. package/dist/features/DepositMethodSwitcher.js +18 -17
  38. package/dist/features/DepositMethodSwitcher.js.map +1 -1
  39. package/dist/features/ErrorBoundary.js +1 -1
  40. package/dist/features/ExternalDeposit.js +22 -15
  41. package/dist/features/ExternalDeposit.js.map +1 -1
  42. package/dist/features/SendAddress/index.js +15 -14
  43. package/dist/features/SendAddress/index.js.map +1 -1
  44. package/dist/features/SendAddress/useNotification.js +1 -1
  45. package/dist/features/SubmitButton/index.js +1 -1
  46. package/dist/features/SuccessScreen/CheckIcon.js +4 -4
  47. package/dist/features/SuccessScreen/CheckIcon.js.map +1 -1
  48. package/dist/features/SuccessScreen/ExternalAction.js +6 -6
  49. package/dist/features/SuccessScreen/ExternalAction.js.map +1 -1
  50. package/dist/features/SuccessScreen/index.js +1 -1
  51. package/dist/features/SwapDirectionSwitcher.js +1 -1
  52. package/dist/features/SwapQuote/SwapQuote.js +1 -1
  53. package/dist/features/SwapQuote/index.js +1 -1
  54. package/dist/features/TokenInput/TokenInput.js +1 -1
  55. package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
  56. package/dist/features/TokenInput/TokenInputSource.js +1 -1
  57. package/dist/features/TokenInput/TokenInputTarget.js +1 -1
  58. package/dist/features/TokenInput/WalletBalance.js +1 -1
  59. package/dist/features/TokenInput/hooks/index.js +1 -1
  60. package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
  61. package/dist/features/TokenInput/index.js +1 -1
  62. package/dist/features/TokensList/TokenItem.js +1 -1
  63. package/dist/features/TokensList/TokensList.js +1 -1
  64. package/dist/features/TokensList/index.js +1 -1
  65. package/dist/features/TokensModal.js +11 -11
  66. package/dist/features/TokensModal.js.map +1 -1
  67. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +19 -6
  68. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js.map +1 -1
  69. package/dist/features/WalletCompatibilityCheck/index.js +1 -1
  70. package/dist/features/index.js +1 -1
  71. package/dist/hooks/index.js +1 -1
  72. package/dist/hooks/useAllTokens.js +1 -1
  73. package/dist/hooks/useChains.js +1 -1
  74. package/dist/hooks/useCompatibilityCheck.js +1 -1
  75. package/dist/hooks/useDefaultToken.js +1 -1
  76. package/dist/hooks/useExternalDepositStatus/index.js +1 -1
  77. package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
  78. package/dist/hooks/useIntentsBalance.js +1 -1
  79. package/dist/hooks/useIsCompatibilityCheckRequired.js +1 -1
  80. package/dist/hooks/useMakeDepositAddress.js +1 -1
  81. package/dist/hooks/useMakeIntentsTransfer.js +1 -1
  82. package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
  83. package/dist/hooks/useMakeQuote.js +1 -1
  84. package/dist/hooks/useMakeQuoteTransfer.js +1 -1
  85. package/dist/hooks/useMakeTransfer.js +1 -1
  86. package/dist/hooks/useMergedBalance.js +1 -1
  87. package/dist/hooks/useSwitchChain.js +1 -1
  88. package/dist/hooks/useTheme.js +1 -1
  89. package/dist/hooks/useTokenInputPair.js +1 -1
  90. package/dist/hooks/useTokens.js +1 -1
  91. package/dist/hooks/useTokensFiltered.js +1 -1
  92. package/dist/hooks/useTokensIntentsUnique.js +1 -1
  93. package/dist/index.js +1 -1
  94. package/dist/machine/effects/index.js +1 -1
  95. package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
  96. package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
  97. package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
  98. package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
  99. package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
  100. package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
  101. package/dist/machine/effects/useWalletConnEffect.js +1 -1
  102. package/dist/machine/events/index.js +1 -1
  103. package/dist/machine/events/tokenSelect.js +1 -1
  104. package/dist/machine/events/validateInputAndMoveTo.js +1 -1
  105. package/dist/machine/events/validateInputs.js +1 -1
  106. package/dist/machine/index.js +1 -1
  107. package/dist/machine/snap.js +1 -1
  108. package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
  109. package/dist/machine/subscriptions/index.js +1 -1
  110. package/dist/styles.css +1 -1
  111. package/dist/tailwind.css +9 -0
  112. package/dist/theme/ThemeProvider.js +1 -1
  113. package/dist/utils/intents/signers/near.js +1 -1
  114. package/dist/utils/intents/signers/privy.js +1 -1
  115. package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
  116. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +18 -11
  117. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js.map +1 -1
  118. package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
  119. package/dist/widgets/WidgetSwap/WidgetSwapContent.js +33 -22
  120. package/dist/widgets/WidgetSwap/WidgetSwapContent.js.map +1 -1
  121. package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
  122. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +19 -9
  123. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js.map +1 -1
  124. package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
  125. package/package.json +1 -2
  126. package/src/components/Accordion.tsx +3 -3
  127. package/src/components/Banner.tsx +17 -8
  128. package/src/components/BlockingError.tsx +4 -6
  129. package/src/components/Button.tsx +9 -6
  130. package/src/components/CloseButton.tsx +2 -2
  131. package/src/components/CopyButton.tsx +2 -2
  132. package/src/components/DirectionSwitcher.tsx +4 -4
  133. package/src/components/Input.tsx +5 -4
  134. package/src/components/StatusWidget.tsx +4 -11
  135. package/src/features/ChainsDropdown/AllNetworksIcon.tsx +2 -2
  136. package/src/features/ChainsDropdown/ChainItem.tsx +2 -2
  137. package/src/features/ChainsDropdown/index.tsx +9 -3
  138. package/src/features/DepositMethodSwitcher.tsx +4 -3
  139. package/src/features/ExternalDeposit.tsx +2 -2
  140. package/src/features/SendAddress/index.tsx +3 -2
  141. package/src/features/SuccessScreen/CheckIcon.tsx +2 -2
  142. package/src/features/SuccessScreen/ExternalAction.tsx +2 -2
  143. package/src/features/TokensModal.tsx +2 -2
  144. package/src/features/WalletCompatibilityCheck/WalletCompatibilityModal.tsx +8 -9
  145. package/src/tailwind.css +9 -0
@@ -1,36 +1,36 @@
1
1
  import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
- import { useState as x } from "react";
3
- import * as a from "lucide-react";
2
+ import { useState as w } from "react";
3
+ import { ChevronLeftW700 as a } from "@material-symbols-svg/react-rounded/icons/chevron-left";
4
4
  import { Hr as p } from "./Hr.js";
5
5
  import { Card as f } from "./Card.js";
6
6
  import { Badge as h } from "./Badge.js";
7
7
  import { cn as u } from "../utils/cn.js";
8
- const j = ({
8
+ const k = ({
9
9
  title: r,
10
- badge: l,
10
+ badge: t,
11
11
  children: o,
12
- isBadgeLoading: n,
13
- expandedHeightPx: m,
14
- expandedByDefault: i = !1,
12
+ isBadgeLoading: m,
13
+ expandedHeightPx: i,
14
+ expandedByDefault: n = !1,
15
15
  className: c
16
16
  }) => {
17
- const [t, d] = x(i);
17
+ const [l, d] = w(n);
18
18
  return /* @__PURE__ */ s(
19
19
  f,
20
20
  {
21
21
  isClickable: !0,
22
22
  className: u("py-sw-lg", c),
23
- onClick: () => d((w) => !w),
23
+ onClick: () => d((x) => !x),
24
24
  children: [
25
25
  /* @__PURE__ */ s("header", { className: "align-center flex w-full justify-between", children: [
26
26
  /* @__PURE__ */ e("span", { className: "gap-sw-xs text-sw-label-md mt-sw-xs flex text-center text-sw-gray-200", children: r }),
27
- n ? /* @__PURE__ */ e("div", { className: "ml-auto h-[20px] w-[100px] animate-pulse rounded-full bg-sw-gray-800" }) : l && /* @__PURE__ */ e(h, { children: l }),
28
- /* @__PURE__ */ e("button", { type: "button", className: "ml-sw-lg cursor-pointer", children: t ? /* @__PURE__ */ e(a.ChevronUp, { className: "h-sw-2xl w-sw-2xl text-sw-gray-200" }) : /* @__PURE__ */ e(a.ChevronDown, { className: "h-sw-2xl w-sw-2xl text-sw-gray-200" }) })
27
+ m ? /* @__PURE__ */ e("div", { className: "ml-auto h-[20px] w-[100px] animate-pulse rounded-full bg-sw-gray-800" }) : t && /* @__PURE__ */ e(h, { children: t }),
28
+ /* @__PURE__ */ e("button", { type: "button", className: "ml-sw-lg cursor-pointer", children: l ? /* @__PURE__ */ e(a, { className: "h-sw-2xl w-sw-2xl text-sw-gray-200 rotate-90" }) : /* @__PURE__ */ e(a, { className: "h-sw-2xl w-sw-2xl text-sw-gray-200 -rotate-90" }) })
29
29
  ] }),
30
30
  /* @__PURE__ */ s(
31
31
  "div",
32
32
  {
33
- style: { height: t ? m : 0 },
33
+ style: { height: l ? i : 0 },
34
34
  className: "gap-sw-md flex flex-col overflow-hidden transition-all delay-0 duration-300 ease-in-out",
35
35
  children: [
36
36
  /* @__PURE__ */ e(p, { className: "mt-sw-xl mb-sw-md" }),
@@ -43,6 +43,6 @@ const j = ({
43
43
  );
44
44
  };
45
45
  export {
46
- j as Accordion
46
+ k as Accordion
47
47
  };
48
48
  //# sourceMappingURL=Accordion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sources":["../../src/components/Accordion.tsx"],"sourcesContent":["import { useState } from 'react';\nimport * as Icons from 'lucide-react';\nimport type { ReactNode } from 'react';\n\nimport { Hr } from './Hr';\nimport { Card } from './Card';\nimport { Badge } from './Badge';\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n title: ReactNode;\n badge?: string;\n isBadgeLoading?: boolean;\n expandedByDefault?: boolean;\n children: ReactNode | ReactNode[];\n expandedHeightPx: number;\n className?: string;\n};\n\nexport const Accordion = ({\n title,\n badge,\n children,\n isBadgeLoading,\n expandedHeightPx,\n expandedByDefault = false,\n className,\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState(expandedByDefault);\n\n return (\n <Card\n isClickable\n className={cn('py-sw-lg', className)}\n onClick={() => setIsExpanded((p) => !p)}>\n <header className=\"align-center flex w-full justify-between\">\n <span className=\"gap-sw-xs text-sw-label-md mt-sw-xs flex text-center text-sw-gray-200\">\n {title}\n </span>\n {isBadgeLoading ? (\n <div className=\"ml-auto h-[20px] w-[100px] animate-pulse rounded-full bg-sw-gray-800\" />\n ) : (\n badge && <Badge>{badge}</Badge>\n )}\n <button type=\"button\" className=\"ml-sw-lg cursor-pointer\">\n {isExpanded ? (\n <Icons.ChevronUp className=\"h-sw-2xl w-sw-2xl text-sw-gray-200\" />\n ) : (\n <Icons.ChevronDown className=\"h-sw-2xl w-sw-2xl text-sw-gray-200\" />\n )}\n </button>\n </header>\n\n <div\n style={{ height: isExpanded ? expandedHeightPx : 0 }} // has to be inline for animation to work\n className=\"gap-sw-md flex flex-col overflow-hidden transition-all delay-0 duration-300 ease-in-out\">\n <Hr className=\"mt-sw-xl mb-sw-md\" />\n {children}\n </div>\n </Card>\n );\n};\n"],"names":["Accordion","title","badge","children","isBadgeLoading","expandedHeightPx","expandedByDefault","className","isExpanded","setIsExpanded","useState","jsxs","Card","cn","p","jsx","Badge","Icons","Hr"],"mappings":";;;;;;;AAmBO,MAAMA,IAAY,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,WAAAC;AACF,MAAa;AACX,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAASJ,CAAiB;AAE9D,SACE,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,WAAWC,EAAG,YAAYN,CAAS;AAAA,MACnC,SAAS,MAAME,EAAc,CAACK,MAAM,CAACA,CAAC;AAAA,MACtC,UAAA;AAAA,QAAA,gBAAAH,EAAC,UAAA,EAAO,WAAU,4CAChB,UAAA;AAAA,UAAA,gBAAAI,EAAC,QAAA,EAAK,WAAU,yEACb,UAAAd,GACH;AAAA,UACCG,sBACE,OAAA,EAAI,WAAU,wEAAuE,IAEtFF,KAAS,gBAAAa,EAACC,GAAA,EAAO,UAAAd,EAAA,CAAM;AAAA,UAEzB,gBAAAa,EAAC,YAAO,MAAK,UAAS,WAAU,2BAC7B,UAAAP,sBACES,EAAM,WAAN,EAAgB,WAAU,qCAAA,CAAqC,IAEhE,gBAAAF,EAACE,EAAM,aAAN,EAAkB,WAAU,sCAAqC,EAAA,CAEtE;AAAA,QAAA,GACF;AAAA,QAEA,gBAAAN;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,QAAQH,IAAaH,IAAmB,EAAA;AAAA,YACjD,WAAU;AAAA,YACV,UAAA;AAAA,cAAA,gBAAAU,EAACG,GAAA,EAAG,WAAU,oBAAA,CAAoB;AAAA,cACjCf;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"Accordion.js","sources":["../../src/components/Accordion.tsx"],"sourcesContent":["import { useState } from 'react';\nimport { ChevronLeftW700 as ChevronLeft } from '@material-symbols-svg/react-rounded/icons/chevron-left';\nimport type { ReactNode } from 'react';\n\nimport { Hr } from './Hr';\nimport { Card } from './Card';\nimport { Badge } from './Badge';\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n title: ReactNode;\n badge?: string;\n isBadgeLoading?: boolean;\n expandedByDefault?: boolean;\n children: ReactNode | ReactNode[];\n expandedHeightPx: number;\n className?: string;\n};\n\nexport const Accordion = ({\n title,\n badge,\n children,\n isBadgeLoading,\n expandedHeightPx,\n expandedByDefault = false,\n className,\n}: Props) => {\n const [isExpanded, setIsExpanded] = useState(expandedByDefault);\n\n return (\n <Card\n isClickable\n className={cn('py-sw-lg', className)}\n onClick={() => setIsExpanded((p) => !p)}>\n <header className=\"align-center flex w-full justify-between\">\n <span className=\"gap-sw-xs text-sw-label-md mt-sw-xs flex text-center text-sw-gray-200\">\n {title}\n </span>\n {isBadgeLoading ? (\n <div className=\"ml-auto h-[20px] w-[100px] animate-pulse rounded-full bg-sw-gray-800\" />\n ) : (\n badge && <Badge>{badge}</Badge>\n )}\n <button type=\"button\" className=\"ml-sw-lg cursor-pointer\">\n {isExpanded ? (\n <ChevronLeft className=\"h-sw-2xl w-sw-2xl text-sw-gray-200 rotate-90\" />\n ) : (\n <ChevronLeft className=\"h-sw-2xl w-sw-2xl text-sw-gray-200 -rotate-90\" />\n )}\n </button>\n </header>\n\n <div\n style={{ height: isExpanded ? expandedHeightPx : 0 }} // has to be inline for animation to work\n className=\"gap-sw-md flex flex-col overflow-hidden transition-all delay-0 duration-300 ease-in-out\">\n <Hr className=\"mt-sw-xl mb-sw-md\" />\n {children}\n </div>\n </Card>\n );\n};\n"],"names":["Accordion","title","badge","children","isBadgeLoading","expandedHeightPx","expandedByDefault","className","isExpanded","setIsExpanded","useState","jsxs","Card","cn","p","jsx","Badge","ChevronLeft","Hr"],"mappings":";;;;;;;AAmBO,MAAMA,IAAY,CAAC;AAAA,EACxB,OAAAC;AAAA,EACA,OAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,kBAAAC;AAAA,EACA,mBAAAC,IAAoB;AAAA,EACpB,WAAAC;AACF,MAAa;AACX,QAAM,CAACC,GAAYC,CAAa,IAAIC,EAASJ,CAAiB;AAE9D,SACE,gBAAAK;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAW;AAAA,MACX,WAAWC,EAAG,YAAYN,CAAS;AAAA,MACnC,SAAS,MAAME,EAAc,CAACK,MAAM,CAACA,CAAC;AAAA,MACtC,UAAA;AAAA,QAAA,gBAAAH,EAAC,UAAA,EAAO,WAAU,4CAChB,UAAA;AAAA,UAAA,gBAAAI,EAAC,QAAA,EAAK,WAAU,yEACb,UAAAd,GACH;AAAA,UACCG,sBACE,OAAA,EAAI,WAAU,wEAAuE,IAEtFF,KAAS,gBAAAa,EAACC,GAAA,EAAO,UAAAd,EAAA,CAAM;AAAA,4BAExB,UAAA,EAAO,MAAK,UAAS,WAAU,2BAC7B,UAAAM,IACC,gBAAAO,EAACE,GAAA,EAAY,WAAU,gDAA+C,IAEtE,gBAAAF,EAACE,GAAA,EAAY,WAAU,iDAAgD,EAAA,CAE3E;AAAA,QAAA,GACF;AAAA,QAEA,gBAAAN;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO,EAAE,QAAQH,IAAaH,IAAmB,EAAA;AAAA,YACjD,WAAU;AAAA,YACV,UAAA;AAAA,cAAA,gBAAAU,EAACG,GAAA,EAAG,WAAU,oBAAA,CAAoB;AAAA,cACjCf;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,EAAA;AAGN;"}
@@ -1,43 +1,57 @@
1
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import * as t from "lucide-react";
1
+ import { jsx as e, jsxs as n } from "react/jsx-runtime";
2
+ import { CloseW700 as l } from "@material-symbols-svg/react-rounded/icons/close";
3
+ import { EmergencyW700 as a } from "@material-symbols-svg/react-rounded/icons/emergency";
4
+ import { ErrorFillW700 as u } from "@material-symbols-svg/react-rounded/icons/error";
5
+ import { VerifiedFillW700 as f } from "@material-symbols-svg/react-rounded/icons/verified";
6
+ import { useMemo as p } from "react";
3
7
  import { cn as o } from "../utils/cn.js";
4
- const u = ({
5
- variant: s,
6
- multiline: r,
7
- message: n,
8
+ const j = ({
9
+ variant: r,
10
+ multiline: s,
11
+ message: c,
8
12
  className: i,
9
- onDismiss: c
13
+ onDismiss: t
10
14
  }) => {
11
- const l = s === "success" ? /* @__PURE__ */ e(t.CheckCircle, { size: 16 }) : /* @__PURE__ */ e(t.CircleAlert, { size: 16 });
12
- return /* @__PURE__ */ a(
15
+ const m = p(() => {
16
+ switch (r) {
17
+ case "success":
18
+ return /* @__PURE__ */ e(f, { size: 16 });
19
+ case "error":
20
+ return /* @__PURE__ */ e(u, { size: 16 });
21
+ case "warn":
22
+ default:
23
+ return /* @__PURE__ */ e(a, { size: 16 });
24
+ }
25
+ }, [r]);
26
+ return /* @__PURE__ */ n(
13
27
  "div",
14
28
  {
15
29
  className: o(
16
30
  "gap-sw-md relative flex items-center",
17
31
  {
18
- "text-sw-status-error": s === "error",
19
- "text-sw-status-warning": s === "warn",
20
- "text-sw-status-success": s === "success"
32
+ "text-sw-status-error": r === "error",
33
+ "text-sw-status-warning": r === "warn",
34
+ "text-sw-status-success": r === "success"
21
35
  },
22
36
  i
23
37
  ),
24
38
  children: [
25
- !r && l,
39
+ !s && m,
26
40
  /* @__PURE__ */ e(
27
41
  "span",
28
42
  {
29
43
  className: o("text-sw-label-sm", {
30
- "text-nowrap": !r
44
+ "text-nowrap": !s
31
45
  }),
32
- children: n
46
+ children: c
33
47
  }
34
48
  ),
35
- c && /* @__PURE__ */ e(
49
+ t && /* @__PURE__ */ e(
36
50
  "div",
37
51
  {
38
- onClick: c,
52
+ onClick: t,
39
53
  className: "ml-auto flex cursor-pointer items-center justify-center transition-all hover:scale-125",
40
- children: /* @__PURE__ */ e(t.X, { size: 16, strokeWidth: 2.5 })
54
+ children: /* @__PURE__ */ e(l, { size: 16 })
41
55
  }
42
56
  )
43
57
  ]
@@ -45,6 +59,6 @@ const u = ({
45
59
  );
46
60
  };
47
61
  export {
48
- u as Banner
62
+ j as Banner
49
63
  };
50
64
  //# sourceMappingURL=Banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sources":["../../src/components/Banner.tsx"],"sourcesContent":["import * as Icons from 'lucide-react';\n\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n message: string;\n multiline?: boolean;\n variant: 'error' | 'warn' | 'success';\n className?: string;\n onDismiss?: () => void;\n};\n\nexport const Banner = ({\n variant,\n multiline,\n message,\n className,\n onDismiss,\n}: Props) => {\n const icon =\n variant === 'success' ? (\n <Icons.CheckCircle size={16} />\n ) : (\n <Icons.CircleAlert size={16} />\n );\n\n return (\n <div\n className={cn(\n 'gap-sw-md relative flex items-center',\n {\n 'text-sw-status-error': variant === 'error',\n 'text-sw-status-warning': variant === 'warn',\n 'text-sw-status-success': variant === 'success',\n },\n className,\n )}>\n {!multiline && icon}\n <span\n className={cn('text-sw-label-sm', {\n 'text-nowrap': !multiline,\n })}>\n {message}\n </span>\n {onDismiss && (\n <div\n onClick={onDismiss}\n className=\"ml-auto flex cursor-pointer items-center justify-center transition-all hover:scale-125\">\n <Icons.X size={16} strokeWidth={2.5} />\n </div>\n )}\n </div>\n );\n};\n"],"names":["Banner","variant","multiline","message","className","onDismiss","icon","jsx","Icons","jsxs","cn"],"mappings":";;;AAYO,MAAMA,IAAS,CAAC;AAAA,EACrB,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,MAAa;AACX,QAAMC,IACJL,MAAY,YACV,gBAAAM,EAACC,EAAM,aAAN,EAAkB,MAAM,GAAA,CAAI,IAE7B,gBAAAD,EAACC,EAAM,aAAN,EAAkB,MAAM,IAAI;AAGjC,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,wBAAwBT,MAAY;AAAA,UACpC,0BAA0BA,MAAY;AAAA,UACtC,0BAA0BA,MAAY;AAAA,QAAA;AAAA,QAExCG;AAAA,MAAA;AAAA,MAED,UAAA;AAAA,QAAA,CAACF,KAAaI;AAAA,QACf,gBAAAC;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWG,EAAG,oBAAoB;AAAA,cAChC,eAAe,CAACR;AAAA,YAAA,CACjB;AAAA,YACA,UAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFE,KACC,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAASF;AAAA,YACT,WAAU;AAAA,YACV,4BAACG,EAAM,GAAN,EAAQ,MAAM,IAAI,aAAa,IAAA,CAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACvC;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"Banner.js","sources":["../../src/components/Banner.tsx"],"sourcesContent":["import { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';\nimport { EmergencyW700 as Emergency } from '@material-symbols-svg/react-rounded/icons/emergency';\nimport { ErrorFillW700 as ErrorFill } from '@material-symbols-svg/react-rounded/icons/error';\nimport { VerifiedFillW700 as VerifiedFill } from '@material-symbols-svg/react-rounded/icons/verified';\nimport { useMemo } from 'react';\n\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n message: string;\n multiline?: boolean;\n variant: 'error' | 'warn' | 'success';\n className?: string;\n onDismiss?: () => void;\n};\n\nexport const Banner = ({\n variant,\n multiline,\n message,\n className,\n onDismiss,\n}: Props) => {\n const icon = useMemo(() => {\n switch (variant) {\n case 'success':\n return <VerifiedFill size={16} />;\n case 'error':\n return <ErrorFill size={16} />;\n case 'warn':\n default:\n return <Emergency size={16} />;\n }\n }, [variant]);\n\n return (\n <div\n className={cn(\n 'gap-sw-md relative flex items-center',\n {\n 'text-sw-status-error': variant === 'error',\n 'text-sw-status-warning': variant === 'warn',\n 'text-sw-status-success': variant === 'success',\n },\n className,\n )}>\n {!multiline && icon}\n <span\n className={cn('text-sw-label-sm', {\n 'text-nowrap': !multiline,\n })}>\n {message}\n </span>\n {onDismiss && (\n <div\n onClick={onDismiss}\n className=\"ml-auto flex cursor-pointer items-center justify-center transition-all hover:scale-125\">\n <Close size={16} />\n </div>\n )}\n </div>\n );\n};\n"],"names":["Banner","variant","multiline","message","className","onDismiss","icon","useMemo","jsx","VerifiedFill","ErrorFill","Emergency","jsxs","cn","Close"],"mappings":";;;;;;;AAgBO,MAAMA,IAAS,CAAC;AAAA,EACrB,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAC;AACF,MAAa;AACX,QAAMC,IAAOC,EAAQ,MAAM;AACzB,YAAQN,GAAA;AAAA,MACN,KAAK;AACH,eAAO,gBAAAO,EAACC,GAAA,EAAa,MAAM,GAAA,CAAI;AAAA,MACjC,KAAK;AACH,eAAO,gBAAAD,EAACE,GAAA,EAAU,MAAM,GAAA,CAAI;AAAA,MAC9B,KAAK;AAAA,MACL;AACE,eAAO,gBAAAF,EAACG,GAAA,EAAU,MAAM,GAAA,CAAI;AAAA,IAAA;AAAA,EAElC,GAAG,CAACV,CAAO,CAAC;AAEZ,SACE,gBAAAW;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,wBAAwBZ,MAAY;AAAA,UACpC,0BAA0BA,MAAY;AAAA,UACtC,0BAA0BA,MAAY;AAAA,QAAA;AAAA,QAExCG;AAAA,MAAA;AAAA,MAED,UAAA;AAAA,QAAA,CAACF,KAAaI;AAAA,QACf,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAWK,EAAG,oBAAoB;AAAA,cAChC,eAAe,CAACX;AAAA,YAAA,CACjB;AAAA,YACA,UAAAC;AAAA,UAAA;AAAA,QAAA;AAAA,QAEFE,KACC,gBAAAG;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAASH;AAAA,YACT,WAAU;AAAA,YACV,UAAA,gBAAAG,EAACM,GAAA,EAAM,MAAM,GAAA,CAAI;AAAA,UAAA;AAAA,QAAA;AAAA,MACnB;AAAA,IAAA;AAAA,EAAA;AAIR;"}
@@ -1,39 +1,34 @@
1
1
  import { jsx as e, jsxs as s } from "react/jsx-runtime";
2
- import * as t from "lucide-react";
3
- import { Button as a } from "./Button.js";
4
- import { Card as c } from "./Card.js";
5
- const m = ({ message: r, onClickRetry: l }) => /* @__PURE__ */ e(c, { className: "w-full", children: /* @__PURE__ */ s("div", { className: "gap-sw-4xl py-6xl flex min-h-[200px] flex-col items-center justify-center w-full", children: [
2
+ import { CachedW700 as l } from "@material-symbols-svg/react-rounded/icons/cached";
3
+ import { CloseW700 as a } from "@material-symbols-svg/react-rounded/icons/close";
4
+ import { Button as c } from "./Button.js";
5
+ import { Card as i } from "./Card.js";
6
+ const p = ({ message: t, onClickRetry: r }) => /* @__PURE__ */ e(i, { className: "w-full", children: /* @__PURE__ */ s("div", { className: "gap-sw-4xl py-6xl flex min-h-[200px] flex-col items-center justify-center w-full", children: [
6
7
  /* @__PURE__ */ s("div", { className: "gap-sw-xl flex flex-col items-center justify-center", children: [
7
8
  /* @__PURE__ */ s("header", { className: "gap-sw-md flex items-center", children: [
8
- /* @__PURE__ */ e(
9
- t.X,
10
- {
11
- strokeWidth: 2.5,
12
- className: "text-sw-accent-500 h-sw-4xl w-sw-4xl"
13
- }
14
- ),
9
+ /* @__PURE__ */ e(a, { className: "text-sw-accent-500 h-sw-4xl w-sw-4xl" }),
15
10
  /* @__PURE__ */ e("h3", { className: "text-sw-value-lg text-sw-accent-500", children: "Ooops..." })
16
11
  ] }),
17
12
  /* @__PURE__ */ s("p", { className: "text-sw-body-md text-center text-sw-gray-100", children: [
18
- r,
13
+ t,
19
14
  " ",
20
15
  /* @__PURE__ */ e("br", {}),
21
16
  " Please try again or contact support."
22
17
  ] })
23
18
  ] }),
24
19
  /* @__PURE__ */ e(
25
- a,
20
+ c,
26
21
  {
27
22
  size: "md",
28
23
  variant: "primary",
29
- icon: t.RefreshCcw,
30
- onClick: l,
24
+ icon: l,
25
+ onClick: r,
31
26
  className: "w-fit",
32
27
  children: "Try again"
33
28
  }
34
29
  )
35
30
  ] }) });
36
31
  export {
37
- m as BlockingError
32
+ p as BlockingError
38
33
  };
39
34
  //# sourceMappingURL=BlockingError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BlockingError.js","sources":["../../src/components/BlockingError.tsx"],"sourcesContent":["import * as Icons from 'lucide-react';\n\nimport { Button } from './Button';\nimport { Card } from './Card';\n\ntype Props = {\n message: string;\n onClickRetry: () => void;\n};\n\nexport const BlockingError = ({ message, onClickRetry }: Props) => (\n <Card className=\"w-full\">\n <div className=\"gap-sw-4xl py-6xl flex min-h-[200px] flex-col items-center justify-center w-full\">\n <div className=\"gap-sw-xl flex flex-col items-center justify-center\">\n <header className=\"gap-sw-md flex items-center\">\n <Icons.X\n strokeWidth={2.5}\n className=\"text-sw-accent-500 h-sw-4xl w-sw-4xl\"\n />\n <h3 className=\"text-sw-value-lg text-sw-accent-500\">Ooops...</h3>\n </header>\n <p className=\"text-sw-body-md text-center text-sw-gray-100\">\n {message} <br /> Please try again or contact support.\n </p>\n </div>\n <Button\n size=\"md\"\n variant=\"primary\"\n icon={Icons.RefreshCcw}\n onClick={onClickRetry}\n className=\"w-fit\">\n Try again\n </Button>\n </div>\n </Card>\n);\n"],"names":["BlockingError","message","onClickRetry","jsx","Card","jsxs","Icons","Button"],"mappings":";;;;AAUO,MAAMA,IAAgB,CAAC,EAAE,SAAAC,GAAS,cAAAC,EAAA,MACvC,gBAAAC,EAACC,GAAA,EAAK,WAAU,UACd,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oFACb,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,uDACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,UAAA,EAAO,WAAU,+BAChB,UAAA;AAAA,MAAA,gBAAAF;AAAA,QAACG,EAAM;AAAA,QAAN;AAAA,UACC,aAAa;AAAA,UACb,WAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEZ,gBAAAH,EAAC,MAAA,EAAG,WAAU,uCAAsC,UAAA,WAAA,CAAQ;AAAA,IAAA,GAC9D;AAAA,IACA,gBAAAE,EAAC,KAAA,EAAE,WAAU,gDACV,UAAA;AAAA,MAAAJ;AAAA,MAAQ;AAAA,wBAAE,MAAA,EAAG;AAAA,MAAE;AAAA,IAAA,EAAA,CAClB;AAAA,EAAA,GACF;AAAA,EACA,gBAAAE;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAMD,EAAM;AAAA,MACZ,SAASJ;AAAA,MACT,WAAU;AAAA,MAAQ,UAAA;AAAA,IAAA;AAAA,EAAA;AAEpB,EAAA,CACF,EAAA,CACF;"}
1
+ {"version":3,"file":"BlockingError.js","sources":["../../src/components/BlockingError.tsx"],"sourcesContent":["import { CachedW700 as Cached } from '@material-symbols-svg/react-rounded/icons/cached';\nimport { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';\n\nimport { Button } from './Button';\nimport { Card } from './Card';\n\ntype Props = {\n message: string;\n onClickRetry: () => void;\n};\n\nexport const BlockingError = ({ message, onClickRetry }: Props) => (\n <Card className=\"w-full\">\n <div className=\"gap-sw-4xl py-6xl flex min-h-[200px] flex-col items-center justify-center w-full\">\n <div className=\"gap-sw-xl flex flex-col items-center justify-center\">\n <header className=\"gap-sw-md flex items-center\">\n <Close className=\"text-sw-accent-500 h-sw-4xl w-sw-4xl\" />\n <h3 className=\"text-sw-value-lg text-sw-accent-500\">Ooops...</h3>\n </header>\n <p className=\"text-sw-body-md text-center text-sw-gray-100\">\n {message} <br /> Please try again or contact support.\n </p>\n </div>\n <Button\n size=\"md\"\n variant=\"primary\"\n icon={Cached}\n onClick={onClickRetry}\n className=\"w-fit\">\n Try again\n </Button>\n </div>\n </Card>\n);\n"],"names":["BlockingError","message","onClickRetry","jsx","Card","jsxs","Close","Button","Cached"],"mappings":";;;;;AAWO,MAAMA,IAAgB,CAAC,EAAE,SAAAC,GAAS,cAAAC,EAAA,MACvC,gBAAAC,EAACC,GAAA,EAAK,WAAU,UACd,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAU,oFACb,UAAA;AAAA,EAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,uDACb,UAAA;AAAA,IAAA,gBAAAA,EAAC,UAAA,EAAO,WAAU,+BAChB,UAAA;AAAA,MAAA,gBAAAF,EAACG,GAAA,EAAM,WAAU,uCAAA,CAAuC;AAAA,MACxD,gBAAAH,EAAC,MAAA,EAAG,WAAU,uCAAsC,UAAA,WAAA,CAAQ;AAAA,IAAA,GAC9D;AAAA,IACA,gBAAAE,EAAC,KAAA,EAAE,WAAU,gDACV,UAAA;AAAA,MAAAJ;AAAA,MAAQ;AAAA,wBAAE,MAAA,EAAG;AAAA,MAAE;AAAA,IAAA,EAAA,CAClB;AAAA,EAAA,GACF;AAAA,EACA,gBAAAE;AAAA,IAACI;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,SAAQ;AAAA,MACR,MAAMC;AAAAA,MACN,SAASN;AAAA,MACT,WAAU;AAAA,MAAQ,UAAA;AAAA,IAAA;AAAA,EAAA;AAEpB,EAAA,CACF,EAAA,CACF;"}
@@ -1,4 +1,4 @@
1
- import { LucideIcon } from 'lucide-react';
1
+ import { MaterialSymbolsComponent } from '@material-symbols-svg/react';
2
2
  type Size = 'sm' | 'md' | 'lg';
3
3
  type Variant = 'primary' | 'outlined';
4
4
  type State = 'default' | 'loading' | 'disabled' | 'active' | 'error';
@@ -11,7 +11,7 @@ type Props = {
11
11
  onClick?: () => void;
12
12
  fluid?: boolean;
13
13
  } & ({
14
- icon: LucideIcon;
14
+ icon: MaterialSymbolsComponent;
15
15
  iconPosition?: 'head' | 'tail';
16
16
  } | {
17
17
  icon?: never;
@@ -1,6 +1,6 @@
1
1
  import { jsx as s, jsxs as w } from "react/jsx-runtime";
2
2
  import { Button as g } from "@headlessui/react";
3
- import * as m from "lucide-react";
3
+ import { ProgressActivityW700 as m } from "@material-symbols-svg/react-rounded/icons/progress-activity";
4
4
  import { cn as c } from "../utils/cn.js";
5
5
  const e = {
6
6
  icon: "h-sw-xl w-sw-xl",
@@ -23,7 +23,7 @@ const e = {
23
23
  state: r
24
24
  }) => {
25
25
  const t = !!n, a = t && r !== "loading" ? n ?? (() => /* @__PURE__ */ s("span", {})) : ({ className: l, ...d }) => /* @__PURE__ */ s(
26
- m.Loader,
26
+ m,
27
27
  {
28
28
  className: c(e.icon, "animate-spin", l),
29
29
  ...d
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["import { Button as UIButton } from '@headlessui/react';\nimport type { LucideIcon, LucideProps } from 'lucide-react';\nimport * as Icons from 'lucide-react';\n\nimport { cn as clsx } from '@/utils/cn';\n\ntype Size = 'sm' | 'md' | 'lg';\ntype Variant = 'primary' | 'outlined';\ntype State = 'default' | 'loading' | 'disabled' | 'active' | 'error';\n\ntype Props = {\n size: Size;\n state?: State;\n variant: Variant;\n children: React.ReactNode;\n className?: string;\n onClick?: () => void;\n fluid?: boolean;\n} & (\n | { icon: LucideIcon; iconPosition?: 'head' | 'tail' }\n | { icon?: never; iconPosition?: never }\n);\n\nconst styles = {\n icon: 'h-sw-xl w-sw-xl',\n\n size: (size: Size) => ({\n 'px-sw-xl py-sw-[10px] rounded-sw-sm': size === 'sm',\n 'px-sw-2xl py-sw-sm rounded-sw-md': size === 'md',\n 'px-sw-3xl py-sw-xl rounded-sw-lg': size === 'lg',\n }),\n\n width: (fluid?: boolean) => ({\n 'w-full': !fluid,\n }),\n\n common: `\n ring-1 ring-inset ring-transparent\n transition-all duration-250 ease-in-out\n `,\n};\n\nconst ButtonChildren = ({\n icon,\n iconPosition,\n children,\n state,\n}: Pick<Props, 'icon' | 'iconPosition' | 'children' | 'state'>) => {\n const hasIcon = !!icon;\n const Icon =\n hasIcon && state !== 'loading'\n ? (icon ?? (() => <span />))\n : ({ className, ...lucidProps }: LucideProps) => (\n <Icons.Loader\n className={clsx(styles.icon, 'animate-spin', className)}\n {...lucidProps}\n />\n );\n\n return (\n <span className=\"text-sw-label-md flex w-full items-center justify-center gap-sw-lg py-sw-xs\">\n {(hasIcon && iconPosition !== 'tail') ||\n (!hasIcon && state === 'loading') ? (\n <Icon className={styles.icon} />\n ) : null}\n {children}\n {hasIcon && iconPosition === 'tail' && <Icon className={styles.icon} />}\n </span>\n );\n};\n\nconst ButtonPrimary = ({\n size,\n className,\n children,\n state = 'default',\n onClick,\n fluid,\n ...props\n}: Omit<Props, 'variant'>) => {\n const isDisabled = ['disabled', 'loading', 'error'].includes(state)\n ? true\n : undefined;\n\n return (\n <UIButton\n disabled={isDisabled}\n data-active={state === 'active' ? true : undefined}\n onClick={() => state === 'default' && onClick?.()}\n className={clsx(\n styles.common,\n styles.width(fluid),\n styles.size(size),\n {\n 'bg-transparent text-sw-status-error ring-1 ring-inset ring-sw-status-error':\n state === 'error',\n 'bg-transparent text-sw-gray-400 ring-1 ring-inset ring-sw-gray-700':\n state === 'loading' || state === 'disabled',\n 'text-sw-gray-950 bg-sw-accent-500 hover:bg-sw-accent-400 cursor-pointer':\n ['active', 'default'].includes(state),\n },\n className,\n )}>\n <ButtonChildren state={state} {...props}>\n {children}\n </ButtonChildren>\n </UIButton>\n );\n};\n\nconst ButtonOutlined = ({\n size,\n className,\n children,\n state = 'default',\n onClick,\n fluid,\n ...props\n}: Omit<Props, 'variant'>) => {\n const isDisabled = ['disabled', 'loading', 'error'].includes(state)\n ? true\n : undefined;\n\n return (\n <UIButton\n disabled={isDisabled}\n data-active={state === 'active' ? true : undefined}\n onClick={() => state === 'default' && onClick?.()}\n className={clsx(\n styles.common,\n styles.width(fluid),\n styles.size(size),\n {\n 'bg-transparent text-sw-status-error ring-1 ring-inset ring-sw-status-error':\n state === 'error',\n 'bg-transparent text-sw-gray-400 ring-1 ring-inset ring-sw-gray-700':\n state === 'loading' || state === 'disabled',\n 'bg-transparent text-sw-gray-50 ring-1 ring-inset ring-sw-gray-600 hover:ring-sw-gray-100 cursor-pointer':\n ['active', 'default'].includes(state),\n },\n className,\n )}>\n <ButtonChildren state={state} {...props}>\n {children}\n </ButtonChildren>\n </UIButton>\n );\n};\n\nexport const Button = ({ variant, ...restProps }: Props) => {\n switch (variant) {\n case 'outlined':\n return <ButtonOutlined {...restProps} />;\n case 'primary':\n default:\n return <ButtonPrimary {...restProps} />;\n }\n};\n"],"names":["styles","size","fluid","ButtonChildren","icon","iconPosition","children","state","hasIcon","Icon","jsx","className","lucidProps","Icons","clsx","jsxs","ButtonPrimary","onClick","props","isDisabled","UIButton","ButtonOutlined","Button","variant","restProps"],"mappings":";;;;AAuBA,MAAMA,IAAS;AAAA,EACb,MAAM;AAAA,EAEN,MAAM,CAACC,OAAgB;AAAA,IACrB,uCAAuCA,MAAS;AAAA,IAChD,oCAAoCA,MAAS;AAAA,IAC7C,oCAAoCA,MAAS;AAAA,EAAA;AAAA,EAG/C,OAAO,CAACC,OAAqB;AAAA,IAC3B,UAAU,CAACA;AAAA,EAAA;AAAA,EAGb,QAAQ;AAAA;AAAA;AAAA;AAIV,GAEMC,IAAiB,CAAC;AAAA,EACtB,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AACF,MAAmE;AACjE,QAAMC,IAAU,CAAC,CAACJ,GACZK,IACJD,KAAWD,MAAU,YAChBH,MAAS,MAAM,gBAAAM,EAAC,QAAA,CAAA,CAAK,KACtB,CAAC,EAAE,WAAAC,GAAW,GAAGC,QACf,gBAAAF;AAAA,IAACG,EAAM;AAAA,IAAN;AAAA,MACC,WAAWC,EAAKd,EAAO,MAAM,gBAAgBW,CAAS;AAAA,MACrD,GAAGC;AAAA,IAAA;AAAA,EAAA;AAId,SACE,gBAAAG,EAAC,QAAA,EAAK,WAAU,+EACZ,UAAA;AAAA,IAAAP,KAAWH,MAAiB,UAC7B,CAACG,KAAWD,MAAU,YACrB,gBAAAG,EAACD,GAAA,EAAK,WAAWT,EAAO,KAAA,CAAM,IAC5B;AAAA,IACHM;AAAA,IACAE,KAAWH,MAAiB,4BAAWI,GAAA,EAAK,WAAWT,EAAO,KAAA,CAAM;AAAA,EAAA,GACvE;AAEJ,GAEMgB,IAAgB,CAAC;AAAA,EACrB,MAAAf;AAAA,EACA,WAAAU;AAAA,EACA,UAAAL;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,SAAAU;AAAA,EACA,OAAAf;AAAA,EACA,GAAGgB;AACL,MAA8B;AAC5B,QAAMC,IAAa,CAAC,YAAY,WAAW,OAAO,EAAE,SAASZ,CAAK,IAC9D,KACA;AAEJ,SACE,gBAAAG;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,UAAUD;AAAA,MACV,eAAaZ,MAAU,WAAW,KAAO;AAAA,MACzC,SAAS,MAAMA,MAAU,aAAaU,IAAA;AAAA,MACtC,WAAWH;AAAAA,QACTd,EAAO;AAAA,QACPA,EAAO,MAAME,CAAK;AAAA,QAClBF,EAAO,KAAKC,CAAI;AAAA,QAChB;AAAA,UACE,8EACEM,MAAU;AAAA,UACZ,sEACEA,MAAU,aAAaA,MAAU;AAAA,UACnC,2EACE,CAAC,UAAU,SAAS,EAAE,SAASA,CAAK;AAAA,QAAA;AAAA,QAExCI;AAAA,MAAA;AAAA,MAEF,UAAA,gBAAAD,EAACP,GAAA,EAAe,OAAAI,GAAe,GAAGW,GAC/B,UAAAZ,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,GAEMe,IAAiB,CAAC;AAAA,EACtB,MAAApB;AAAA,EACA,WAAAU;AAAA,EACA,UAAAL;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,SAAAU;AAAA,EACA,OAAAf;AAAA,EACA,GAAGgB;AACL,MAA8B;AAC5B,QAAMC,IAAa,CAAC,YAAY,WAAW,OAAO,EAAE,SAASZ,CAAK,IAC9D,KACA;AAEJ,SACE,gBAAAG;AAAA,IAACU;AAAAA,IAAA;AAAA,MACC,UAAUD;AAAA,MACV,eAAaZ,MAAU,WAAW,KAAO;AAAA,MACzC,SAAS,MAAMA,MAAU,aAAaU,IAAA;AAAA,MACtC,WAAWH;AAAAA,QACTd,EAAO;AAAA,QACPA,EAAO,MAAME,CAAK;AAAA,QAClBF,EAAO,KAAKC,CAAI;AAAA,QAChB;AAAA,UACE,8EACEM,MAAU;AAAA,UACZ,sEACEA,MAAU,aAAaA,MAAU;AAAA,UACnC,2GACE,CAAC,UAAU,SAAS,EAAE,SAASA,CAAK;AAAA,QAAA;AAAA,QAExCI;AAAA,MAAA;AAAA,MAEF,UAAA,gBAAAD,EAACP,GAAA,EAAe,OAAAI,GAAe,GAAGW,GAC/B,UAAAZ,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,GAEagB,IAAS,CAAC,EAAE,SAAAC,GAAS,GAAGC,QAAuB;AAC1D,UAAQD,GAAA;AAAA,IACN,KAAK;AACH,aAAO,gBAAAb,EAACW,GAAA,EAAgB,GAAGG,EAAA,CAAW;AAAA,IACxC,KAAK;AAAA,IACL;AACE,aAAO,gBAAAd,EAACM,GAAA,EAAe,GAAGQ,EAAA,CAAW;AAAA,EAAA;AAE3C;"}
1
+ {"version":3,"file":"Button.js","sources":["../../src/components/Button.tsx"],"sourcesContent":["import { Button as UIButton } from '@headlessui/react';\nimport { ProgressActivityW700 as ProgressActivity } from '@material-symbols-svg/react-rounded/icons/progress-activity';\nimport type {\n IconProps,\n MaterialSymbolsComponent,\n} from '@material-symbols-svg/react';\n\nimport { cn as clsx } from '@/utils/cn';\n\ntype Size = 'sm' | 'md' | 'lg';\ntype Variant = 'primary' | 'outlined';\ntype State = 'default' | 'loading' | 'disabled' | 'active' | 'error';\n\ntype Props = {\n size: Size;\n state?: State;\n variant: Variant;\n children: React.ReactNode;\n className?: string;\n onClick?: () => void;\n fluid?: boolean;\n} & (\n | { icon: MaterialSymbolsComponent; iconPosition?: 'head' | 'tail' }\n | { icon?: never; iconPosition?: never }\n);\n\nconst styles = {\n icon: 'h-sw-xl w-sw-xl',\n\n size: (size: Size) => ({\n 'px-sw-xl py-sw-[10px] rounded-sw-sm': size === 'sm',\n 'px-sw-2xl py-sw-sm rounded-sw-md': size === 'md',\n 'px-sw-3xl py-sw-xl rounded-sw-lg': size === 'lg',\n }),\n\n width: (fluid?: boolean) => ({\n 'w-full': !fluid,\n }),\n\n common: `\n ring-1 ring-inset ring-transparent\n transition-all duration-250 ease-in-out\n `,\n};\n\nconst ButtonChildren = ({\n icon,\n iconPosition,\n children,\n state,\n}: Pick<Props, 'icon' | 'iconPosition' | 'children' | 'state'>) => {\n const hasIcon = !!icon;\n const Icon =\n hasIcon && state !== 'loading'\n ? (icon ?? (() => <span />))\n : ({ className, ...iconProps }: IconProps) => (\n <ProgressActivity\n className={clsx(styles.icon, 'animate-spin', className)}\n {...iconProps}\n />\n );\n\n return (\n <span className=\"text-sw-label-md flex w-full items-center justify-center gap-sw-lg py-sw-xs\">\n {(hasIcon && iconPosition !== 'tail') ||\n (!hasIcon && state === 'loading') ? (\n <Icon className={styles.icon} />\n ) : null}\n {children}\n {hasIcon && iconPosition === 'tail' && <Icon className={styles.icon} />}\n </span>\n );\n};\n\nconst ButtonPrimary = ({\n size,\n className,\n children,\n state = 'default',\n onClick,\n fluid,\n ...props\n}: Omit<Props, 'variant'>) => {\n const isDisabled = ['disabled', 'loading', 'error'].includes(state)\n ? true\n : undefined;\n\n return (\n <UIButton\n disabled={isDisabled}\n data-active={state === 'active' ? true : undefined}\n onClick={() => state === 'default' && onClick?.()}\n className={clsx(\n styles.common,\n styles.width(fluid),\n styles.size(size),\n {\n 'bg-transparent text-sw-status-error ring-1 ring-inset ring-sw-status-error':\n state === 'error',\n 'bg-transparent text-sw-gray-400 ring-1 ring-inset ring-sw-gray-700':\n state === 'loading' || state === 'disabled',\n 'text-sw-gray-950 bg-sw-accent-500 hover:bg-sw-accent-400 cursor-pointer':\n ['active', 'default'].includes(state),\n },\n className,\n )}>\n <ButtonChildren state={state} {...props}>\n {children}\n </ButtonChildren>\n </UIButton>\n );\n};\n\nconst ButtonOutlined = ({\n size,\n className,\n children,\n state = 'default',\n onClick,\n fluid,\n ...props\n}: Omit<Props, 'variant'>) => {\n const isDisabled = ['disabled', 'loading', 'error'].includes(state)\n ? true\n : undefined;\n\n return (\n <UIButton\n disabled={isDisabled}\n data-active={state === 'active' ? true : undefined}\n onClick={() => state === 'default' && onClick?.()}\n className={clsx(\n styles.common,\n styles.width(fluid),\n styles.size(size),\n {\n 'bg-transparent text-sw-status-error ring-1 ring-inset ring-sw-status-error':\n state === 'error',\n 'bg-transparent text-sw-gray-400 ring-1 ring-inset ring-sw-gray-700':\n state === 'loading' || state === 'disabled',\n 'bg-transparent text-sw-gray-50 ring-1 ring-inset ring-sw-gray-600 hover:ring-sw-gray-100 cursor-pointer':\n ['active', 'default'].includes(state),\n },\n className,\n )}>\n <ButtonChildren state={state} {...props}>\n {children}\n </ButtonChildren>\n </UIButton>\n );\n};\n\nexport const Button = ({ variant, ...restProps }: Props) => {\n switch (variant) {\n case 'outlined':\n return <ButtonOutlined {...restProps} />;\n case 'primary':\n default:\n return <ButtonPrimary {...restProps} />;\n }\n};\n"],"names":["styles","size","fluid","ButtonChildren","icon","iconPosition","children","state","hasIcon","Icon","jsx","className","iconProps","ProgressActivity","clsx","jsxs","ButtonPrimary","onClick","props","isDisabled","UIButton","ButtonOutlined","Button","variant","restProps"],"mappings":"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"}
@@ -1,22 +1,22 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import * as e from "lucide-react";
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { CloseW700 as e } from "@material-symbols-svg/react-rounded/icons/close";
3
3
  import "../constants/chains.js";
4
4
  import "viem";
5
5
  import "ethers";
6
6
  import { cn as s } from "../utils/cn.js";
7
- const a = ({ className: r, onClick: o }) => /* @__PURE__ */ t(
7
+ const u = ({ className: t, onClick: o }) => /* @__PURE__ */ r(
8
8
  "button",
9
9
  {
10
10
  type: "button",
11
11
  className: s(
12
12
  "flex cursor-pointer items-center justify-center text-sw-gray-200 transition-colors hover:text-sw-gray-50 p-sw-md w-[34px] h-[34px] rounded-sw-md bg-sw-gray-950 hover:bg-sw-gray-800",
13
- r
13
+ t
14
14
  ),
15
15
  onClick: o,
16
- children: /* @__PURE__ */ t(e.X, { size: 18, strokeWidth: 3 })
16
+ children: /* @__PURE__ */ r(e, { size: 18 })
17
17
  }
18
18
  );
19
19
  export {
20
- a as CloseButton
20
+ u as CloseButton
21
21
  };
22
22
  //# sourceMappingURL=CloseButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CloseButton.js","sources":["../../src/components/CloseButton.tsx"],"sourcesContent":["import * as Icons from 'lucide-react';\n\nimport { cn } from '@/utils';\n\ntype Props = {\n className?: string;\n onClick: () => void;\n};\n\nexport const CloseButton = ({ className, onClick }: Props) => {\n return (\n <button\n type=\"button\"\n className={cn(\n 'flex cursor-pointer items-center justify-center text-sw-gray-200 transition-colors hover:text-sw-gray-50 p-sw-md w-[34px] h-[34px] rounded-sw-md bg-sw-gray-950 hover:bg-sw-gray-800',\n className,\n )}\n onClick={onClick}>\n <Icons.X size={18} strokeWidth={3} />\n </button>\n );\n};\n"],"names":["CloseButton","className","onClick","jsx","cn","Icons"],"mappings":";;;;;;AASO,MAAMA,IAAc,CAAC,EAAE,WAAAC,GAAW,SAAAC,QAErC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAEF,SAAAC;AAAA,IACA,4BAACG,EAAM,GAAN,EAAQ,MAAM,IAAI,aAAa,EAAA,CAAG;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"CloseButton.js","sources":["../../src/components/CloseButton.tsx"],"sourcesContent":["import { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';\n\nimport { cn } from '@/utils';\n\ntype Props = {\n className?: string;\n onClick: () => void;\n};\n\nexport const CloseButton = ({ className, onClick }: Props) => {\n return (\n <button\n type=\"button\"\n className={cn(\n 'flex cursor-pointer items-center justify-center text-sw-gray-200 transition-colors hover:text-sw-gray-50 p-sw-md w-[34px] h-[34px] rounded-sw-md bg-sw-gray-950 hover:bg-sw-gray-800',\n className,\n )}\n onClick={onClick}>\n <Close size={18} />\n </button>\n );\n};\n"],"names":["CloseButton","className","onClick","jsx","cn","Close"],"mappings":";;;;;;AASO,MAAMA,IAAc,CAAC,EAAE,WAAAC,GAAW,SAAAC,QAErC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,WAAWC;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAEF,SAAAC;AAAA,IACA,UAAA,gBAAAC,EAACE,GAAA,EAAM,MAAM,GAAA,CAAI;AAAA,EAAA;AAAA;"}
@@ -1,16 +1,16 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
2
  import i from "copy-text-to-clipboard";
3
- import * as r from "lucide-react";
4
- const a = ({ value: o }) => /* @__PURE__ */ t(
3
+ import { ContentCopyW700 as r } from "@material-symbols-svg/react-rounded/icons/content-copy";
4
+ const c = ({ value: o }) => /* @__PURE__ */ t(
5
5
  "button",
6
6
  {
7
7
  type: "button",
8
8
  onClick: () => i(o),
9
9
  className: "text-sw-gray-200 hover:text-sw-gray-50 cursor-pointer transition-all duration-300 [transition-timing-function:cubic-bezier(0.175,0.885,0.32,1.275)] active:-translate-y-1 active:scale-x-90 active:scale-y-110",
10
- children: /* @__PURE__ */ t(r.Copy, { size: 16 })
10
+ children: /* @__PURE__ */ t(r, { size: 16 })
11
11
  }
12
12
  );
13
13
  export {
14
- a as CopyButton
14
+ c as CopyButton
15
15
  };
16
16
  //# sourceMappingURL=CopyButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyButton.js","sources":["../../src/components/CopyButton.tsx"],"sourcesContent":["import copy from 'copy-text-to-clipboard';\nimport * as Icons from 'lucide-react';\n\nexport const CopyButton = ({ value }: { value: string }) => (\n <button\n type=\"button\"\n onClick={() => copy(value)}\n className=\"text-sw-gray-200 hover:text-sw-gray-50 cursor-pointer transition-all duration-300 [transition-timing-function:cubic-bezier(0.175,0.885,0.32,1.275)] active:-translate-y-1 active:scale-x-90 active:scale-y-110\">\n <Icons.Copy size={16} />\n </button>\n);\n"],"names":["CopyButton","value","jsx","copy","Icons"],"mappings":";;;AAGO,MAAMA,IAAa,CAAC,EAAE,OAAAC,EAAA,MAC3B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,SAAS,MAAMC,EAAKF,CAAK;AAAA,IACzB,WAAU;AAAA,IACV,UAAA,gBAAAC,EAACE,EAAM,MAAN,EAAW,MAAM,GAAA,CAAI;AAAA,EAAA;AACxB;"}
1
+ {"version":3,"file":"CopyButton.js","sources":["../../src/components/CopyButton.tsx"],"sourcesContent":["import copy from 'copy-text-to-clipboard';\nimport { ContentCopyW700 as ContentCopy } from '@material-symbols-svg/react-rounded/icons/content-copy';\n\nexport const CopyButton = ({ value }: { value: string }) => (\n <button\n type=\"button\"\n onClick={() => copy(value)}\n className=\"text-sw-gray-200 hover:text-sw-gray-50 cursor-pointer transition-all duration-300 [transition-timing-function:cubic-bezier(0.175,0.885,0.32,1.275)] active:-translate-y-1 active:scale-x-90 active:scale-y-110\">\n <ContentCopy size={16} />\n </button>\n);\n"],"names":["CopyButton","value","jsx","copy","ContentCopy"],"mappings":";;;AAGO,MAAMA,IAAa,CAAC,EAAE,OAAAC,EAAA,MAC3B,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,SAAS,MAAMC,EAAKF,CAAK;AAAA,IACzB,WAAU;AAAA,IACV,UAAA,gBAAAC,EAACE,GAAA,EAAY,MAAM,GAAA,CAAI;AAAA,EAAA;AACzB;"}
@@ -1,27 +1,28 @@
1
1
  import { jsx as r } from "react/jsx-runtime";
2
- import * as s from "lucide-react";
2
+ import { ArrowDownwardW700 as a } from "@material-symbols-svg/react-rounded/icons/arrow-downward";
3
+ import { ProgressActivityW700 as i } from "@material-symbols-svg/react-rounded/icons/progress-activity";
3
4
  import { cn as o } from "../utils/cn.js";
4
- const i = ({
5
- isEnabled: t,
6
- isLoading: e = !1,
7
- onClick: a
5
+ const w = ({
6
+ isEnabled: e,
7
+ isLoading: t = !1,
8
+ onClick: s
8
9
  }) => /* @__PURE__ */ r(
9
10
  "div",
10
11
  {
11
- onClick: t && !e ? a : void 0,
12
+ onClick: e && !t ? s : void 0,
12
13
  className: o(
13
14
  "bg-sw-gray-950 mt-sw-xs group absolute top-1/2 left-1/2 flex h-[40px] w-[40px] -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-sw-md text-sw-gray-100 transition-all duration-150",
14
15
  {
15
- "cursor-pointer hover:scale-110 hover:text-sw-gray-50 hover:bg-sw-gray-700": t && !e
16
+ "cursor-pointer hover:scale-110 hover:text-sw-gray-50 hover:bg-sw-gray-700": e && !t
16
17
  }
17
18
  ),
18
- children: e ? /* @__PURE__ */ r("div", { className: "group relative inline-block", children: /* @__PURE__ */ r(s.RefreshCw, { className: "h-sw-2xl w-sw-2xl animate-spin opacity-50 text-sw-accent-500" }) }) : /* @__PURE__ */ r("div", { className: "group relative inline-block", children: /* @__PURE__ */ r(
19
- s.ArrowDown,
19
+ children: t ? /* @__PURE__ */ r("div", { className: "group relative inline-block", children: /* @__PURE__ */ r(i, { className: "h-sw-2xl w-sw-2xl animate-spin opacity-50 text-sw-accent-500" }) }) : /* @__PURE__ */ r("div", { className: "group relative inline-block", children: /* @__PURE__ */ r(
20
+ a,
20
21
  {
21
22
  className: o(
22
23
  "h-sw-2xl w-sw-2xl transition-transform duration-300",
23
24
  {
24
- "group-hover:rotate-180": t && !e
25
+ "group-hover:rotate-180": e && !t
25
26
  }
26
27
  )
27
28
  }
@@ -29,6 +30,6 @@ const i = ({
29
30
  }
30
31
  );
31
32
  export {
32
- i as DirectionSwitcher
33
+ w as DirectionSwitcher
33
34
  };
34
35
  //# sourceMappingURL=DirectionSwitcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DirectionSwitcher.js","sources":["../../src/components/DirectionSwitcher.tsx"],"sourcesContent":["import * as Icons from 'lucide-react';\n\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n isEnabled: boolean;\n isLoading?: boolean;\n onClick?: () => void;\n};\n\nexport const DirectionSwitcher = ({\n isEnabled,\n isLoading = false,\n onClick,\n}: Props) => {\n return (\n <div\n onClick={isEnabled && !isLoading ? onClick : undefined}\n className={cn(\n 'bg-sw-gray-950 mt-sw-xs group absolute top-1/2 left-1/2 flex h-[40px] w-[40px] -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-sw-md text-sw-gray-100 transition-all duration-150',\n {\n 'cursor-pointer hover:scale-110 hover:text-sw-gray-50 hover:bg-sw-gray-700':\n isEnabled && !isLoading,\n },\n )}>\n {isLoading ? (\n <div className=\"group relative inline-block\">\n <Icons.RefreshCw className=\"h-sw-2xl w-sw-2xl animate-spin opacity-50 text-sw-accent-500\" />\n </div>\n ) : (\n <div className=\"group relative inline-block\">\n <Icons.ArrowDown\n className={cn(\n 'h-sw-2xl w-sw-2xl transition-transform duration-300',\n {\n 'group-hover:rotate-180': isEnabled && !isLoading,\n },\n )}\n />\n </div>\n )}\n </div>\n );\n};\n"],"names":["DirectionSwitcher","isEnabled","isLoading","onClick","jsx","cn","Icons"],"mappings":";;;AAUO,MAAMA,IAAoB,CAAC;AAAA,EAChC,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,SAAAC;AACF,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAASH,KAAa,CAACC,IAAYC,IAAU;AAAA,IAC7C,WAAWE;AAAA,MACT;AAAA,MACA;AAAA,QACE,6EACEJ,KAAa,CAACC;AAAA,MAAA;AAAA,IAClB;AAAA,IAED,cACC,gBAAAE,EAAC,OAAA,EAAI,WAAU,+BACb,4BAACE,EAAM,WAAN,EAAgB,WAAU,gEAA+D,EAAA,CAC5F,IAEA,gBAAAF,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA,gBAAAA;AAAA,MAACE,EAAM;AAAA,MAAN;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACA;AAAA,YACE,0BAA0BJ,KAAa,CAACC;AAAA,UAAA;AAAA,QAC1C;AAAA,MACF;AAAA,IAAA,EACF,CACF;AAAA,EAAA;AAAA;"}
1
+ {"version":3,"file":"DirectionSwitcher.js","sources":["../../src/components/DirectionSwitcher.tsx"],"sourcesContent":["import { ArrowDownwardW700 as ArrowDownward } from '@material-symbols-svg/react-rounded/icons/arrow-downward';\nimport { ProgressActivityW700 as ProgressActivity } from '@material-symbols-svg/react-rounded/icons/progress-activity';\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n isEnabled: boolean;\n isLoading?: boolean;\n onClick?: () => void;\n};\n\nexport const DirectionSwitcher = ({\n isEnabled,\n isLoading = false,\n onClick,\n}: Props) => {\n return (\n <div\n onClick={isEnabled && !isLoading ? onClick : undefined}\n className={cn(\n 'bg-sw-gray-950 mt-sw-xs group absolute top-1/2 left-1/2 flex h-[40px] w-[40px] -translate-x-1/2 -translate-y-1/2 items-center justify-center rounded-sw-md text-sw-gray-100 transition-all duration-150',\n {\n 'cursor-pointer hover:scale-110 hover:text-sw-gray-50 hover:bg-sw-gray-700':\n isEnabled && !isLoading,\n },\n )}>\n {isLoading ? (\n <div className=\"group relative inline-block\">\n <ProgressActivity className=\"h-sw-2xl w-sw-2xl animate-spin opacity-50 text-sw-accent-500\" />\n </div>\n ) : (\n <div className=\"group relative inline-block\">\n <ArrowDownward\n className={cn(\n 'h-sw-2xl w-sw-2xl transition-transform duration-300',\n {\n 'group-hover:rotate-180': isEnabled && !isLoading,\n },\n )}\n />\n </div>\n )}\n </div>\n );\n};\n"],"names":["DirectionSwitcher","isEnabled","isLoading","onClick","jsx","cn","ProgressActivity","ArrowDownward"],"mappings":";;;;AAUO,MAAMA,IAAoB,CAAC;AAAA,EAChC,WAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,SAAAC;AACF,MAEI,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,SAASH,KAAa,CAACC,IAAYC,IAAU;AAAA,IAC7C,WAAWE;AAAA,MACT;AAAA,MACA;AAAA,QACE,6EACEJ,KAAa,CAACC;AAAA,MAAA;AAAA,IAClB;AAAA,IAED,UAAAA,IACC,gBAAAE,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA,gBAAAA,EAACE,GAAA,EAAiB,WAAU,+DAAA,CAA+D,EAAA,CAC7F,IAEA,gBAAAF,EAAC,OAAA,EAAI,WAAU,+BACb,UAAA,gBAAAA;AAAA,MAACG;AAAAA,MAAA;AAAA,QACC,WAAWF;AAAA,UACT;AAAA,UACA;AAAA,YACE,0BAA0BJ,KAAa,CAACC;AAAA,UAAA;AAAA,QAC1C;AAAA,MACF;AAAA,IAAA,EACF,CACF;AAAA,EAAA;AAAA;"}
@@ -1,16 +1,18 @@
1
+ import { MaterialSymbolsComponent } from '@material-symbols-svg/react';
1
2
  import { InputProps } from '@headlessui/react';
2
- import { LucideIcon } from 'lucide-react';
3
3
  type State = 'default' | 'disabled' | 'error' | 'fixed';
4
4
  export type Props = Omit<InputProps, 'size'> & {
5
- icon?: LucideIcon;
5
+ icon?: MaterialSymbolsComponent;
6
6
  defaultValue?: string;
7
7
  focusOnMount?: boolean;
8
+ fontSize?: 'sm' | 'md';
8
9
  state?: State;
9
10
  };
10
11
  export declare const Input: import('react').ForwardRefExoticComponent<Omit<InputProps, "size"> & {
11
- icon?: LucideIcon;
12
+ icon?: MaterialSymbolsComponent;
12
13
  defaultValue?: string;
13
14
  focusOnMount?: boolean;
15
+ fontSize?: "sm" | "md";
14
16
  state?: State;
15
17
  } & {
16
18
  children?: import('react').ReactNode | undefined;
@@ -1,9 +1,9 @@
1
1
  import { jsx as t, jsxs as m } from "react/jsx-runtime";
2
- import { forwardRef as F, useRef as j, useImperativeHandle as R, useState as w, useEffect as p, Fragment as B } from "react";
2
+ import { forwardRef as I, useRef as j, useImperativeHandle as R, useState as w, useEffect as p, Fragment as B } from "react";
3
3
  import { Input as k } from "@headlessui/react";
4
- import * as z from "lucide-react";
4
+ import { CloseW700 as z } from "@material-symbols-svg/react-rounded/icons/close";
5
5
  import { cn as i } from "../utils/cn.js";
6
- const X = F(
6
+ const $ = I(
7
7
  ({
8
8
  state: e = "default",
9
9
  defaultValue: r = "",
@@ -16,25 +16,25 @@ const X = F(
16
16
  }, h) => {
17
17
  const a = j(null);
18
18
  R(h, () => a.current);
19
- const [s, f] = w(!1), [o, n] = w(r), v = () => f(!0), N = () => f(!1), I = () => {
20
- n(""), u?.({
19
+ const [s, f] = w(!1), [o, l] = w(r), v = () => f(!0), N = () => f(!1), C = () => {
20
+ l(""), u?.({
21
21
  target: { value: "" }
22
22
  });
23
- }, C = (g) => {
24
- n(g.target.value), u?.(g);
23
+ }, F = (g) => {
24
+ l(g.target.value), u?.(g);
25
25
  };
26
26
  p(() => {
27
- n(r);
27
+ l(r);
28
28
  }, [r]), p(() => {
29
29
  x && a.current?.focus();
30
30
  }, []);
31
- const l = ["disabled", "fixed"].includes(e);
31
+ const n = ["disabled", "fixed"].includes(e);
32
32
  return /* @__PURE__ */ t(
33
33
  k,
34
34
  {
35
35
  type: "text",
36
36
  as: B,
37
- disabled: l,
37
+ disabled: n,
38
38
  autoComplete: "off",
39
39
  className: i(
40
40
  "px-sw-lg py-sw-lg text-sw-label-md rounded-sw-md ring-transparent ring-1 ring-inset data-focus:outline-none transition-colors bg-sw-gray-800",
@@ -57,8 +57,8 @@ const X = F(
57
57
  ref: a,
58
58
  onBlur: N,
59
59
  onFocus: v,
60
- onChange: C,
61
- disabled: l,
60
+ onChange: F,
61
+ disabled: n,
62
62
  placeholder: d.placeholder,
63
63
  autoComplete: "off",
64
64
  className: i("text-sw-label-md mr-auto w-full outline-none", {
@@ -66,7 +66,7 @@ const X = F(
66
66
  })
67
67
  }
68
68
  ),
69
- !l && /* @__PURE__ */ m("div", { className: "gap-sw-md relative flex items-center justify-end", children: [
69
+ !n && /* @__PURE__ */ m("div", { className: "gap-sw-md relative flex items-center justify-end", children: [
70
70
  b,
71
71
  o ? /* @__PURE__ */ t(
72
72
  "button",
@@ -80,8 +80,8 @@ const X = F(
80
80
  "cursor-default text-sw-gray-300": !s
81
81
  }
82
82
  ),
83
- onClick: I,
84
- children: /* @__PURE__ */ t(z.X, { className: "h-sw-xl w-sw-xl" })
83
+ onClick: C,
84
+ children: /* @__PURE__ */ t(z, { className: "h-sw-xl w-sw-xl" })
85
85
  }
86
86
  ) : null
87
87
  ] })
@@ -91,6 +91,6 @@ const X = F(
91
91
  }
92
92
  );
93
93
  export {
94
- X as Input
94
+ $ as Input
95
95
  };
96
96
  //# sourceMappingURL=Input.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../src/components/Input.tsx"],"sourcesContent":["import {\n forwardRef,\n Fragment,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { Input as UIInput } from '@headlessui/react';\nimport type { InputProps } from '@headlessui/react';\nimport type { PropsWithChildren } from 'react';\nimport type { LucideIcon } from 'lucide-react';\nimport * as Icons from 'lucide-react';\n\nimport { cn } from '@/utils/cn';\n\ntype State = 'default' | 'disabled' | 'error' | 'fixed';\n\nexport type Props = Omit<InputProps, 'size'> & {\n icon?: LucideIcon;\n defaultValue?: string;\n focusOnMount?: boolean;\n state?: State;\n};\n\nexport const Input = forwardRef<HTMLInputElement, PropsWithChildren<Props>>(\n (\n {\n state = 'default',\n defaultValue = '',\n focusOnMount = false,\n className,\n onChange,\n children,\n icon: Icon,\n ...inputProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => inputRef.current!);\n\n const [isFocused, setIsFocused] = useState(false);\n const [value, setValue] = useState(defaultValue);\n\n const handleFocus = () => setIsFocused(true);\n const handleBlur = () => setIsFocused(false);\n const handleClear = () => {\n setValue('');\n onChange?.({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n };\n\n const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n useEffect(() => {\n if (focusOnMount) {\n inputRef.current?.focus();\n }\n }, []);\n\n const inputDisabled = ['disabled', 'fixed'].includes(state);\n\n return (\n <UIInput\n type=\"text\"\n as={Fragment}\n disabled={inputDisabled}\n autoComplete=\"off\"\n className={cn(\n 'px-sw-lg py-sw-lg text-sw-label-md rounded-sw-md ring-transparent ring-1 ring-inset data-focus:outline-none transition-colors bg-sw-gray-800',\n {\n 'text-sw-gray-400 bg-sw-gray-800': state === 'fixed',\n 'text-sw-status-error bg-sw-gray-800': state === 'error',\n 'text-sw-gray-50 bg-sw-gray-700': isFocused && state === 'default',\n 'text-sw-gray-50 hover:bg-sw-gray-700':\n !isFocused && state === 'default',\n 'cursor-not-allowed bg-sw-gray-800 text-sw-gray-400':\n state === 'disabled',\n },\n className,\n )}\n {...inputProps}>\n {() => (\n <div className=\"flex items-center justify-between\">\n {Icon && <Icon size={16} className=\"mr-sw-md text-sw-gray-200\" />}\n <input\n value={value}\n ref={inputRef}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onChange={onInputChange}\n disabled={inputDisabled}\n placeholder={inputProps.placeholder}\n autoComplete=\"off\"\n className={cn('text-sw-label-md mr-auto w-full outline-none', {\n 'cursor-not-allowed': state === 'disabled',\n })}\n />\n {!inputDisabled && (\n <div className=\"gap-sw-md relative flex items-center justify-end\">\n {children}\n {value ? (\n <button\n type=\"button\"\n className={cn(\n 'opacity-0 transition-opacity duration-150 ease-in-out hover:text-sw-gray-50',\n {\n 'cursor-pointer opacity-100': !!value,\n 'cursor-default text-sw-gray-200': isFocused,\n 'cursor-default text-sw-gray-300': !isFocused,\n },\n )}\n onClick={handleClear}>\n <Icons.X className=\"h-sw-xl w-sw-xl\" />\n </button>\n ) : null}\n </div>\n )}\n </div>\n )}\n </UIInput>\n );\n },\n);\n"],"names":["Input","forwardRef","state","defaultValue","focusOnMount","className","onChange","children","Icon","inputProps","ref","inputRef","useRef","useImperativeHandle","isFocused","setIsFocused","useState","value","setValue","handleFocus","handleBlur","handleClear","onInputChange","e","useEffect","inputDisabled","jsx","UIInput","Fragment","cn","jsxs","Icons"],"mappings":";;;;;AAyBO,MAAMA,IAAQC;AAAA,EACnB,CACE;AAAA,IACE,OAAAC,IAAQ;AAAA,IACR,cAAAC,IAAe;AAAA,IACf,cAAAC,IAAe;AAAA,IACf,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAMC;AAAA,IACN,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAWC,EAAyB,IAAI;AAE9C,IAAAC,EAAoBH,GAAK,MAAMC,EAAS,OAAQ;AAEhD,UAAM,CAACG,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAOC,CAAQ,IAAIF,EAASb,CAAY,GAEzCgB,IAAc,MAAMJ,EAAa,EAAI,GACrCK,IAAa,MAAML,EAAa,EAAK,GACrCM,IAAc,MAAM;AACxB,MAAAH,EAAS,EAAE,GACXZ,IAAW;AAAA,QACT,QAAQ,EAAE,OAAO,GAAA;AAAA,MAAG,CACkB;AAAA,IAC1C,GAEMgB,IAAgB,CAACC,MAA2C;AAChE,MAAAL,EAASK,EAAE,OAAO,KAAK,GACvBjB,IAAWiB,CAAC;AAAA,IACd;AAEA,IAAAC,EAAU,MAAM;AACd,MAAAN,EAASf,CAAY;AAAA,IACvB,GAAG,CAACA,CAAY,CAAC,GAEjBqB,EAAU,MAAM;AACd,MAAIpB,KACFO,EAAS,SAAS,MAAA;AAAA,IAEtB,GAAG,CAAA,CAAE;AAEL,UAAMc,IAAgB,CAAC,YAAY,OAAO,EAAE,SAASvB,CAAK;AAE1D,WACE,gBAAAwB;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,IAAIC;AAAA,QACJ,UAAUH;AAAA,QACV,cAAa;AAAA,QACb,WAAWI;AAAA,UACT;AAAA,UACA;AAAA,YACE,mCAAmC3B,MAAU;AAAA,YAC7C,uCAAuCA,MAAU;AAAA,YACjD,kCAAkCY,KAAaZ,MAAU;AAAA,YACzD,wCACE,CAACY,KAAaZ,MAAU;AAAA,YAC1B,sDACEA,MAAU;AAAA,UAAA;AAAA,UAEdG;AAAA,QAAA;AAAA,QAED,GAAGI;AAAA,QACH,UAAA,MACC,gBAAAqB,EAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,UAAAtB,KAAQ,gBAAAkB,EAAClB,GAAA,EAAK,MAAM,IAAI,WAAU,6BAA4B;AAAA,UAC/D,gBAAAkB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAAT;AAAA,cACA,KAAKN;AAAA,cACL,QAAQS;AAAA,cACR,SAASD;AAAA,cACT,UAAUG;AAAA,cACV,UAAUG;AAAA,cACV,aAAahB,EAAW;AAAA,cACxB,cAAa;AAAA,cACb,WAAWoB,EAAG,gDAAgD;AAAA,gBAC5D,sBAAsB3B,MAAU;AAAA,cAAA,CACjC;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,CAACuB,KACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,oDACZ,UAAA;AAAA,YAAAvB;AAAA,YACAU,IACC,gBAAAS;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,WAAWG;AAAA,kBACT;AAAA,kBACA;AAAA,oBACE,8BAA8B,CAAC,CAACZ;AAAA,oBAChC,mCAAmCH;AAAA,oBACnC,mCAAmC,CAACA;AAAA,kBAAA;AAAA,gBACtC;AAAA,gBAEF,SAASO;AAAA,gBACT,UAAA,gBAAAK,EAACK,EAAM,GAAN,EAAQ,WAAU,kBAAA,CAAkB;AAAA,cAAA;AAAA,YAAA,IAErC;AAAA,UAAA,EAAA,CACN;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;"}
1
+ {"version":3,"file":"Input.js","sources":["../../src/components/Input.tsx"],"sourcesContent":["import {\n forwardRef,\n Fragment,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from 'react';\nimport { Input as UIInput } from '@headlessui/react';\nimport { CloseW700 as Close } from '@material-symbols-svg/react-rounded/icons/close';\nimport type { MaterialSymbolsComponent } from '@material-symbols-svg/react';\nimport type { InputProps } from '@headlessui/react';\nimport type { PropsWithChildren } from 'react';\n\nimport { cn } from '@/utils/cn';\n\ntype State = 'default' | 'disabled' | 'error' | 'fixed';\n\nexport type Props = Omit<InputProps, 'size'> & {\n icon?: MaterialSymbolsComponent;\n defaultValue?: string;\n focusOnMount?: boolean;\n fontSize?: 'sm' | 'md';\n state?: State;\n};\n\nexport const Input = forwardRef<HTMLInputElement, PropsWithChildren<Props>>(\n (\n {\n state = 'default',\n defaultValue = '',\n focusOnMount = false,\n className,\n onChange,\n children,\n icon: Icon,\n ...inputProps\n },\n ref,\n ) => {\n const inputRef = useRef<HTMLInputElement>(null);\n\n useImperativeHandle(ref, () => inputRef.current!);\n\n const [isFocused, setIsFocused] = useState(false);\n const [value, setValue] = useState(defaultValue);\n\n const handleFocus = () => setIsFocused(true);\n const handleBlur = () => setIsFocused(false);\n const handleClear = () => {\n setValue('');\n onChange?.({\n target: { value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n };\n\n const onInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setValue(e.target.value);\n onChange?.(e);\n };\n\n useEffect(() => {\n setValue(defaultValue);\n }, [defaultValue]);\n\n useEffect(() => {\n if (focusOnMount) {\n inputRef.current?.focus();\n }\n }, []);\n\n const inputDisabled = ['disabled', 'fixed'].includes(state);\n\n return (\n <UIInput\n type=\"text\"\n as={Fragment}\n disabled={inputDisabled}\n autoComplete=\"off\"\n className={cn(\n 'px-sw-lg py-sw-lg text-sw-label-md rounded-sw-md ring-transparent ring-1 ring-inset data-focus:outline-none transition-colors bg-sw-gray-800',\n {\n 'text-sw-gray-400 bg-sw-gray-800': state === 'fixed',\n 'text-sw-status-error bg-sw-gray-800': state === 'error',\n 'text-sw-gray-50 bg-sw-gray-700': isFocused && state === 'default',\n 'text-sw-gray-50 hover:bg-sw-gray-700':\n !isFocused && state === 'default',\n 'cursor-not-allowed bg-sw-gray-800 text-sw-gray-400':\n state === 'disabled',\n },\n className,\n )}\n {...inputProps}>\n {() => (\n <div className=\"flex items-center justify-between\">\n {Icon && <Icon size={16} className=\"mr-sw-md text-sw-gray-200\" />}\n <input\n value={value}\n ref={inputRef}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onChange={onInputChange}\n disabled={inputDisabled}\n placeholder={inputProps.placeholder}\n autoComplete=\"off\"\n className={cn('text-sw-label-md mr-auto w-full outline-none', {\n 'cursor-not-allowed': state === 'disabled',\n })}\n />\n {!inputDisabled && (\n <div className=\"gap-sw-md relative flex items-center justify-end\">\n {children}\n {value ? (\n <button\n type=\"button\"\n className={cn(\n 'opacity-0 transition-opacity duration-150 ease-in-out hover:text-sw-gray-50',\n {\n 'cursor-pointer opacity-100': !!value,\n 'cursor-default text-sw-gray-200': isFocused,\n 'cursor-default text-sw-gray-300': !isFocused,\n },\n )}\n onClick={handleClear}>\n <Close className=\"h-sw-xl w-sw-xl\" />\n </button>\n ) : null}\n </div>\n )}\n </div>\n )}\n </UIInput>\n );\n },\n);\n"],"names":["Input","forwardRef","state","defaultValue","focusOnMount","className","onChange","children","Icon","inputProps","ref","inputRef","useRef","useImperativeHandle","isFocused","setIsFocused","useState","value","setValue","handleFocus","handleBlur","handleClear","onInputChange","e","useEffect","inputDisabled","jsx","UIInput","Fragment","cn","jsxs","Close"],"mappings":";;;;;AA0BO,MAAMA,IAAQC;AAAA,EACnB,CACE;AAAA,IACE,OAAAC,IAAQ;AAAA,IACR,cAAAC,IAAe;AAAA,IACf,cAAAC,IAAe;AAAA,IACf,WAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,MAAMC;AAAA,IACN,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAWC,EAAyB,IAAI;AAE9C,IAAAC,EAAoBH,GAAK,MAAMC,EAAS,OAAQ;AAEhD,UAAM,CAACG,GAAWC,CAAY,IAAIC,EAAS,EAAK,GAC1C,CAACC,GAAOC,CAAQ,IAAIF,EAASb,CAAY,GAEzCgB,IAAc,MAAMJ,EAAa,EAAI,GACrCK,IAAa,MAAML,EAAa,EAAK,GACrCM,IAAc,MAAM;AACxB,MAAAH,EAAS,EAAE,GACXZ,IAAW;AAAA,QACT,QAAQ,EAAE,OAAO,GAAA;AAAA,MAAG,CACkB;AAAA,IAC1C,GAEMgB,IAAgB,CAACC,MAA2C;AAChE,MAAAL,EAASK,EAAE,OAAO,KAAK,GACvBjB,IAAWiB,CAAC;AAAA,IACd;AAEA,IAAAC,EAAU,MAAM;AACd,MAAAN,EAASf,CAAY;AAAA,IACvB,GAAG,CAACA,CAAY,CAAC,GAEjBqB,EAAU,MAAM;AACd,MAAIpB,KACFO,EAAS,SAAS,MAAA;AAAA,IAEtB,GAAG,CAAA,CAAE;AAEL,UAAMc,IAAgB,CAAC,YAAY,OAAO,EAAE,SAASvB,CAAK;AAE1D,WACE,gBAAAwB;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,IAAIC;AAAA,QACJ,UAAUH;AAAA,QACV,cAAa;AAAA,QACb,WAAWI;AAAA,UACT;AAAA,UACA;AAAA,YACE,mCAAmC3B,MAAU;AAAA,YAC7C,uCAAuCA,MAAU;AAAA,YACjD,kCAAkCY,KAAaZ,MAAU;AAAA,YACzD,wCACE,CAACY,KAAaZ,MAAU;AAAA,YAC1B,sDACEA,MAAU;AAAA,UAAA;AAAA,UAEdG;AAAA,QAAA;AAAA,QAED,GAAGI;AAAA,QACH,UAAA,MACC,gBAAAqB,EAAC,OAAA,EAAI,WAAU,qCACZ,UAAA;AAAA,UAAAtB,KAAQ,gBAAAkB,EAAClB,GAAA,EAAK,MAAM,IAAI,WAAU,6BAA4B;AAAA,UAC/D,gBAAAkB;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAAT;AAAA,cACA,KAAKN;AAAA,cACL,QAAQS;AAAA,cACR,SAASD;AAAA,cACT,UAAUG;AAAA,cACV,UAAUG;AAAA,cACV,aAAahB,EAAW;AAAA,cACxB,cAAa;AAAA,cACb,WAAWoB,EAAG,gDAAgD;AAAA,gBAC5D,sBAAsB3B,MAAU;AAAA,cAAA,CACjC;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,CAACuB,KACA,gBAAAK,EAAC,OAAA,EAAI,WAAU,oDACZ,UAAA;AAAA,YAAAvB;AAAA,YACAU,IACC,gBAAAS;AAAA,cAAC;AAAA,cAAA;AAAA,gBACC,MAAK;AAAA,gBACL,WAAWG;AAAA,kBACT;AAAA,kBACA;AAAA,oBACE,8BAA8B,CAAC,CAACZ;AAAA,oBAChC,mCAAmCH;AAAA,oBACnC,mCAAmC,CAACA;AAAA,kBAAA;AAAA,gBACtC;AAAA,gBAEF,SAASO;AAAA,gBACT,UAAA,gBAAAK,EAACK,GAAA,EAAM,WAAU,kBAAA,CAAkB;AAAA,cAAA;AAAA,YAAA,IAEnC;AAAA,UAAA,EAAA,CACN;AAAA,QAAA,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAIR;AACF;"}