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

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 (180) hide show
  1. package/dist/components/Accordion.js +34 -35
  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 +10 -2
  8. package/dist/components/Button.js +53 -43
  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.d.ts +5 -2
  13. package/dist/components/CopyButton.js +11 -7
  14. package/dist/components/CopyButton.js.map +1 -1
  15. package/dist/components/DirectionSwitcher.js +12 -11
  16. package/dist/components/DirectionSwitcher.js.map +1 -1
  17. package/dist/components/Input.d.ts +5 -3
  18. package/dist/components/Input.js +16 -16
  19. package/dist/components/Input.js.map +1 -1
  20. package/dist/components/Notes.js +1 -1
  21. package/dist/components/Notes.js.map +1 -1
  22. package/dist/components/StatusWidget.js +8 -21
  23. package/dist/components/StatusWidget.js.map +1 -1
  24. package/dist/{config-DJObWR7Z.js → config-BMvXuF1-.js} +692 -673
  25. package/dist/config-BMvXuF1-.js.map +1 -0
  26. package/dist/config.js +21 -6
  27. package/dist/config.js.map +1 -1
  28. package/dist/errors.js +1 -1
  29. package/dist/ext/alchemy/index.js +1 -1
  30. package/dist/ext/index.js +1 -1
  31. package/dist/features/BalanceRpcLoader/TokenBalanceLoader.js +1 -1
  32. package/dist/features/BalanceRpcLoader/index.js +1 -1
  33. package/dist/features/BalanceRpcLoader/useTokenBalanceRpc.js +1 -1
  34. package/dist/features/ChainsDropdown/AllNetworksIcon.js +3 -3
  35. package/dist/features/ChainsDropdown/AllNetworksIcon.js.map +1 -1
  36. package/dist/features/ChainsDropdown/ChainItem.js +7 -7
  37. package/dist/features/ChainsDropdown/ChainItem.js.map +1 -1
  38. package/dist/features/ChainsDropdown/index.js +45 -33
  39. package/dist/features/ChainsDropdown/index.js.map +1 -1
  40. package/dist/features/DepositMethodSwitcher.js +18 -17
  41. package/dist/features/DepositMethodSwitcher.js.map +1 -1
  42. package/dist/features/ErrorBoundary.js +1 -1
  43. package/dist/features/ExternalDeposit.js +22 -15
  44. package/dist/features/ExternalDeposit.js.map +1 -1
  45. package/dist/features/SendAddress/index.js +15 -14
  46. package/dist/features/SendAddress/index.js.map +1 -1
  47. package/dist/features/SendAddress/useNotification.js +1 -1
  48. package/dist/features/SubmitButton/index.js +1 -1
  49. package/dist/features/SuccessScreen/CopyableValue.d.ts +5 -0
  50. package/dist/features/SuccessScreen/CopyableValue.js +11 -0
  51. package/dist/features/SuccessScreen/CopyableValue.js.map +1 -0
  52. package/dist/features/SuccessScreen/TokenRow.d.ts +8 -0
  53. package/dist/features/SuccessScreen/TokenRow.js +20 -0
  54. package/dist/features/SuccessScreen/TokenRow.js.map +1 -0
  55. package/dist/features/SuccessScreen/index.d.ts +5 -4
  56. package/dist/features/SuccessScreen/index.js +151 -49
  57. package/dist/features/SuccessScreen/index.js.map +1 -1
  58. package/dist/features/SuccessScreen/useSummaryItemsCount.d.ts +1 -0
  59. package/dist/features/SuccessScreen/useSummaryItemsCount.js +14 -0
  60. package/dist/features/SuccessScreen/useSummaryItemsCount.js.map +1 -0
  61. package/dist/features/SwapDirectionSwitcher.js +1 -1
  62. package/dist/features/SwapQuote/SwapQuote.js +1 -1
  63. package/dist/features/SwapQuote/index.js +1 -1
  64. package/dist/features/TokenInput/TokenInput.js +1 -1
  65. package/dist/features/TokenInput/TokenInputEmpty.js +1 -1
  66. package/dist/features/TokenInput/TokenInputSource.js +1 -1
  67. package/dist/features/TokenInput/TokenInputTarget.js +2 -2
  68. package/dist/features/TokenInput/WalletBalance.js +1 -1
  69. package/dist/features/TokenInput/hooks/index.js +1 -1
  70. package/dist/features/TokenInput/hooks/useTokenInputBalance.js +1 -1
  71. package/dist/features/TokenInput/index.js +1 -1
  72. package/dist/features/TokensList/TokenItem.js +2 -2
  73. package/dist/features/TokensList/TokensList.js +1 -1
  74. package/dist/features/TokensList/index.js +1 -1
  75. package/dist/features/TokensModal.js +11 -11
  76. package/dist/features/TokensModal.js.map +1 -1
  77. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js +19 -6
  78. package/dist/features/WalletCompatibilityCheck/WalletCompatibilityModal.js.map +1 -1
  79. package/dist/features/WalletCompatibilityCheck/index.js +1 -1
  80. package/dist/features/index.js +1 -1
  81. package/dist/hooks/index.js +1 -1
  82. package/dist/hooks/useAllTokens.js +1 -1
  83. package/dist/hooks/useChains.js +1 -1
  84. package/dist/hooks/useCompatibilityCheck.js +1 -1
  85. package/dist/hooks/useDefaultToken.js +1 -1
  86. package/dist/hooks/useExternalDepositStatus/index.js +1 -1
  87. package/dist/hooks/useExternalDepositStatus/usePoaExternalDepositStatus.js +1 -1
  88. package/dist/hooks/useIntentsBalance.js +1 -1
  89. package/dist/hooks/useIsCompatibilityCheckRequired.js +1 -1
  90. package/dist/hooks/useMakeDepositAddress.js +1 -1
  91. package/dist/hooks/useMakeIntentsTransfer.js +1 -1
  92. package/dist/hooks/useMakeNEARFtTransferCall.js +1 -1
  93. package/dist/hooks/useMakeQuote.js +1 -1
  94. package/dist/hooks/useMakeQuoteTransfer.js +1 -1
  95. package/dist/hooks/useMakeTransfer.js +1 -1
  96. package/dist/hooks/useMergedBalance.js +1 -1
  97. package/dist/hooks/useSwitchChain.js +1 -1
  98. package/dist/hooks/useTheme.js +1 -1
  99. package/dist/hooks/useTokenInputPair.js +1 -1
  100. package/dist/hooks/useTokens.js +1 -1
  101. package/dist/hooks/useTokensFiltered.js +1 -1
  102. package/dist/hooks/useTokensIntentsUnique.js +1 -1
  103. package/dist/index.js +1 -1
  104. package/dist/machine/effects/index.js +1 -1
  105. package/dist/machine/effects/useAlchemyBalanceEffect.js +1 -1
  106. package/dist/machine/effects/useBalancesUpdateEffect.js +1 -1
  107. package/dist/machine/effects/useMakeQuoteEffect.js +1 -1
  108. package/dist/machine/effects/useSelectedTokensEffect.js +1 -1
  109. package/dist/machine/effects/useSetTokenBalanceEffect.js +1 -1
  110. package/dist/machine/effects/useSetTokenIntentsTargetEffect.js +1 -1
  111. package/dist/machine/effects/useWalletConnEffect.js +1 -1
  112. package/dist/machine/events/index.js +1 -1
  113. package/dist/machine/events/reset.d.ts +1 -0
  114. package/dist/machine/events/reset.js +2 -2
  115. package/dist/machine/events/reset.js.map +1 -1
  116. package/dist/machine/events/tokenSelect.js +1 -1
  117. package/dist/machine/events/validateInputAndMoveTo.js +1 -1
  118. package/dist/machine/events/validateInputs.js +1 -1
  119. package/dist/machine/index.js +1 -1
  120. package/dist/machine/snap.js +1 -1
  121. package/dist/machine/subscriptions/checkers/isSendAddressAsConnected.js +1 -1
  122. package/dist/machine/subscriptions/index.js +1 -1
  123. package/dist/styles.css +1 -1
  124. package/dist/tailwind.css +9 -0
  125. package/dist/theme/ThemeProvider.js +1 -1
  126. package/dist/types/localisation.d.ts +1 -1
  127. package/dist/utils/intents/signers/near.js +1 -1
  128. package/dist/utils/intents/signers/privy.js +1 -1
  129. package/dist/utils/near/getNearNep141StorageBalance.js +1 -1
  130. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js +79 -71
  131. package/dist/widgets/WidgetDeposit/WidgetDepositContent.js.map +1 -1
  132. package/dist/widgets/WidgetDeposit/WidgetDepositSkeleton.js +1 -1
  133. package/dist/widgets/WidgetSwap/WidgetSwapContent.js +94 -81
  134. package/dist/widgets/WidgetSwap/WidgetSwapContent.js.map +1 -1
  135. package/dist/widgets/WidgetSwap/WidgetSwapSkeleton.js +1 -1
  136. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js +79 -67
  137. package/dist/widgets/WidgetWithdraw/WidgetWithdrawContent.js.map +1 -1
  138. package/dist/widgets/WidgetWithdraw/WidgetWithdrawSkeleton.js +1 -1
  139. package/package.json +1 -2
  140. package/src/components/Accordion.tsx +8 -9
  141. package/src/components/Banner.tsx +17 -8
  142. package/src/components/BlockingError.tsx +4 -6
  143. package/src/components/Button.tsx +26 -7
  144. package/src/components/CloseButton.tsx +2 -2
  145. package/src/components/CopyButton.tsx +14 -4
  146. package/src/components/DirectionSwitcher.tsx +4 -4
  147. package/src/components/Input.tsx +5 -4
  148. package/src/components/Notes.tsx +1 -1
  149. package/src/components/StatusWidget.tsx +4 -11
  150. package/src/features/ChainsDropdown/AllNetworksIcon.tsx +2 -2
  151. package/src/features/ChainsDropdown/ChainItem.tsx +2 -2
  152. package/src/features/ChainsDropdown/index.tsx +9 -3
  153. package/src/features/DepositMethodSwitcher.tsx +4 -3
  154. package/src/features/ExternalDeposit.tsx +2 -2
  155. package/src/features/SendAddress/index.tsx +3 -2
  156. package/src/features/SuccessScreen/CopyableValue.tsx +13 -0
  157. package/src/features/SuccessScreen/TokenRow.tsx +26 -0
  158. package/src/features/SuccessScreen/index.tsx +161 -55
  159. package/src/features/SuccessScreen/useSummaryItemsCount.ts +33 -0
  160. package/src/features/TokensModal.tsx +2 -2
  161. package/src/features/WalletCompatibilityCheck/WalletCompatibilityModal.tsx +8 -9
  162. package/src/machine/events/reset.ts +6 -3
  163. package/src/tailwind.css +9 -0
  164. package/src/types/localisation.ts +10 -3
  165. package/src/widgets/WidgetDeposit/WidgetDepositContent.tsx +6 -4
  166. package/src/widgets/WidgetSwap/WidgetSwapContent.tsx +7 -4
  167. package/src/widgets/WidgetWithdraw/WidgetWithdrawContent.tsx +7 -4
  168. package/dist/config-DJObWR7Z.js.map +0 -1
  169. package/dist/features/SuccessScreen/CheckIcon.d.ts +0 -1
  170. package/dist/features/SuccessScreen/CheckIcon.js +0 -7
  171. package/dist/features/SuccessScreen/CheckIcon.js.map +0 -1
  172. package/dist/features/SuccessScreen/ExternalAction.d.ts +0 -5
  173. package/dist/features/SuccessScreen/ExternalAction.js +0 -16
  174. package/dist/features/SuccessScreen/ExternalAction.js.map +0 -1
  175. package/dist/features/SuccessScreen/SummaryItem.d.ts +0 -8
  176. package/dist/features/SuccessScreen/SummaryItem.js +0 -21
  177. package/dist/features/SuccessScreen/SummaryItem.js.map +0 -1
  178. package/src/features/SuccessScreen/CheckIcon.tsx +0 -7
  179. package/src/features/SuccessScreen/ExternalAction.tsx +0 -15
  180. package/src/features/SuccessScreen/SummaryItem.tsx +0 -28
