@lightsparkdev/ui 0.0.8 → 0.0.11

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 (110) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/{chunk-NRXJA2PM.js → chunk-3EVAP5JT.js} +1 -1
  3. package/dist/{chunk-4KWTXZRY.js → chunk-3GS5EFXV.js} +1 -1
  4. package/dist/{chunk-WTO7C7WA.js → chunk-5POPBNPS.js} +1 -1
  5. package/dist/{chunk-UWN53KLJ.js → chunk-7C4MHI6Q.js} +3 -3
  6. package/dist/{chunk-6FHLZM6N.js → chunk-7T36JGTC.js} +2 -2
  7. package/dist/{chunk-YPB5SA65.js → chunk-A4FQBEYU.js} +6 -6
  8. package/dist/{chunk-SZVMKB4E.js → chunk-ATUH6SXK.js} +19 -8
  9. package/dist/{chunk-U6XT5JKC.js → chunk-DQRN4E5G.js} +1 -1
  10. package/dist/{chunk-36C653MV.js → chunk-E3AOYBY5.js} +1 -1
  11. package/dist/{chunk-MAMSU2XB.js → chunk-EEFNW7NS.js} +3 -3
  12. package/dist/{chunk-2YB7653N.js → chunk-FCZJILMW.js} +1 -1
  13. package/dist/{chunk-ZYHA6MJC.js → chunk-H3RW6JSU.js} +1 -1
  14. package/dist/chunk-IPAXAP6K.js +119 -0
  15. package/dist/{chunk-BAO4T4G5.js → chunk-J4FJQ3FN.js} +1 -1
  16. package/dist/{chunk-HNVQIY5U.js → chunk-JK4BP73A.js} +39 -30
  17. package/dist/{chunk-ZSUX6RLD.js → chunk-KMR5C25B.js} +1 -1
  18. package/dist/{chunk-2JM7UTAZ.js → chunk-NFSAJ5GJ.js} +8 -8
  19. package/dist/{chunk-DAVVD7YE.js → chunk-NM7UW54G.js} +18 -21
  20. package/dist/chunk-P3EUPXFA.js +150 -0
  21. package/dist/chunk-PBRN7MJY.js +315 -0
  22. package/dist/{chunk-CW3W2VTZ.js → chunk-PVQCLQNA.js} +1 -1
  23. package/dist/{chunk-VHW2KROZ.js → chunk-RWIZ7Q74.js} +1 -1
  24. package/dist/{chunk-744FBGRP.js → chunk-XP2MX2AA.js} +1 -1
  25. package/dist/{chunk-XAZ6NZ6I.js → chunk-XZR237JJ.js} +1 -1
  26. package/dist/{chunk-FN5PM3HQ.js → chunk-Y37DCY7Y.js} +6 -6
  27. package/dist/{chunk-76Q4BK35.js → chunk-ZANLDY2W.js} +5 -5
  28. package/dist/components/Badge.cjs +38 -24
  29. package/dist/components/Badge.js +2 -2
  30. package/dist/components/Button.cjs +38 -24
  31. package/dist/components/Button.js +6 -6
  32. package/dist/components/ButtonRow.cjs +42 -28
  33. package/dist/components/ButtonRow.js +8 -8
  34. package/dist/components/CardPage.cjs +1921 -0
  35. package/dist/components/CardPage.d.cts +54 -0
  36. package/dist/components/CardPage.d.ts +54 -0
  37. package/dist/components/CardPage.js +33 -0
  38. package/dist/components/Collapsible.cjs +38 -24
  39. package/dist/components/Collapsible.js +4 -4
  40. package/dist/components/ContentTable.cjs +38 -24
  41. package/dist/components/ContentTable.js +3 -3
  42. package/dist/components/CopyToClipboardButton.cjs +38 -24
  43. package/dist/components/CopyToClipboardButton.js +5 -5
  44. package/dist/components/CurrencyAmount.cjs +38 -24
  45. package/dist/components/CurrencyAmount.js +3 -3
  46. package/dist/components/FileInput.cjs +38 -24
  47. package/dist/components/FileInput.js +7 -7
  48. package/dist/components/GradientCardHeader.cjs +177 -0
  49. package/dist/components/GradientCardHeader.d.cts +10 -0
  50. package/dist/components/GradientCardHeader.d.ts +10 -0
  51. package/dist/components/GradientCardHeader.js +8 -0
  52. package/dist/components/Icon.cjs +38 -24
  53. package/dist/components/Icon.js +2 -2
  54. package/dist/components/LightTooltip.cjs +38 -24
  55. package/dist/components/LightTooltip.js +2 -2
  56. package/dist/components/LightsparkProvider.cjs +38 -24
  57. package/dist/components/LightsparkProvider.js +3 -3
  58. package/dist/components/Loading.cjs +38 -24
  59. package/dist/components/Loading.js +3 -3
  60. package/dist/components/Modal.cjs +46 -34
  61. package/dist/components/Modal.js +9 -9
  62. package/dist/components/Pill.cjs +38 -24
  63. package/dist/components/Pill.js +6 -6
  64. package/dist/components/ProgressBar.cjs +38 -24
  65. package/dist/components/ProgressBar.js +2 -2
  66. package/dist/components/SecretContainer.cjs +38 -24
  67. package/dist/components/SecretContainer.js +6 -6
  68. package/dist/components/TextIconAligner.cjs +38 -24
  69. package/dist/components/TextIconAligner.js +3 -3
  70. package/dist/components/UnstyledButton.cjs +38 -24
  71. package/dist/components/UnstyledButton.js +2 -2
  72. package/dist/components/documentation/AnchorLinkHeader.cjs +38 -24
  73. package/dist/components/documentation/AnchorLinkHeader.js +3 -3
  74. package/dist/components/documentation/index.cjs +38 -24
  75. package/dist/components/documentation/index.js +3 -3
  76. package/dist/components/index.cjs +737 -185
  77. package/dist/components/index.d.cts +2 -0
  78. package/dist/components/index.d.ts +2 -0
  79. package/dist/components/index.js +51 -32
  80. package/dist/icons/ArrowCornerDownRight.cjs +49 -0
  81. package/dist/icons/ArrowCornerDownRight.d.cts +5 -0
  82. package/dist/icons/ArrowCornerDownRight.d.ts +5 -0
  83. package/dist/icons/ArrowCornerDownRight.js +30 -0
  84. package/dist/icons/Sort.cjs +48 -0
  85. package/dist/icons/Sort.d.cts +5 -0
  86. package/dist/icons/Sort.d.ts +5 -0
  87. package/dist/icons/Sort.js +29 -0
  88. package/dist/icons/index.cjs +38 -24
  89. package/dist/icons/index.js +2 -2
  90. package/dist/styles/common.cjs +38 -34
  91. package/dist/styles/common.d.cts +10 -7
  92. package/dist/styles/common.d.ts +10 -7
  93. package/dist/styles/common.js +1 -11
  94. package/dist/styles/fields.cjs +56 -31
  95. package/dist/styles/fields.d.cts +4 -3
  96. package/dist/styles/fields.d.ts +4 -3
  97. package/dist/styles/fields.js +2 -2
  98. package/dist/styles/fonts/typography/Article.cjs +38 -24
  99. package/dist/styles/fonts/typography/Article.js +6 -6
  100. package/dist/styles/fonts/typography/index.cjs +38 -24
  101. package/dist/styles/fonts/typography/index.js +11 -11
  102. package/dist/styles/fonts/typographyTokens.d.cts +1 -4
  103. package/dist/styles/fonts/typographyTokens.d.ts +1 -4
  104. package/dist/styles/global.cjs +38 -24
  105. package/dist/styles/global.js +2 -2
  106. package/dist/styles/type.cjs +38 -24
  107. package/dist/styles/type.js +8 -144
  108. package/dist/styles/utils.cjs +38 -24
  109. package/dist/styles/utils.js +2 -2
  110. package/package.json +7 -4
@@ -72,11 +72,18 @@ __export(components_exports, {
72
72
  ButtonRow: () => ButtonRow,
73
73
  ButtonRowContainer: () => ButtonRowContainer,
74
74
  ButtonSelector: () => ButtonSelector,
75
+ CardPage: () => CardPage,
76
+ CardPageContent: () => CardPageContent,
77
+ CardPageFullContent: () => CardPageFullContent,
78
+ CardPageFullWidth: () => CardPageFullWidth,
79
+ CardPageRightContentInner: () => CardPageRightContentInner,
80
+ CardPageSubtitle: () => CardPageSubtitle,
75
81
  Collapsible: () => Collapsible,
76
82
  CommandKey: () => CommandKey,
77
83
  CopyToClipboardButton: () => CopyToClipboardButton,
78
84
  CurrencyAmount: () => CurrencyAmount,
79
85
  CurrencyIcon: () => CurrencyIcon,
86
+ GradientCardHeader: () => GradientCardHeader,
80
87
  Icon: () => Icon,
81
88
  IconContainer: () => IconContainer,
82
89
  LightTooltip: () => LightTooltip,
@@ -1347,36 +1354,52 @@ var import_styled = __toESM(require("@emotion/styled"), 1);
1347
1354
  var rootFontSizePx = 12;
1348
1355
  var rootFontSizeRems = rootFontSizePx / 16;
1349
1356
  var standardLineHeightEms = 1.21;
1350
- var standardContentInsetPx = 32;
1351
- var standardContentInsetMdPx = 24;
1352
- var standardContentInsetSmPx = 16;
1357
+ var headingContentMarginPx = 30;
1358
+ function buildStandardContentInset(smPx, minSmMaxLgPx, lgPx) {
1359
+ const smCSS = import_react4.css`
1360
+ ${bp.sm(`
1361
+ margin-left: auto;
1362
+ margin-right: auto;
1363
+ width: calc(100% - ${smPx * 2}px);
1364
+ `)}
1365
+ `;
1366
+ const minSmMaxLgCSS = import_react4.css`
1367
+ ${bp.minSmMaxLg(`
1368
+ margin-left: auto;
1369
+ margin-right: auto;
1370
+ width: calc(100% - ${minSmMaxLgPx * 2}px);
1371
+ `)}
1372
+ `;
1373
+ const lgCSS = import_react4.css`
1374
+ ${bp.lg(`
1375
+ margin-left: auto;
1376
+ margin-right: auto;
1377
+ width: calc(100% - ${lgPx * 2}px);
1378
+ max-width: 1280px;
1379
+ `)}
1380
+ `;
1381
+ return {
1382
+ smPx,
1383
+ minSmMaxLgPx,
1384
+ lgPx,
1385
+ smCSS,
1386
+ minSmMaxLgCSS,
1387
+ lgCSS,
1388
+ css: import_react4.css`
1389
+ ${lgCSS}
1390
+ ${smCSS}
1391
+ ${minSmMaxLgCSS}
1392
+ `
1393
+ };
1394
+ }
1395
+ var standardContentInset = buildStandardContentInset(16, 24, 32);
1396
+ var cardBorderRadiusPx = 16;
1353
1397
  var standardBorderRadius = (radius) => {
1354
1398
  const borderRadiusPx = Array.isArray(radius) ? radius.map((r) => `${r}px`).join(" ") : `${radius}px`;
1355
1399
  return `
1356
1400
  border-radius: ${borderRadiusPx};
1357
1401
  `;
1358
1402
  };
1359
- var smContentInset = import_react4.css`
1360
- ${bp.sm(`
1361
- margin-left: auto;
1362
- margin-right: auto;
1363
- width: calc(100% - ${standardContentInsetSmPx * 2}px);
1364
- `)}
1365
- `;
1366
- var minSmMaxLgContentInset = import_react4.css`
1367
- ${bp.minSmMaxLg(`
1368
- width: calc(100% - ${standardContentInsetMdPx * 2}px);
1369
- `)}
1370
- `;
1371
- var standardContentInset = import_react4.css`
1372
- margin-left: auto;
1373
- margin-right: auto;
1374
- width: calc(100% - ${standardContentInsetPx * 2}px);
1375
- max-width: 1280px;
1376
-
1377
- ${smContentInset}
1378
- ${minSmMaxLgContentInset}
1379
- `;
1380
1403
  var standardCardShadow = import_react4.css`
1381
1404
  box-shadow:
1382
1405
  0px 4px 10px 0px rgba(0, 0, 0, 0.08),
@@ -1490,7 +1513,7 @@ function Link({
1490
1513
  externalLink,
1491
1514
  params,
1492
1515
  children,
1493
- css: css8,
1516
+ css: css9,
1494
1517
  onClick,
1495
1518
  className,
1496
1519
  hash = null,
@@ -1519,7 +1542,7 @@ function Link({
1519
1542
  import_react_router_dom.Link,
1520
1543
  {
1521
1544
  to: toStr,
1522
- css: css8,
1545
+ css: css9,
1523
1546
  onClick,
1524
1547
  className,
1525
1548
  style: { color: blue ? colors.blue43 : "inherit" },
@@ -2097,6 +2120,8 @@ var overflowAutoWithoutScrollbars = import_react11.css`
2097
2120
  display: none;
2098
2121
  }
2099
2122
  `;
2123
+ var ignoreSSRWarning = "/* @emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason */";
2124
+ var firstChild = (style) => `&:first-child:not(style), style:first-child + & ${ignoreSSRWarning} { ${style} }`;
2100
2125
 
2101
2126
  // src/components/ButtonRow.tsx
2102
2127
  var import_jsx_runtime8 = require("@emotion/react/jsx-runtime");
@@ -2120,9 +2145,9 @@ var ButtonRowContainer = import_styled7.default.div`
2120
2145
  position: sticky;
2121
2146
  top: ${headerHeight}px;
2122
2147
  margin-top: 24px;
2123
- margin-left: -${standardContentInsetSmPx}px;
2124
- width: calc(100% + ${standardContentInsetSmPx * 2}px);
2125
- max-width: calc(100% + ${standardContentInsetSmPx * 2}px);
2148
+ margin-left: -${standardContentInset.smPx}px;
2149
+ width: calc(100% + ${standardContentInset.smPx * 2}px);
2150
+ max-width: calc(100% + ${standardContentInset.smPx * 2}px);
2126
2151
  z-index: 2;` : `position: relative;`}
2127
2152
  z-index: 2;
2128
2153
  &:before {
@@ -2161,14 +2186,424 @@ var StyledButtonRow = import_styled7.default.div`
2161
2186
  }
2162
2187
 
2163
2188
  ${bp.sm(`
2164
- padding: 12px;
2189
+ padding: ${standardContentInset.smPx}px;
2165
2190
  `)}