@@ -1,48 +1,47 @@
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 l } 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 = ({
9
- title: r,
10
- badge: l,
8
+ const E = ({
9
+ title: a,
10
+ badge: t,
11
11
  children: o,
12
- isBadgeLoading: n,
13
- expandedHeightPx: m,
12
+ isBadgeLoading: m,
13
+ expandedHeightPx: n,
14
14
  expandedByDefault: i = !1,
15
15
  className: c
16
16
  }) => {
17
- const [t, d] = x(i);
18
- return /* @__PURE__ */ s(
19
- f,
20
- {
21
- isClickable: !0,
22
- className: u("py-sw-lg", c),
23
- onClick: () => d((w) => !w),
24
- children: [
25
- /* @__PURE__ */ s("header", { className: "align-center flex w-full justify-between", children: [
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" }) })
29
- ] }),
30
- /* @__PURE__ */ s(
31
- "div",
32
- {
33
- style: { height: t ? m : 0 },
34
- className: "gap-sw-md flex flex-col overflow-hidden transition-all delay-0 duration-300 ease-in-out",
35
- children: [
36
- /* @__PURE__ */ e(p, { className: "mt-sw-xl mb-sw-md" }),
37
- o
38
- ]
39
- }
40
- )
41
- ]
42
- }
43
- );
17
+ const [r, d] = w(i);
18
+ return /* @__PURE__ */ s(f, { className: u("py-sw-xl", c), children: [
19
+ /* @__PURE__ */ s(
20
+ "header",
21
+ {
22
+ onClick: () => d((x) => !x),
23
+ className: "items-center flex w-full justify-between cursor-pointer",
24
+ children: [
25
+ /* @__PURE__ */ e("span", { className: "gap-sw-xs text-sw-label-md flex text-center text-sw-gray-200", children: a }),
26
+ 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 }),
27
+ /* @__PURE__ */ e("button", { type: "button", className: "ml-sw-lg cursor-pointer", children: r ? /* @__PURE__ */ e(l, { className: "h-sw-2xl w-sw-2xl text-sw-gray-200 rotate-90" }) : /* @__PURE__ */ e(l, { className: "h-sw-2xl w-sw-2xl text-sw-gray-200 -rotate-90" }) })
28
+ ]
29
+ }
30
+ ),
31
+ /* @__PURE__ */ s(
32
+ "div",
33
+ {
34
+ style: { height: r ? n : 0 },
35
+ className: "gap-sw-md flex flex-col overflow-hidden transition-all delay-0 duration-300 ease-in-out",
36
+ children: [
37
+ /* @__PURE__ */ e(p, { className: "mt-sw-xl mb-sw-md" }),
38
+ o
39
+ ]
40
+ }
41
+ )
42
+ ] });
44
43
  };
45
44
  export {
46
- j as Accordion
45
+ E as Accordion
47
46
  };
48
47
  //# 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 className={cn('py-sw-xl', className)}>\n <header\n onClick={() => setIsExpanded((p) => !p)}\n className=\"items-center flex w-full justify-between cursor-pointer\">\n <span className=\"gap-sw-xs text-sw-label-md 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","Card","cn","jsxs","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,2BACGK,GAAA,EAAK,WAAWC,EAAG,YAAYL,CAAS,GACvC,UAAA;AAAA,IAAA,gBAAAM;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,MAAMJ,EAAc,CAACK,MAAM,CAACA,CAAC;AAAA,QACtC,WAAU;AAAA,QACV,UAAA;AAAA,UAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,gEACb,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;AAAA,MAAA;AAAA,IAAA;AAAA,IAGF,gBAAAJ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,EAAE,QAAQL,IAAaH,IAAmB,EAAA;AAAA,QACjD,WAAU;AAAA,QACV,UAAA;AAAA,UAAA,gBAAAU,EAACG,GAAA,EAAG,WAAU,oBAAA,CAAoB;AAAA,UACjCf;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GACF;AAEJ;"}
@@ -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,11 +11,19 @@ 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;
18
18
  iconPosition?: never;
19
+ }) & ({
20
+ as?: 'button';
21
+ href?: never;
22
+ target?: never;
23
+ } | {
24
+ as: 'a';
25
+ href: string;
26
+ target?: '_blank' | '_self';
19
27
  });