2166
2191
  `;
2167
2192
 
2168
- // src/components/Collapsible.tsx
2193
+ // src/components/CardPage.tsx
2194
+ var import_styled9 = __toESM(require("@emotion/styled"), 1);
2195
+ var import_react13 = require("react");
2196
+
2197
+ // src/styles/type.tsx
2198
+ var import_react12 = require("@emotion/react");
2169
2199
  var import_styled8 = __toESM(require("@emotion/styled"), 1);
2170
- var import_react12 = require("react");
2171
2200
  var import_jsx_runtime9 = require("@emotion/react/jsx-runtime");
2201
+ var defaultHeadingSizes = {
2202
+ h1: {
2203
+ size: 32,
2204
+ sizeSm: 21
2205
+ },
2206
+ h2: {
2207
+ size: 24,
2208
+ sizeSm: 18
2209
+ },
2210
+ h3: {
2211
+ size: 21,
2212
+ sizeSm: 18
2213
+ },
2214
+ h4: {
2215
+ size: 14,
2216
+ sizeSm: 14
2217
+ }
2218
+ };
2219
+ var defaultHeadingMargins = {
2220
+ h1: {
2221
+ mt: 24,
2222
+ mb: 24,
2223
+ mtSm: 24,
2224
+ mbSm: 24
2225
+ },
2226
+ h2: {
2227
+ mt: 24,
2228
+ mb: 24,
2229
+ mtSm: 24,
2230
+ mbSm: 24
2231
+ },
2232
+ h3: {
2233
+ mt: 24,
2234
+ mb: 24,
2235
+ mtSm: 24,
2236
+ mbSm: 24
2237
+ },
2238
+ h4: {
2239
+ mt: 16,
2240
+ mb: 16,
2241
+ mtSm: 16,
2242
+ mbSm: 16
2243
+ }
2244
+ };
2245
+ var baseHeading = ({ mt, mb, mtSm, mbSm, theme }) => import_react12.css`
2246
+ line-height: 1.214em;
2247
+
2248
+ margin-bottom: ${mb}px;
2249
+ margin-top: ${mt}px;
2250
+
2251
+ ${bp.sm(`
2252
+ margin-top: ${mtSm}px;
2253
+ margin-bottom: ${mbSm}px;
2254
+ `)}
2255
+ `;
2256
+ var firstChildStyles = firstChild(`margin-top: 0;`);
2257
+ var headings = {
2258
+ h1: import_styled8.default.h1`
2259
+ ${(props) => baseHeading(props)}
2260
+ ${firstChildStyles}
2261
+
2262
+ font-size: ${pxToRems(defaultHeadingSizes.h1.size)};
2263
+ font-weight: ${({ light }) => light ? 400 : 800}};
2264
+ ${bp.sm(`
2265
+ font-size: ${pxToRems(defaultHeadingSizes.h1.sizeSm)};
2266
+ `)}
2267
+ `,
2268
+ h2: import_styled8.default.h2`
2269
+ ${(props) => baseHeading(props)}
2270
+ ${firstChildStyles}
2271
+
2272
+ font-size: ${pxToRems(defaultHeadingSizes.h2.size)};
2273
+ font-weight: ${({ light }) => light ? 400 : 700}};
2274
+ ${bp.sm(`
2275
+ font-size: ${pxToRems(defaultHeadingSizes.h2.sizeSm)};
2276
+ `)}
2277
+ `,
2278
+ h3: import_styled8.default.h3`
2279
+ ${(props) => baseHeading(props)}
2280
+ ${firstChildStyles}
2281
+
2282
+ font-size: ${pxToRems(defaultHeadingSizes.h3.size)};
2283
+ font-weight: ${({ light }) => light ? 400 : 700}};
2284
+ ${bp.sm(`
2285
+ font-size: ${pxToRems(defaultHeadingSizes.h3.sizeSm)};
2286
+ `)}
2287
+ `,
2288
+ h4: import_styled8.default.h4`
2289
+ ${(props) => baseHeading(props)}
2290
+ ${firstChildStyles}
2291
+
2292
+ font-size: ${pxToRems(defaultHeadingSizes.h4.size)};
2293
+ font-weight: ${({ light }) => light ? 400 : 600}};
2294
+ ${bp.sm(`
2295
+ font-size: ${pxToRems(defaultHeadingSizes.h4.sizeSm)};
2296
+ `)}
2297
+ `
2298
+ };
2299
+ function Heading({
2300
+ children,
2301
+ type = "h2",
2302
+ id,
2303
+ mt = defaultHeadingMargins[type].mt,
2304
+ mb = defaultHeadingMargins[type].mb,
2305
+ mtSm = defaultHeadingMargins[type].mtSm,
2306
+ mbSm = defaultHeadingMargins[type].mbSm,
2307
+ m0 = false,
2308
+ light = false
2309
+ }) {
2310
+ const StyledHeading = headings[type];
2311
+ const theme = (0, import_react12.useTheme)();
2312
+ const heading = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
2313
+ StyledHeading,
2314
+ {
2315
+ id,
2316
+ mt: m0 ? 0 : mt,
2317
+ mb: m0 ? 0 : mb,
2318
+ mtSm: m0 ? 0 : mtSm,
2319
+ mbSm: m0 ? 0 : mbSm,
2320
+ light,
2321
+ theme,
2322
+ children: id ? /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("a", { href: `#${id}`, css: { color: "inherit" }, children }) : children
2323
+ }
2324
+ );
2325
+ return heading;
2326
+ }
2327
+
2328
+ // src/components/CardPage.tsx
2329
+ var import_jsx_runtime10 = require("@emotion/react/jsx-runtime");
2330
+ function CardPage(props) {
2331
+ const initiallyExpanded = (0, import_react13.useRef)(Boolean(props.expandRight));
2332
+ const [wasExpanded, setWasExpanded] = (0, import_react13.useState)(Boolean(props.expandRight));
2333
+ const bp2 = useBreakpoints();
2334
+ const header = props.title ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CardPageHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Heading, { type: "h1", m0: true, children: props.title }) }) : null;
2335
+ (0, import_react13.useEffect)(() => {
2336
+ if (props.expandRight) {
2337
+ setWasExpanded(true);
2338
+ }
2339
+ }, [props.expandRight]);
2340
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_react13.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
2341
+ CardPageContainer,
2342
+ {
2343
+ id: props.id,
2344
+ bp: bp2,
2345
+ hasRightContent: Boolean(props.rightContent),
2346
+ wasExpanded,
2347
+ expandRight: Boolean(props.expandRight),
2348
+ minContentHeight: props.minContentHeight,
2349
+ initiallyExpanded: initiallyExpanded.current,
2350
+ children: [
2351
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { css: props.minContentWidth ? overflowAutoWithoutScrollbars : null, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
2352
+ CardPageContent,
2353
+ {
2354
+ hasPreHeaderContent: Boolean(props.preHeaderContent),
2355
+ minContentHeight: props.minContentHeight,
2356
+ maxContentWidth: props.maxContentWidth,
2357
+ children: [
2358
+ props.preHeaderContent,
2359
+ header,
2360
+ props.children
2361
+ ]
2362
+ }
2363
+ ) }),
2364
+ props.rightContent && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CardPageRightContent, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2365
+ CardPageRightContentInner,
2366
+ {
2367
+ hasRightContent: Boolean(props.rightContent),
2368
+ children: props.rightContent
2369
+ }
2370
+ ) })
2371
+ ]
2372
+ }
2373
+ ) });
2374
+ }
2375
+ CardPage.defaultProps = {
2376
+ minContentHeight: void 0,
2377
+ minContentWidth: void 0,
2378
+ maxContentWidth: void 0
2379
+ };
2380
+ var CardPageFullContent = import_styled9.default.div``;
2381
+ var CardPageFullWidth = import_styled9.default.div``;
2382
+ var CardPageRightContentInner = import_styled9.default.div`
2383
+ ${flexCenter}
2384
+ height: 100%;
2385
+ padding: 150px 25px;
2386
+ ${({ hasRightContent }) => hasRightContent && `justify-content: space-evenly;`}
2387
+ `;
2388
+ var CardPageRightContent = import_styled9.default.div`
2389
+ display: flex;
2390
+ position: relative;
2391
+ ${CardPageRightContentInner} {
2392
+ ${darkGradientBg};
2393
+ position: relative;
2394
+ height: calc(100% + 80px);
2395
+ margin-top: -40px;
2396
+ margin-bottom: -40px;
2397
+ margin-right: -40px;
2398
+ overflow: hidden;
2399
+ width: 100%;
2400
+
2401
+ ${bp.minSm(`
2402
+ ${standardBorderRadius([0, cardBorderRadiusPx, cardBorderRadiusPx, 0])};
2403
+ `)}
2404
+ }
2405
+ `;
2406
+ var vCardPaddingPx = 40;
2407
+ var expandTiming = `0.65s ease-in-out`;
2408
+ var CardPageContainer = import_styled9.default.div`
2409
+ ${standardContentInset.css}
2410
+ ${({ theme }) => themeOr(`background-color: ${theme.bg}`, "transparent")({ theme })};
2411
+ position: relative;
2412
+ z-index: ${z.card};
2413
+
2414
+ ${({ minContentHeight }) => `
2415
+ min-height: ${minContentHeight !== void 0 && minContentHeight !== null ? `${minContentHeight}px` : "250px"};
2416
+ `}
2417
+
2418
+ ${bp.sm(`
2419
+ width: 100% !important;
2420
+ `)}
2421
+
2422
+ & > * {
2423
+ ${standardContentInset.css}
2424
+ }
2425
+
2426
+ & ${CardPageFullContent}, & ${CardPageFullWidth} {
2427
+ ${bp.sm(`
2428
+ width: calc(100% + ${standardContentInset.smPx * 2}px);
2429
+ margin-left: -${standardContentInset.smPx}px;
2430
+ `)}
2431
+
2432
+ ${bp.minSmMaxLg(`
2433
+ width: calc(100% + ${standardContentInset.minSmMaxLgPx * 2}px);
2434
+ margin-left: -${standardContentInset.minSmMaxLgPx}px;
2435
+ `)}
2436
+
2437
+ ${bp.lg(`
2438
+ width: calc(100% + ${standardContentInset.lgPx * 2}px);
2439
+ margin-left: -${standardContentInset.lgPx}px;
2440
+ `)}
2441
+ }
2442
+
2443
+ & ${CardPageFullContent} {
2444
+ & > * {
2445
+ padding-top: ${vCardPaddingPx}px;
2446
+ padding-bottom: ${vCardPaddingPx}px;
2447
+ ${bp.sm(`
2448
+ padding-top: 0;
2449
+ padding-bottom: 0;
2450
+ `)}
2451
+ }
2452
+
2453
+ margin-top: -${vCardPaddingPx}px;
2454
+ ${bp.sm(`margin-top: 0;`)}
2455
+ }
2456
+
2457
+ ${bp.minSm(`
2458
+ ${standardCardShadow.styles};
2459
+ padding: ${vCardPaddingPx}px 0;
2460
+ ${standardBorderRadius(cardBorderRadiusPx)}
2461
+ `)}
2462
+
2463
+ &:not(:last-child) {
2464
+ margin-bottom: 30px;
2465
+ }
2466
+
2467
+ @keyframes rightSideExpand {
2468
+ 0% {
2469
+ width: 50%;
2470
+ }
2471
+ 100% {
2472
+ width: 100%;
2473
+ }
2474
+ }
2475
+
2476
+ @keyframes rightSideCollapse {
2477
+ 0% {
2478
+ width: 100%;
2479
+ }
2480
+ 100% {
2481
+ width: 50%;
2482
+ }
2483
+ }
2484
+
2485
+ @keyframes leftSideCollapse {
2486
+ 0% {
2487
+ width: 50%;
2488
+ height: auto;
2489
+ opacity: 1;
2490
+ }
2491
+ 30% {
2492
+ opacity: 0;
2493
+ }
2494
+ 100% {
2495
+ height: 0px;
2496
+ width: 0%;
2497
+ }
2498
+ }
2499
+
2500
+ @keyframes leftSideExpand {
2501
+ 0% {
2502
+ width: 0%;
2503
+ opacity: 0;
2504
+ }
2505
+ 50% {
2506
+ opacity: 0;
2507
+ }
2508
+ 100% {
2509
+ width: 50%;
2510
+ opacity: 1;
2511
+ }
2512
+ }
2513
+
2514
+ ${({ hasRightContent }) => hasRightContent && `
2515
+ display: flex;
2516
+ & > * {
2517
+ width: 50%;
2518
+ ${bp.sm(`width: 100%;`)}
2519
+
2520
+ &:first-of-type > * {
2521
+ ${bp.minSmMaxLg(`
2522
+ width: calc(100% - ${standardContentInset.minSmMaxLgPx * 2}px);
2523
+ margin-left: ${standardContentInset.minSmMaxLgPx}px;
2524
+ `)}
2525
+ ${bp.lg(`
2526
+ width: calc(100% - ${standardContentInset.lgPx * 3}px);
2527
+ margin-left: ${standardContentInset.lgPx}px;
2528
+ `)}
2529
+ }
2530
+ }
2531
+ `}
2532
+
2533
+ & > :not(${CardPageRightContent}) {
2534
+ ${({ expandRight, wasExpanded, initiallyExpanded }) => expandRight && wasExpanded ? bp.minSm(`
2535
+ width: 0%;
2536
+ height: 0px;
2537
+ ${initiallyExpanded ? "" : `animation: leftSideCollapse ${expandTiming};`}
2538
+ overflow: hidden;
2539
+ margin: 0%;
2540
+ opacity: 0;
2541
+ `) : wasExpanded ? bp.minSm(`
2542
+ width: 50%;
2543
+ animation: leftSideExpand ${expandTiming};
2544
+ `) : ""}
2545
+ }
2546
+
2547
+ & > ${CardPageRightContent} {
2548
+ ${({ expandRight, wasExpanded, initiallyExpanded }) => expandRight && wasExpanded ? bp.minSm(`
2549
+ width: 100%;
2550
+ ${initiallyExpanded ? "" : `animation: rightSideExpand ${expandTiming};`}
2551
+ margin: 0%;
2552
+ & > ${CardPageRightContentInner.toString()} {
2553
+ border-radius: ${cardBorderRadiusPx}px !important;
2554
+ }
2555
+ `) : wasExpanded ? bp.minSm(`
2556
+ width: 50%;
2557
+ animation: rightSideCollapse ${expandTiming};
2558
+ `) : ""}
2559
+ }
2560
+ `;
2561
+ var CardPageSubtitle = import_styled9.default.p`
2562
+ color: ${({ theme }) => theme.mcNeutral};
2563
+ font-size: ${size.px14};
2564
+ line-height: ${size.px18};
2565
+ font-weight: 600;
2566
+ margin: 0;
2567
+ `;
2568
+ var CardPageHeader = import_styled9.default.div`
2569
+ align-items: center;
2570
+ display: flex;
2571
+ flex-direction: row;
2572
+ justify-content: space-between;
2573
+ position: relative;
2574
+
2575
+ & + *:not(${CardPageSubtitle}):not(${ButtonRowContainer}) {
2576
+ margin-top: ${headingContentMarginPx}px !important;
2577
+ }
2578
+
2579
+ & + ${CardPageSubtitle} {
2580
+ margin-top: 5px;
2581
+ }
2582
+
2583
+ & + ${ButtonRowContainer} {
2584
+ margin-top: 16px;
2585
+ }
2586
+ `;
2587
+ var CardPageContent = import_styled9.default.div`
2588
+ ${({
2589
+ maxContentWidth,
2590
+ minContentHeight,
2591
+ minContentWidth,
2592
+ hasPreHeaderContent
2593
+ }) => `
2594
+ max-width: ${maxContentWidth ? `${maxContentWidth}px` : "initial"};
2595
+ min-width: ${minContentWidth ? `${minContentWidth}px` : "initial"};
2596
+ ${CardPageHeader.toString()} {
2597
+ margin-top: ${hasPreHeaderContent ? "25px" : "0"};
2598
+ }
2599
+ min-height: ${minContentHeight !== void 0 && minContentHeight !== null ? `${minContentHeight}px` : "400px"};
2600
+ `}
2601
+ `;
2602
+
2603
+ // src/components/Collapsible.tsx
2604
+ var import_styled10 = __toESM(require("@emotion/styled"), 1);
2605
+ var import_react14 = require("react");
2606
+ var import_jsx_runtime11 = require("@emotion/react/jsx-runtime");
2172
2607
  function Collapsible({
2173
2608
  children,
2174
2609
  className,
@@ -2181,37 +2616,37 @@ function Collapsible({
2181
2616
  buttonTextElement,
2182
2617
  contentIndent = true
2183
2618
  }) {
2184
- const [isOpen, setIsOpen] = (0, import_react12.useState)(open);
2619
+ const [isOpen, setIsOpen] = (0, import_react14.useState)(open);
2185
2620
  const handleClick = () => {
2186
2621
  if (handleToggle) {
2187
2622
  handleToggle(!isOpen);
2188
2623
  }
2189
2624
  setIsOpen(!isOpen);
2190
2625
  };
2191
- (0, import_react12.useEffect)(() => {
2626
+ (0, import_react14.useEffect)(() => {
2192
2627
  setIsOpen(open);
2193
2628
  }, [open]);
2194
2629
  const iconName = hamburger ? isOpen ? "Close" : "StackedLines" : "Down";
2195
2630
  const iconWidth = iconName === "Close" ? 12 : 14;
2196
- let textElement = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", {});
2631
+ let textElement = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", {});
2197
2632
  if (buttonTextElement) {
2198
2633
  textElement = buttonTextElement;
2199
2634
  } else if (text) {
2200
- textElement = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Text, { color, children: text });
2635
+ textElement = /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Text, { color, children: text });
2201
2636
  }
2202
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(StyledCollapsible, { className, children: [
2203
- /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(StyledCollapsibleButton, { onClick: handleClick, children: [
2637
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(StyledCollapsible, { className, children: [
2638
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(StyledCollapsibleButton, { onClick: handleClick, children: [
2204
2639
  textElement,
2205
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(IconContainer2, { isOpen, hamburger, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(Icon, { width: iconWidth, name: iconName }) })
2640
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(IconContainer2, { isOpen, hamburger, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { width: iconWidth, name: iconName }) })
2206
2641
  ] }),
2207
- /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CollapsingContainer, { isOpen, full, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(InnerPadding, { contentIndent, children }) })
2642
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(CollapsingContainer, { isOpen, full, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(InnerPadding, { contentIndent, children }) })
2208
2643
  ] });
2209
2644
  }
2210
- var StyledCollapsible = import_styled8.default.div`
2645
+ var StyledCollapsible = import_styled10.default.div`
2211
2646
  display: flex;
2212
2647
  flex-direction: column;
2213
2648
  `;
2214
- var StyledCollapsibleButton = import_styled8.default.button`
2649
+ var StyledCollapsibleButton = import_styled10.default.button`
2215
2650
  display: flex;
2216
2651
  flex-direction: row;
2217
2652
  align-items: center;
@@ -2222,7 +2657,7 @@ var StyledCollapsibleButton = import_styled8.default.button`
2222
2657
  ${standardBorderRadius(8)}
2223
2658
  padding: 0;
2224
2659
  `;
2225
- var IconContainer2 = import_styled8.default.div`
2660
+ var IconContainer2 = import_styled10.default.div`
2226
2661
  ${(props) => {
2227
2662
  if (props.hamburger) {
2228
2663
  return;
@@ -2232,7 +2667,7 @@ var IconContainer2 = import_styled8.default.div`
2232
2667
  transition: transform 0.25s ease-out;
2233
2668
  width: 20px;
2234
2669
  `;
2235
- var CollapsingContainer = import_styled8.default.div`
2670
+ var CollapsingContainer = import_styled10.default.div`
2236
2671
  overflow: scroll;
2237
2672
  opacity: 0;
2238
2673
  animation-duration: 0.4s;
@@ -2266,28 +2701,28 @@ var CollapsingContainer = import_styled8.default.div`
2266
2701
  }
2267
2702
  }
2268
2703
  `;
2269
- var InnerPadding = import_styled8.default.div`
2704
+ var InnerPadding = import_styled10.default.div`
2270
2705
  padding: ${"4px" /* 3xs */} 0 ${"4px" /* 3xs */}
2271
2706
  ${(props) => props.contentIndent ? "16px" /* md */ : "0"};
2272
2707
  gap: ${"2px" /* 4xs */};
2273
2708
  display: flex;
2274
2709
  flex-direction: column;
2275
2710
  `;
2276
- var Text = import_styled8.default.span`
2711
+ var Text = import_styled10.default.span`
2277
2712
  ${(props) => props.color ? `color: ${props.color};` : ""}
2278
2713
  line-height: inherit;
2279
2714
  `;
2280
2715
 
2281
2716
  // src/components/CommandKey.tsx
2282
- var import_styled9 = __toESM(require("@emotion/styled"), 1);
2283
- var import_jsx_runtime10 = require("@emotion/react/jsx-runtime");
2717
+ var import_styled11 = __toESM(require("@emotion/styled"), 1);
2718
+ var import_jsx_runtime12 = require("@emotion/react/jsx-runtime");
2284
2719
  var CommandKey = ({
2285
2720
  keyboardKey,
2286
2721
  size: size2,
2287
2722
  color,
2288
2723
  backgroundColor
2289
2724
  }) => {
2290
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
2725
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2291
2726
  StyledCommandKey,
2292
2727
  {
2293
2728
  color,
@@ -2297,7 +2732,7 @@ var CommandKey = ({
2297
2732
  }
2298
2733
  );
2299
2734
  };
2300
- var StyledCommandKey = import_styled9.default.div`
2735
+ var StyledCommandKey = import_styled11.default.div`
2301
2736
  height: 24px;
2302
2737
  display: flex;
2303
2738
  align-items: center;
@@ -2313,18 +2748,18 @@ var StyledCommandKey = import_styled9.default.div`
2313
2748
  `;
2314
2749
 
2315
2750
  // src/components/CopyToClipboardButton.tsx
2316
- var import_styled10 = __toESM(require("@emotion/styled"), 1);
2751
+ var import_styled12 = __toESM(require("@emotion/styled"), 1);
2317
2752
  var import_nanoid = require("nanoid");
2318
- var import_react13 = require("react");
2319
- var import_jsx_runtime11 = require("@emotion/react/jsx-runtime");
2753
+ var import_react15 = require("react");
2754
+ var import_jsx_runtime13 = require("@emotion/react/jsx-runtime");
2320
2755
  var CopyToClipboardButton = (props) => {
2321
2756
  var _a;
2322
2757
  const originalTooltipContent = props.tooltipContent || "Click to copy";
2323
2758
  const icon = props.icon || "Copy";
2324
2759
  const id = `copy-node-name-${(_a = props.id) != null ? _a : (0, import_nanoid.nanoid)()}`;
2325
- const [tooltipContent, setTooltipContent] = (0, import_react13.useState)(originalTooltipContent);
2326
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
2327
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
2760
+ const [tooltipContent, setTooltipContent] = (0, import_react15.useState)(originalTooltipContent);
2761
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
2762
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
2328
2763
  Button2,
2329
2764
  {
2330
2765
  type: "button",
@@ -2345,12 +2780,12 @@ var CopyToClipboardButton = (props) => {
2345
2780
  ml: props.ml,
2346
2781
  "data-tooltip-id": id,
2347
2782
  children: [
2348
- props.children ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Children, { children: props.children }) : null,
2349
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(Icon, { name: icon, width: props.isSm ? 12 : 16 })
2783
+ props.children ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Children, { children: props.children }) : null,
2784
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Icon, { name: icon, width: props.isSm ? 12 : 16 })
2350
2785
  ]
2351
2786
  }
2352
2787
  ),
2353
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2788
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
2354
2789
  LightTooltip,
2355
2790
  {
2356
2791
  id,
@@ -2360,10 +2795,10 @@ var CopyToClipboardButton = (props) => {
2360
2795
  )
2361
2796
  ] });
2362
2797
  };
2363
- var Children = import_styled10.default.span`
2798
+ var Children = import_styled12.default.span`
2364
2799
  margin-right: 4px;
2365
2800
  `;
2366
- var Button2 = (0, import_styled10.default)(UnstyledButton)`
2801
+ var Button2 = (0, import_styled12.default)(UnstyledButton)`
2367
2802
  background: rgba(0, 0, 0, 0);
2368
2803
  vertical-align: middle;
2369
2804
  ${({ ml }) => ml ? `margin-left: ${ml}px` : ""};
@@ -2371,9 +2806,9 @@ var Button2 = (0, import_styled10.default)(UnstyledButton)`
2371
2806
 
2372
2807
  // src/components/CurrencyAmount.tsx
2373
2808
  var import_client = require("@apollo/client");
2374
- var import_styled11 = __toESM(require("@emotion/styled"), 1);
2809
+ var import_styled13 = __toESM(require("@emotion/styled"), 1);
2375
2810
  var import_core = require("@lightsparkdev/core");
2376
- var import_jsx_runtime12 = require("@emotion/react/jsx-runtime");
2811
+ var import_jsx_runtime14 = require("@emotion/react/jsx-runtime");
2377
2812
  function CurrencyAmount({
2378
2813
  amount,
2379
2814
  displayUnit = import_core.CurrencyUnit.SATOSHI,
@@ -2405,18 +2840,18 @@ function CurrencyAmount({
2405
2840
  if (showUnits) {
2406
2841
  formattedNumber += ` ${shorttext(unit, value)}`;
2407
2842
  }
2408
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(StyledCurrencyAmount, { ml, children: [
2843
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(StyledCurrencyAmount, { ml, children: [
2409
2844
  includeEstimatedIndicator && "Est. ",
2410
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(CurrencyIcon, { unit }),
2845
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(CurrencyIcon, { unit }),
2411
2846
  formattedNumber
2412
2847
  ] });
2413
2848
  }
2414
2849
  var CurrencyIcon = ({ unit }) => {
2415
2850
  switch (unit) {
2416
2851
  case import_core.CurrencyUnit.BITCOIN:
2417
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "BitcoinB", width: 8, verticalAlign: -2, mr: 2 });
2852
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, { name: "BitcoinB", width: 8, verticalAlign: -2, mr: 2 });
2418
2853
  case import_core.CurrencyUnit.SATOSHI:
2419
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Icon, { name: "Satoshi", width: 8, verticalAlign: -2, mr: 2 });
2854
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Icon, { name: "Satoshi", width: 8, verticalAlign: -2, mr: 2 });
2420
2855
  default:
2421
2856
  return null;
2422
2857
  }
@@ -2437,7 +2872,7 @@ var shorttext = (unit, value) => {
2437
2872
  }
2438
2873
  return unit;
2439
2874
  };
2440
- var StyledCurrencyAmount = import_styled11.default.span`
2875
+ var StyledCurrencyAmount = import_styled13.default.span`
2441
2876
  color: inherit !important;
2442
2877
  white-space: nowrap;
2443
2878
  font-feature-settings:
@@ -2457,19 +2892,131 @@ CurrencyAmount.fragments = {
2457
2892
  `
2458
2893
  };
2459
2894
 
2895
+ // src/components/GradientCardHeader.tsx
2896
+ var import_styled14 = __toESM(require("@emotion/styled"), 1);
2897
+ var import_jsx_runtime15 = require("@emotion/react/jsx-runtime");
2898
+ function GradientCardHeader(props) {
2899
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(CardHeaderWrapper, { children: [
2900
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Gradients, {}),
2901
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
2902
+ props.status,
2903
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(CardHeaderTitle, { children: props.title })
2904
+ ] }),
2905
+ props.children
2906
+ ] });
2907
+ }
2908
+ var CardHeaderWrapper = import_styled14.default.div`
2909
+ position: relative;
2910
+ display: flex;
2911
+ flex-direction: column;
2912
+ justify-content: space-between;
2913
+ padding: 40px 32px 24px 32px;
2914
+ background-color: black;
2915
+ color: white;
2916
+ height: 264px;
2917
+ `;
2918
+ var CardHeaderTitle = import_styled14.default.h3`
2919
+ font-size: 21px;
2920
+ font-weight: 800;
2921
+ color: white;
2922
+ margin: 0;
2923
+ z-index: ${z.headerContainer} - 1;
2924
+ position: relative;
2925
+ `;
2926
+ var Gradients = () => {
2927
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { style: { position: "absolute", top: 0, left: 0, right: 0, bottom: 0 }, children: [
2928
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BackgroundGradients, {}),
2929
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(AccentGradients, {})
2930
+ ] });
2931
+ };
2932
+ var BackgroundGradients = import_styled14.default.div`
2933
+ &:before,
2934
+ &:after {
2935
+ content: "";
2936
+ position: absolute;
2937
+ margin: auto;
2938
+ filter: blur(38.5px);
2939
+ }
2940
+ &:before {
2941
+ z-index: ${z.walletActionPreviewTopGradient};
2942
+ right: -280px;
2943
+ top: -340px;
2944
+ width: 704px;
2945
+ height: 619px;
2946
+ background: radial-gradient(
2947
+ 31.57% 32.06% at 50.1% 49.9%,
2948
+ #0032ff 0%,
2949
+ rgb(0 121 255 / 31%) 97%,
2950
+ rgba(0, 102, 255, 0.05) 100%
2951
+ );
2952
+ }
2953
+ &:after {
2954
+ z-index: ${z.walletActionPreviewTopGradient - 1};
2955
+ width: 636px;
2956
+ height: 552px;
2957
+ top: -400px;
2958
+ right: -280px;
2959
+ background: radial-gradient(
2960
+ 31.57% 32.06% at 50.1% 49.9%,
2961
+ rgb(255 114 104) 0%,
2962
+ rgb(191 9 255 / 14%) 90%,
2963
+ rgb(191 9 255 / 5%) 100%
2964
+ );
2965
+ }
2966
+ `;
2967
+ var AccentGradients = import_styled14.default.div`
2968
+ position: absolute;
2969
+ top: 0;
2970
+ left: 0;
2971
+ width: 100%;
2972
+ height: 100%;
2973
+ right: 0;
2974
+ bottom: 0;
2975
+ z-index: ${z.walletActionPreviewTopGradient - 1};
2976
+ &:before,
2977
+ &:after {
2978
+ content: "";
2979
+ position: absolute;
2980
+ margin: auto;
2981
+ filter: blur(38.5px);
2982
+ }
2983
+ &:before {
2984
+ right: -70px;
2985
+ top: -100px;
2986
+ width: 169px;
2987
+ height: 323px;
2988
+ background: radial-gradient(
2989
+ 31.57% 32.06% at 50.1% 49.9%,
2990
+ #ff8c28,
2991
+ rgba(191, 9, 255, 0.1) 100%
2992
+ );
2993
+ }
2994
+ &:after {
2995
+ right: -22px;
2996
+ top: -140px;
2997
+ width: 225px;
2998
+ height: 190px;
2999
+ background: radial-gradient(
3000
+ 41.57% 62.06% at 53.1% 49.9%,
3001
+ rgb(255 119 0),
3002
+ rgb(255 106 9 / 55%) 100%
3003
+ );
3004
+ }
3005
+ `;
3006
+
2460
3007
  // src/components/LightboxImage.tsx
2461
- var import_styled12 = __toESM(require("@emotion/styled"), 1);
2462
- var import_react14 = require("react");
2463
- var import_jsx_runtime13 = require("@emotion/react/jsx-runtime");
3008
+ var import_styled15 = __toESM(require("@emotion/styled"), 1);
3009
+ var import_react16 = require("react");
3010
+ var import_jsx_runtime16 = require("@emotion/react/jsx-runtime");
2464
3011
  var LightboxImage = ({ children }) => {
2465
- const [isOpen, setIsOpen] = (0, import_react14.useState)(false);
2466
- const [boundingRect, setBoundingRect] = (0, import_react14.useState)({
3012
+ const [isOpen, setIsOpen] = (0, import_react16.useState)(false);
3013
+ const [boundingRect, setBoundingRect] = (0, import_react16.useState)({
2467
3014
  x: 0,
2468
3015
  y: 0,
2469
3016
  width: 0,
2470
3017
  height: 0
2471
3018
  });
2472
- const imageRef = (0, import_react14.useRef)(null);
3019
+ const imageRef = (0, import_react16.useRef)(null);
2473
3020
  const handleMouseUp = () => {
2474
3021
  setIsOpen(!isOpen);
2475
3022
  };
@@ -2485,12 +3032,12 @@ var LightboxImage = ({ children }) => {
2485
3032
  });
2486
3033
  }
2487
3034
  };