20
28
  export declare const Button: ({ variant, ...restProps }: Props) => import("react/jsx-runtime").JSX.Element;
21
29
  export {};
@@ -1,8 +1,8 @@
1
- import { jsx as s, jsxs as w } from "react/jsx-runtime";
2
- import { Button as g } from "@headlessui/react";
3
- import * as m from "lucide-react";
4
- import { cn as c } from "../utils/cn.js";
5
- const e = {
1
+ import { jsx as s, jsxs as b } from "react/jsx-runtime";
2
+ import { Button as p } from "@headlessui/react";
3
+ import { ProgressActivityW700 as y } from "@material-symbols-svg/react-rounded/icons/progress-activity";
4
+ import { cn as m } from "../utils/cn.js";
5
+ const t = {
6
6
  icon: "h-sw-xl w-sw-xl",
7
7
  size: (n) => ({
8
8
  "px-sw-xl py-sw-[10px] rounded-sw-sm": n === "sm",
@@ -16,44 +16,49 @@ const e = {
16
16
  ring-1 ring-inset ring-transparent
17
17
  transition-all duration-250 ease-in-out
18
18
  `
19
- }, u = ({
19
+ }, x = ({
20
20
  icon: n,
21
21
  iconPosition: i,
22
22
  children: o,
23
- state: r
23
+ state: e
24
24
  }) => {
25
- const t = !!n, a = t && r !== "loading" ? n ?? (() => /* @__PURE__ */ s("span", {})) : ({ className: l, ...d }) => /* @__PURE__ */ s(
26
- m.Loader,
25
+ const r = !!n, a = r && e !== "loading" ? n ?? (() => /* @__PURE__ */ s("span", {})) : ({ className: l, ...d }) => /* @__PURE__ */ s(
26
+ y,
27
27
  {
28
- className: c(e.icon, "animate-spin", l),
28
+ className: m(t.icon, "animate-spin", l),
29
29
  ...d
30
30
  }
31
31
  );
32
- return /* @__PURE__ */ w("span", { className: "text-sw-label-md flex w-full items-center justify-center gap-sw-lg py-sw-xs", children: [
33
- t && i !== "tail" || !t && r === "loading" ? /* @__PURE__ */ s(a, { className: e.icon }) : null,
32
+ return /* @__PURE__ */ b("span", { className: "text-sw-label-md flex w-full items-center justify-center gap-sw-lg py-sw-xs", children: [
33
+ r && i !== "tail" || !r && e === "loading" ? /* @__PURE__ */ s(a, { className: t.icon }) : null,
34
34
  o,
35
- t && i === "tail" && /* @__PURE__ */ s(a, { className: e.icon })
35
+ r && i === "tail" && /* @__PURE__ */ s(a, { className: t.icon })
36
36
  ] });
37
- }, p = ({
37
+ }, f = ({
38
38
  size: n,
39
39
  className: i,
40
40
  children: o,
41
+ as: e = "button",
41
42
  state: r = "default",
42
- onClick: t,
43
- fluid: a,
44
- ...l
43
+ onClick: a,
44
+ fluid: l,
45
+ href: d,
46
+ target: c,
47
+ ...g
45
48
  }) => {
46
- const d = ["disabled", "loading", "error"].includes(r) ? !0 : void 0;
49
+ const u = e === "a" ? { href: d, target: c } : {}, w = ["disabled", "loading", "error"].includes(r) ? !0 : void 0;
47
50
  return /* @__PURE__ */ s(
48
- g,
51
+ p,
49
52
  {
50
- disabled: d,
53
+ as: e,
54
+ disabled: w,
51
55
  "data-active": r === "active" ? !0 : void 0,
52
- onClick: () => r === "default" && t?.(),
53
- className: c(
54
- e.common,
55
- e.width(a),
56
- e.size(n),
56
+ onClick: () => r === "default" && a?.(),
57
+ ...u,
58
+ className: m(
59
+ t.common,
60
+ t.width(l),
61
+ t.size(n),
57
62
  {
58
63
  "bg-transparent text-sw-status-error ring-1 ring-inset ring-sw-status-error": r === "error",
59
64
  "bg-transparent text-sw-gray-400 ring-1 ring-inset ring-sw-gray-700": r === "loading" || r === "disabled",
@@ -61,29 +66,34 @@ const e = {
61
66
  },
62
67
  i
63
68
  ),
64
- children: /* @__PURE__ */ s(u, { state: r, ...l, children: o })
69
+ children: /* @__PURE__ */ s(x, { state: r, ...g, children: o })
65
70
  }
66
71
  );
67
- }, x = ({
72
+ }, h = ({
68
73
  size: n,
69
74
  className: i,
70
75
  children: o,
76
+ as: e = "button",
71
77
  state: r = "default",
72
- onClick: t,
73
- fluid: a,
74
- ...l
78
+ onClick: a,
79
+ fluid: l,
80
+ href: d,
81
+ target: c,
82
+ ...g
75
83
  }) => {
76
- const d = ["disabled", "loading", "error"].includes(r) ? !0 : void 0;
84
+ const u = e === "a" ? { href: d, target: c } : {}, w = ["disabled", "loading", "error"].includes(r) ? !0 : void 0;
77
85
  return /* @__PURE__ */ s(
78
- g,
86
+ p,
79
87
  {
80
- disabled: d,
88
+ as: e,
89
+ disabled: w,
81
90
  "data-active": r === "active" ? !0 : void 0,
82
- onClick: () => r === "default" && t?.(),
83
- className: c(
84
- e.common,
85
- e.width(a),
86
- e.size(n),
91
+ onClick: () => r === "default" && a?.(),
92
+ ...u,
93
+ className: m(
94
+ t.common,
95
+ t.width(l),
96
+ t.size(n),
87
97
  {
88
98
  "bg-transparent text-sw-status-error ring-1 ring-inset ring-sw-status-error": r === "error",
89
99
  "bg-transparent text-sw-gray-400 ring-1 ring-inset ring-sw-gray-700": r === "loading" || r === "disabled",
@@ -91,19 +101,19 @@ const e = {
91
101
  },
92
102
  i
93
103
  ),
94
- children: /* @__PURE__ */ s(u, { state: r, ...l, children: o })
104
+ children: /* @__PURE__ */ s(x, { state: r, ...g, children: o })
95
105
  }
96
106
  );
97
- }, h = ({ variant: n, ...i }) => {
107
+ }, C = ({ variant: n, ...i }) => {
98
108
  switch (n) {
99
109
  case "outlined":
100
- return /* @__PURE__ */ s(x, { ...i });
110
+ return /* @__PURE__ */ s(h, { ...i });
101
111
  case "primary":
102
112
  default:
103
- return /* @__PURE__ */ s(p, { ...i });
113
+ return /* @__PURE__ */ s(f, { ...i });
104
114
  }
105
115
  };
106
116
  export {
107
- h as Button
117
+ C as Button
108
118
  };
109
119
  //# sourceMappingURL=Button.js.map
@@ -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":"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"}
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 (\n | { as?: 'button'; href?: never; target?: never }\n | { as: 'a'; href: string; target?: '_blank' | '_self' }\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 as = 'button',\n state = 'default',\n onClick,\n fluid,\n href,\n target,\n ...props\n}: Omit<Props, 'variant'>) => {\n const anchorProps = as === 'a' ? { href, target } : {};\n const isDisabled = ['disabled', 'loading', 'error'].includes(state)\n ? true\n : undefined;\n\n return (\n <UIButton\n as={as}\n disabled={isDisabled}\n data-active={state === 'active' ? true : undefined}\n onClick={() => state === 'default' && onClick?.()}\n {...anchorProps}\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 as = 'button',\n state = 'default',\n onClick,\n fluid,\n href,\n target,\n ...props\n}: Omit<Props, 'variant'>) => {\n const anchorProps = as === 'a' ? { href, target } : {};\n const isDisabled = ['disabled', 'loading', 'error'].includes(state)\n ? true\n : undefined;\n\n return (\n <UIButton\n as={as}\n disabled={isDisabled}\n data-active={state === 'active' ? true : undefined}\n onClick={() => state === 'default' && onClick?.()}\n {...anchorProps}\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","as","onClick","href","target","props","anchorProps","isDisabled","UIButton","ButtonOutlined","Button","variant","restProps"],"mappings":";;;;AA8BA,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;AAAAA,IAAA;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,IAAAW,IAAK;AAAA,EACL,OAAAV,IAAQ;AAAA,EACR,SAAAW;AAAA,EACA,OAAAhB;AAAA,EACA,MAAAiB;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,MAA8B;AAC5B,QAAMC,IAAcL,MAAO,MAAM,EAAE,MAAAE,GAAM,QAAAC,EAAA,IAAW,CAAA,GAC9CG,IAAa,CAAC,YAAY,WAAW,OAAO,EAAE,SAAShB,CAAK,IAC9D,KACA;AAEJ,SACE,gBAAAG;AAAA,IAACc;AAAAA,IAAA;AAAA,MACC,IAAAP;AAAA,MACA,UAAUM;AAAA,MACV,eAAahB,MAAU,WAAW,KAAO;AAAA,MACzC,SAAS,MAAMA,MAAU,aAAaW,IAAA;AAAA,MACrC,GAAGI;AAAA,MACJ,WAAWR;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,GAAGc,GAC/B,UAAAf,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,GAEMmB,IAAiB,CAAC;AAAA,EACtB,MAAAxB;AAAA,EACA,WAAAU;AAAA,EACA,UAAAL;AAAA,EACA,IAAAW,IAAK;AAAA,EACL,OAAAV,IAAQ;AAAA,EACR,SAAAW;AAAA,EACA,OAAAhB;AAAA,EACA,MAAAiB;AAAA,EACA,QAAAC;AAAA,EACA,GAAGC;AACL,MAA8B;AAC5B,QAAMC,IAAcL,MAAO,MAAM,EAAE,MAAAE,GAAM,QAAAC,EAAA,IAAW,CAAA,GAC9CG,IAAa,CAAC,YAAY,WAAW,OAAO,EAAE,SAAShB,CAAK,IAC9D,KACA;AAEJ,SACE,gBAAAG;AAAA,IAACc;AAAAA,IAAA;AAAA,MACC,IAAAP;AAAA,MACA,UAAUM;AAAA,MACV,eAAahB,MAAU,WAAW,KAAO;AAAA,MACzC,SAAS,MAAMA,MAAU,aAAaW,IAAA;AAAA,MACrC,GAAGI;AAAA,MACJ,WAAWR;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,GAAGc,GAC/B,UAAAf,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,GAEaoB,IAAS,CAAC,EAAE,SAAAC,GAAS,GAAGC,QAAuB;AAC1D,UAAQD,GAAA;AAAA,IACN,KAAK;AACH,aAAO,gBAAAjB,EAACe,GAAA,EAAgB,GAAGG,EAAA,CAAW;AAAA,IACxC,KAAK;AAAA,IACL;AACE,aAAO,gBAAAlB,EAACM,GAAA,EAAe,GAAGY,EAAA,CAAW;AAAA,EAAA;AAE3C;"}
@@ -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,3 +1,6 @@
1
- export declare const CopyButton: ({ value }: {
1
+ type Props = {
2
2
  value: string;
3
- }) => import("react/jsx-runtime").JSX.Element;
3
+ className?: string;
4
+ };
5
+ export declare const CopyButton: ({ value, className }: Props) => import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -1,16 +1,20 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import i from "copy-text-to-clipboard";
3
- import * as r from "lucide-react";
4
- const a = ({ value: o }) => /* @__PURE__ */ t(
2
+ import r from "copy-text-to-clipboard";
3
+ import { ContentCopyW700 as n } from "@material-symbols-svg/react-rounded/icons/content-copy";
4
+ import { cn as e } from "../utils/cn.js";
5
+ const p = ({ value: o, className: i }) => /* @__PURE__ */ t(
5
6
  "button",
6
7
  {
7
8
  type: "button",
8
- onClick: () => i(o),
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 })
9
+ onClick: () => r(o),
10
+ className: e(
11
+ "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",
12
+ i
13
+ ),
14
+ children: /* @__PURE__ */ t(n, { size: 16 })
11
15
  }
12
16
  );
13
17
  export {
14
- a as CopyButton
18
+ p as CopyButton
15
19
  };
16
20
  //# 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\nimport { cn } from '@/utils/cn';\n\ntype Props = {\n value: string;\n className?: string;\n};\n\nexport const CopyButton = ({ value, className }: Props) => (\n <button\n type=\"button\"\n onClick={() => copy(value)}\n className={cn(\n '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 className,\n )}>\n <ContentCopy size={16} />\n </button>\n);\n"],"names":["CopyButton","value","className","jsx","copy","cn","ContentCopy"],"mappings":";;;;AAUO,MAAMA,IAAa,CAAC,EAAE,OAAAC,GAAO,WAAAC,QAClC,gBAAAC;AAAA,EAAC;AAAA,EAAA;AAAA,IACC,MAAK;AAAA,IACL,SAAS,MAAMC,EAAKH,CAAK;AAAA,IACzB,WAAWI;AAAA,MACT;AAAA,MACAH;AAAA,IAAA;AAAA,IAEF,UAAA,gBAAAC,EAACG,GAAA,EAAY,MAAM,GAAA,CAAI;AAAA,EAAA;AACzB;"}