2488
- (0, import_react14.useEffect)(() => {
3035
+ (0, import_react16.useEffect)(() => {
2489
3036
  handleSetBoundingRect(imageRef);
2490
3037
  }, [imageRef]);
2491
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(import_jsx_runtime13.Fragment, { children: [
2492
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(DummyImage, { isOpen, boundingRect }),
2493
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
3038
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
3039
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(DummyImage, { isOpen, boundingRect }),
3040
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
2494
3041
  StyledImage,
2495
3042
  {
2496
3043
  isOpen,
@@ -2501,13 +3048,13 @@ var LightboxImage = ({ children }) => {
2501
3048
  children
2502
3049
  }
2503
3050
  ),
2504
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Lightbox, { isOpen, onClick: handleMouseUp })
3051
+ /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Lightbox, { isOpen, onClick: handleMouseUp })
2505
3052
  ] });
2506
3053
  };
2507
- var DummyImage = import_styled12.default.div`
3054
+ var DummyImage = import_styled15.default.div`
2508
3055
  ${(props) => props.isOpen ? `height: ${props.boundingRect.height}px; width: ${props.boundingRect.width}px;` : ``}
2509
3056
  `;
2510
- var StyledImage = import_styled12.default.div`
3057
+ var StyledImage = import_styled15.default.div`
2511
3058
  display: flex;
2512
3059
  justify-content: start;
2513
3060
  align-items: center;
@@ -2555,7 +3102,7 @@ var StyledImage = import_styled12.default.div`
2555
3102
  }
2556
3103
  }
2557
3104
  `;
2558
- var Lightbox = import_styled12.default.div`
3105
+ var Lightbox = import_styled15.default.div`
2559
3106
  transition: opacity 0.2s ease-out;
2560
3107
  position: fixed;
2561
3108
  opacity: 0;
@@ -2578,11 +3125,11 @@ var Lightbox = import_styled12.default.div`
2578
3125
  `;
2579
3126
 
2580
3127
  // src/components/LightsparkProvider.tsx
2581
- var import_react17 = require("@emotion/react");
3128
+ var import_react19 = require("@emotion/react");
2582
3129
 
2583
3130
  // src/styles/global.tsx
2584
- var import_react15 = require("@emotion/react");
2585
- var import_react16 = require("react");
3131
+ var import_react17 = require("@emotion/react");
3132
+ var import_react18 = require("react");
2586
3133
  var import_react_tooltip2 = require("react-tooltip/dist/react-tooltip.css");
2587
3134
  var import_fonts = require("../static/fonts.css");
2588
3135
 
@@ -2592,8 +3139,8 @@ var cssVars = {
2592
3139
  };
2593
3140
 
2594
3141
  // src/styles/global.tsx
2595
- var import_jsx_runtime14 = require("@emotion/react/jsx-runtime");
2596
- var globalComponentStyles = ({ theme }) => import_react15.css`
3142
+ var import_jsx_runtime17 = require("@emotion/react/jsx-runtime");
3143
+ var globalComponentStyles = ({ theme }) => import_react17.css`
2597
3144
  @import url("https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap");
2598
3145
 
2599
3146
  html {
@@ -2668,9 +3215,9 @@ var globalComponentStyles = ({ theme }) => import_react15.css`
2668
3215
  }
2669
3216
  `;
2670
3217
  function GlobalStyles() {
2671
- const theme = (0, import_react15.useTheme)();
3218
+ const theme = (0, import_react17.useTheme)();
2672
3219
  const bg = useThemeBg();
2673
- (0, import_react16.useEffect)(() => {
3220
+ (0, import_react18.useEffect)(() => {
2674
3221
  const documentHeight = () => {
2675
3222
  const doc = document.documentElement;
2676
3223
  doc.style.setProperty(cssVars.docHeight, `${window.innerHeight}px`);
@@ -2679,7 +3226,7 @@ function GlobalStyles() {
2679
3226
  documentHeight();
2680
3227
  return () => window.removeEventListener("resize", documentHeight);
2681
3228
  }, []);
2682
- const globalStyles = import_react15.css`
3229
+ const globalStyles = import_react17.css`
2683
3230
  ${globalComponentStyles({ theme })}
2684
3231
 
2685
3232
  :root {
@@ -2706,29 +3253,29 @@ function GlobalStyles() {
2706
3253
  height: 100%;
2707
3254
  }
2708
3255
  `;
2709
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_react15.Global, { styles: globalStyles });
3256
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(import_react17.Global, { styles: globalStyles });
2710
3257
  }
2711
3258
 
2712
3259
  // src/components/LightsparkProvider.tsx
2713
- var import_jsx_runtime15 = require("@emotion/react/jsx-runtime");
3260
+ var import_jsx_runtime18 = require("@emotion/react/jsx-runtime");
2714
3261
  function LightsparkProvider({ children }) {
2715
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_react17.ThemeProvider, { theme: themes.light, children: [
2716
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(GlobalStyles, {}),
3262
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react19.ThemeProvider, { theme: themes.light, children: [
3263
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(GlobalStyles, {}),
2717
3264
  children
2718
3265
  ] });
2719
3266
  }
2720
3267
 
2721
3268
  // src/components/Modal.tsx
2722
- var import_styled14 = __toESM(require("@emotion/styled"), 1);
2723
- var import_react21 = __toESM(require("react"), 1);
3269
+ var import_styled17 = __toESM(require("@emotion/styled"), 1);
3270
+ var import_react23 = __toESM(require("react"), 1);
2724
3271
  var import_react_dom2 = __toESM(require("react-dom"), 1);
2725
3272
 
2726
3273
  // src/hooks/useLiveRef.tsx
2727
- var import_react18 = require("react");
3274
+ var import_react20 = require("react");
2728
3275
  function useLiveRef() {
2729
- const [ready, setReady] = (0, import_react18.useState)(false);
2730
- const ref = (0, import_react18.useRef)(null);
2731
- const refCb = (0, import_react18.useCallback)((node) => {
3276
+ const [ready, setReady] = (0, import_react20.useState)(false);
3277
+ const ref = (0, import_react20.useRef)(null);
3278
+ const refCb = (0, import_react20.useCallback)((node) => {
2732
3279
  if (node !== null) {
2733
3280
  ref.current = node;
2734
3281
  setReady(true);
@@ -2738,8 +3285,8 @@ function useLiveRef() {
2738
3285
  }
2739
3286
 
2740
3287
  // src/utils/toReactNodes.tsx
2741
- var import_react19 = require("react");
2742
- var import_jsx_runtime16 = require("@emotion/react/jsx-runtime");
3288
+ var import_react21 = require("react");
3289
+ var import_jsx_runtime19 = require("@emotion/react/jsx-runtime");
2743
3290
  var ToReactNodesTypes = {
2744
3291
  Link: "link"
2745
3292
  };
@@ -2747,22 +3294,22 @@ function toReactNodes(toReactNodesArg) {
2747
3294
  const toReactNodesArray = Array.isArray(toReactNodesArg) ? toReactNodesArg : [toReactNodesArg];
2748
3295
  const reactNodes = toReactNodesArray.map((node, i) => {
2749
3296
  if (typeof node === "string") {
2750
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react19.Fragment, { children: node.split("\n").map((str, j, strArr) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_react19.Fragment, { children: [
3297
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react21.Fragment, { children: node.split("\n").map((str, j, strArr) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(import_react21.Fragment, { children: [
2751
3298
  str,
2752
- j < strArr.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("br", {})
3299
+ j < strArr.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("br", {})
2753
3300
  ] }, `str-${i}-break-${j}`)) }, `str-${i}`);
2754
3301
  } else if (node.type === ToReactNodesTypes.Link) {
2755
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(Link, { to: node.to, children: node.text }, `link-${i}`);
3302
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Link, { to: node.to, children: node.text }, `link-${i}`);
2756
3303
  }
2757
3304
  return null;
2758
3305
  });
2759
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(import_react19.Fragment, { children: reactNodes });
3306
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(import_react21.Fragment, { children: reactNodes });
2760
3307
  }
2761
3308
 
2762
3309
  // src/components/ProgressBar.tsx
2763
- var import_styled13 = __toESM(require("@emotion/styled"), 1);
2764
- var import_react20 = require("react");
2765
- var import_jsx_runtime17 = require("@emotion/react/jsx-runtime");
3310
+ var import_styled16 = __toESM(require("@emotion/styled"), 1);
3311
+ var import_react22 = require("react");
3312
+ var import_jsx_runtime20 = require("@emotion/react/jsx-runtime");
2766
3313
  var defaultProps2 = {
2767
3314
  isSm: false,
2768
3315
  stepDuration: 0.5
@@ -2773,8 +3320,8 @@ function ProgressBar({
2773
3320
  isSm = defaultProps2.isSm,
2774
3321
  stepDuration = defaultProps2.stepDuration
2775
3322
  }) {
2776
- const [percentage, setPercentage] = (0, import_react20.useState)(5);
2777
- (0, import_react20.useEffect)(() => {
3323
+ const [percentage, setPercentage] = (0, import_react22.useState)(5);
3324
+ (0, import_react22.useEffect)(() => {
2778
3325
  if (progressPercentage !== void 0) {
2779
3326
  setPercentage(progressPercentage);
2780
3327
  } else {
@@ -2783,7 +3330,7 @@ function ProgressBar({
2783
3330
  }, 0);
2784
3331
  }
2785
3332
  }, [progressPercentage]);
2786
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(ProgressBarContainer, { isSm, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(Bar, { isSm, percentage, stepDuration, children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
3333
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(ProgressBarContainer, { isSm, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(Bar, { isSm, percentage, stepDuration, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
2787
3334
  BarBg,
2788
3335
  {
2789
3336
  background,
@@ -2794,7 +3341,7 @@ function ProgressBar({
2794
3341
  ) }) });
2795
3342
  }
2796
3343
  ProgressBar.defaultProps = defaultProps2;
2797
- var ProgressBarContainer = import_styled13.default.div`
3344
+ var ProgressBarContainer = import_styled16.default.div`
2798
3345
  ${standardBorderRadius(16)}
2799
3346
  background-color: ${({ theme }) => themeOr(theme.c05Neutral, theme.c1Neutral)({ theme })};
2800
3347
  box-sizing: border-box;
@@ -2804,7 +3351,7 @@ var ProgressBarContainer = import_styled13.default.div`
2804
3351
  width: 100%;
2805
3352
  position: relative;
2806
3353
  `;
2807
- var BarBg = import_styled13.default.div`
3354
+ var BarBg = import_styled16.default.div`
2808
3355
  ${standardBorderRadius(16)}
2809
3356
  width: ${({ percentage }) => 100 / percentage * 100}%;
2810
3357
  height: 100%;
@@ -2818,7 +3365,7 @@ var BarBg = import_styled13.default.div`
2818
3365
  #3f2e7e 115.32%
2819
3366
  )`};
2820
3367
  `;
2821
- var Bar = import_styled13.default.div`
3368
+ var Bar = import_styled16.default.div`
2822
3369
  ${standardBorderRadius(16)}
2823
3370
  overflow: hidden;
2824
3371
  box-sizing: border-box;
@@ -2830,7 +3377,7 @@ var Bar = import_styled13.default.div`
2830
3377
  `;
2831
3378
 
2832
3379
  // src/components/Modal.tsx
2833
- var import_jsx_runtime18 = require("@emotion/react/jsx-runtime");
3380
+ var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
2834
3381
  function Modal({
2835
3382
  visible,
2836
3383
  title,
@@ -2845,31 +3392,31 @@ function Modal({
2845
3392
  submitDisabled,
2846
3393
  submitLoading,
2847
3394
  submitText,
2848
- cancelText,
3395
+ cancelText = "Cancel",
2849
3396
  firstFocusRef,
2850
3397
  nonDismissable = false,
2851
3398
  autoFocus = true,
2852
3399
  width = 460,
2853
3400
  progressBar
2854
3401
  }) {
2855
- const visibleChangedRef = (0, import_react21.useRef)(false);
2856
- const nodeRef = (0, import_react21.useRef)(null);
3402
+ const visibleChangedRef = (0, import_react23.useRef)(false);
3403
+ const nodeRef = (0, import_react23.useRef)(null);
2857
3404
  const [defaultFirstFocusRef, defaultFirstFocusRefCb] = useLiveRef();
2858
3405
  const ref = firstFocusRef || defaultFirstFocusRef;
2859
- const [nodeReady, setNodeReady] = import_react21.default.useState(false);
2860
- const overlayRef = (0, import_react21.useRef)(null);
2861
- const prevFocusedElement = (0, import_react21.useRef)();
2862
- const modalContainerRef = (0, import_react21.useRef)(null);
3406
+ const [nodeReady, setNodeReady] = import_react23.default.useState(false);
3407
+ const overlayRef = (0, import_react23.useRef)(null);
3408
+ const prevFocusedElement = (0, import_react23.useRef)();
3409
+ const modalContainerRef = (0, import_react23.useRef)(null);
2863
3410
  const bp2 = useBreakpoints();
2864
3411
  const isSm = bp2.current("sm" /* sm */);
2865
3412
  const formattedDescription = description ? toReactNodes(description) : null;
2866
- (0, import_react21.useEffect)(() => {
3413
+ (0, import_react23.useEffect)(() => {
2867
3414
  if (visible !== visibleChangedRef.current) {
2868
3415
  visibleChangedRef.current = visible;
2869
3416
  }
2870
3417
  }, [visible]);
2871
3418
  const visibleChanged = visible !== visibleChangedRef.current;
2872
- (0, import_react21.useEffect)(() => {
3419
+ (0, import_react23.useEffect)(() => {
2873
3420
  prevFocusedElement.current = document.activeElement;
2874
3421
  if (!nodeRef.current) {
2875
3422
  nodeRef.current = document.createElement("div");
@@ -2883,7 +3430,7 @@ function Modal({
2883
3430
  }
2884
3431
  };
2885
3432
  }, []);
2886
- (0, import_react21.useEffect)(() => {
3433
+ (0, import_react23.useEffect)(() => {
2887
3434
  const handleOutsideClick = (event) => {
2888
3435
  if (visible && overlayRef.current && event.target && overlayRef.current.contains(event.target) && !nonDismissable) {
2889
3436
  onClose();
@@ -2920,7 +3467,7 @@ function Modal({
2920
3467
  }
2921
3468
  };
2922
3469
  }, [onClose, visible, nonDismissable]);
2923
- (0, import_react21.useLayoutEffect)(() => {
3470
+ (0, import_react23.useLayoutEffect)(() => {
2924
3471
  if (visible) {
2925
3472
  if (visibleChanged) {
2926
3473
  prevFocusedElement.current = document.activeElement;
@@ -2949,9 +3496,9 @@ function Modal({
2949
3496
  onClose();
2950
3497
  }
2951
3498
  }
2952
- const modalContent = /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(import_react21.Fragment, { children: [
2953
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(ModalOverlay, { ref: overlayRef }),
2954
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3499
+ const modalContent = /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(import_react23.Fragment, { children: [
3500
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(ModalOverlay, { ref: overlayRef }),
3501
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2955
3502
  ModalContainer,
2956
3503
  {
2957
3504
  "aria-modal": true,
@@ -2959,30 +3506,30 @@ function Modal({
2959
3506
  tabIndex: -1,
2960
3507
  role: "dialog",
2961
3508
  ref: modalContainerRef,
2962
- children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalContent, { width, ghost, children: [
2963
- !firstFocusRef && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(DefaultFocusTarget, { ref: defaultFirstFocusRefCb }),
2964
- !(nonDismissable || ghost) && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(CloseButton, { onClick: onClickCloseButton, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Icon, { name: "Close", width: 9 }) }),
2965
- /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalContentInner, { ghost, children: [
2966
- progressBar ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { css: { marginBottom: "20px" }, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3509
+ children: /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(ModalContent, { width, ghost, children: [
3510
+ !firstFocusRef && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(DefaultFocusTarget, { ref: defaultFirstFocusRefCb }),
3511
+ !(nonDismissable || ghost) && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(CloseButton, { onClick: onClickCloseButton, type: "button", children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Icon, { name: "Close", width: 9 }) }),
3512
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(ModalContentInner, { ghost, children: [
3513
+ progressBar ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { css: { marginBottom: "20px" }, children: /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2967
3514
  ProgressBar,
2968
3515
  {
2969
3516
  progressPercentage: progressBar.progressPercentage,
2970
3517
  isSm: progressBar.isSm
2971
3518
  }
2972
3519
  ) }) : null,
2973
- title ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("h4", { children: title }) : null,
2974
- formattedDescription ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Description, { children: formattedDescription }) : null,
2975
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { children }),
2976
- onSubmit ? /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(ModalButtonRow, { children: [
2977
- !isSm && !cancelHidden && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3520
+ title ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("h4", { children: title }) : null,
3521
+ formattedDescription ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Description, { children: formattedDescription }) : null,
3522
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("div", { children }),
3523
+ onSubmit || onCancel ? /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(ModalButtonRow, { children: [
3524
+ !isSm && !cancelHidden && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2978
3525
  Button,
2979
3526
  {
2980
3527
  disabled: cancelDisabled,
2981
3528
  onClick: onClickCancel,
2982
- text: cancelText != null ? cancelText : "Cancel"
3529
+ text: cancelText
2983
3530
  }
2984
3531
  ),
2985
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
3532
+ onSubmit && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
2986
3533
  Button,
2987
3534
  {
2988
3535
  disabled: submitDisabled,
@@ -2992,7 +3539,7 @@ function Modal({
2992
3539
  type: "submit"
2993
3540
  }
2994
3541
  ),
2995
- isSm && !cancelHidden && /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Button, { onClick: onClose, text: "Cancel" })
3542
+ isSm && !cancelHidden && /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(Button, { onClick: onClose, text: cancelText })
2996
3543
  ] }) : null
2997
3544
  ] })
2998
3545
  ] })
@@ -3000,17 +3547,17 @@ function Modal({
3000
3547
  )
3001
3548
  ] });
3002
3549
  return visible && nodeReady && nodeRef.current ? import_react_dom2.default.createPortal(
3003
- onSubmit ? /* @__PURE__ */ (0, import_jsx_runtime18.jsx)("form", { onSubmit: onSubmitForm, children: modalContent }) : modalContent,
3550
+ onSubmit ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("form", { onSubmit: onSubmitForm, children: modalContent }) : modalContent,
3004
3551
  nodeRef.current
3005
3552
  ) : null;
3006
3553
  }
3007
- var DefaultFocusTarget = (0, import_styled14.default)(UnstyledButton)`
3554
+ var DefaultFocusTarget = (0, import_styled17.default)(UnstyledButton)`
3008
3555
  position: absolute;
3009
3556
  top: -30px;
3010
3557
  width: 0;
3011
3558
  height: 0;
3012
3559
  `;
3013
- var ModalOverlay = import_styled14.default.div`
3560
+ var ModalOverlay = import_styled17.default.div`
3014
3561
  position: fixed;
3015
3562
  bottom: 0;
3016
3563
  left: 0;
@@ -3020,7 +3567,7 @@ var ModalOverlay = import_styled14.default.div`
3020
3567
  background: rgba(0, 0, 0, 0.5);
3021
3568
  backdrop-filter: blur(2px);
3022
3569
  `;
3023
- var ModalContainer = import_styled14.default.div`
3570
+ var ModalContainer = import_styled17.default.div`
3024
3571
  pointer-events: none;
3025
3572
  position: fixed;
3026
3573
  top: 0;
@@ -3035,19 +3582,20 @@ var ModalContainer = import_styled14.default.div`
3035
3582
  justify-content: center;
3036
3583
  align-items: center;
3037
3584
  color: ${({ theme }) => theme.text};
3038
- padding-top: ${standardContentInsetSmPx}px;
3585
+ padding-top: ${standardContentInset.smPx}px;
3039
3586
  `;
3040
3587
  var contentTopMarginPx = 24;
3041
- var Description = import_styled14.default.div`
3588
+ var Description = import_styled17.default.div`
3042
3589
  color: ${({ theme }) => theme.mcNeutral};
3043
3590
  margin-top: 4px;
3044
3591
  & + * {
3045
3592
  margin-top: ${contentTopMarginPx}px;
3046
3593
  }
3047
3594
  `;
3048
- var ModalButtonRow = import_styled14.default.div`
3595
+ var ModalButtonRow = import_styled17.default.div`
3049
3596
  margin-top: 32px;
3050
3597
  ${bp.minSm(`display: flex;`)}
3598
+ gap: 10px;
3051
3599
 
3052
3600
  button {
3053
3601
  width: 50%;
@@ -3060,14 +3608,11 @@ var ModalButtonRow = import_styled14.default.div`
3060
3608
  ${bp.sm(`
3061
3609
  margin-top: 16px;
3062
3610
  `)}
3063
- ${bp.minSm(`
3064
- margin-left: 10px;
3065
- `)}
3066
3611
  }
3067
3612
  `;
3068
- var ModalContent = import_styled14.default.div`
3613
+ var ModalContent = import_styled17.default.div`
3069
3614
  ${overflowAutoWithoutScrollbars}
3070
- ${smContentInset}
3615
+ ${standardContentInset.smCSS}
3071
3616
  ${standardBorderRadius(16)}
3072
3617
  ${(props) => props.ghost ? "" : overlaySurface}
3073
3618
  pointer-events: auto;
@@ -3087,12 +3632,12 @@ var ModalContent = import_styled14.default.div`
3087
3632
  }
3088
3633
  }
3089
3634
  `;
3090
- var CloseButton = (0, import_styled14.default)(UnstyledButton)`
3635
+ var CloseButton = (0, import_styled17.default)(UnstyledButton)`
3091
3636
  ${standardFocusOutline}
3092
3637
  width: 24px;
3093
3638
  height: 24px;
3094
3639
  `;
3095
- var ModalContentInner = import_styled14.default.div`
3640
+ var ModalContentInner = import_styled17.default.div`
3096
3641
  ${(props) => props.ghost ? "" : "padding: 32px 24px 0;"}
3097
3642
  ${(props) => props.ghost ? "" : `${bp.sm(`
3098
3643
  padding-left: 10px;
@@ -3101,9 +3646,9 @@ var ModalContentInner = import_styled14.default.div`
3101
3646
  `;
3102
3647
 
3103
3648
  // src/components/Pill.tsx
3104
- var import_styled15 = __toESM(require("@emotion/styled"), 1);
3105
- var import_react22 = require("react");
3106
- var import_jsx_runtime19 = require("@emotion/react/jsx-runtime");
3649
+ var import_styled18 = __toESM(require("@emotion/styled"), 1);
3650
+ var import_react24 = require("react");
3651
+ var import_jsx_runtime22 = require("@emotion/react/jsx-runtime");
3107
3652
  function Pill({
3108
3653
  text,
3109
3654
  onDeleteMouseDown,
@@ -3122,8 +3667,8 @@ function Pill({
3122
3667
  onBlurTextInput = () => {
3123
3668
  }
3124
3669
  }) {
3125
- const textInputRef = (0, import_react22.useRef)(null);
3126
- (0, import_react22.useEffect)(() => {
3670
+ const textInputRef = (0, import_react24.useRef)(null);
3671
+ (0, import_react24.useEffect)(() => {
3127
3672
  if (isEditing && textInputRef.current) {
3128
3673
  textInputRef.current.focus();
3129
3674
  }
@@ -3142,7 +3687,7 @@ function Pill({
3142
3687
  }
3143
3688
  }
3144
3689
  }
3145
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
3690
+ return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3146
3691
  StyledPill,
3147
3692
  {
3148
3693
  hasIcon: Boolean(icon || loading || onDeleteMouseDown),
@@ -3154,7 +3699,7 @@ function Pill({
3154
3699
  }
3155
3700
  },
3156
3701
  children: [
3157
- isEditing ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3702
+ isEditing ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3158
3703
  PillInput,
3159
3704
  {
3160
3705
  value: text,
@@ -3163,14 +3708,14 @@ function Pill({
3163
3708
  onBlur: onBlurTextInput,
3164
3709
  ref: textInputRef
3165
3710
  }
3166
- ) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(PillText, { children: text }),
3167
- (icon || loading || onDeleteMouseDown) && /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
3711
+ ) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(PillText, { children: text }),
3712
+ (icon || loading || onDeleteMouseDown) && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
3168
3713
  PillIconContainer,
3169
3714
  {
3170
3715
  hasIconInset: Boolean(icon && !loading && !onDeleteMouseDown),
3171
3716
  children: [
3172
- loading && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Loading, { size: 16.1, center: false, ml: 5 }),
3173
- !loading && onDeleteMouseDown && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
3717
+ loading && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Loading, { size: 16.1, center: false, ml: 5 }),
3718
+ !loading && onDeleteMouseDown && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
3174
3719
  UnstyledButton,
3175
3720
  {
3176
3721
  onMouseDown: handleOnDeleteMouseDown,
@@ -3181,10 +3726,10 @@ function Pill({
3181
3726
  padding: "10px",
3182
3727
  marginRight: "-10px"
3183
3728
  },
3184
- children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon, { name: "DeleteIcon", width: 16.1 })
3729
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Icon, { name: "DeleteIcon", width: 16.1 })
3185
3730
  }
3186
3731
  ),
3187
- !loading && icon && !onDeleteMouseDown && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(Icon, { name: icon, width: 16.1, color: colors.white })
3732
+ !loading && icon && !onDeleteMouseDown && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(Icon, { name: icon, width: 16.1, color: colors.white })
3188
3733
  ]
3189
3734
  }
3190
3735
  )
@@ -3192,7 +3737,7 @@ function Pill({
3192
3737
  }
3193
3738
  );
3194
3739
  }
3195
- var PillText = import_styled15.default.div`
3740
+ var PillText = import_styled18.default.div`
3196
3741
  /* For mobile ensure empty values don't prevent div from having height: */
3197
3742
  height: 1.2rem;
3198
3743
  min-width: 100px;
@@ -3202,7 +3747,7 @@ var PillText = import_styled15.default.div`
3202
3747
  overflow: hidden;
3203
3748
  font-weight: 600;
3204
3749
  `;
3205
- var StyledPill = import_styled15.default.div`
3750
+ var StyledPill = import_styled18.default.div`
3206
3751
  * + & {
3207
3752
  margin-top: 16px;
3208
3753
  }
@@ -3216,7 +3761,7 @@ var StyledPill = import_styled15.default.div`
3216
3761
  cursor: ${({ cursor }) => cursor};
3217
3762
  position: relative;
3218
3763
  `;
3219
- var PillIconContainer = import_styled15.default.div`
3764
+ var PillIconContainer = import_styled18.default.div`
3220
3765
  ${flexCenter}
3221
3766
  ${({ hasIconInset }) => hasIconInset ? `
3222
3767
  background-color: ${colors.blue43};
@@ -3227,7 +3772,7 @@ var PillIconContainer = import_styled15.default.div`
3227
3772
  margin-left: 12px;
3228
3773
  position: absolute;
3229
3774
  `;
3230
- var PillInput = import_styled15.default.input`
3775
+ var PillInput = import_styled18.default.input`
3231
3776
  background-color: transparent;
3232
3777
  border: none;
3233
3778
  outline: none;
@@ -3245,11 +3790,11 @@ var PillInput = import_styled15.default.input`
3245
3790
  `;
3246
3791
 
3247
3792
  // src/components/SecretContainer.tsx
3248
- var import_styled16 = __toESM(require("@emotion/styled"), 1);
3249
- var import_jsx_runtime20 = require("@emotion/react/jsx-runtime");
3793
+ var import_styled19 = __toESM(require("@emotion/styled"), 1);
3794
+ var import_jsx_runtime23 = require("@emotion/react/jsx-runtime");
3250
3795
  function SecretContainer(props) {
3251
- return props.secret ? /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(StyledSecretContainer, { hasSecret: true, success: props.success, children: [
3252
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
3796
+ return props.secret ? /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(StyledSecretContainer, { hasSecret: true, success: props.success, children: [
3797
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
3253
3798
  "span",
3254
3799
  {
3255
3800
  style: {
@@ -3261,10 +3806,10 @@ function SecretContainer(props) {
3261
3806
  children: props.secret
3262
3807
  }
3263
3808
  ),
3264
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(CopyToClipboardButton, { value: props.secret, isSm: true, ml: 4 })
3265
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(StyledSecretContainer, { hasSecret: false, children: "There are no tokens associated with this account" });
3809
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(CopyToClipboardButton, { value: props.secret, isSm: true, ml: 4 })
3810
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(StyledSecretContainer, { hasSecret: false, children: "There are no tokens associated with this account" });
3266
3811
  }
3267
- var StyledSecretContainer = import_styled16.default.div`
3812
+ var StyledSecretContainer = import_styled19.default.div`
3268
3813
  background-color: ${({ theme, hasSecret, success }) => hasSecret ? success ? theme.success : theme.c05Neutral : theme.bg};
3269
3814
  ${standardBorderRadius(8)}
3270
3815
  padding: 18px 20px;
@@ -3276,14 +3821,14 @@ var StyledSecretContainer = import_styled16.default.div`
3276
3821
  `;
3277
3822
 
3278
3823
  // src/components/TextIconAligner.tsx
3279
- var import_jsx_runtime21 = require("@emotion/react/jsx-runtime");
3824
+ var import_jsx_runtime24 = require("@emotion/react/jsx-runtime");
3280
3825
  function TextIconAligner({
3281
3826
  text,
3282
3827
  rightIcon,
3283
3828
  leftIcon,
3284
3829
  onClick
3285
3830
  }) {
3286
- const leftIconNode = leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3831
+ const leftIconNode = leftIcon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3287
3832
  Icon,
3288
3833
  {
3289
3834
  name: leftIcon.name,
@@ -3292,7 +3837,7 @@ function TextIconAligner({
3292
3837
  color: leftIcon.color
3293
3838
  }
3294
3839
  ) : null;
3295
- const rightIconNode = rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
3840
+ const rightIconNode = rightIcon ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
3296
3841
  Icon,
3297
3842
  {
3298
3843
  name: rightIcon.name,
@@ -3301,7 +3846,7 @@ function TextIconAligner({
3301
3846
  color: rightIcon.color
3302
3847
  }
3303
3848
  ) : null;
3304
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
3849
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
3305
3850
  "span",
3306
3851
  {
3307
3852
  css: {
@@ -3325,11 +3870,18 @@ function TextIconAligner({
3325
3870
  ButtonRow,
3326
3871
  ButtonRowContainer,
3327
3872
  ButtonSelector,
3873
+ CardPage,
3874
+ CardPageContent,
3875
+ CardPageFullContent,
3876
+ CardPageFullWidth,
3877
+ CardPageRightContentInner,
3878
+ CardPageSubtitle,
3328
3879
  Collapsible,
3329
3880
  CommandKey,
3330
3881
  CopyToClipboardButton,
3331
3882
  CurrencyAmount,
3332
3883
  CurrencyIcon,
3884
+ GradientCardHeader,
3333
3885
  Icon,
3334
3886
  IconContainer,
3335
3887
  LightTooltip,